summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/biblatex/latex
Initial commit
Diffstat (limited to 'macros/latex/contrib/biblatex/latex')
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/alphabetic-verb.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/alphabetic.bbx60
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authortitle-comp.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authortitle-ibid.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authortitle-icomp.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authortitle-tcomp.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authortitle-terse.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authortitle-ticomp.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authortitle.bbx134
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authoryear-comp.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authoryear-ibid.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authoryear-icomp.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/authoryear.bbx293
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/debug.bbx111
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/draft.bbx38
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/numeric-comp.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/numeric-verb.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/numeric.bbx59
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/reading.bbx173
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/standard.bbx1006
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/verbose-ibid.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/verbose-inote.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/verbose-note.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/verbose-trad1.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/verbose-trad2.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/verbose-trad3.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/bbx/verbose.bbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/biblatex.cfg5
-rw-r--r--macros/latex/contrib/biblatex/latex/biblatex.def3054
-rw-r--r--macros/latex/contrib/biblatex/latex/biblatex.sty15280
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-bibtex.def562
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-compat.def354
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-dm.def1586
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-mcite.def75
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-natbib.def84
-rw-r--r--macros/latex/contrib/biblatex/latex/blx-unicode.def115
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/alphabetic-verb.cbx88
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/alphabetic.cbx145
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authortitle-comp.cbx195
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authortitle-ibid.cbx143
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authortitle-icomp.cbx224
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authortitle-tcomp.cbx90
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authortitle-terse.cbx40
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authortitle-ticomp.cbx100
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authortitle.cbx115
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authoryear-comp.cbx267
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authoryear-ibid.cbx173
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authoryear-icomp.cbx296
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/authoryear.cbx141
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/debug.cbx93
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/draft.cbx73
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/numeric-comp.cbx233
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/numeric-verb.cbx100
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/numeric.cbx156
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/reading.cbx6
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/verbose-ibid.cbx262
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/verbose-inote.cbx321
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/verbose-note.cbx292
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/verbose-trad1.cbx294
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/verbose-trad2.cbx288
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/verbose-trad3.cbx261
-rw-r--r--macros/latex/contrib/biblatex/latex/cbx/verbose.cbx231
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/UKenglish.lbx7
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/USenglish.lbx7
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/american.lbx8
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/australian.lbx28
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/austrian.lbx16
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/brazil.lbx7
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/brazilian.lbx539
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/british.lbx86
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/bulgarian.lbx600
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/canadian.lbx7
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/catalan.lbx630
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/croatian.lbx586
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/czech.lbx475
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/danish.lbx533
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/dutch.lbx546
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/english.lbx713
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/estonian.lbx560
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/finnish.lbx603
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/french.lbx649
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/galician.lbx534
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/german.lbx551
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/greek.lbx592
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/hungarian.lbx7
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/icelandic.lbx484
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/italian.lbx465
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/latvian.lbx787
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/magyar.lbx733
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/naustrian.lbx22
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/newzealand.lbx30
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/ngerman.lbx21
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/norsk.lbx532
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/nswissgerman.lbx30
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/nynorsk.lbx317
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/polish.lbx572
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/portuges.lbx7
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/portuguese.lbx537
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/russian.lbx602
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/slovak.lbx724
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/slovene.lbx532
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/slovenian.lbx7
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/spanish.lbx592
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/swedish.lbx510
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/swissgerman.lbx24
-rw-r--r--macros/latex/contrib/biblatex/latex/lbx/ukrainian.lbx602
106 files changed, 44144 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex/latex/bbx/alphabetic-verb.bbx b/macros/latex/contrib/biblatex/latex/bbx/alphabetic-verb.bbx
new file mode 100644
index 0000000000..d9b165af16
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/alphabetic-verb.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{alphabetic-verb.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{alphabetic}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/alphabetic.bbx b/macros/latex/contrib/biblatex/latex/bbx/alphabetic.bbx
new file mode 100644
index 0000000000..fa603e87ac
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/alphabetic.bbx
@@ -0,0 +1,60 @@
+\ProvidesFile{alphabetic.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{standard}
+\ExecuteBibliographyOptions{labelalpha,sorting=anyt}
+
+\providebool{bbx:subentry}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{subentry}[true]{%
+ \setbool{bbx:subentry}{#1}}
+
+\DeclareNameAlias{author}{default}
+\DeclareNameAlias{editor}{default}
+\DeclareNameAlias{translator}{default}
+
+\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}}
+\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}}
+\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\printtext[labelalphawidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelalpha}%
+ \printfield{extraalpha}}}
+ {\setlength{\labelwidth}{\labelalphawidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}}
+ {\endlist}
+ {\item}
+
+\DeclareBibliographyDriver{set}{%
+ \entryset
+ {\ifbool{bbx:subentry}
+ {\printfield[bibentrysetcount]{entrysetcount}%
+ \printunit*{\addnbspace}}
+ {}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-comp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-comp.bbx
new file mode 100644
index 0000000000..2db8da073c
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-comp.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authortitle-comp.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-ibid.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-ibid.bbx
new file mode 100644
index 0000000000..b614f26d24
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-ibid.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authortitle-ibid.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-icomp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-icomp.bbx
new file mode 100644
index 0000000000..881a873437
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-icomp.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authortitle-icomp.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-tcomp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-tcomp.bbx
new file mode 100644
index 0000000000..2d0015d816
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-tcomp.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authortitle-tcomp.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-terse.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-terse.bbx
new file mode 100644
index 0000000000..cb6b5791b5
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-terse.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authortitle-terse.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle-ticomp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle-ticomp.bbx
new file mode 100644
index 0000000000..d466a83bdd
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle-ticomp.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authortitle-ticomp.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authortitle.bbx b/macros/latex/contrib/biblatex/latex/bbx/authortitle.bbx
new file mode 100644
index 0000000000..d378cd55c4
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authortitle.bbx
@@ -0,0 +1,134 @@
+\ProvidesFile{authortitle.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{standard}
+\ExecuteBibliographyOptions{pagetracker}
+
+\DeclareBibliographyOption[boolean]{dashed}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{pagetracker}%
+ \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}}
+ {\renewbibmacro*{bbx:savehash}{}}}
+
+\DeclareFieldFormat{shorthandwidth}{#1}
+\setlength{\bibitemsep}{0pt}
+
+\DeclareNameAlias{author}{sortname}
+\DeclareNameAlias{editor}{sortname}
+\DeclareNameAlias{translator}{sortname}
+
+\DeclareNameWrapperAlias{author}{sortname}
+\DeclareNameWrapperAlias{editor}{sortname}
+\DeclareNameWrapperAlias{translator}{sortname}
+
+\defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{\bibhang}%
+ \setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}}
+ {\endlist}
+ {\item}
+
+\InitializeBibliographyStyle{%
+ \global\undef\bbx@lasthash}
+
+\newbibmacro*{bbx:savehash}{%
+ \savefield{fullhash}{\bbx@lasthash}}
+
+\newbool{bbx@inset}
+\DeclareBibliographyDriver{set}{%
+ \booltrue{bbx@inset}%
+ \entryset{}{}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+
+\renewbibmacro*{begrelated}{%
+ \booltrue{bbx@inset}}
+
+\renewbibmacro*{endrelated}{%
+ \usebibmacro*{bbx:savehash}}
+
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{author}%
+ \setunit{\printdelim{authortypedelim}}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{authorstrg}}
+ {\global\undef\bbx@lasthash}}
+
+\renewbibmacro*{editor}{%
+ \usebibmacro{bbx:editor}{editorstrg}}
+\renewbibmacro*{editor+others}{%
+ \usebibmacro{bbx:editor}{editor+othersstrg}}
+\newbibmacro*{bbx:editor}[1]{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{editor}%
+ \setunit{\printdelim{editortypedelim}}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \clearname{editor}}
+ {\global\undef\bbx@lasthash}}
+
+\renewbibmacro*{translator}{%
+ \usebibmacro{bbx:translator}{translatorstrg}}
+\renewbibmacro*{translator+others}{%
+ \usebibmacro{bbx:translator}{translator+othersstrg}}
+\newbibmacro*{bbx:translator}[1]{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{translator}%
+ \setunit{\printdelim{translatortypedelim}}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \clearname{translator}}
+ {\global\undef\bbx@lasthash}}
+
+\newbibmacro*{bbx:dashcheck}[2]{%
+ \ifboolexpr{
+ test {\iffieldequals{fullhash}{\bbx@lasthash}}
+ and
+ not test \iffirstonpage
+ and
+ (
+ not bool {bbx@inset}
+ or
+ test {\iffieldequalstr{entrysetcount}{1}}
+ )
+ }
+ {#1}
+ {#2}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authoryear-comp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authoryear-comp.bbx
new file mode 100644
index 0000000000..46817d906c
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authoryear-comp.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authoryear-comp.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authoryear}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authoryear-ibid.bbx b/macros/latex/contrib/biblatex/latex/bbx/authoryear-ibid.bbx
new file mode 100644
index 0000000000..252d31f006
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authoryear-ibid.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authoryear-ibid.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authoryear}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authoryear-icomp.bbx b/macros/latex/contrib/biblatex/latex/bbx/authoryear-icomp.bbx
new file mode 100644
index 0000000000..38068b6ae3
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authoryear-icomp.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{authoryear-icomp.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authoryear}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/authoryear.bbx b/macros/latex/contrib/biblatex/latex/bbx/authoryear.bbx
new file mode 100644
index 0000000000..d8e156cd36
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/authoryear.bbx
@@ -0,0 +1,293 @@
+\ProvidesFile{authoryear.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{standard}
+
+\DeclareBibliographyOption[boolean]{dashed}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{pagetracker}%
+ \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}}
+ {\renewbibmacro*{bbx:savehash}{}}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{mergedate}[true]{%
+ \ifcsdef{bbx@opt@mergedate@#1}
+ {\csuse{bbx@opt@mergedate@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'mergedate=#1'}
+ {Valid values are 'maximum', 'compact', 'basic', 'minimum',\MessageBreak
+ 'true' (=compact), and 'false'.}}}
+
+\providebibmacro*{date+extradate}{}
+\providebibmacro*{date+extrayear}{%
+ \blx@warning{bibmacro 'date+extrayear' is deprecated.\MessageBreak
+ Please use 'date+extradate'.\MessageBreak
+ Using 'date+extradate' instead}%
+ \usebibmacro{date+extradate}}
+
+\newbibmacro*{bbx:ifmergeddate}{\@secondoftwo}
+
+\renewbibmacro*{date}{%
+ \usebibmacro{bbx:ifmergeddate}
+ {}
+ {\printdate}}%
+
+\def\bbx@opt@mergedate@true{\bbx@opt@mergedate@compact}
+
+% merge date/issue with date label
+\def\bbx@opt@mergedate@maximum{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[parens]{%
+ \iflabeldateisdate
+ {\printfield{issue}%
+ \setunit*{\addspace}%
+ \printdateextra}
+ {\printlabeldateextra}}}}%
+ \renewbibmacro*{bbx:ifmergeddate}{\iflabeldateisdate}%
+ \renewbibmacro*{issue+date}{%
+ \usebibmacro{bbx:ifmergeddate}
+ {}
+ {\printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}}}}
+
+% merge date with date label
+\def\bbx@opt@mergedate@compact{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[parens]{%
+ \iflabeldateisdate
+ {\printdateextra}
+ {\printlabeldateextra}}}}%
+ \renewbibmacro*{bbx:ifmergeddate}{\iflabeldateisdate}%
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{test {\usebibmacro{bbx:ifmergeddate}}
+ and
+ test {\iffieldundef{issue}}}
+ {}
+ {\printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{bbx:ifmergeddate}
+ {}
+ {\printdate}}}%
+ \newunit}}
+
+% merge year-only date with date label
+\def\bbx@opt@mergedate@basic{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[parens]{\printlabeldateextra}}}%
+ \renewbibmacro*{bbx:ifmergeddate}{%
+ \ifboolexpr{
+ test {\iflabeldateisdate}
+ and
+ not test {\ifdateshavedifferentprecision{label}{}}
+ }%
+ }%
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{
+ test {\usebibmacro{bbx:ifmergeddate}}
+ and
+ test {\iffieldundef{issue}}
+ }
+ {}
+ {\printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}}%
+ \newunit}}
+
+% merge year-only date with year-only date label
+\def\bbx@opt@mergedate@minimum{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[parens]{\printlabeldateextra}}}%
+ \renewbibmacro*{bbx:ifmergeddate}{%
+ \ifboolexpr{
+ test {\iflabeldateisdate}
+ and
+ not test {\ifdateshavedifferentprecision{label}{}}
+ and
+ test {\iffieldundef{extradate}}
+ }%
+ }%
+ \renewbibmacro*{issue+date}{%
+ \ifboolexpr{
+ test {\usebibmacro{bbx:ifmergeddate}}
+ and
+ test {\iffieldundef{issue}}
+ }
+ {}
+ {\printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \printdate}}%
+ \newunit}}
+
+% don't merge date/issue with date label
+\def\bbx@opt@mergedate@false{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[parens]{\printlabeldateextra}}}%
+ \renewbibmacro*{bbx:ifmergeddate}{\@secondoftwo}%
+ \renewbibmacro*{issue+date}{%
+ \printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{date}}%
+ \newunit}}
+
+\ExecuteBibliographyOptions{labeldateparts,sorting=nyt,pagetracker,mergedate}
+
+\DeclareFieldFormat{shorthandwidth}{#1}
+\setlength{\bibitemsep}{0pt}
+
+\DeclareNameAlias{author}{sortname}
+\DeclareNameAlias{editor}{sortname}
+\DeclareNameAlias{translator}{sortname}
+
+\DeclareNameWrapperAlias{author}{sortname}
+\DeclareNameWrapperAlias{editor}{sortname}
+\DeclareNameWrapperAlias{translator}{sortname}
+
+\defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{\bibhang}%
+ \setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}}
+ {\endlist}
+ {\item}
+
+\InitializeBibliographyStyle{\global\undef\bbx@lasthash}
+
+\newbibmacro*{bbx:savehash}{%
+ \savefield{fullhash}{\bbx@lasthash}}
+
+\newbool{bbx@inset}
+\DeclareBibliographyDriver{set}{%
+ \booltrue{bbx@inset}%
+ \entryset{}{}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+
+\renewbibmacro*{begrelated}{%
+ \booltrue{bbx@inset}}
+
+\renewbibmacro*{endrelated}{%
+ \usebibmacro*{bbx:savehash}}
+
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\usebibmacro{bbx:savehash}%
+ \printnames{author}%
+ \iffieldundef{authortype}
+ {\setunit{\printdelim{nameyeardelim}}}
+ {\setunit{\printdelim{authortypedelim}}}}%
+ \iffieldundef{authortype}
+ {}
+ {\usebibmacro{authorstrg}%
+ \setunit{\printdelim{nameyeardelim}}}}%
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \setunit*{\printdelim{nonameyeardelim}}}%
+ \usebibmacro{date+extradate}}
+
+\renewbibmacro*{editor}{%
+ \usebibmacro{bbx:editor}{editorstrg}}
+\renewbibmacro*{editor+others}{%
+ \usebibmacro{bbx:editor}{editor+othersstrg}}
+\newbibmacro*{bbx:editor}[1]{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{editor}%
+ \setunit{\printdelim{editortypedelim}}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \clearname{editor}%
+ \setunit{\printdelim{nameyeardelim}}}%
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \setunit*{\printdelim{nonameyeardelim}}}%
+ \usebibmacro{date+extradate}}
+
+\renewbibmacro*{translator}{%
+ \usebibmacro{bbx:translator}{translatorstrg}}
+\renewbibmacro*{translator+others}{%
+ \usebibmacro{bbx:translator}{translator+othersstrg}}
+\newbibmacro*{bbx:translator}[1]{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{translator}%
+ \setunit{\printdelim{translatortypedelim}}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{#1}%
+ \clearname{translator}%
+ \setunit{\printdelim{nameyeardelim}}}%
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \setunit*{\printdelim{nonameyeardelim}}}%
+ \usebibmacro{date+extradate}}
+
+\newbibmacro*{bbx:dashcheck}[2]{%
+ \ifboolexpr{
+ test {\iffieldequals{fullhash}{\bbx@lasthash}}
+ and
+ not test \iffirstonpage
+ and
+ (
+ not bool {bbx@inset}
+ or
+ test {\iffieldequalstr{entrysetcount}{1}}
+ )
+ }
+ {#1}
+ {#2}}
+
+\newbibmacro*{labeltitle}{%
+ \iffieldundef{label}
+ {\iffieldundef{shorttitle}
+ {\printfield{title}%
+ \clearfield{title}}
+ {\printfield[title]{shorttitle}}}
+ {\printfield{label}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/debug.bbx b/macros/latex/contrib/biblatex/latex/bbx/debug.bbx
new file mode 100644
index 0000000000..c9e5145727
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/debug.bbx
@@ -0,0 +1,111 @@
+\ProvidesFile{debug.bbx}
+[\abx@bbxid]
+
+\ExecuteBibliographyOptions{sorting=debug}
+\DeclareFieldFormat{entrykey}{\ttfamily[#1]}
+\DeclareFieldFormat{shorthandwidth}{#1}
+
+\defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{8em}%
+ \setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}%
+ \interlinepenalty\@M
+ \raggedbottom\raggedright
+ \frenchspacing
+ \normalfont\footnotesize}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{8em}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\labelwidth}{-\labelsep}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}%
+ \renewcommand*{\makelabel}[1]{##1\hss}%
+ \interlinepenalty\@M
+ \raggedbottom\raggedright
+ \frenchspacing
+ \normalfont\footnotesize}}
+ {\endlist}
+ {\item}
+
+\@ifpackageloaded{biblatex_legacy}
+ {\DeclareNameFormat{debug}{%
+ \bbx@mklabel{\currentname}%
+ \ifblank{#3}{}{\detokenize{#3}\space}%
+ \ifblank{#5}{}{\detokenize{#5}\ifpunctmark{'}{}{\space}}%
+ \detokenize{#1}%
+ \ifblank{#7}{}{\space\detokenize{#7}}%
+ \ifblank{#3}{}{\bbx@mksublabel{given}\detokenize{#3}}%
+ \ifblank{#1}{}{\bbx@mksublabel{family}\detokenize{#1}}%
+ \ifblank{#5}{}{\bbx@mksublabel{prefix}\detokenize{#5}}%
+ \ifblank{#7}{}{\bbx@mksublabel{affix}\detokenize{#7}}%
+ \bbx@mksublabel{inits}%
+ \ifblank{#4}{}{\detokenize{#4}\space}%
+ \ifblank{#6}{}{\detokenize{#6}\ifpunctmark{'}{}{\space}}%
+ \detokenize{#2}%
+ \ifblank{#8}{}{\space\detokenize{#8}}}}
+ {\DeclareNameFormat{debug}{%
+ \bbx@mklabel{\currentname}%
+ \ifdefvoid{\namepartgiven}{}{\expandafter\detokenize\expandafter{\namepartgiven}\space}%
+ \ifdefvoid{\namepartprefix}{}{\expandafter\detokenize\expandafter{\namepartprefix}\ifpunctmark{'}{}{\space}}%
+ \expandafter\detokenize\expandafter{\namepartfamily}%
+ \ifdefvoid{\namepartsuffix}{}{\expandafter\space\expandafter\detokenize\expandafter{\namepartsuffix}}%
+ \ifdefvoid{\namepartgiven}{}{\bbx@mksublabel{given}\expandafter\detokenize\expandafter{\namepartgiven}}%
+ \ifdefvoid{\namepartfamily}{}{\bbx@mksublabel{family}\expandafter\detokenize\expandafter{\namepartfamily}}%
+ \ifdefvoid{\namepartprefix}{}{\bbx@mksublabel{prefix}\expandafter\detokenize\expandafter{\namepartprefix}}%
+ \ifdefvoid{\namepartsuffix}{}{\bbx@mksublabel{suffix}\expandafter\detokenize\expandafter{\namepartsuffix}}%
+ \bbx@mksublabel{inits}%
+ \ifdefvoid{\namepartgiveni}{}{\expandafter\detokenize\expandafter{\namepartgiveni}\space}%
+ \ifdefvoid{\namepartprefixi}{}{\expandafter\detokenize\expandafter{\namepartprefixi}\ifpunctmark{'}{}{\space}}%
+ \expandafter\detokenize\expandafter{\namepartfamilyi}%
+ \ifdefvoid{\namepartsuffixi}{}{\expandafter\space\expandafter\detokenize\expandafter{\namepartsuffixi}}}}
+
+\DeclareListFormat{debug}{%
+ \bbx@mklabel{\currentlist}%
+ \detokenize{#1}}
+
+\DeclareFieldFormat{debug}{%
+ \bbx@mklabel{\currentfield}%
+ \detokenize{#1}}
+
+\newcommand*{\bbx@mklabel}[1]{%
+ \item
+ \makebox[\leftmargin][l]{\ttfamily [#1]}}
+
+\newcommand*{\bbx@mksublabel}[1]{%
+ \par\nobreak
+ \makebox[6em][l]{\ttfamily [#1]}}
+
+\DeclareBibliographyDriver{debug}{%
+ \item\begingroup\ttfamily\leavevmode
+ \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@
+ \space\printfield{entrykey}\space
+ \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@
+ \endgroup
+ \def\do{\printnames[debug][-\thelisttotal]}%
+ \abx@donames
+ \def\do{\printlist[debug][-\thelisttotal]}%
+ \abx@dolists
+ \def\do{\printfield[debug]}%
+ \abx@dointernalfields
+ \abx@dofields\do{options}\do{execute}%
+ \item\begingroup\ttfamily\leavevmode
+ \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@
+ \endgroup
+ \clearpage}
+
+\def\do#1{\DeclareBibliographyAlias{#1}{debug}}
+\abx@doentrytypes
+\do{*}
+
+\DeclareBibliographyDriver{shorthand}{%
+ \texttt{\printfield{entrykey}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/draft.bbx b/macros/latex/contrib/biblatex/latex/bbx/draft.bbx
new file mode 100644
index 0000000000..1c57325157
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/draft.bbx
@@ -0,0 +1,38 @@
+\ProvidesFile{draft.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{standard}
+\ExecuteBibliographyOptions{sorting=debug}
+
+\DeclareNameAlias{author}{default}
+\DeclareNameAlias{editor}{default}
+\DeclareNameAlias{translator}{default}
+
+\DeclareFieldFormat{shorthandwidth}{#1}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\printfield{entrykey}}
+ {\setlength{\labelwidth}{0pt}%
+ \setlength{\itemindent}{-\leftmargin}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{%
+ \hspace\labelsep\bfseries##1}}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}}
+ {\endlist}
+ {\item}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/numeric-comp.bbx b/macros/latex/contrib/biblatex/latex/bbx/numeric-comp.bbx
new file mode 100644
index 0000000000..0a4be7f580
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/numeric-comp.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{numeric-comp.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{numeric}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/numeric-verb.bbx b/macros/latex/contrib/biblatex/latex/bbx/numeric-verb.bbx
new file mode 100644
index 0000000000..f5788bf24c
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/numeric-verb.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{numeric-verb.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{numeric}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx b/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx
new file mode 100644
index 0000000000..4bf46c3ff8
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/numeric.bbx
@@ -0,0 +1,59 @@
+\ProvidesFile{numeric.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{standard}
+\ExecuteBibliographyOptions{labelnumber}
+
+\providebool{bbx:subentry}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{subentry}[true]{%
+ \setbool{bbx:subentry}{#1}}
+
+\DeclareNameAlias{author}{default}
+\DeclareNameAlias{editor}{default}
+\DeclareNameAlias{translator}{default}
+
+\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}}
+\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}
+\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
+
+\defbibenvironment{bibliography}
+ {\list
+ {\printtext[labelnumberwidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}
+ {\setlength{\labelwidth}{\labelnumberwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ \renewcommand*{\makelabel}[1]{\hss##1}}
+ {\endlist}
+ {\item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{\hss##1}}}
+ {\endlist}
+ {\item}
+
+\DeclareBibliographyDriver{set}{%
+ \entryset
+ {\ifbool{bbx:subentry}
+ {\printfield[bibentrysetcount]{entrysetcount}%
+ \printunit*{\addnbspace}}
+ {}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/reading.bbx b/macros/latex/contrib/biblatex/latex/bbx/reading.bbx
new file mode 100644
index 0000000000..547510c37d
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/reading.bbx
@@ -0,0 +1,173 @@
+\ProvidesFile{reading.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{standard}
+
+\DeclareNameAlias{author}{default}
+\DeclareNameAlias{editor}{default}
+\DeclareNameAlias{translator}{default}
+
+\DeclareFieldFormat{entrykey}{\mbox{\bfseries#1}}
+\DeclareFieldFormat{annotation}{\bibstring{annotation}\addcolon\space #1}
+\DeclareFieldFormat{abstract}{\bibstring{abstract}\addcolon\space #1}
+\DeclareFieldFormat{library}{\bibstring{library}\addcolon\space #1}
+\DeclareFieldFormat{file}{\bibstring{file}\addcolon\space \url{#1}}
+\DeclareFieldFormat{shorthandwidth}{#1}
+
+\InitializeBibliographyStyle{%
+ \global\undef\bbx@lasthash}
+
+\setlength{\bibitemsep}{0.5\baselineskip}
+\setlength{\bibparsep}{0pt}
+
+\defbibenvironment{bibliography}
+ {\list
+ {}
+ {\setlength{\leftmargin}{0pt}%
+ \setlength{\itemindent}{0pt}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}}
+ {\endlist}
+ {\bbx@item}
+
+\defbibenvironment{shorthand}
+ {\list
+ {\printfield[shorthandwidth]{shorthand}}
+ {\setlength{\labelwidth}{\shorthandwidth}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}%
+ \renewcommand*{\makelabel}[1]{##1\hss}}}
+ {\endlist}
+ {\item}
+
+\def\bbx@item@false{%
+ \itemsep2\bibitemsep
+ \item\relax
+ \itemsep\bibitemsep}
+
+\def\bbx@item@true{%
+ \bbx@item@full}
+
+\def\bbx@item@full{%
+ \itemsep2\bibitemsep
+ \@itempenalty\z@
+ \item\relax
+ \begingroup
+ \samepage\bfseries
+ \def\finentrypunct{\strut}%
+ \usebibmacro{entryhead:full}%
+ \ifbool{bbx:entrykey}
+ {\def\newblockpunct{%
+ \nobreak\hskip\z@skip\strut
+ \hfill\penalty100\hskip1em\relax
+ \hbox{}\nobreak\hfill\strut}%
+ \def\finentrypunct{%
+ \parfillskip\z@\finalhyphendemerits\z@
+ \par\nobreak}%
+ \newblock
+ \printfield{entrykey}}
+ {}%
+ \finentry
+ \endgroup
+ \hrule height 1.25pt\relax
+ \itemsep\bibitemsep
+ \@itempenalty\@M
+ \item\strut
+ \@itempenalty\z@}
+
+\def\bbx@item@name{%
+ \iffieldequals{fullhash}{\bbx@lasthash}
+ {\bbx@item@false}
+ {\itemsep2\bibitemsep
+ \@itempenalty\z@
+ \item\relax
+ \begingroup
+ \samepage\bfseries
+ \def\finentrypunct{\strut}%
+ \usebibmacro{entryhead:name}%
+ \finentry
+ \endgroup
+ \hrule height 1.25pt\relax
+ \itemsep\bibitemsep
+ \@itempenalty\@M
+ \item\strut
+ \@itempenalty\z@}}
+
+\newbool{bbx:entrykey}
+\newbool{bbx:annotation}
+\newbool{bbx:abstract}
+\newbool{bbx:library}
+\newbool{bbx:file}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{entryhead}[true]{%
+ \ifcsdef{bbx@item@#1}
+ {\letcs\bbx@item{bbx@item@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'header=#1'}
+ {Valid values: header=true, false, full, name.}}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{entrykey}[true]{%
+ \setbool{bbx:entrykey}{#1}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{annotation}[true]{%
+ \setbool{bbx:annotation}{#1}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{abstract}[true]{%
+ \setbool{bbx:abstract}{#1}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{library}[true]{%
+ \setbool{bbx:library}{#1}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{file}[true]{%
+ \setbool{bbx:file}{#1}}
+
+\ExecuteBibliographyOptions{loadfiles,entryhead,entrykey,annotation,abstract,library,file}
+
+\newbibmacro*{entryhead:full}{%
+ \printnames[labelname][-1]{labelname}%
+ \setunit*{\addcolon\space}%
+ \printfield{labeltitle}}
+
+\newbibmacro*{entryhead:name}{%
+ \ifnameundef{labelname}
+ {\printfield{labeltitle}}
+ {\printnames[labelname]{labelname}}%
+ \savefield{fullhash}{\bbx@lasthash}}
+
+\newbibmacro*{entrytail}{%
+ \newunit\newblock
+ \begingroup
+ \def\newblockpunct{\item}%
+ \ifbool{bbx:annotation}
+ {\usebibmacro{annotation}%
+ \newunit\newblock}
+ {}%
+ \ifbool{bbx:abstract}
+ {\usebibmacro{abstract}%
+ \newunit\newblock}
+ {}%
+ \ifbool{bbx:file}
+ {\printfield{file}%
+ \newunit\newblock}
+ {}%
+ \ifbool{bbx:library}
+ {\printfield{library}%
+ \newunit\newblock}
+ {}%
+ \endgroup}
+
+\renewbibmacro*{finentry}{%
+ \ifbibliography
+ {\usebibmacro{entrytail}}
+ {}%
+ \finentry}
+
+\DeclareBibliographyDriver{set}{%
+ \renewbibmacro*{finentry}{\finentry}%
+ \entryset{}{}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \ifbibliography
+ {\usebibmacro{entrytail}}
+ {}%
+ \finentry}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/standard.bbx b/macros/latex/contrib/biblatex/latex/bbx/standard.bbx
new file mode 100644
index 0000000000..3046bd10e8
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/standard.bbx
@@ -0,0 +1,1006 @@
+\ProvidesFile{standard.bbx}
+[\abx@bbxid]
+
+\newtoggle{bbx:isbn}
+\newtoggle{bbx:url}
+\newtoggle{bbx:doi}
+\newtoggle{bbx:eprint}
+\newtoggle{bbx:related}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{isbn}[true]{%
+ \settoggle{bbx:isbn}{#1}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{url}[true]{%
+ \settoggle{bbx:url}{#1}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{doi}[true]{%
+ \settoggle{bbx:doi}{#1}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{eprint}[true]{%
+ \settoggle{bbx:eprint}{#1}}
+\DeclareBiblatexOption{global,type,entry}[boolean]{related}[true]{%
+ \settoggle{bbx:related}{#1}}
+
+\ExecuteBibliographyOptions{isbn,url,doi,eprint,related}
+
+\newbibmacro*{begentry}{}
+\newbibmacro*{finentry}{\finentry}
+
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{journal+issuetitle}%
+ \newunit
+ \usebibmacro{byeditor+others}%
+ \newunit
+ \usebibmacro{note+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{issn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{booklet}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{howpublished}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{collection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{editor+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{inbook}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \newunit\newblock
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{incollection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{inproceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{dataset}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{edition}%
+ \newunit
+ \printfield{version}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{manual}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{misc}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{howpublished}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{organization+location+date}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{online}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit\newblock
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{url+urldate}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{patent}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \iflistundef{location}
+ {}
+ {\setunit*{\addspace}%
+ \printtext[parens]{%
+ \printlist[][-\value{listtotal}]{location}}}%
+ \newunit\newblock
+ \usebibmacro{byholder}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{periodical}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{editor}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title+issuetitle}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{issn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{proceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{editor+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{report}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isrn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{thesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{unpublished}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{howpublished}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{location+date}%
+ \newunit\newblock
+ \iftoggle{bbx:url}
+ {\usebibmacro{url+urldate}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{shorthand}{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}%
+ \finentry}
+
+\DeclareBibliographyDriver{set}{%
+ \entryset{}{}%
+ \newunit\newblock
+ \usebibmacro{setpageref}%
+ \finentry}
+
+\DeclareBibliographyAlias{mvbook}{book}
+\DeclareBibliographyAlias{bookinbook}{inbook}
+\DeclareBibliographyAlias{suppbook}{inbook}
+\DeclareBibliographyAlias{mvcollection}{collection}
+\DeclareBibliographyAlias{suppcollection}{incollection}
+\DeclareBibliographyAlias{mvproceedings}{proceedings}
+\DeclareBibliographyAlias{reference}{collection}
+\DeclareBibliographyAlias{mvreference}{reference}
+\DeclareBibliographyAlias{inreference}{incollection}
+\DeclareBibliographyAlias{suppperiodical}{article}
+\DeclareBibliographyAlias{review}{article}
+\DeclareBibliographyAlias{software}{misc}
+\DeclareBibliographyAlias{*}{misc}
+
+\newbibmacro*{maintitle+title}{%
+ \iffieldsequal{maintitle}{title}
+ {\clearfield{maintitle}%
+ \clearfield{mainsubtitle}%
+ \clearfield{maintitleaddon}}
+ {\iffieldundef{maintitle}
+ {}
+ {\usebibmacro{maintitle}%
+ \newunit\newblock
+ \iffieldundef{volume}
+ {}
+ {\printfield{volume}%
+ \printfield{part}%
+ \setunit{\addcolon\space}}}}%
+ \usebibmacro{title}%
+ \newunit}
+
+\newbibmacro*{maintitle+booktitle}{%
+ \iffieldundef{maintitle}
+ {}
+ {\usebibmacro{maintitle}%
+ \newunit\newblock
+ \iffieldundef{volume}
+ {}
+ {\printfield{volume}%
+ \printfield{part}%
+ \setunit{\addcolon\space}}}%
+ \usebibmacro{booktitle}%
+ \newunit}
+
+\newbibmacro*{journal+issuetitle}{%
+ \usebibmacro{journal}%
+ \setunit*{\addspace}%
+ \iffieldundef{series}
+ {}
+ {\newunit
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+eid}%
+ \setunit{\addspace}%
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+\newbibmacro*{volume+number+eid}{%
+ \printfield{volume}%
+ \setunit*{\adddot}%
+ \printfield{number}%
+ \setunit{\addcomma\space}%
+ \printfield{eid}}
+
+\newbibmacro*{title+issuetitle}{%
+ \usebibmacro{periodical}%
+ \setunit*{\addspace}%
+ \iffieldundef{series}
+ {}
+ {\newunit
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+eid}%
+ \setunit{\addspace}%
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+\newbibmacro*{issue+date}{%
+ \printtext[parens]{%
+ \printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{date}}%
+ \newunit}
+
+\newbibmacro*{event+venue+date}{%
+ \printfield{eventtitle}%
+ \newunit
+ \printfield{eventtitleaddon}%
+ \ifboolexpr{
+ test {\iffieldundef{venue}}
+ and
+ test {\iffieldundef{eventyear}}
+ }
+ {}
+ {\setunit{\addspace}%
+ \printtext[parens]{%
+ \printfield{venue}%
+ \setunit*{\addcomma\space}%
+ \printeventdate}}%
+ \newunit}
+
+\newbibmacro*{series+number}{%
+ \printfield{series}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \newunit}
+
+\newbibmacro*{publisher+location+date}{%
+ \printlist{location}%
+ \iflistundef{publisher}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolon\space}}%
+ \printlist{publisher}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+\newbibmacro*{institution+location+date}{%
+ \printlist{location}%
+ \iflistundef{institution}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolon\space}}%
+ \printlist{institution}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+\newbibmacro*{organization+location+date}{%
+ \printlist{location}%
+ \iflistundef{organization}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolon\space}}%
+ \printlist{organization}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+\newbibmacro*{location+date}{%
+ \printlist{location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+\newbibmacro*{chapter+pages}{%
+ \printfield{chapter}%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}%
+ \newunit}
+
+\newbibmacro*{note+pages}{%
+ \printfield{note}%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}%
+ \newunit}
+
+\newbibmacro*{doi+eprint+url}{%
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \iftoggle{bbx:url}
+ {\usebibmacro{url+urldate}}
+ {}}
+
+\newbibmacro*{addendum+pubstate}{%
+ \printfield{addendum}%
+ \newunit\newblock
+ \printfield{pubstate}}
+
+\newcounter{bbx:relatedcount}
+\newcounter{bbx:relatedtotal}
+
+\newbibmacro*{related:init}{%
+ \csundef{bbx:relatedloop}}
+
+\newbibmacro*{begrelated}{}
+\newbibmacro*{endrelated}{}
+\newbibmacro*{begrelatedloop}{}
+\newbibmacro*{endrelatedloop}{}
+
+\def\ifrelatedloop{%
+ \ifboolexpr{ test {\xifinlistcs{\strfield{entrykey}}{bbx:relatedloop}}
+ or test {\xifinlistcs{\strfield{clonesourcekey}}{bbx:relatedloop}} }}
+
+\newbibmacro*{related}{%
+ \ifboolexpr{ test {\iffieldundef{related}} or test {\ifrelatedloop} }
+ {}
+ {\ifcsundef{begrelateddelim\strfield{relatedtype}}
+ {\printunit{\begrelateddelim}}
+ {\printunit{\csuse{begrelateddelim\strfield{relatedtype}}}}%
+ \usebibmacro{begrelated}%
+ \def\bbx@tempa{}%
+ \setcounter{bbx:relatedtotal}{0}%
+ \def\do##1{%
+ \entrydata{##1}{%
+ \ifrelatedloop
+ {}
+ {\stepcounter{bbx:relatedtotal}%
+ \gappto{\bbx@tempa}{##1,}}}}%
+ \docsvfield{related}%
+ \restorefield{related}{\bbx@tempa}%
+ \ifnumgreater{\value{bbx:relatedtotal}}{0}
+ {\listcsxadd{bbx:relatedloop}{\strfield{entrykey}}%
+ \iffieldundef{clonesourcekey}
+ {}
+ {\listcsxadd{bbx:relatedloop}{\strfield{clonesourcekey}}}%
+ \setcounter{bbx:relatedcount}{0}%
+ \def\do{%
+ \stepcounter{bbx:relatedcount}%
+ \ifnumgreater{\value{bbx:relatedcount}}{1}
+ {\ifcsundef{relateddelim\strfield{relatedtype}}
+ {\printunit{\relateddelim}}
+ {\expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\printunit
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter{%
+ \csuse{relateddelim\strfield{relatedtype}}}}}
+ {}}%
+ \ifbibmacroundef{related:\strfield{relatedtype}}
+ {\appto{\do}{\usebibmacro{related:default}}}
+ {\appto{\do}{\usebibmacro*{related:\strfield{relatedtype}}}}%
+ \iffieldformatundef{related:\strfield{relatedtype}}
+ {\def\bbx@tempa{related}}
+ {\def\bbx@tempa{related:\strfield{relatedtype}}}%
+ \iffieldformatundef{relatedstring:\strfield{relatedtype}}
+ {\def\bbx@tempb{relatedstring:default}}
+ {\def\bbx@tempb{relatedstring:\strfield{relatedtype}}}%
+ \printtext[\bbx@tempa]{%
+ \usebibmacro{begrelatedloop}%
+ \iffieldundef{relatedstring}
+ {\ifboolexpr{
+ test {\ifnumgreater{\value{bbx:relatedtotal}}{1}}
+ and
+ test {\ifbibxstring{\thefield{relatedtype}s}}
+ }
+ {\printtext[\bbx@tempb]{%
+ \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}
+ {\iffieldbibstring{relatedtype}
+ {\printtext[\bbx@tempb]{%
+ \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}
+ {}}}
+ {\iffieldbibstring{relatedstring}
+ {\printtext[\bbx@tempb]{%
+ \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}
+ {\printfield[\bbx@tempb]{relatedstring}}}%
+ \docsvfield{related}%
+ \usebibmacro{endrelatedloop}}}%
+ {}%
+ \usebibmacro{endrelated}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-ibid.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-ibid.bbx
new file mode 100644
index 0000000000..ab2cf1a871
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-ibid.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{verbose-ibid.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-inote.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-inote.bbx
new file mode 100644
index 0000000000..32b6dcb879
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-inote.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{verbose-inote.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-note.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-note.bbx
new file mode 100644
index 0000000000..6560305a66
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-note.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{verbose-note.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-trad1.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad1.bbx
new file mode 100644
index 0000000000..f2f4f36f3e
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad1.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{verbose-trad1.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-trad2.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad2.bbx
new file mode 100644
index 0000000000..e177123c7a
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad2.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{verbose-trad2.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose-trad3.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad3.bbx
new file mode 100644
index 0000000000..e48de94074
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/verbose-trad3.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{verbose-trad3.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/bbx/verbose.bbx b/macros/latex/contrib/biblatex/latex/bbx/verbose.bbx
new file mode 100644
index 0000000000..fdba2250cd
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/bbx/verbose.bbx
@@ -0,0 +1,6 @@
+\ProvidesFile{verbose.bbx}
+[\abx@bbxid]
+
+\RequireBibliographyStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/biblatex.cfg b/macros/latex/contrib/biblatex/latex/biblatex.cfg
new file mode 100644
index 0000000000..5c8cf28617
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/biblatex.cfg
@@ -0,0 +1,5 @@
+\ProvidesFile{biblatex.cfg}
+
+% Put your definitions here.
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/biblatex.def b/macros/latex/contrib/biblatex/latex/biblatex.def
new file mode 100644
index 0000000000..e2a1728aae
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/biblatex.def
@@ -0,0 +1,3054 @@
+\ProvidesFile{biblatex.def}
+[\abx@cptid]
+
+% ------------------------------------------------------------------
+% FORMATTING COMMANDS
+% ------------------------------------------------------------------
+
+% Generic formatting commands and hooks
+% ------------------------------------------------------------------
+
+% Used in citations, bibliography and bibliography lists
+
+% legacy - no longer needed could be removed one day when no-one is using it.
+\def\nameparts#1{}
+
+% Define namepart keys from datamodel constant list
+% \namepart<namepart> - e.g. \namepartfamily
+% \namepart<namepart>i - e.g. \namepartfamilyi
+\def\do#1{%
+ \csdef{mkbibname#1}##1{##1}%
+ \define@key{blx@opt@namepart}{#1}{\csdef{namepart#1}{##1}}%
+ \define@key{blx@opt@namepart}{#1i}{\csdef{namepart#1i}{##1}}%
+ \define@key{blx@opt@namepart}{#1un}{\csdef{namepart#1un}{##1}}}
+\expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts}
+
+% legacy aliases
+% set empty defaults so we can check if they have been redefined
+\let\mkbibnamefirst\@empty
+\let\mkbibnamelast\@empty
+\let\mkbibnameaffix\@empty
+
+\AtEndPreamble{%
+ \ifdefempty\mkbibnamelast
+ {\let\@mkbibnamelastsaved\mkbibnamefamily}% not redefined by user
+ {\blx@warning@noline{%
+ Attempt to redefine deprecated '\string\mkbibnamelast'.\MessageBreak
+ Please use '\string\mkbibnamefamily' instead.\MessageBreak
+ Using '\string\mkbibnamefamily'}%
+ \let\@mkbibnamelastsaved\mkbibnamelast
+ \let\mkbibnamefamily\@mkbibnamelastsaved}%
+ % Now redefine it in case it's used
+ \def\mkbibnamelast{%
+ \blx@warning@noline{%
+ '\string\mkbibnamelast' is deprecated.\MessageBreak
+ Please use '\string\mkbibnamefamily'.\MessageBreak
+ Using '\string\mkbibnamefamily'}%
+ \@mkbibnamelastsaved}
+
+ \ifdefempty\mkbibnamefirst
+ {\let\@mkbibnamefirstsaved\mkbibnamegiven}% not redefined by user
+ {\blx@warning@noline{%
+ Attempt to redefine deprecated '\string\mkbibnamefirst'.\MessageBreak
+ Please use '\string\mkbibnamegiven' instead.\MessageBreak
+ Using '\string\mkbibnamegiven'}%
+ \let\@mkbibnamefirstsaved\mkbibnamefirst
+ \let\mkbibnamegiven\@mkbibnamefirstsaved}%
+ % Now redefine it in case it's used
+ \def\mkbibnamefirst{%
+ \blx@warning@noline{%
+ '\string\mkbibnamefirst' is deprecated.\MessageBreak
+ Please use '\string\mkbibnamegiven'.\MessageBreak
+ Using '\string\mkbibnamegiven'}%
+ \@mkbibnamefirstsaved}
+
+ \ifdefempty\mkbibnameaffix
+ {\let\@mkbibnameaffixsaved\mkbibnamesuffix}% not redefined by user
+ {\blx@warning@noline{%
+ Attempt to redefine deprecated '\string\mkbibnameaffix'.\MessageBreak
+ Please use '\string\mkbibnamesuffix' instead.\MessageBreak
+ Using '\string\mkbibnamesuffix'}%
+ \let\@mkbibnameaffixsaved\mkbibnameaffix
+ \let\mkbibnamesuffix\@mkbibnameaffixsaved}%
+ % Now redefine it in case it's used
+ \def\mkbibnameaffix{%
+ \blx@warning@noline{%
+ '\string\mkbibnameaffix' is deprecated.\MessageBreak
+ Please use '\string\mkbibnamesuffix'.\MessageBreak
+ Using \string\mkbibnamesuffix}%
+ \@mkbibnameaffixsaved}}
+
+\newcommand*{\bibellipsis}{[\textellipsis\unkern]\midsentence}
+
+% Delimiters used in citations, bibliography and bibliography lists
+\DeclareDelimFormat{multinamedelim}{\addcomma\space}
+\DeclareDelimFormat{finalnamedelim}{%
+ \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
+ \addspace\bibstring{and}\space}
+\DeclareDelimFormat{revsdnamedelim}{}
+\DeclareDelimFormat{andothersdelim}{\addspace}
+
+\DeclareDelimFormat{multilistdelim}{\addcomma\space}
+\DeclareDelimFormat{finallistdelim}{%
+ \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
+ \addspace\bibstring{and}\space}
+\DeclareDelimFormat{andmoredelim}{\addspace}
+
+\newcommand*{\multicitedelim}{\addsemicolon\space}
+\newcommand*{\compcitedelim}{\addcomma\space}
+\newcommand*{\supercitedelim}{\addcomma}
+\DeclareDelimFormat{prenotedelim}{\addspace}
+\DeclareDelimFormat{postnotedelim}{\addcomma\space}
+\DeclareDelimAlias{multiprenotedelim}{prenotedelim}
+\DeclareDelimAlias{multipostnotedelim}{postnotedelim}
+\DeclareDelimFormat{extpostnotedelim}{\addspace}
+\newcommand*{\volcitedelim}{\addcomma\space}
+\newcommand*{\textcitedelim}{%
+ \iffinalcitedelim
+ {\ifnumgreater{\value{textcitetotal}}{2}
+ {\iftextcitepunct{\finalandsemicolon}{\finalandcomma}}{}%
+ \addspace\bibstring{and}}
+ {\iftextcitepunct{\addsemicolon}{\addcomma}}%
+ \space}
+
+
+% context-sensitive delimiters
+% retain compatibility with \labelnamepunct et al.
+% The seemingly redundant definitions are needed because
+% hard-coded punctuation was replaced by context-sensitive
+% delimiters, changes to here need to be made explicitly
+% to avoid unwanted effects of redefining the global delimiter.
+\DeclareDelimFormat{authortypedelim}{\addcomma\space}
+\DeclareDelimFormat{editortypedelim}{\addcomma\space}
+\DeclareDelimFormat{translatortypedelim}{\addcomma\space}
+\DeclareDelimFormat{namelabeldelim}{\addspace}
+\DeclareDelimFormat{nametitledelim}{\addcomma\space}
+\DeclareDelimFormat[bib,biblist]{nametitledelim}{\labelnamepunct}
+\DeclareDelimFormat[textcite]{nametitledelim}{\addspace}
+\DeclareDelimFormat{nameyeardelim}{\addspace}
+\DeclareDelimFormat[textcite]{nameyeardelim}{\addspace}
+\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\addspace}
+\DeclareDelimFormat{nonameyeardelim}{\addspace}
+\DeclareDelimFormat[textcite]{nonameyeardelim}{\addspace}
+\DeclareDelimFormat[bib,biblist]{nonameyeardelim}{\addspace}
+\DeclareDelimFormat{dateeradelim}{\addspace}
+\DeclareDelimFormat{datecircadelim}{\addspace}
+
+% This is a provisional definition for \iffinalcitedelim{<true>}{<false>}, a
+% test that should expand <true> if the next non-compact citation delimiter
+% is the last one in the citation list printed by \textcite or \textcites.
+\newcommand*{\iffinalcitedelim}{\@secondoftwo}
+
+% Expand <true> if the citation labels in the citation list printed by \textcite
+% or \textcites contains the serial comma \finalandcomma
+\newcommand*{\iftextcitepunct}{%
+ \ifboolexpr{ not test {\ifdefempty{\finalandsemicolon}}
+ and test {\ifnumgreater{\value{textcitemaxnames}}{2}} }}
+
+% Counters for the number of citation labels separated by non-compact delimiters
+% in the citation list printed by \textcite or \textcites. Counter values should
+% be managed by the citation style.
+\newcounter{textcitecount}
+\newcounter{textcitetotal}
+\setcounter{textcitecount}{0}
+\setcounter{textcitetotal}{0}
+
+% Counters for the maximum number of names among citation labels in the citation
+% list printed by \textcite or \textcites. Counter value should be managed by
+% the citation style.
+\newcounter{textcitemaxnames}
+\setcounter{textcitemaxnames}{0}
+
+% Used in the bibliography and bibliography lists
+
+\newcommand*{\newunitpunct}{\addperiod\space}
+\newcommand*{\entrysetpunct}{\addsemicolon\space}
+\newcommand*{\finentrypunct}{\addperiod}
+\newcommand*{\labelnamepunct}{\newunitpunct}
+\newcommand*{\subtitlepunct}{\newunitpunct}
+\newcommand*{\intitlepunct}{\addcolon\space}
+\newcommand*{\bibpagespunct}{\addcomma\space}
+\newcommand*{\bibpagerefpunct}{\addspace}
+\newcommand*{\revsdnamepunct}{\addcomma}
+\newcommand*{\bibnamedash}{%
+ \ifdimless{\leftmargin}{0.75em}
+ {\mbox{\textemdash\space}}
+ {\makebox[\leftmargin][l]{%
+ \ifdimless{\leftmargin}{1.25em}
+ {\textendash}
+ {\textemdash}}}}
+\newcommand*{\relatedpunct}{\addspace}
+\newcommand*{\relateddelim}{\adddot\par\nobreak}
+\newcommand*{\begrelateddelim}{\newunitpunct}
+\newcommand*{\begrelateddelimmultivolume}{\newunitpunct\par\nobreak}
+% Examples of use, uncommenting these would break backwards compatibility
+%\newcommand*{\begrelateddelimorigpubin}{\addspace}
+%\newcommand*{\begrelateddelimorigpubas}{\addspace}
+\newcommand{\mkrelatedstring}{\mainlang}
+
+% Used for indexing
+
+\newcommand*{\bibindexnamedelima}{ }
+\newcommand*{\bibindexnamedelimb}{ }
+\newcommand*{\bibindexnamedelimc}{ }
+\newcommand*{\bibindexnamedelimd}{ }
+\newcommand*{\bibindexnamedelimi}{ }
+\newcommand*{\bibindexinitperiod}{.}
+\newcommand*{\bibindexinitdelim}{ }
+\newcommand*{\bibindexinithyphendelim}{.-}
+
+% \bibsetup is a generic hook controlling the (low-level) layout of
+% the bibliography and bibliography lists. The default
+% definition should work fine in most cases.
+
+\newcommand*{\bibsetup}{%
+ \interlinepenalty=5000\relax
+ \widowpenalty=10000\relax
+ \clubpenalty=10000\relax
+ \raggedbottom
+ \frenchspacing
+ \biburlsetup}
+
+% The penalties above are not specific to biblatex. These are
+% low-level TeX features. \interlinepenalty is the penalty assigned
+% to page breaks within a paragraph (i.e., in this case, a
+% bibliography entry); \clubpenalty is an additional penalty
+% assigned to page breaks after the first line of a paragraph;
+% \widowpenalty is an additional penalty assigned to page breaks
+% before the last line of a paragraph. Note that the value 10000
+% means 'infinite' as far as TeX is concerned. Setting a penalty to
+% 10000 will unconditionally suppress the respective breakpoint.
+%
+% The net effect of the above settings is as follows. Breaking a
+% bibliography entry across pages is discouraged, but not suppressed
+% altogether. If a bibliography entry spans less than four lines,
+% TeX will always keep it on one page. If it spans four or more
+% lines, it may be broken across pages, provided that there are at
+% least two lines on the page before and after the break.
+%
+% These penalties should normally be used in conjunction with
+% \raggedbottom. If you don't like that and remove \raggedbottom
+% from the definition of \bibsetup, make sure to provide some
+% stretchability between bibliography entries by setting \bibitemsep
+% to a suitable value, e.g.:
+%
+% \setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
+%
+% Using \frenchspacing in the bibliography is recommended. If you
+% want more visual separation, try the package option 'block=space'.
+% This will yield better results than \nonfrenchspacing.
+
+% \citesetup is a generic hook for citations.
+
+\newcommand*{\citesetup}{%
+ \biburlsetup}
+
+% Local setup for \url; see comments in url.sty for details.
+
+\newcounter{biburlbigbreakpenalty}
+\newcounter{biburlbreakpenalty}
+\newcounter{biburlnumpenalty}
+\newcounter{biburlucpenalty}
+\newcounter{biburllcpenalty}
+
+\setcounter{biburlbigbreakpenalty}{100}
+\setcounter{biburlbreakpenalty}{200}
+
+\newmuskip\biburlbigskip
+\newmuskip\biburlnumskip
+\newmuskip\biburlucskip
+\newmuskip\biburllcskip
+
+% I'd have preferred \setlength here, but calc does not support
+% muglue (yet?).
+% https://github.com/plk/biblatex/issues/889
+% See also https://tex.stackexchange.com/q/188215/
+\biburlbigskip=0mu plus 3mu\relax
+\biburlnumskip=0mu\relax
+\biburlucskip=0mu\relax
+\biburllcskip=0mu\relax
+
+\newcommand*{\biburlsetup}{%
+ \Urlmuskip\biburlbigskip
+ \mathchardef\UrlBigBreakPenalty=\value{biburlbigbreakpenalty}\relax
+ \mathchardef\UrlBreakPenalty=\value{biburlbreakpenalty}\relax
+ \def\UrlBigBreaks{\do\:\do\-}%
+ \def\UrlBreaks{%
+ \do\.\do\@\do\/\do\\\do\!\do\_\do\|\do\;\do\>\do\]\do\)\do\}%
+ \do\,\do\?\do\'\do\+\do\=\do\#\do\$\do\&\do\*\do\^\do\"}%
+ \ifnumgreater{\value{biburlnumpenalty}}{0}
+ {\def\do##1{%
+ \appto\UrlSpecials{%
+ \do##1{%
+ \mathchar`##1
+ \mskip\biburlnumskip
+ \penalty\value{biburlnumpenalty}}}}%
+ \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0}
+ {}%
+ \ifnumgreater{\value{biburlucpenalty}}{0}
+ {\def\do##1{%
+ \appto\UrlSpecials{%
+ \do##1{%
+ \mathchar`##1
+ \mskip\biburlucskip
+ \penalty\value{biburlucpenalty}}}}%
+ \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J
+ \do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T
+ \do\U\do\V\do\W\do\X\do\Y\do\Z}
+ {}%
+ \ifnumgreater{\value{biburllcpenalty}}{0}
+ {\def\do##1{%
+ \appto\UrlSpecials{%
+ \do##1{%
+ \mathchar`##1
+ \mskip\biburllcskip
+ \penalty\value{biburllcpenalty}}}}%
+ \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j
+ \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t
+ \do\u\do\v\do\w\do\x\do\y\do\z}
+ {}%
+ \let\do=\noexpand}
+
+% The above code allows linebreaks before numbers and letters.
+% This is often the only way to break DOIs. It also allows breaks
+% after hyphens and adjusts \Urlmuskip to add some stretchability
+% to URLs.
+
+% The default font of the bibliography and the bibliography lists.
+% We simply reset the current font to the global defaults.
+
+\newcommand*{\bibfont}{\normalfont\normalsize}
+
+% Some length registers which may be used to fine-tune the
+% (high-level) layout of the bibliography.
+
+% Default \bibhang to 1em if \parindent is 0 for some reason
+\setlength{\bibhang}{\ifnumequal{\parindent}{0}{1em}{\parindent}}
+\setlength{\biblabelsep}{2\labelsep}
+\setlength{\bibitemsep}{\itemsep}
+\setlength{\bibnamesep}{0pt}
+\setlength{\bibinitsep}{0pt}
+\setlength{\bibparsep}{0pt}
+
+% Miscellaneous facilities
+% ------------------------------------------------------------------
+
+% The counter 'abbrvpenalty' holds the penalty used in short or
+% abbreviated bibliography strings. For example, a linebreak in
+% expressions such as "et al." or "ed. by" is unfortunate, but should
+% still be possible to prevent overfull boxes. We use TeX's
+% \hyphenpenalty (normally 50) as the default value. The idea is
+% making TeX treat the whole expression as if it were a single,
+% hyphenatable word as far as line-breaking is concerned. If you
+% dislike such linebreaks, use a higher value. If you do not mind
+% them at all, set this counter to zero. If you want to suppress them
+% unconditionally, set it to 10000.
+\defcounter{abbrvpenalty}{\hyphenpenalty}
+
+% The counter 'highnamepenalty' also holds a penalty affecting the
+% line-breaking of names. This penalty is inserted between smaller
+% chunks of a name, for example between the first and the middle
+% name. The default value is \hyphenpenalty. If you dislike such
+% linebreaks, use a higher value. If you do not mind them at all,
+% set this counter to zero. If you prefer the traditional BibTeX
+% behavior, set it to 10000.
+\defcounter{highnamepenalty}{\hyphenpenalty}
+
+% The counter 'lownamepenalty' holds a penalty which affects the
+% line-breaking of names. This penalty is inserted between larger
+% chunks of a name, for example between the chunk consisting of all
+% first names and the last name. The default value is half the
+% \hyphenpenalty. If you dislike such linebreaks, use a higher
+% value. If you do not mind them at all, set this counter to zero.
+\defcounter{lownamepenalty}{\hyphenpenalty/2}
+
+% Note that default values assigned to the above counters are
+% deliberately very low to prevent overfull boxes. This implies that
+% you will hardly notice any effect on line-breaking if the text is
+% set justified. If you set these counters to 10000 to suppress the
+% respective breakpoints, you will notice their effect but you may
+% also be confronted with overfull boxes. Keep in mind that
+% line-breaking in the bibliography is often more difficult than in
+% the body text and that you can not resort to rephrasing a
+% sentence. In some cases it may be preferable to set the entire
+% bibliography \raggedright (by modifying \bibsetup) to prevent
+% suboptimal linebreaks. In this case, even the very low default
+% penalties will make a visible difference.
+
+% File name prefixes for external abstracts and annotations
+\newcommand*{\bibabstractprefix}{bibabstract-}
+\newcommand*{\bibannotationprefix}{bibannotation-}
+
+% Print acronyms in small caps if possible
+\newcommand*{\mkbibacro}[1]{%
+ \ifcsundef{\f@encoding/\f@family/\f@series/sc}
+ {#1}
+ {\textsc{\MakeLowercase{#1}}}}
+
+% Convert HH to hh for time formatting
+\newcommand*{\mktimehh}[1]{%
+ \ifnumless{#1}{13}
+ {#1}
+ {\number\numexpr#1-12\relax}}
+
+% ------------------------------------------------------------------
+% ADDITIONAL PACKAGE OPTIONS
+% ------------------------------------------------------------------
+
+% Style of compressed page ranges in back references
+
+\DeclareBibliographyOption[string]{backrefstyle}{%
+ \ifcsdef{abx@opt@pagerefstyle@#1}
+ {\letcs\abx@pagerefstyle{abx@opt@pagerefstyle@#1}}
+ {\PackageError{biblatex}
+ {Option 'backrefstyle=#1' invalid}
+ {The option you have supplied is invalid.\MessageBreak
+ See the biblatex manual for valid option keys
+ and possible values}}}
+\newcommand*{\abx@pagerefstyle}{1}
+\csdef{abx@opt@pagerefstyle@none}{-1}
+\csdef{abx@opt@pagerefstyle@two}{0}
+\csdef{abx@opt@pagerefstyle@three}{1}
+\csdef{abx@opt@pagerefstyle@two+}{2}
+\csdef{abx@opt@pagerefstyle@three+}{3}
+\csdef{abx@opt@pagerefstyle@all+}{4}
+
+% arXiv path/format selector
+%
+% abs = abstract page
+% ps = PostScript version
+% pdf = PDF version
+% format = format selector
+
+\DeclareBibliographyOption[string]{arxiv}{\def\abx@arxivpath{#1}}
+\newcommand*{\abx@arxivpath}{abs}
+
+% ------------------------------------------------------------------
+% FIELD FORMATS (#1 is the value of the field)
+% ------------------------------------------------------------------
+
+% The fallback used by \printfield
+
+\DeclareFieldFormat{default}{#1}
+
+% The default used by \citefield
+
+\DeclareFieldFormat{citefield}{#1}
+
+% Used in citations
+
+\DeclareFieldFormat{citetitle}{\mkbibemph{#1}}
+\DeclareFieldFormat
+ [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
+ {citetitle}{\mkbibquote{#1\isdot}}
+\DeclareFieldFormat
+ [suppbook,suppcollection,suppperiodical]
+ {citetitle}{#1}
+% label{end}year can be a localisation string to allow for "no date" etc.
+\DeclareFieldFormat{labelyear}{% = the '1995' part in 'Jones 1995a'
+ \ifbibstring{#1}{\bibstring{#1}}{\mkyearzeros{#1}}}
+\DeclareFieldFormat{labelendyear}{% = the '1995' part in 'Jones 1995a'
+ \ifbibstring{#1}{\bibstring{#1}}{\mkyearzeros{#1}}}
+\DeclareFieldFormat{extradate}{%
+ \iffieldnums{labelyear}
+ {\mknumalph{#1}}
+ {\mkbibparens{\mknumalph{#1}}}}
+\DeclareFieldFormat{labelalpha}{#1}%
+\DeclareFieldFormat{extraalpha}{\mknumalph{#1}}%
+\DeclareFieldFormat{shorthand}{#1\isdot}
+\DeclareFieldFormat{shorthandintro}{%
+ \ifcapital{\MakeCapital{#1}}{#1}\isdot}
+% citation commands
+\DeclareFieldFormat{prenote}{#1\isdot}
+\DeclareFieldFormat{postnote}{\mkpageprefix[pagination][\mknormrange]{#1}}
+\DeclareFieldFormat{volcitevolume}{\bibstring{volume}\ppspace#1}
+\DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination][\mknormrange]{#1}}
+\DeclareFieldFormat{volcitenote}{\mkvolcitenote#1}
+\newrobustcmd*{\mkvolcitenote}[2]{%
+ \printtext[volcitevolume]{#1}%
+ \ifblank{#2}{}{\volcitedelim\printtext[volcitepages]{#2}}}
+
+% multicite commands
+\DeclareFieldFormat{multiprenote}{#1\isdot}
+\DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination][\mknormrange]{#1}}
+
+% Used by \citeurl
+
+\DeclareFieldFormat{citeurl}{\url{#1}}
+
+% Used in the bibliography and bibliography lists
+
+\DeclareFieldFormat{doi}{%
+ \mkbibacro{DOI}\addcolon\space
+ \ifhyperref
+ {\href{https://doi.org/#1}{\nolinkurl{#1}}}
+ {\nolinkurl{#1}}}
+\DeclareFieldFormat{edition}{%
+ \ifinteger{#1}
+ {\mkbibordedition{#1}~\bibstring{edition}}
+ {#1\isdot}}
+\DeclareFieldFormat{eprint}{%
+ \iffieldundef{eprinttype}
+ {eprint}
+ {\thefield{eprinttype}}%
+ \addcolon\space
+ \ifhyperref
+ {\url{#1}}
+ {\nolinkurl{#1}}%
+ \iffieldundef{eprintclass}
+ {}
+ {\addspace\mkbibparens{\thefield{eprintclass}}}}
+\DeclareFieldFormat{eprint:hdl}{%
+ HDL\addcolon\space
+ \ifhyperref
+ {\href{http://hdl.handle.net/#1}{\nolinkurl{#1}}}
+ {\nolinkurl{#1}}}
+\DeclareFieldAlias{eprint:HDL}{eprint:hdl}
+\DeclareFieldFormat{eprint:arxiv}{%
+ arXiv\addcolon\space
+ \ifhyperref
+ {\href{https://arxiv.org/\abx@arxivpath/#1}{%
+ \nolinkurl{#1}%
+ \iffieldundef{eprintclass}
+ {}
+ {\addspace\texttt{\mkbibbrackets{\thefield{eprintclass}}}}}}
+ {\nolinkurl{#1}%
+ \iffieldundef{eprintclass}
+ {}
+ {\addspace\texttt{\mkbibbrackets{\thefield{eprintclass}}}}}}
+\DeclareFieldAlias{eprint:arXiv}{eprint:arxiv}
+\DeclareFieldFormat{eprint:jstor}{%
+ JSTOR\addcolon\space
+ \ifhyperref
+ {\href{http://www.jstor.org/stable/#1}{\nolinkurl{#1}}}
+ {\nolinkurl{#1}}}
+\DeclareFieldAlias{eprint:JSTOR}{eprint:jstor}
+\DeclareFieldFormat{eprint:pubmed}{%
+ PMID\addcolon\space
+ \ifhyperref
+ {\href{http://www.ncbi.nlm.nih.gov/pubmed/#1}{\nolinkurl{#1}}}
+ {\nolinkurl{#1}}}
+\DeclareFieldAlias{eprint:PubMed}{eprint:pubmed}
+\DeclareFieldFormat{eprint:googlebooks}{%
+ Google Books\addcolon\space
+ \ifhyperref
+ {\href{http://books.google.com/books?id=#1}{\nolinkurl{#1}}}
+ {\nolinkurl{#1}}}
+\DeclareFieldAlias{eprint:Google Books}{eprint:googlebooks}
+\DeclareFieldFormat{file}{\url{#1}}
+\DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon\space #1}
+\DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addcolon\space #1}
+\DeclareFieldFormat{issn}{\mkbibacro{ISSN}\addcolon\space #1}
+\DeclareFieldFormat{journaltitle}{\mkbibemph{#1\isdot}}
+\DeclareFieldFormat{issuetitle}{\mkbibemph{#1}}
+\DeclareFieldFormat{maintitle}{\mkbibemph{#1}}
+\DeclareFieldFormat{booktitle}{\mkbibemph{#1}}
+\DeclareFieldFormat{chapter}{\bibstring{chapter}~#1}
+\DeclareFieldFormat{month}{\mkbibmonth{#1}}
+\DeclareFieldFormat{note}{#1\isdot}
+\DeclareFieldFormat{number}{#1}% number in a series
+\DeclareFieldFormat[article,periodical]{number}{#1}% number of a journal
+\DeclareFieldFormat{pages}{\mkpageprefix[bookpagination]{#1}}
+\DeclareFieldFormat{pagetotal}{\mkpagetotal[bookpagination]{#1}}
+\DeclareFieldFormat{part}{.#1}% physical part of a logical volume
+\DeclareFieldFormat{series}{#1}% publication series
+\DeclareFieldFormat[article,periodical]{series}{% series of a journal
+ \ifinteger{#1}
+ {\mkbibordseries{#1}~\bibstring{jourser}}
+ {\ifbibstring{#1}{\bibstring{#1}}{#1}}}
+\DeclareFieldFormat{pubstate}{\ifbibstring{#1}{\bibstring{#1}}{#1}}
+\DeclareFieldFormat{title}{\mkbibemph{#1}}
+\DeclareFieldFormat
+ [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
+ {title}{\mkbibquote{#1\isdot}}
+\DeclareFieldFormat
+ [suppbook,suppcollection,suppperiodical]
+ {title}{#1}
+\DeclareFieldFormat{type}{\ifbibstring{#1}{\bibstring{#1}}{#1}}
+\DeclareFieldFormat{url}{\mkbibacro{URL}\addcolon\space\url{#1}}
+\DeclareFieldFormat{urldate}{\mkbibparens{\bibstring{urlseen}\space#1}}
+\DeclareFieldFormat{version}{\bibstring{version}~#1}
+\DeclareFieldFormat{volume}{\bibstring{volume}~#1}% volume of a book
+\DeclareFieldFormat[article,periodical]{volume}{#1}% volume of a journal
+\DeclareFieldFormat{volumes}{#1~\bibstring{volumes}}
+\DeclareFieldFormat{related}{#1}
+\DeclareFieldFormat{related:multivolume}{#1}
+\DeclareFieldFormat{related:origpubin}{\mkbibparens{#1}}
+\DeclareFieldFormat{related:origpubas}{\mkbibparens{#1}}
+\DeclareFieldFormat{relatedstring:default}{#1\printunit{\relatedpunct}}
+\DeclareFieldFormat{relatedstring:reprintfrom}{#1\addspace}
+
+% Generic formats for \printtext and \printfield
+
+\DeclareFieldFormat{emph}{\mkbibemph{#1}}
+\DeclareFieldFormat{bold}{\mkbibbold{#1}}
+\DeclareFieldFormat{smallcaps}{\textsc{#1}}
+\DeclareFieldFormat{parens}{\mkbibparens{#1}}
+\DeclareFieldFormat{brackets}{\mkbibbrackets{#1}}
+\DeclareFieldFormat{bibhyperref}{\bibhyperref{#1}}
+\DeclareFieldFormat{bibhyperlink}{\bibhyperlink{\thefield{entrykey}}{#1}}
+\DeclareFieldFormat{bibhypertarget}{\bibhypertarget{\thefield{entrykey}}{#1}}
+\DeclareFieldFormat{titlecase}{#1}
+\DeclareFieldFormat{noformat}{#1}
+
+% ------------------------------------------------------------------
+% LITERAL LIST FORMATS (#1 is the current item)
+% ------------------------------------------------------------------
+
+% Formatting directives for literal lists
+% ------------------------------------------------------------------
+
+\DeclareListWrapperFormat{default}{#1}
+
+% The fallback used by \printlist
+
+\DeclareListFormat{default}{%
+ \usebibmacro{list:delim}{#1}%
+ #1\isdot
+ \usebibmacro{list:andothers}}
+
+% The default used by \citelist
+
+\DeclareListAlias{citelist}{default}
+
+% Used in the bibliography
+
+\DeclareListFormat{publisher}{%
+ \usebibmacro{list:delim}{#1}%
+ #1\isdot
+ \usebibmacro{list:andothers}}
+
+\DeclareListFormat{language}{%
+ \usebibmacro{list:delim}{%
+ \ifbibstring{#1}
+ {\bibxstring{#1}}
+ {\ifbibstring{lang#1}
+ {\bibxstring{lang#1}}
+ {#1}}}%
+ \ifbibstring{#1}
+ {\bibstring{#1}}
+ {\ifbibstring{lang#1}
+ {\bibstring{lang#1}}
+ {#1}}%
+ \usebibmacro{list:andothers}}
+
+\DeclareListFormat{origlanguage}{%
+ \usebibmacro{list:delim}{%
+ \ifbibstring{#1}
+ {\bibxstring{#1}}
+ {\ifbibstring{lang#1}
+ {\bibxstring{lang#1}}
+ {#1}}}%
+ \ifbibstring{#1}
+ {\bibstring{#1}}
+ {\ifbibstring{lang#1}
+ {\bibstring{lang#1}}
+ {#1}}%
+ \usebibmacro{list:andothers}}
+
+
+\DeclareListFormat{lfromoriglanguage}{%
+ \begingroup
+ \blx@bibstringnormal
+ \usebibmacro{list:delim}{%
+ \ifbibstring{from#1}
+ {\bibxlstring{from#1}}
+ {\ifbibstring{lang#1}
+ {\bibxlstring{lang#1}}
+ {#1}}}%
+ \ifbibstring{from#1}
+ {\bibstring{from#1}}
+ {\ifbibstring{lang#1}
+ {\biblstring{lang#1}}
+ {#1}}%
+ \usebibmacro{list:andothers}%
+ \endgroup}
+
+\DeclareListFormat{sfromoriglanguage}{%
+ \begingroup
+ \blx@bibstringnormal
+ \usebibmacro{list:delim}{%
+ \ifbibstring{from#1}
+ {\bibxsstring{from#1}}
+ {\ifbibstring{lang#1}
+ {\bibxsstring{lang#1}}
+ {#1}}}%
+ \ifbibstring{from#1}
+ {\bibstring{from#1}}
+ {\ifbibstring{lang#1}
+ {\bibsstring{lang#1}}
+ {#1}}%
+ \usebibmacro{list:andothers}%
+ \endgroup}
+
+\DeclareListFormat{location}{%
+ \usebibmacro{list:delim}{#1}%
+ #1\isdot
+ \usebibmacro{list:andothers}}
+
+\DeclareListFormat[patent]{location}{%
+ \usebibmacro{list:plain}%
+ \ifbibstring{#1}{\bibstring{#1}}{#1\isdot}%
+ \usebibmacro{list:andothers}}
+
+\DeclareListFormat{pageref}{%
+ \ifnumless{\abx@pagerefstyle}{0}
+ {\usebibmacro{list:plain}%
+ \ifhyperref
+ {\hyperlink{page.#1}{#1}}
+ {#1}}
+ {\ifnumequal{\value{listcount}}{1}
+ {\usebibmacro{pageref:init}}
+ {}%
+ \usebibmacro{pageref:comp}{#1}%
+ \ifnumequal{\value{listcount}}{\value{liststop}}
+ {\usebibmacro{pageref:dump}}
+ {}}}
+
+\DeclareListAlias{origlocation}{location}
+\DeclareListAlias{origpublisher}{publisher}
+\DeclareListAlias{institution}{default}
+\DeclareListAlias{organization}{default}
+
+% Auxiliary macros for list formatting directives
+% ------------------------------------------------------------------
+
+\newbibmacro*{list:delim}[1]{%
+ \ifnumgreater{\value{listcount}}{\value{liststart}}
+ {\ifboolexpr{
+ test {\ifnumless{\value{listcount}}{\value{liststop}}}
+ or
+ test \ifmoreitems
+ }
+ {\printdelim{multilistdelim}}
+ {\lbx@finallistdelim{#1}}}
+ {}}
+
+\newbibmacro*{list:plain}{%
+ \ifnumgreater{\value{listcount}}{\value{liststart}}
+ {\printdelim{multilistdelim}}
+ {}}
+
+\newbibmacro*{list:andothers}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{listcount}}{\value{liststop}}}
+ and
+ test \ifmoreitems
+ }
+ {\ifnumgreater{\value{liststop}}{1}
+ {\finalandcomma}
+ {}%
+ \printdelim{andmoredelim}\bibstring{andmore}}
+ {}}
+
+\newbibmacro*{pageref:init}{%
+ \let\abx@range@hold=\empty
+ \def\abx@range@diff{0}%
+ \def\abx@range@prev{-1}%
+ \def\abx@range@this{0}%
+ \def\abx@range@last{-1}}
+
+\newbibmacro*{pageref:comp}[1]{%
+ \numdef\abx@range@prev{\abx@range@prev+1}%
+ \ifinteger{#1}
+ {\def\abx@range@num{#1}%
+ \def\abx@range@this{1}%
+ \ifnumequal{\abx@range@this}{\abx@range@last}
+ {}
+ {\def\abx@range@prev{-1}}}
+ {\ifrmnum{#1}
+ {\numdef\abx@range@num{\rmntonum{#1}}%
+ \def\abx@range@this{2}%
+ \ifnumequal{\abx@range@this}{\abx@range@last}
+ {}
+ {\def\abx@range@prev{-1}}}
+ {\undef\abx@range@num
+ \def\abx@range@this{0}%
+ \def\abx@range@prev{-1}}}%
+ \ifdef\abx@range@num
+ {\ifnumequal{\abx@range@num}{\abx@range@prev}
+ {\def\abx@range@hold{#1}%
+ \numdef\abx@range@diff{\abx@range@diff+1}}
+ {\usebibmacro{pageref:dump}%
+ \ifnumgreater{\abx@range@last}{-1}
+ {\printdelim{multilistdelim}}
+ {}%
+ \ifhyperref
+ {\hyperlink{page.#1}{#1}}
+ {#1}}%
+ \edef\abx@range@prev{\abx@range@num}}
+ {\usebibmacro{pageref:dump}%
+ \ifnumgreater{\abx@range@last}{-1}
+ {\printdelim{multilistdelim}}
+ {}%
+ \ifhyperref
+ {\hyperlink{page.#1}{#1}}
+ {#1}%
+ \def\abx@range@prev{-1}}%
+ \edef\abx@range@last{\abx@range@this}}
+
+\newbibmacro*{pageref:dump}{%
+ \ifnumgreater{\abx@range@diff}{0}
+ {\ifcase\abx@pagerefstyle\relax % two
+ \bibrangedash
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\abx@range@hold}}
+ {\abx@range@hold}%
+ \or % three
+ \ifnumless{\abx@range@diff}{2}
+ {\printdelim{multilistdelim}}
+ {\bibrangedash}%
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\abx@range@hold}}
+ {\abx@range@hold}%
+ \or % two+
+ \ifnumless{\abx@range@diff}{2}
+ {\sqspace
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}}
+ {\bibstring{sequens}}}
+ {\bibrangedash
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\abx@range@hold}}
+ {\abx@range@hold}}%
+ \or % three+
+ \ifnumless{\abx@range@diff}{2}
+ {\sqspace
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}}
+ {\bibstring{sequens}}}
+ {\ifnumless{\abx@range@diff}{3}
+ {\sqspace
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\bibstring{sequentes}}}
+ {\bibstring{sequentes}}}
+ {\bibrangedash
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\abx@range@hold}}
+ {\abx@range@hold}}}%
+ \else % all+
+ \ifnumless{\abx@range@diff}{2}
+ {\sqspace
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}}
+ {\bibstring{sequens}}}
+ {\sqspace
+ \ifhyperref
+ {\hyperlink{page.\abx@range@hold}{\bibstring{sequentes}}}
+ {\bibstring{sequentes}}}%
+ \fi
+ \def\abx@range@diff{0}}
+ {}}
+
+% ------------------------------------------------------------------
+% NAME LIST FORMATS
+% ------------------------------------------------------------------
+
+% Formatting directives for name lists
+% ------------------------------------------------------------------
+
+\DeclareNameWrapperFormat{default}{#1}
+
+\DeclareNameFormat{given-family}{%
+ \ifgiveninits
+ {\usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}}
+ {\usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartprefix}
+ {\namepartsuffix}}%
+ \usebibmacro{name:andothers}}
+
+\DeprecateNameFormatWithReplacement{first-last}{given-family}
+
+\DeclareNameFormat{family-given}{%
+ \ifgiveninits
+ {\usebibmacro{name:family-given}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}}
+ {\usebibmacro{name:family-given}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartprefix}
+ {\namepartsuffix}}%
+ \usebibmacro{name:andothers}}
+
+\DeprecateNameFormatWithReplacement{last-first}{family-given}
+
+
+\DeclareNameFormat{family-given/given-family}{%
+ \ifnumequal{\value{listcount}}{1}
+ {\ifgiveninits
+ {\usebibmacro{name:family-given}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}}
+ {\usebibmacro{name:family-given}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartprefix}
+ {\namepartsuffix}}%
+ \ifboolexpe{%
+ test {\ifdefvoid\namepartgiven}
+ and
+ test {\ifdefvoid\namepartprefix}}
+ {}
+ {\usebibmacro{name:revsdelim}}}
+ {\ifgiveninits
+ {\usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}}
+ {\usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartprefix}
+ {\namepartsuffix}}}%
+ \usebibmacro{name:andothers}}
+
+\DeprecateNameFormatWithReplacement{last-first/first-last}{family-given/given-family}
+
+\DeclareNameFormat{initsonly}{%
+ \usebibmacro{name:given-family}
+ {\namepartfamilyi}
+ {\namepartgiveni}
+ {\namepartprefixi}
+ {\namepartsuffixi}%
+ \usebibmacro{name:andothers}}
+
+% Fallback used by \printnames
+\DeclareNameAlias{default}{given-family}
+
+% Default used by \citename
+\DeclareNameAlias{citename}{default}
+
+% Used in some citations
+\DeclareNameFormat{labelname}{%
+ \ifcase\value{uniquename}%
+ \usebibmacro{name:family}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartprefix}
+ {\namepartsuffix}%
+ \or
+ \ifuseprefix
+ {\usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffixi}}
+ {\usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefixi}
+ {\namepartsuffixi}}%
+ \or
+ \usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartprefix}
+ {\namepartsuffix}%
+ \fi
+ \usebibmacro{name:andothers}}
+
+% Used in the bibliography
+\DeclareNameAlias{sortname}{family-given/given-family}
+
+\DeclareNameAlias{author}{default}
+\DeclareNameAlias{bookauthor}{author}
+\DeclareNameAlias{editor}{default}
+\DeclareNameAlias{editora}{editor}
+\DeclareNameAlias{editorb}{editor}
+\DeclareNameAlias{editorc}{editor}
+\DeclareNameAlias{translator}{default}
+
+\DeclareNameAlias{byauthor}{default}
+\DeclareNameAlias{bybookauthor}{byauthor}
+\DeclareNameAlias{byeditor}{default}
+\DeclareNameAlias{byeditora}{byeditor}
+\DeclareNameAlias{byeditorb}{byeditor}
+\DeclareNameAlias{byeditorc}{byeditor}
+\DeclareNameAlias{bytranslator}{default}
+
+\DeclareNameAlias{withcommentator}{default}
+\DeclareNameAlias{withannotator}{default}
+\DeclareNameAlias{withintroduction}{default}
+\DeclareNameAlias{withforeword}{default}
+\DeclareNameAlias{withafterword}{default}
+
+\DeclareFieldFormat{authortype}{#1}
+\DeclareFieldFormat{editortype}{#1}
+\DeclareFieldFormat{translatortype}{#1}
+
+% Auxiliary macros for name formatting directives
+% ------------------------------------------------------------------
+
+\newcommand{\mkbibcompletename}[1]{#1}
+
+\newcommand{\mkbibcompletenamefamily}{\mkbibcompletename}
+
+\newbibmacro*{name:family}[4]{%
+ \ifuseprefix
+ {\usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \mkbibcompletenamefamily{%
+ \ifdefvoid{#3}
+ {}
+ {\ifcapital
+ {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
+ {\mkbibnameprefix{#3}\isdot}%
+ \ifprefchar{}{\bibnamedelimc}}%
+ \mkbibnamefamily{#1}\isdot}}
+ {\usebibmacro{name:delim}{#1}%
+ \usebibmacro{name:hook}{#1}%
+ \mkbibcompletenamefamily{%
+ \mkbibnamefamily{#1}\isdot}}}%
+\newbibmacro*{name:last}[4]{% legacy alias
+ \blx@warning@noline{%
+ 'name:last' is deprecated, please use 'name:family'}%
+ \usebibmacro{name:family}{#1}{#2}{#3}{#4}}
+
+\newcommand{\mkbibcompletenamegivenfamily}{\mkbibcompletename}
+
+\newbibmacro*{name:given-family}[4]{%
+ \usebibmacro{name:delim}{#2#3#1}%
+ \usebibmacro{name:hook}{#2#3#1}%
+ \mkbibcompletenamegivenfamily{%
+ \ifdefvoid{#2}
+ {}
+ {\mkbibnamegiven{#2}\isdot\bibnamedelimd}%
+ \ifdefvoid{#3}
+ {}
+ {\mkbibnameprefix{#3}\isdot
+ \ifprefchar
+ {}
+ {\ifuseprefix{\bibnamedelimc}{\bibnamedelimd}}}%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}
+\newbibmacro*{name:first-last}[4]{% legacy alias
+ \blx@warning@noline{%
+ 'name:first-last' is deprecated, please use 'name:given-family'}%
+ \usebibmacro{name:given-family}{#1}{#2}{#3}{#4}}
+
+\newcommand{\mkbibcompletenamefamilygiven}{\mkbibcompletename}
+
+\newbibmacro*{name:family-given}[4]{%
+ \ifuseprefix
+ {\usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \mkbibcompletenamefamilygiven{%
+ \ifdefvoid{#3}
+ {}
+ {\ifcapital
+ {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
+ {\mkbibnameprefix{#3}\isdot}%
+ \ifprefchar{}{\bibnamedelimc}}%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#4}
+ {}
+ {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
+ \ifdefvoid{#2}
+ {}
+ {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}}
+ {\usebibmacro{name:delim}{#1}%
+ \usebibmacro{name:hook}{#1}%
+ \mkbibcompletenamefamilygiven{%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#4}
+ {}
+ {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
+ \ifboolexpe{%
+ test {\ifdefvoid{#2}}
+ and
+ test {\ifdefvoid{#3}}}
+ {}
+ {\revsdnamepunct}%
+ \ifdefvoid{#2}
+ {}
+ {\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
+ \ifdefvoid{#3}
+ {}
+ {\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}}
+\newbibmacro*{name:last-first}[4]{% legacy alias
+ \blx@warning@noline{%
+ 'name:last-first' is deprecated, please use 'name:family-given'}%
+ \usebibmacro{name:family-given}{#1}{#2}{#3}{#4}}
+
+\newbibmacro*{name:hook}[1]{%
+ \ifnumequal{\value{listcount}}{1}
+ {\lbx@initnamehook{#1}}
+ {}}
+
+\newbibmacro*{name:delim}[1]{%
+ \ifnumgreater{\value{listcount}}{\value{liststart}}
+ {\ifboolexpr{
+ test {\ifnumless{\value{listcount}}{\value{liststop}}}
+ or
+ test \ifmorenames
+ }
+ {\printdelim{multinamedelim}}
+ {\lbx@finalnamedelim{#1}}}
+ {}}
+
+\newbibmacro*{name:revsdelim}{%
+ \ifboolexpr{
+ (
+ test {\ifnumequal{\value{liststop}}{1}}
+ and
+ test \ifmorenames
+ )
+ or
+ test {\ifnumequal{\value{liststop}}{2}}
+ }
+ {\printdelim{revsdnamedelim}}
+ {}}
+
+\newbibmacro*{name:andothers}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{listcount}}{\value{liststop}}}
+ and
+ test \ifmorenames
+ }
+ {\ifnumgreater{\value{liststop}}{1}
+ {\finalandcomma}
+ {}%
+ \printdelim{andothersdelim}\bibstring{andothers}}
+ {}}
+
+% ------------------------------------------------------------------
+% INDEX FORMATS FOR FIELDS (#1 is the value of the field)
+% ------------------------------------------------------------------
+
+% There is no need to test if a field to be indexed is empty because
+% \indexfield performs this test implicitly.
+
+% The fallback used by \indexfield
+
+\DeclareIndexFieldFormat{default}{\index{#1}}
+
+% Used in the bibliography and in citations
+
+\DeclareIndexFieldFormat{indextitle}{%
+ \usebibmacro{index:title}{\index}{#1}}
+
+\newbibmacro*{index:title}[2]{%
+ \usebibmacro{index:field}{#1}{\thefield{indexsorttitle}}{\emph{#2}}}
+
+\newbibmacro*{index:field}[3]{%
+ \usebibmacro{index:entry}{#1}{\mkbibindexfield{#2}{#3}}}
+
+% Auxiliary macros for field indexing directives
+% ------------------------------------------------------------------
+
+\newbibmacro*{index:entry}[2]{%
+ \begingroup
+ \protected@edef\theindexentry{\unexpanded{#1}{#2}}%
+ \theindexentry
+ \endgroup}
+
+\newcommand*{\mkbibindexfield}[2]{\mkbibindexentry{#1}{\unexpanded{#2}}}
+\newcommand*{\mkbibindexentry}[2]{#1\actualoperator#2}
+
+% ------------------------------------------------------------------
+% INDEX FORMATS FOR LITERAL LISTS (#1 is the current item)
+% ------------------------------------------------------------------
+
+% The fallback used by \indexlist
+
+\DeclareIndexListWrapperFormat{default}{#1}
+
+\DeclareIndexListFormat{default}{\index{#1}}
+
+% ------------------------------------------------------------------
+% INDEX FORMATS FOR NAME LISTS
+% ------------------------------------------------------------------
+
+% Indexing directives for name lists
+% ------------------------------------------------------------------
+
+% The fallback used by \indexnames
+
+\DeclareIndexNameWrapperFormat{default}{#1}
+
+\DeclareIndexNameFormat{default}{%
+ \usebibmacro{index:name}
+ {\index}
+ {\namepartfamily}
+ {\namepartgiven}
+ {\namepartprefix}
+ {\namepartsuffix}}
+
+% Used in citations
+
+\DeclareIndexNameAlias{labelname}{default}
+
+% Used in the bibliography
+
+\DeclareIndexNameAlias{author}{default}
+\DeclareIndexNameAlias{editor}{default}
+\DeclareIndexNameAlias{bookauthor}{default}
+
+% Auxiliary macros for name indexing directives
+% ------------------------------------------------------------------
+
+% When generating an index entry, we need to test which parts of a
+% name are actually available to prevent spurious punctuation and
+% spaces.
+%
+% Note that the standard LaTeX \index command simply writes its
+% argument to the .idx file without preventing expansion. This means
+% that all \ifblank etc. tests are expanded on the way and will not end
+% up in the index. The index package, however, prevents expansion.
+% This would lead to \ifblank etc. ending up in the .idx file. To avoid
+% that, we preprocess the index entry inside an \edef. We use
+% \unexpanded to protect the \index command and the actual data from
+% expansion. This definition will work with both index.sty and the
+% standard indexing facilities.
+%
+% We also use \ifuseprefix to ensure that the name prefix is handled
+% properly. \actualoperator is the so-called actual operator, as
+% defined by the 'actual' specifier in the .ist file. The makeindex
+% program will use the part preceeding the \actualoperator
+% delimiter for sorting. The part after the delimiter is used as the
+% index is printed. Note that this is not specific to biblatex, see
+% the makeindex documentation for details.
+
+\newcommand*{\actualoperator}{@}
+\newcommand*{\subentryoperator}{!}
+
+\newbibmacro*{index:name}[5]{%
+ \usebibmacro{index:entry}{#1}{\mkbibindexname{#2}{#3}{#4}{#5}}}
+
+% {<family name>}{<given name>}{<given initials>}{<family name prefix>}
+\newcommand*{\mkbibindexname}[4]{%
+ \ifuseprefix
+ {\ifdefvoid{#3}{}{#3 }%
+ \@firstofone #1% remove spurious braces
+ \ifdefvoid{#4}{}{ #4}%
+ \ifdefvoid{#2}{}{, #2}%
+ \ifdefvoid{#3}{}{%
+ \actualoperator
+ \MakeCapital{#3} %
+ #1%
+ \ifdefvoid{#4}{}{ #4}%
+ \ifdefvoid{#2}{}{, #2}}}
+ {\@firstofone #1% remove spurious braces
+ \ifdefvoid{#4}{}{ #4}%
+ \ifboolexpe{%
+ test {\ifdefvoid{#2}}
+ and
+ test {\ifdefvoid{#3}}}
+ {}
+ {,}%
+ \ifdefvoid{#2}{}{ #2}%
+ \ifdefvoid{#3}{}{ #3}}}
+
+% {<control sequence>}{<control sequence>}
+\newcommand*{\mkbibindexsubentry}[2]{%
+ \ifblank{#1}{}{\subentryoperator#1\actualoperator#2}}
+
+% Additional macros with subentries
+
+\newbibmacro*{index:name:field}[6]{%
+ \usebibmacro{index:name:subentry}{#1}{#2}{#3}{#4}{#5}
+ {\thefield{#6}}{\csfield{#6}}}
+
+\newbibmacro*{index:name:title}[5]{%
+ \usebibmacro{index:name:subentry}{#1}{#2}{#3}{#4}{#5}
+ {\thefield{indexsorttitle}}{\emph{\csfield{indextitle}}}}
+
+\newbibmacro*{index:name:subentry}[7]{%
+ \usebibmacro{index:entry}{#1}{%
+ \mkbibindexname{#2}{#3}{#4}{#5}\mkbibindexsubentry{#6}{#7}}}
+
+% ------------------------------------------------------------------
+% datafieldsets
+% ------------------------------------------------------------------
+
+% Some defaults for backwards compat for the biber nosort option
+\DeclareDatafieldSet{setnames}{
+ \member[datatype=name, fieldtype=list]
+}
+
+\DeclareDatafieldSet{settitles}{
+ \member[field=title]
+ \member[field=booktitle]
+ \member[field=eventtitle]
+ \member[field=issuetitle]
+ \member[field=journaltitle]
+ \member[field=maintitle]
+ \member[field=origtitle]
+}
+
+% ------------------------------------------------------------------
+% Driver sourcemaps
+% ------------------------------------------------------------------
+
+\DeclareDriverSourcemap[datatype=bibtex]{
+ \map{
+ \step[fieldset=day, null]
+ }
+ \map{
+ \step[typesource=conference, typetarget=inproceedings]
+ \step[typesource=electronic, typetarget=online]
+ \step[typesource=www, typetarget=online]
+ }
+ \map{
+ \step[typesource=mastersthesis, typetarget=thesis, final]
+ \step[fieldset=type, fieldvalue=mathesis]
+ }
+ \map{
+ \step[typesource=phdthesis, typetarget=thesis, final]
+ \step[fieldset=type, fieldvalue=phdthesis]
+ }
+ \map{
+ \step[typesource=techreport, typetarget=report, final]
+ \step[fieldset=type, fieldvalue=techreport]
+ }
+ \map{
+ \step[fieldsource=hyphenation, fieldtarget=langid]
+ \step[fieldsource=address, fieldtarget=location]
+ \step[fieldsource=school, fieldtarget=institution]
+ \step[fieldsource=annote, fieldtarget=annotation]
+ \step[fieldsource=archiveprefix, fieldtarget=eprinttype]
+ \step[fieldsource=journal, fieldtarget=journaltitle]
+ \step[fieldsource=primaryclass, fieldtarget=eprintclass]
+ \step[fieldsource=key, fieldtarget=sortkey]
+ \step[fieldsource=pdf, fieldtarget=file]
+ }
+}
+
+% ------------------------------------------------------------------
+% META-FIELDS
+% ------------------------------------------------------------------
+
+\DeclareLabelname{%
+ \field{shortauthor}
+ \field{author}
+ \field{shorteditor}
+ \field{editor}
+ \field{translator}
+}
+
+\DeclareLabeldate{%
+ \field{date}
+ \field{year}
+ \field{eventdate}
+ \field{origdate}
+ \field{urldate}
+ \literal{nodate}
+}
+
+\DeclareExtradate{%
+ \scope{
+ \field{labelyear}
+ \field{year}
+ }
+}
+
+\DeclareLabeltitle{%
+ \field{shorttitle}
+ \field{title}
+ \field{maintitle}
+}
+
+% ------------------------------------------------------------------
+% LABELALPHA TEMPLATE
+% ------------------------------------------------------------------
+
+\DeclareLabelalphaTemplate{
+ \labelelement{
+ \field[final]{shorthand}
+ \field{label}
+ \field[strwidth=3,strside=left,ifnames=1]{labelname}
+ \field[strwidth=1,strside=left]{labelname}
+ }
+ \labelelement{
+ \field[strwidth=2,strside=right]{year}
+ }
+}
+
+% ------------------------------------------------------------------
+% LABELALPHA NAME TEMPLATE
+% ------------------------------------------------------------------
+
+\DeclareLabelalphaNameTemplate{
+ \namepart[use=true, pre=true, strwidth=1, compound=true]{prefix}
+ \namepart{family}
+}
+
+% ------------------------------------------------------------------
+% UNIQUENAME TEMPLATE
+% ------------------------------------------------------------------
+
+\DeclareUniquenameTemplate{
+ \namepart[use=true, base=true]{prefix}
+ \namepart[base=true]{family}
+ \namepart{given}
+}
+
+% ------------------------------------------------------------------
+% SORTING
+% ------------------------------------------------------------------
+
+\DeclareSortingNamekeyTemplate{
+ \keypart{
+ \namepart[use=true]{prefix}
+ }
+ \keypart{
+ \namepart{family}
+ }
+ \keypart{
+ \namepart{given}
+ }
+ \keypart{
+ \namepart{suffix}
+ }
+ \keypart{
+ \namepart[use=false]{prefix}
+ }
+}
+
+\DeclarePresort{mm}
+
+\DeclareSortingTemplate{shorthand}{
+ \sort[final]{
+ \field{sortshorthand}
+ }
+ \sort{
+ \field{shorthand}
+ }
+}
+
+\DeclareSortingTemplate{none}{
+ \sort{\citeorder}
+}
+
+\DeclareSortingTemplate{debug}{
+ \sort{
+ \field{entrykey}
+ }
+}
+
+\DeclareSortingTemplate{nty}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+}
+
+\DeclareSortingTemplate{nyt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+}
+
+\DeclareSortingTemplate{nyvt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+}
+
+\DeclareSortingTemplate{anyt}{
+ \sort{
+ \field{presort}
+ }
+ \sort{
+ \field{labelalpha}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+}
+
+\DeclareSortingTemplate{anyvt}{
+ \sort{
+ \field{presort}
+ }
+ \sort{
+ \field{labelalpha}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+}
+
+\DeclareSortingTemplate{ynt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ \literal{9999}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+}
+
+\DeclareSortingTemplate{ydnt}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort[direction=descending]{
+ \field{sortyear}
+ \field{year}
+ \literal{9999}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+}
+
+% ------------------------------------------------------------------
+% DATA INHERITANCE (CROSSREF)
+% ------------------------------------------------------------------
+
+\DefaultInheritance{all=true,override=false}
+
+\DeclareDataInheritance{mvbook,book}{inbook,bookinbook,suppbook}{%
+ \inherit{author}{author}
+ \inherit{author}{bookauthor}
+}
+
+\DeclareDataInheritance{mvbook}{book,inbook,bookinbook,suppbook}{%
+ \inherit{title}{maintitle}
+ \inherit{subtitle}{mainsubtitle}
+ \inherit{titleaddon}{maintitleaddon}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{mvcollection,mvreference}
+{collection,reference,incollection,inreference,suppcollection}{%
+ \inherit{title}{maintitle}
+ \inherit{subtitle}{mainsubtitle}
+ \inherit{titleaddon}{maintitleaddon}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{mvproceedings}{proceedings,inproceedings}{%
+ \inherit{title}{maintitle}
+ \inherit{subtitle}{mainsubtitle}
+ \inherit{titleaddon}{maintitleaddon}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{book}{inbook,bookinbook,suppbook}{%
+ \inherit{title}{booktitle}
+ \inherit{subtitle}{booksubtitle}
+ \inherit{titleaddon}{booktitleaddon}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{collection,reference}
+{incollection,inreference,suppcollection}{%
+ \inherit{title}{booktitle}
+ \inherit{subtitle}{booksubtitle}
+ \inherit{titleaddon}{booktitleaddon}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{proceedings}{inproceedings}{%
+ \inherit{title}{booktitle}
+ \inherit{subtitle}{booksubtitle}
+ \inherit{titleaddon}{booktitleaddon}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{periodical}{article,suppperiodical}{%
+ \inherit{title}{journaltitle}
+ \inherit{subtitle}{journalsubtitle}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{*}{*}{%
+ \noinherit{ids}
+ \noinherit{crossref}
+ \noinherit{xref}
+ \noinherit{entryset}
+ \noinherit{entrysubtype}
+ \noinherit{execute}
+ \noinherit{label}
+ \noinherit{options}
+ \noinherit{presort}
+ \noinherit{related}
+ \noinherit{relatedoptions}
+ \noinherit{relatedstring}
+ \noinherit{relatedtype}
+ \noinherit{shorthand}
+ \noinherit{shorthandintro}
+ \noinherit{sortkey}
+}
+
+% ------------------------------------------------------------------
+% MACROS FOR LBX FILES
+% ------------------------------------------------------------------
+
+\newcommand*{\lbx@initnamehook}[1]{}
+\newcommand*{\lbx@inittitlehook}[1]{}
+\newcommand*{\lbx@finalnamedelim}[1]{\printdelim{finalnamedelim}}
+\newcommand*{\lbx@finallistdelim}[1]{\printdelim{finallistdelim}}
+
+\newcommand*{\lbx@lfromlang}{%
+ \iflistundef{origlanguage}
+ {\unspace}
+ {\printlist[lfromoriglanguage]{origlanguage}}}
+
+\newcommand*{\lbx@sfromlang}{%
+ \iflistundef{origlanguage}
+ {\unspace}
+ {\printlist[sfromoriglanguage]{origlanguage}}}
+
+% ------------------------------------------------------------------
+% MISCELLANEOUS
+% ------------------------------------------------------------------
+
+% ordinals
+
+\newcommand*{\mkbibordedition}{\mkbibordinal}
+\newcommand*{\mkbibordseries}{\mkbibordinal}
+
+% american
+
+\newrobustcmd*{\uspunctuation}{%
+ \DeclareQuotePunctuation{.,}%
+ \DeclarePunctuationPairs{comma}{*}}
+\newrobustcmd*{\stdpunctuation}{%
+ \DeclareQuotePunctuation{}%
+ \DeclarePunctuationPairs{comma}{*!?}}
+
+% catalan and french
+
+\newtoggle{smartof}
+\newrobustcmd*{\smartof}{\global\toggletrue{smartof}}
+\newrobustcmd*{\forceD}[1]{#1}
+\newrobustcmd*{\forceDE}[1]{#1}
+
+\AtBeginDocument{%
+ \@ifpackageloaded{babel}
+ {\ifdef\AutoSpaceBeforeFDP
+ {\newrobustcmd*{\EnsureAutoSpaceBeforeFDP}{%
+ \iflanguage{french}
+ {\AutoSpaceBeforeFDP}
+ {}}%
+ \appto\bibsetup{\EnsureAutoSpaceBeforeFDP}%
+ \appto\citesetup{\EnsureAutoSpaceBeforeFDP}}
+ {}}
+ {}}
+
+% spanish
+
+\newcounter{smartand}
+\defcounter{smartand}{1}
+\newrobustcmd*{\forceY}[1]{#1}
+\newrobustcmd*{\forceE}[1]{#1}
+
+% ------------------------------------------------------------------
+% PREDEFINED HEADINGS
+% ------------------------------------------------------------------
+
+\newcommand*{\abx@classtype}{0}
+\@ifclassloaded{article}
+ {}
+ {\@ifclassloaded{book}
+ {\def\abx@classtype{1}}
+ {\@ifclassloaded{report}
+ {\def\abx@classtype{1}}
+ {\@ifclassloaded{scrartcl}
+ {\def\abx@classtype{2}}
+ {\@ifclassloaded{scrbook}
+ {\def\abx@classtype{3}}
+ {\@ifclassloaded{scrreprt}
+ {\def\abx@classtype{3}}
+ {\@ifclassloaded{memoir}
+ {\ifbool{artopt}
+ {\def\abx@classtype{4}}
+ {\def\abx@classtype{5}}}
+ {\ifundef\chapter
+ {}
+ {\def\abx@classtype{1}}}}}}}}}
+
+\defbibheading{none}{}
+
+\def\abx@MakeMarkcase{\MakeUppercase}
+\AtBeginDocument{%
+ \ifcsundef{MakeMarkcase}{}{\def\abx@MakeMarkcase{\MakeMarkcase}}}
+
+\ifcase\abx@classtype\relax % article
+ \defbibheading{bibliography}[\refname]{%
+ \section*{#1}%
+ \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ \defbibheading{biblist}[\biblistname]{%
+ \section*{#1}%
+ \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ \defbibheading{bibintoc}[\refname]{%
+ \section*{#1}%
+ \addcontentsline{toc}{section}{#1}%
+ \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ \defbibheading{biblistintoc}[\biblistname]{%
+ \section*{#1}%
+ \addcontentsline{toc}{section}{#1}%
+ \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ \defbibheading{bibnumbered}[\refname]{%
+ \section{#1}}
+ \defbibheading{biblistnumbered}[\biblistname]{%
+ \section{#1}}
+ \defbibheading{subbibliography}[\refname]{%
+ \subsection*{#1}}
+ \defbibheading{subbibintoc}[\refname]{%
+ \subsection*{#1}%
+ \addcontentsline{toc}{subsection}{#1}}
+ \defbibheading{subbibnumbered}[\refname]{%
+ \subsection{#1}}
+
+\or % book/report
+ \defbibheading{bibliography}[\bibname]{%
+ \chapter*{#1}%
+ \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ \defbibheading{biblist}[\biblistname]{%
+ \chapter*{#1}%
+ \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ \defbibheading{bibintoc}[\bibname]{%
+ \chapter*{#1}%
+ \addcontentsline{toc}{chapter}{#1}%
+ \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ \defbibheading{biblistintoc}[\biblistname]{%
+ \chapter*{#1}%
+ \addcontentsline{toc}{chapter}{#1}%
+ \@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ \defbibheading{bibnumbered}[\bibname]{%
+ \chapter{#1}}
+ \defbibheading{biblistnumbered}[\biblistname]{%
+ \chapter{#1}}
+ \defbibheading{subbibliography}[\refname]{%
+ \section*{#1}%
+ \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi}
+ \defbibheading{subbibintoc}[\refname]{%
+ \section*{#1}%
+ \addcontentsline{toc}{section}{#1}%
+ \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi}
+ \defbibheading{subbibnumbered}[\refname]{%
+ \section{#1}}
+
+\or % scrartcl
+ \defbibheading{bibliography}[\refname]{%
+ \ifcsundef{bibliography@heading}
+ {\ifkomabibtotocnumbered
+ {\section{#1}}
+ {\ifkomabibtotoc
+ {\addsec{#1}}
+ {\section*{#1}%
+ \ifcsundef{@mkdouble}
+ {\@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ {\@mkdouble{\abx@MakeMarkcase{#1}}}}}}
+ {\bibliography@heading{#1}}}
+ \defbibheading{biblist}[\biblistname]{%
+ \ifcsundef{bibliography@heading}
+ {\ifkomabibtotocnumbered
+ {\section{#1}}
+ {\ifkomabibtotoc
+ {\addsec{#1}}
+ {\section*{#1}%
+ \ifcsundef{@mkdouble}
+ {\@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ {\@mkdouble{\abx@MakeMarkcase{#1}}}}}}
+ {\bibliography@heading{#1}}}
+ \defbibheading{bibintoc}[\refname]{%
+ \addsec{#1}}
+ \defbibheading{biblistintoc}[\biblistname]{%
+ \addsec{#1}}
+ \defbibheading{bibnumbered}[\refname]{%
+ \section{#1}}
+ \defbibheading{biblistnumbered}[\biblistname]{%
+ \section{#1}}
+ \defbibheading{subbibliography}[\refname]{%
+ \subsection*{#1}%
+ \ifcsundef{@mkright}
+ {\ifx\@mkboth\@gobbletwo\else\markright{\abx@MakeMarkcase{#1}}\fi}
+ {\@mkright{\abx@MakeMarkcase{#1}}}}
+ \defbibheading{subbibintoc}[\refname]{%
+ \subsection*{#1}%
+ \addcontentsline{toc}{subsection}{#1}%
+ \ifcsundef{@mkright}
+ {\ifx\@mkboth\@gobbletwo\else\markright{\abx@MakeMarkcase{#1}}\fi}
+ {\@mkright{\abx@MakeMarkcase{#1}}}}
+ \defbibheading{subbibnumbered}[\refname]{%
+ \subsection{#1}}
+
+\or % scrbook/scrreprt
+ \defbibheading{bibliography}[\bibname]{%
+ \ifcsundef{bibliography@heading}
+ {\ifkomabibtotocnumbered
+ {\chapter{#1}}
+ {\ifkomabibtotoc
+ {\addchap{#1}}
+ {\chapter*{#1}
+ \ifcsundef{@mkdouble}
+ {\@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ {\@mkdouble{\abx@MakeMarkcase{#1}}}}}}
+ {\bibliography@heading{#1}}}
+ \defbibheading{biblist}[\biblistname]{%
+ \ifcsundef{bibliography@heading}
+ {\ifkomabibtotocnumbered
+ {\chapter{#1}}
+ {\ifkomabibtotoc
+ {\addchap{#1}}
+ {\chapter*{#1}
+ \ifcsundef{@mkdouble}
+ {\@mkboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}}
+ {\@mkdouble{\abx@MakeMarkcase{#1}}}}}}
+ {\bibliography@heading{#1}}}
+ \defbibheading{bibintoc}[\bibname]{%
+ \addchap{#1}}
+ \defbibheading{biblistintoc}[\biblistname]{%
+ \addchap{#1}}
+ \defbibheading{bibnumbered}[\bibname]{%
+ \chapter{#1}}
+ \defbibheading{biblistnumbered}[\biblistname]{%
+ \chapter{#1}}
+ \defbibheading{subbibliography}[\refname]{%
+ \section*{#1}%
+ \ifcsundef{@mkright}
+ {\ifx\@mkboth\@gobbletwo\else\markright{\abx@MakeMarkcase{#1}}\fi}
+ {\@mkright{\abx@MakeMarkcase{#1}}}}
+ \defbibheading{subbibintoc}[\refname]{%
+ \addsec{#1}}
+ \defbibheading{subbibnumbered}[\refname]{%
+ \section{#1}}
+
+\or % memoir (article)
+ \ifcsundef{memUChead}{}{\def\abx@MakeMarkcase{\memUChead}}%
+ \defbibheading{bibliography}[\refname]{%
+ \chapter*{#1}%
+ \if@twoside
+ \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}%
+ \else
+ \markright{\abx@MakeMarkcase{#1}}%
+ \fi
+ \ifmemoirbibintoc
+ {\phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+ {}}
+ \defbibheading{biblist}[\biblistname]{%
+ \chapter*{#1}%
+ \if@twoside
+ \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}%
+ \else
+ \markright{\abx@MakeMarkcase{#1}}%
+ \fi
+ \ifmemoirbibintoc
+ {\phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+ {}}
+ \defbibheading{bibintoc}[\refname]{%
+ \chapter*{#1}%
+ \if@twoside
+ \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}%
+ \else
+ \markright{\abx@MakeMarkcase{#1}}%
+ \fi
+ \phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+ \defbibheading{biblistintoc}[\biblistname]{%
+ \chapter*{#1}%
+ \if@twoside
+ \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}%
+ \else
+ \markright{\abx@MakeMarkcase{#1}}%
+ \fi
+ \phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+ \defbibheading{bibnumbered}[\refname]{%
+ \chapter{#1}}
+ \defbibheading{biblistnumbered}[\biblistname]{%
+ \chapter{#1}}
+ \defbibheading{subbibliography}[\refname]{%
+ \section*{#1}%
+ \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi
+ \ifmemoirbibintoc
+ {\phantomsection
+ \addcontentsline{toc}{section}{#1}}
+ {}}
+ \defbibheading{subbibintoc}[\refname]{%
+ \section*{#1}%
+ \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi
+ \phantomsection
+ \addcontentsline{toc}{section}{#1}}
+ \defbibheading{subbibnumbered}[\refname]{%
+ \section{#1}}
+
+\or % memoir (book)
+ \ifcsundef{memUChead}{}{\def\abx@MakeMarkcase{\memUChead}}%
+ \defbibheading{bibliography}[\bibname]{%
+ \chapter*{#1}%
+ \if@twoside
+ \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}%
+ \else
+ \markright{\abx@MakeMarkcase{#1}}%
+ \fi
+ \ifmemoirbibintoc
+ {\phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+ {}}
+ \defbibheading{biblist}[\biblistname]{%
+ \chapter*{#1}%
+ \if@twoside
+ \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}%
+ \else
+ \markright{\abx@MakeMarkcase{#1}}%
+ \fi
+ \ifmemoirbibintoc
+ {\phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+ {}}
+ \defbibheading{bibintoc}[\bibname]{%
+ \chapter*{#1}%
+ \if@twoside
+ \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}%
+ \else
+ \markright{\abx@MakeMarkcase{#1}}%
+ \fi
+ \phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+ \defbibheading{biblistintoc}[\biblistname]{%
+ \chapter*{#1}%
+ \if@twoside
+ \markboth{\abx@MakeMarkcase{#1}}{\abx@MakeMarkcase{#1}}%
+ \else
+ \markright{\abx@MakeMarkcase{#1}}%
+ \fi
+ \phantomsection
+ \addcontentsline{toc}{chapter}{#1}}
+ \defbibheading{bibnumbered}[\bibname]{%
+ \chapter{#1}}
+ \defbibheading{biblistnumbered}[\biblistname]{%
+ \chapter{#1}}
+ \defbibheading{subbibliography}[\refname]{%
+ \section*{#1}%
+ \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi
+ \ifmemoirbibintoc
+ {\phantomsection
+ \addcontentsline{toc}{section}{#1}}
+ {}}
+ \defbibheading{subbibintoc}[\refname]{%
+ \section*{#1}%
+ \if@twoside\markright{\abx@MakeMarkcase{#1}}\fi
+ \phantomsection
+ \addcontentsline{toc}{section}{#1}}
+ \defbibheading{subbibnumbered}[\refname]{%
+ \section{#1}}
+
+\fi
+
+% ------------------------------------------------------------------
+% GENERIC CITATION COMMANDS
+% ------------------------------------------------------------------
+
+\DeclareCiteCommand{\fullcite}
+ {\usebibmacro{prenote}}
+ {\usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footfullcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeauthor}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\ifciteindex
+ {\indexnames{labelname}}
+ {}%
+ \printnames{labelname}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\citeauthor}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\ifciteindex
+ {\indexnames{labelname}}
+ {}%
+ \printnames[][1-1]{labelname}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citetitle}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\ifciteindex
+ {\indexfield{indextitle}}
+ {}%
+ \printfield[citetitle]{labeltitle}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\citetitle}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\ifciteindex
+ {\indexfield{indextitle}}
+ {}%
+ \printfield[citetitle]{title}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeyear}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\printfield{year}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\citeyear}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\printfield{year}\printfield{extradate}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citedate}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\printdate}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\citedate}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\printdateextra}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeurl}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\printfield[citeurl]{url}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\notecite}
+ {\printfield{prenote}%
+ \setunit*{\printdelim{prenotedelim}}}
+ {\nocite{\thefield{entrykey}}}
+ {}
+ {\printfield{postnote}}
+
+\DeclareCiteCommand{\pnotecite}[\mkbibparens]
+ {\printfield{prenote}%
+ \setunit*{\printdelim{prenotedelim}}}
+ {\nocite{\thefield{entrykey}}}
+ {}
+ {\printfield{postnote}}
+
+\DeclareCiteCommand{\fnotecite}[\mkbibfootnote]
+ {\printfield{prenote}%
+ \setunit*{\printdelim{prenotedelim}}}
+ {\nocite{\thefield{entrykey}}}
+ {}
+ {\printfield{postnote}}
+
+\newrobustcmd*{\volcite}{\volcitecmd\cite}
+\newrobustcmd*{\pvolcite}{\volcitecmd\parencite}
+\newrobustcmd*{\fvolcite}{\volcitecmd\footcite}
+\newrobustcmd*{\ftvolcite}{\volcitecmd\footcitetext}
+\newrobustcmd*{\svolcite}{\volcitecmd\smartcite}
+\newrobustcmd*{\tvolcite}{\volcitecmd\textcite}
+\newrobustcmd*{\avolcite}{\volcitecmd\autocite}
+
+\newrobustcmd*{\volcites}{\multivolcitecmd\cites}
+\newrobustcmd*{\pvolcites}{\multivolcitecmd\parencites}
+\newrobustcmd*{\fvolcites}{\multivolcitecmd\footcites}
+\newrobustcmd*{\ftvolcites}{\multivolcitecmd\footcitetexts}
+\newrobustcmd*{\svolcites}{\multivolcitecmd\smartcites}
+\newrobustcmd*{\tvolcites}{\multivolcitecmd\textcites}
+\newrobustcmd*{\avolcites}{\multivolcitecmd\autocites}
+
+\newrobustcmd*{\Cite}{\bibsentence\cite}
+\newrobustcmd*{\Parencite}{\bibsentence\parencite}
+\newrobustcmd*{\Footcite}{\footcite}
+\newrobustcmd*{\Footcitetext}{\footcitetext}
+\newrobustcmd*{\Smartcite}{\bibsentence\smartcite}
+\newrobustcmd*{\Textcite}{\bibsentence\textcite}
+\newrobustcmd*{\Citeauthor}{%
+ \@ifstar{\bibsentence\citeauthor*}{\bibsentence\citeauthor}}
+\newrobustcmd*{\Citetitle}{\bibsentence\citetitle}
+
+\newrobustcmd*{\Volcite}{\volcitecmd\Cite}
+\newrobustcmd*{\Pvolcite}{\volcitecmd\Parencite}
+\newrobustcmd*{\Fvolcite}{\volcitecmd\Footcite}
+\newrobustcmd*{\Ftvolcite}{\volcitecmd\Footcitetext}
+\newrobustcmd*{\Svolcite}{\volcitecmd\Smartcite}
+\newrobustcmd*{\Tvolcite}{\volcitecmd\Textcite}
+\newrobustcmd*{\Avolcite}{\volcitecmd\Autocite}
+
+\newrobustcmd*{\Volcites}{\multivolcitecmd\Cites}
+\newrobustcmd*{\Pvolcites}{\multivolcitecmd\Parencites}
+\newrobustcmd*{\Fvolcites}{\multivolcitecmd\Footcites}
+\newrobustcmd*{\Ftvolcites}{\multivolcitecmd\Footcitetext}
+\newrobustcmd*{\Svolcites}{\multivolcitecmd\Smartcites}
+\newrobustcmd*{\Tvolcites}{\multivolcitecmd\Textcites}
+\newrobustcmd*{\Avolcites}{\multivolcitecmd\Autocites}
+
+\newrobustcmd*{\Notecite}{\bibsentence\notecite}
+\newrobustcmd*{\Pnotecite}{\bibsentence\pnotecite}
+\newrobustcmd*{\Fnotecite}{\fnotecite}
+
+\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}
+\DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite}{\multicitedelim}
+\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite}{\multicitedelim}
+\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]
+ {\footcitetext}{\multicitedelim}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\smartcite}{\multicitedelim}
+\DeclareMultiCiteCommand{\supercites}[\mkbibsuperscript]
+ {\supercite}{\supercitedelim}
+\DeclareMultiCiteCommand{\textcites}{\textcite}{\multicitedelim}
+
+\newrobustcmd*{\Cites}{\bibsentence\cites}
+\newrobustcmd*{\Parencites}{\bibsentence\parencites}
+\newrobustcmd*{\Footcites}{\footcites}
+\newrobustcmd*{\Footcitetexts}{\footcitetexts}
+\newrobustcmd*{\Smartcites}{\bibsentence\smartcites}
+\newrobustcmd*{\Textcites}{\bibsentence\textcites}
+
+\DeclareAutoCiteCommand{plain}{\cite}{\cites}
+\DeclareAutoCiteCommand{inline}{\parencite}{\parencites}
+%\DeclareAutoCiteCommand{footnote}[l]{\footcite}{\footcites}
+\DeclareAutoCiteCommand{footnote}[f]{\smartcite}{\smartcites}
+\DeclareAutoCiteCommand{superscript}[l]{\supercite}{\supercites}
+
+\newrobustcmd*{\Autocite}{\bibsentence\autocite}
+\newrobustcmd*{\Autocites}{\bibsentence\autocites}
+
+% ------------------------------------------------------------------
+% GENERIC CITATION MACROS
+% ------------------------------------------------------------------
+
+\newbibmacro*{citeindex}{%
+ \ifciteindex
+ {\indexnames{labelname}%
+ \indexfield{indextitle}}
+ {}}
+
+\newbibmacro*{shorthandintro}{%
+ \iffieldundef{shorthandintro}
+ {\iffieldundef{shorthand}
+ {}
+ {\setunit{\addspace}%
+ \printtext[parens]{%
+ \bibstring{citedas}\space
+ \printfield{shorthand}}}}
+ {\setunit{\addspace}%
+ \printtext[parens]{\printfield{shorthandintro}}}}
+
+% citation commands
+
+\newbibmacro*{prenote}{%
+ \iffieldundef{prenote}
+ {}
+ {\printfield{prenote}%
+ \setunit{\printdelim{prenotedelim}}}}
+
+\newbibmacro*{postnote}{%
+ \iffieldundef{postnote}
+ {}
+ {\setunit{\printdelim{postnotedelim}}%
+ \printfield{postnote}}}
+
+% multicite commands
+
+\newbibmacro*{multiprenote}{%
+ \iffieldundef{multiprenote}
+ {}
+ {\printfield{multiprenote}%
+ \printdelim{multiprenotedelim}}}
+
+\newbibmacro*{multipostnote}{%
+ \iffieldundef{multipostnote}
+ {}
+ {\printdelim{multipostnotedelim}
+ \printfield{multipostnote}}}
+
+% ------------------------------------------------------------------
+% GENERIC BIBLIOGRAPHY MACROS
+% ------------------------------------------------------------------
+
+\newbibmacro*{bibindex}{%
+ \ifbibindex
+ {\indexnames{labelname}%
+ \indexfield{indextitle}}
+ {}}
+
+\newbibmacro*{author/editor}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{author}}
+ {\usebibmacro{editor}}}
+
+\newbibmacro*{author/editor+others}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{author}}
+ {\usebibmacro{editor+others}}}
+
+\newbibmacro*{author/translator}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{author}}
+ {\usebibmacro{translator}}}
+
+\newbibmacro*{author/translator+others}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{author}}
+ {\usebibmacro{translator+others}}}
+
+\newbibmacro*{author/editor/translator}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{author}}
+ {\ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\usebibmacro{editor}}
+ {\usebibmacro{translator}}}}
+
+\newbibmacro*{author/editor+others/translator+others}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{author}}
+ {\ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\usebibmacro{editor+others}}
+ {\usebibmacro{translator+others}}}}
+
+\newbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\printnames{author}%
+ \iffieldundef{authortype}
+ {}
+ {\setunit{\printdelim{authortypedelim}}%
+ \usebibmacro{authorstrg}}}
+ {}}
+
+\newbibmacro*{editor}{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\printnames{editor}%
+ \setunit{\printdelim{editortypedelim}}%
+ \usebibmacro{editorstrg}%
+ \clearname{editor}}
+ {}}
+
+\newbibmacro*{editor+others}{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\printnames{editor}%
+ \setunit{\printdelim{editortypedelim}}%
+ \usebibmacro{editor+othersstrg}%
+ \clearname{editor}}
+ {}}
+
+\newbibmacro*{translator}{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\printnames{translator}%
+ \setunit{\printdelim{translatortypedelim}}%
+ \usebibmacro{translatorstrg}%
+ \clearname{translator}}
+ {}}
+
+\newbibmacro*{translator+others}{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\printnames{translator}%
+ \setunit{\printdelim{translatortypedelim}}%
+ \usebibmacro{translator+othersstrg}%
+ \clearname{translator}}
+ {}}
+
+\newbibmacro*{authorstrg}{%
+ \iffieldundef{authortype}
+ {}
+ {\printtext[authortype]{%
+ \ifbibxstring{\thefield{authortype}}
+ {\ifboolexpr{
+ test {\ifnumgreater{\value{author}}{1}}
+ or
+ test {\ifandothers{author}}
+ }
+ {\bibstring{\thefield{authortype}s}}
+ {\bibstring{\thefield{authortype}}}}
+ {\thefield{authortype}}}}}
+
+\newbibmacro*{editorstrg}{%
+ \printtext[editortype]{%
+ \iffieldundef{editortype}
+ {\ifboolexpr{
+ test {\ifnumgreater{\value{editor}}{1}}
+ or
+ test {\ifandothers{editor}}
+ }
+ {\bibstring{editors}}
+ {\bibstring{editor}}}
+ {\ifbibxstring{\thefield{editortype}}
+ {\ifboolexpr{
+ test {\ifnumgreater{\value{editor}}{1}}
+ or
+ test {\ifandothers{editor}}
+ }
+ {\bibstring{\thefield{editortype}s}}
+ {\bibstring{\thefield{editortype}}}}
+ {\thefield{editortype}}}}}
+
+\newbibmacro*{editor+othersstrg}{%
+ \iffieldundef{editortype}
+ {\ifboolexpr{
+ test {\ifnumgreater{\value{editor}}{1}}
+ or
+ test {\ifandothers{editor}}
+ }
+ {\def\abx@tempa{editors}}
+ {\def\abx@tempa{editor}}}
+ {\ifboolexpr{
+ test {\ifnumgreater{\value{editor}}{1}}
+ or
+ test {\ifandothers{editor}}
+ }
+ {\edef\abx@tempa{\thefield{editortype}s}}
+ {\edef\abx@tempa{\thefield{editortype}}}}%
+ \let\abx@tempb=\empty
+ \ifnamesequal{editor}{translator}
+ {\appto\abx@tempa{tr}%
+ \appto\abx@tempb{\clearname{translator}}}
+ {}%
+ \ifnamesequal{editor}{commentator}
+ {\appto\abx@tempa{co}%
+ \appto\abx@tempb{\clearname{commentator}}}
+ {\ifnamesequal{editor}{annotator}
+ {\appto\abx@tempa{an}%
+ \appto\abx@tempb{\clearname{annotator}}}
+ {}}%
+ \ifnamesequal{editor}{introduction}
+ {\appto\abx@tempa{in}%
+ \appto\abx@tempb{\clearname{introduction}}}
+ {\ifnamesequal{editor}{foreword}
+ {\appto\abx@tempa{fo}%
+ \appto\abx@tempb{\clearname{foreword}}}
+ {\ifnamesequal{editor}{afterword}
+ {\appto\abx@tempa{af}%
+ \appto\abx@tempb{\clearname{afterword}}}
+ {}}}%
+ \ifbibxstring{\abx@tempa}
+ {\printtext[editortype]{\bibstring{\abx@tempa}}\abx@tempb}
+ {\usebibmacro{editorstrg}}}
+
+\newbibmacro*{translatorstrg}{%
+ \printtext[translatortype]{%
+ \ifboolexpr{
+ test {\ifnumgreater{\value{translator}}{1}}
+ or
+ test {\ifandothers{translator}}
+ }
+ {\bibstring{translators}}
+ {\bibstring{translator}}}}
+
+\newbibmacro*{translator+othersstrg}{%
+ \ifboolexpr{
+ test {\ifnumgreater{\value{translator}}{1}}
+ or
+ test {\ifandothers{translator}}
+ }
+ {\def\abx@tempa{translators}}
+ {\def\abx@tempa{translator}}%
+ \ifnamesequal{translator}{commentator}
+ {\appto\abx@tempa{co}%
+ \clearname{commentator}}
+ {\ifnamesequal{translator}{annotator}
+ {\appto\abx@tempa{an}%
+ \clearname{annotator}}
+ {}}%
+ \ifnamesequal{translator}{introduction}
+ {\appto\abx@tempa{in}%
+ \clearname{introduction}}
+ {\ifnamesequal{translator}{foreword}
+ {\appto\abx@tempa{fo}%
+ \clearname{foreword}}
+ {\ifnamesequal{translator}{afterword}
+ {\appto\abx@tempa{af}%
+ \clearname{afterword}}
+ {}}}%
+ \printtext[translatortype]{\bibstring{\abx@tempa}}}
+
+\newbibmacro*{byauthor}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ or
+ test {\ifnameundef{author}}
+ }
+ {}
+ {\usebibmacro{bytypestrg}{author}{author}%
+ \setunit{\addspace}%
+ \printnames[byauthor]{author}}}
+
+\newbibmacro*{bybookauthor}{%
+ \ifnamesequal{author}{bookauthor}
+ {}
+ {\printnames{bookauthor}}}
+
+\newbibmacro*{byeditor}{%
+ \ifnameundef{editor}
+ {}
+ {\usebibmacro{bytypestrg}{editor}{editor}%
+ \setunit{\addspace}%
+ \printnames[byeditor]{editor}%
+ \newunit}%
+ \usebibmacro{byeditorx}}
+
+\newbibmacro*{byeditorx}{%
+ \ifnameundef{editora}
+ {}
+ {\usebibmacro{bytypestrg}{editora}{editor}%
+ \setunit{\addspace}%
+ \printnames[byeditora]{editora}%
+ \newunit}%
+ \ifnameundef{editorb}
+ {}
+ {\usebibmacro{bytypestrg}{editorb}{editor}%
+ \setunit{\addspace}%
+ \printnames[byeditorb]{editorb}%
+ \newunit}%
+ \ifnameundef{editorc}
+ {}
+ {\usebibmacro{bytypestrg}{editorc}{editor}%
+ \setunit{\addspace}%
+ \printnames[byeditorc]{editorc}%
+ \newunit}}
+
+\newbibmacro*{bytranslator}{%
+ \ifnameundef{translator}
+ {}
+ {\bibstring{bytranslator}%
+ \setunit{\addspace}%
+ \printnames[bytranslator]{translator}}}
+
+\newbibmacro*{byholder}{%
+ \printnames{holder}}
+
+\newbibmacro*{byeditor+others}{%
+ \ifnameundef{editor}
+ {}
+ {\usebibmacro{byeditor+othersstrg}%
+ \setunit{\addspace}%
+ \printnames[byeditor]{editor}%
+ \clearname{editor}%
+ \newunit}%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}}
+
+\newbibmacro*{bytranslator+others}{%
+ \ifnameundef{translator}
+ {}
+ {\usebibmacro{bytranslator+othersstrg}%
+ \setunit{\addspace}%
+ \printnames[bytranslator]{translator}%
+ \clearname{translator}%
+ \newunit}%
+ \usebibmacro{withothers}}
+
+\newbibmacro*{bytypestrg}[2]{%
+ \iffieldundef{#1type}
+ {\bibstring{by#2}}
+ {\ifbibxstring{by\thefield{#1type}}
+ {\bibstring{by\thefield{#1type}}}
+ {\printtext{\thefield{#1type}}}}}
+
+\newbibmacro*{byeditor+othersstrg}{%
+ \iffieldundef{editortype}
+ {\def\abx@tempa{byeditor}}
+ {\edef\abx@tempa{by\thefield{editortype}}}%
+ \let\abx@tempb=\empty
+ \ifnamesequal{editor}{translator}
+ {\appto\abx@tempa{tr}%
+ \appto\abx@tempb{\clearname{translator}}}
+ {}%
+ \ifnamesequal{editor}{commentator}
+ {\appto\abx@tempa{co}%
+ \appto\abx@tempb{\clearname{commentator}}}
+ {\ifnamesequal{editor}{annotator}
+ {\appto\abx@tempa{an}%
+ \appto\abx@tempb{\clearname{annotator}}}
+ {}}%
+ \ifnamesequal{editor}{introduction}
+ {\appto\abx@tempa{in}%
+ \appto\abx@tempb{\clearname{introduction}}}
+ {\ifnamesequal{editor}{foreword}
+ {\appto\abx@tempa{fo}%
+ \appto\abx@tempb{\clearname{foreword}}}
+ {\ifnamesequal{editor}{afterword}
+ {\appto\abx@tempa{af}%
+ \appto\abx@tempb{\clearname{afterword}}}
+ {}}}%
+ \ifbibxstring{\abx@tempa}
+ {\printtext{\bibstring{\abx@tempa}}\abx@tempb}
+ {\usebibmacro{bytypestrg}{editor}{editor}}}
+
+\newbibmacro*{bytranslator+othersstrg}{%
+ \def\abx@tempa{bytranslator}%
+ \ifnamesequal{translator}{commentator}
+ {\appto\abx@tempa{co}%
+ \clearname{commentator}}
+ {\ifnamesequal{translator}{annotator}
+ {\appto\abx@tempa{an}%
+ \clearname{annotator}}
+ {}}%
+ \ifnamesequal{translator}{introduction}
+ {\appto\abx@tempa{in}%
+ \clearname{introduction}}
+ {\ifnamesequal{translator}{foreword}
+ {\appto\abx@tempa{fo}%
+ \clearname{foreword}}
+ {\ifnamesequal{translator}{afterword}
+ {\appto\abx@tempa{af}%
+ \clearname{afterword}}
+ {}}}%
+ \bibstring{\abx@tempa}}
+
+\newbibmacro*{withcommentator}{%
+ \ifnameundef{commentator}
+ {}
+ {\bibstring{withcommentator}%
+ \setunit{\addspace}%
+ \printnames[withcommentator]{commentator}}}
+
+\newbibmacro*{withannotator}{%
+ \ifnameundef{annotator}
+ {}
+ {\bibstring{withannotator}%
+ \setunit{\addspace}%
+ \printnames[withannotator]{annotator}}}
+
+\newbibmacro*{withintroduction}{%
+ \ifnameundef{introduction}
+ {}
+ {\bibstring{withintroduction}%
+ \setunit{\addspace}%
+ \printnames[withintroduction]{introduction}}}
+
+\newbibmacro*{withforeword}{%
+ \ifnameundef{foreword}
+ {}
+ {\bibstring{withforeword}%
+ \setunit{\addspace}%
+ \printnames[withforeword]{foreword}}}
+
+\newbibmacro*{withafterword}{%
+ \ifnameundef{afterword}
+ {}
+ {\bibstring{withafterword}%
+ \setunit{\addspace}%
+ \printnames[withafterword]{afterword}}}
+
+\newbibmacro*{withothers}{%
+ \usebibmacro{withcommentator}%
+ \clearname{commentator}%
+ \newunit
+ \usebibmacro{withannotator}%
+ \clearname{annotator}%
+ \newunit
+ \usebibmacro{withintroduction}%
+ \clearname{introduction}%
+ \newunit
+ \usebibmacro{withforeword}%
+ \clearname{foreword}%
+ \newunit
+ \usebibmacro{withafterword}%
+ \clearname{afterword}}
+
+\newbibmacro*{title}{%
+ \ifboolexpr{
+ test {\iffieldundef{title}}
+ and
+ test {\iffieldundef{subtitle}}
+ }
+ {}
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{subtitle}}%
+ \newunit}%
+ \printfield{titleaddon}}
+
+\newbibmacro*{booktitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{booktitle}}
+ and
+ test {\iffieldundef{booksubtitle}}
+ }
+ {}
+ {\printtext[booktitle]{%
+ \printfield[titlecase]{booktitle}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{booksubtitle}}%
+ \newunit}%
+ \printfield{booktitleaddon}}
+
+\newbibmacro*{maintitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{maintitle}}
+ and
+ test {\iffieldundef{mainsubtitle}}
+ }
+ {}
+ {\printtext[maintitle]{%
+ \printfield[titlecase]{maintitle}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{mainsubtitle}}%
+ \newunit}%
+ \printfield{maintitleaddon}}
+
+\newbibmacro*{journal}{%
+ \ifboolexpr{
+ test {\iffieldundef{journaltitle}}
+ and
+ test {\iffieldundef{journalsubtitle}}
+ }
+ {}
+ {\printtext[journaltitle]{%
+ \printfield[titlecase]{journaltitle}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{journalsubtitle}}}}
+
+\newbibmacro*{periodical}{%
+ \ifboolexpr{
+ test {\iffieldundef{title}}
+ and
+ test {\iffieldundef{subtitle}}
+ }
+ {}
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{subtitle}}}}
+
+\newbibmacro*{issue}{%
+ \ifboolexpr{
+ test {\iffieldundef{issuetitle}}
+ and
+ test {\iffieldundef{issuesubtitle}}
+ }
+ {}
+ {\printtext[issuetitle]{%
+ \printfield[titlecase]{issuetitle}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{issuesubtitle}}}}
+
+\newbibmacro*{in:}{%
+ \printtext{%
+ \bibstring{in}\intitlepunct}}
+
+\newbibmacro*{date}{\printdate}
+
+\newbibmacro*{url+urldate}{%
+ \usebibmacro{url}%
+ \iffieldundef{urlyear}
+ {}
+ {\setunit*{\addspace}%
+ \usebibmacro{urldate}}}
+
+\newbibmacro*{url}{\printfield{url}}
+\newbibmacro*{urldate}{\printurldate}
+
+\newbibmacro*{pageref}{%
+ \iflistundef{pageref}
+ {}
+ {\printtext[parens]{%
+ \ifnumgreater{\value{pageref}}{1}
+ {\bibstring{backrefpages}\ppspace}
+ {\bibstring{backrefpage}\ppspace}%
+ \printlist[pageref][-\value{listtotal}]{pageref}}}}
+
+\newbibmacro*{setpageref}{%
+ \iflistundef{pageref}
+ {}
+ {\printtext{%
+ \ifnumgreater{\value{pageref}}{1}
+ {\bibstring{backrefpages}\ppspace}
+ {\bibstring{backrefpage}\ppspace}%
+ \printlist[pageref][-\value{listtotal}]{pageref}}}}
+
+\newbibmacro*{eprint}{%
+ \iffieldundef{eprinttype}
+ {\printfield{eprint}}
+ {\printfield[eprint:\strfield{eprinttype}]{eprint}}}
+
+\newbibmacro*{annotation}{%
+ \iffieldundef{annotation}
+ {\printfile[annotation]{\bibannotationprefix\thefield{entrykey}.tex}}
+ {\printfield{annotation}}}
+
+\newbibmacro*{abstract}{%
+ \iffieldundef{abstract}
+ {\printfile[abstract]{\bibabstractprefix\thefield{entrykey}.tex}}
+ {\printfield{abstract}}}
+
+\newbibmacro*{related:default}[1]{%
+ \entrydata*{#1}{%
+ \usedriver
+ {\ifnameundef{savedauthor}
+ {\ifnameundef{savededitor}
+ {}
+ {\ifnamesequal{editor}{savededitor}
+ {\clearname{editor}}
+ {}}}
+ {\ifnamesequal{author}{savedauthor}
+ {\clearname{author}}
+ {}}%
+ \renewbibmacro*{related:init}{}%
+ \DeclareNameAlias{sortname}{default}%
+ \ifbibmacroundef{date+extradate}
+ {}
+ {\renewbibmacro*{date+extradate}{}%
+ \renewbibmacro*{date}{\printdate}}%
+ \renewbibmacro*{pageref}{}}
+ {\thefield{entrytype}}}}
+
+\newbibmacro*{related:bytranslator}[1]{%
+ \entrydata{#1}{%
+ \renewbibmacro*{name:hook}[1]{%
+ \ifnumequal{\value{listcount}}{1}
+ {\begingroup
+ \mkrelatedstring%
+ \lbx@initnamehook{#1}%
+ \endgroup}
+ {}}%
+ \printnames[bytranslator]{translator}%
+ \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
+ \usebibmacro{title}%
+ \setunit{\addspace}%
+ \printtext[parens]{%
+ \printlist{location}%
+ \iflistundef{publisher}
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\addcolon\space}}%
+ \printlist{publisher}%
+ \setunit*{\addcomma\space}%
+ \printdate}}}
+
+\newbibmacro*{related:multivolume}[1]{%
+ \entrydata*{#1}{%
+ \printtext{%
+ \printfield{volume}%
+ \printfield{part}}%
+ \setunit*{\addcolon\space}%
+ \usebibmacro{title}%
+ \ifboolexpr{
+ test {\ifnamesequal{author}{savedauthor}}
+ or
+ test {\ifnameundef{author}}
+ }
+ {}
+ {\usebibmacro{bytypestrg}{author}{author}%
+ \setunit{\addspace}%
+ \printnames[byauthor]{author}
+ \newunit\newblock}%
+ \ifboolexpr{
+ test {\ifnamesequal{editor}{savededitor}}
+ or
+ test {\ifnameundef{editor}}
+ }
+ {}
+ {\usebibmacro{byeditor+others}%
+ \newunit\newblock}%
+ \printdate}}
+
+\newbibmacro*{related:origpubin}[1]{%
+ \entrydata*{#1}{%
+ \printfield{year}%
+ \ifboolexpr{
+ test {\iflistsequal{publisher}{savedpublisher}}
+ or
+ test {\iflistundef{publisher}}
+ }
+ {}
+ {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}%
+ \printlist{publisher}%
+ \setunit{\addcomma\space}%
+ \iflistsequal{location}{savedlocation}
+ {}
+ {\printlist{location}}}}}
+
+\newbibmacro*{related:origpubas}[1]{%
+ \entrydata*{#1}{%
+ \usebibmacro{title}%
+ \ifboolexpr{
+ test {\iflistsequal{publisher}{savedpublisher}}
+ or
+ test {\iflistundef{publisher}}
+ }
+ {}
+ {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}%
+ \printlist{publisher}%
+ \setunit{\addcomma\space}%
+ \iflistsequal{location}{savedlocation}
+ {}
+ {\printlist{location}}}}}
+
+\DeclareFieldFormat{title:hook}{%
+ \begingroup
+ \mkrelatedstring%
+ \lbx@inittitlehook{#1}%
+ \endgroup
+ \mkbibemph{#1}}
+
+\newbibmacro*{related:reprintfrom}[1]{%
+ \entrydata*{#1}{%
+ \iffieldundef{journaltitle}
+ {\iffieldundef{maintitle}
+ {\printfield[title:hook]{booktitle}}
+ {\printfield[title:hook]{maintitle}}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{volume}
+ {}
+ {\printfield{volume}%
+ \printfield{part}}
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}}
+ {\renewbibmacro*{journal}{%
+ \printfield[title:hook]{journaltitle}}%
+ \usebibmacro{journal+issuetitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \usebibmacro{note+pages}}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/biblatex.sty b/macros/latex/contrib/biblatex/latex/biblatex.sty
new file mode 100644
index 0000000000..60f1674d7f
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/biblatex.sty
@@ -0,0 +1,15280 @@
+% Copyright (c) 2006-2011 Philipp Lehman.
+% 2012-2017 Philip Kime, Audrey Boruvka, Joseph Wright
+% 2018- Philip Kime, Moritz Wemheuer
+%
+% Permission is granted to copy, distribute and/or modify this
+% software under the terms of the LaTeX Project Public License
+% (LPPL), version 1.3c.
+%
+% This software is provided 'as is', without warranty of any kind,
+% either expressed or implied, including, but not limited to, the
+% implied warranties of merchantability and fitness for a
+% particular purpose.
+
+% Set up the version strings here
+\def\abx@date{2019/08/31}
+\def\abx@version{3.13a}
+\def\abx@bbxid{\abx@date\space v\abx@version\space biblatex bibliography style (PK/MW)}
+\def\abx@cbxid{\abx@date\space v\abx@version\space biblatex citation style (PK/MW)}
+\def\abx@lbxid{\abx@date\space v\abx@version\space biblatex localization (PK/MW)}
+\def\abx@cptid{\abx@date\space v\abx@version\space biblatex compatibility (PK/MW)}
+
+% This is not updated by build script as the control file version
+% does not necessarily change with the package version.
+% This is used when writing the .bcf
+\def\blx@bcfversion{3.6}
+
+% This is not updated by build script as the bbl version
+% does not necessarily change with the package version.
+% This is used when checking the .bbl
+\def\blx@bblversion{3.1}
+
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{biblatex}
+[\abx@date\space v\abx@version\space programmable bibliographies (PK/MW)]
+
+%% Dependencies
+\RequirePackage{pdftexcmds}[2018/01/30]
+\RequirePackage{etoolbox}
+\RequirePackage{keyval}
+\RequirePackage{kvoptions}
+\RequirePackage{logreq}
+\RequirePackage{ifthen}
+\RequirePackage{url}
+%\RequirePackage{trace}
+
+\@ifpackagelater{etoolbox}{2010/11/29}
+ {}
+ {\PackageError{biblatex}
+ {Outdated 'etoolbox' package}
+ {Upgrade to etoolbox v2.1 (2010/11/29) or later.\MessageBreak
+ I found: '\csuse{ver@etoolbox.sty}'.\MessageBreak
+ This is a fatal error. I'm aborting now}%
+ \endinput}
+
+% polyglossia pretends to be babel, so we need to make sure
+% we are definitely talking to babel here.
+\AtEndPreamble{%
+ \@ifpackageloaded{polyglossia}
+ {}
+ {\@ifpackageloaded{babel}
+ {\@ifpackagelater{babel}{2016/04/23}
+ {}
+ {\PackageError{biblatex}
+ {Outdated 'babel' package}
+ {Upgrade to babel 3.9r (2016/04/23) or later.\MessageBreak
+ I found: '\csuse{ver@babel.sty}'.\MessageBreak
+ This is a fatal error. I'm aborting now}%
+ \endinput}}
+ {}}}
+
+%% Category codes
+
+\def\blx@docatcodes{%
+ \do\=\do\<\do\>\do\-\do\"\do\'\do\`\do\.%
+ \do\,\do\;\do\:\do\!\do\?\do\/}
+\def\do#1{\catcode\number`#1=\the\catcode`#1\relax}
+\edef\blx@catcodes{\blx@docatcodes\do\^\do\~\do\&\do\|}
+\let\do\noexpand
+
+\def\blx@saneccodes{%
+ \catcode`\~=\active
+ \let\do\@makeother
+ \blx@docatcodes
+ \let\do\noexpand}
+
+\blx@saneccodes
+\catcode`\&=3
+\catcode`\|=3
+\catcode`\^=7
+\def\blx@nl{^^J}
+
+\protected\def\blx@safe@actives{%
+ \let\blx@if@safe@actives\if@safe@actives
+ \let\if@safe@actives\iftrue}
+
+\protected\def\blx@rest@actives{%
+ \let\if@safe@actives\blx@if@safe@actives}
+
+%% Early errors and warnings
+\protected\def\blx@error#1#2{%
+ \begingroup
+ \blx@safe@actives
+ \PackageError{biblatex}{#1}{#2.}%
+ \endgroup}
+
+\protected\def\blx@warning@noline#1{%
+ \begingroup
+ \blx@safe@actives
+ \PackageWarningNoLine{biblatex}{#1}%
+ \endgroup}
+\let\blx@warning\blx@warning@noline
+\AtEndOfPackage{%
+ \protected\def\blx@warning#1{%
+ \begingroup
+ \blx@safe@actives
+ \PackageWarning{biblatex}{#1}%
+ \endgroup}}
+
+%% Compatibility
+\def\blx@packageincompatibility{%
+ \def\do##1{%
+ \@ifpackageloaded{##1}
+ {\ifcsundef{blx@pkgloaded@##1}
+ {\global\cslet{blx@pkgloaded@##1}\@empty
+ \blx@error
+ {Incompatible package '##1'}
+ {The '##1' package and biblatex are incompatible}}
+ {}}
+ {}}%
+ \docsvlist{%
+ amsrefs,apacite,babelbib,backref,bibtopic,bibunits,chapterbib,
+ cite,citeref,drftcite,footbib,inlinebib,jurabib,mcite,mciteplus,
+ mlbib,multibbl,multibib,natbib,opcit,overcite,splitbib,ucs}%
+ % etextools is special, it gets an option to demote the error to a warning
+ % remind people to restore \forlistloop
+ \ifcsdef{blx@noerroretextools}
+ {\@ifpackageloaded{etextools}
+ {\ifcsundef{blx@pkgloaded@etextools}
+ {\global\cslet{blx@pkgloaded@etextools}\@empty
+ \blx@warning@noline{%
+ Incompatible package 'etextools' loaded,\MessageBreak
+ no error is thrown because you defined\MessageBreak
+ '\string\blx@noerroretextools'.\MessageBreak
+ 'etextools' redefines '\string\forlistloop', you must\MessageBreak
+ restore the definition from 'etoolbox'\MessageBreak
+ before you load biblatex}}
+ {}}
+ {}}
+ {\@ifpackageloaded{etextools}
+ {\ifcsundef{blx@pkgloaded@etextools}
+ {\global\cslet{blx@pkgloaded@etextools}\@empty
+ \blx@error
+ {Incompatible package 'etextools'}
+ {The 'etextools' package and biblatex are
+ incompatible.\MessageBreak
+ If you must load 'etextools' at all costs, define the command%
+ \MessageBreak '\string\blx@noerroretextools'}}
+ {}}
+ {}}}
+
+% Call this right here, almost immediately after loading to give sensible
+% errors for incompatibilities that arise at loading-time.
+% The macro is called again a second time in \AtEndPreamble when all packages
+% should be loaded.
+% This still can't catch all cases, \usepackage{biblatex}\usepackage{natbib}
+% still gives a weird error.
+\blx@packageincompatibility
+
+% people should not be abusing noerroretextools, so warn if it is not needed
+\def\blx@packageincompatibility@endpreambleonly{%
+ \ifcsdef{blx@noerroretextools}
+ {\@ifpackageloaded{etextools}
+ {}
+ {\blx@warning@noline{%
+ You defined '\string\blx@noerroretextools',\MessageBreak
+ but 'etextools' is not loaded.\MessageBreak
+ Please do not define '\string\blx@noerroretextools'\MessageBreak
+ unless you really need it}}}
+ {}}
+
+\begingroup
+\catcode`\#=12
+\gdef\blx@patchbidifootnotes{%
+ \patchcmd\@footnotetext
+ {#1}
+ {\toggletrue{blx@footnote}#1}
+ {\togglefalse{blx@tempa}}
+ {}%
+ \patchcmd\@LTRfootnotetext
+ {#1}
+ {\toggletrue{blx@footnote}#1}
+ {\togglefalse{blx@tempa}}
+ {}%
+ \patchcmd\@RTLfootnotetext
+ {#1}
+ {\toggletrue{blx@footnote}#1}
+ {\togglefalse{blx@tempa}}
+ {}}
+\endgroup
+
+\AtEndPreamble{%
+ \blx@packageincompatibility
+ \blx@packageincompatibility@endpreambleonly
+ \def\blx@langstrings{}%
+ % Set up sortlocale defaults and default language if babel/polyglossia is not loaded
+ \ifdefstring\blx@sortlocale{auto}
+ {\ifdef\bbl@main@language% babel or polyglossia is loaded
+ {\edef\blx@sortlocale{\bbl@main@language}}
+ {\def\blx@sortlocale{english}}}
+ {}%
+ \@ifpackageloaded{polyglossia}
+ {% polyglossia support is not great when it comes to language variants,
+ % so we better warn about it.
+ \ifundef\blx@nowarnpolyglossia
+ {\blx@warning@noline{%
+ Package 'polyglossia' detected.\MessageBreak
+ Please note that biblatex's polyglossia\MessageBreak
+ interface has some rough edges.\MessageBreak
+ Language variants are not picked up correctly.\MessageBreak
+ You can disable this warning by defining the macro\MessageBreak
+ '\string\blx@nowarnpolyglossia' in the preamble}}
+ {}%
+ % This is required for languages which are never explicitly selected
+ % This check because \xpg@loaded is not defined in polyglossia <= v1.42.0
+ \ifundef\xpg@loaded
+ {\let\xpg@loaded\@empty
+ \let\xpg@vloaded\@empty
+ \blx@warning@noline{Upgrade package 'polyglossia' to > v1.42.0 recommended}}
+ {}%
+ \def\do#1{\blx@langsetup{#1}}%
+ \expandafter\docsvlist\expandafter{\xpg@loaded}%
+ \expandafter\docsvlist\expandafter{\xpg@vloaded}%
+ \ifboolexpr{
+ not togl {blx@autolangbib}
+ and
+ not togl {blx@autolangcite}}
+ {\blx@mknoautolang}
+ {\blx@mkautolangpoly}}
+ {\@ifpackageloaded{babel}
+ {% This is required for languages which are never explicitly selected
+ \def\do#1{\blx@langsetup{#1}}%
+ \expandafter\docsvlist\expandafter{\bbl@loaded}%
+ \ifboolexpr{
+ not togl {blx@autolangbib}
+ and
+ not togl {blx@autolangcite}}
+ {\blx@mknoautolang}
+ {\blx@mkautolangbabel}}
+ {\blx@mknoautolang}}%
+ % These already have defaults set to basically do nothing
+ % so if the toggles are true, we need to define again since
+ % mkautolang* redefines \blx@beglang
+ % In turn, \blx@beglang defines \blx@endlang and so \blx@beglangcite and
+ % \blx@endlangcite need redefining inside \blx@beglang after \blx@endlang
+ % has been defined.
+ \iftoggle{blx@autolangbib}
+ {\let\blx@beglangbib\blx@beglang}
+ {}%
+ \iftoggle{blx@autolangcite}
+ {\let\blx@beglangcite\blx@beglang}
+ {}%
+ \csuse{abx@extras@\blx@languagename}%
+ \csuse{abx@strings@\blx@languagename}%
+ \undef\blx@mkautolangbabel
+ \undef\blx@mkautolangpoly
+ \undef\blx@mknoautolang
+ \ifnum\blx@hyperref=\thr@@
+ \else
+ \ifnum\blx@hyperref=\z@
+ \blx@mknohyperref
+ \else
+ \@ifpackageloaded{hyperref}
+ {\blx@mkhyperref}
+ {\ifnum\blx@hyperref=\@ne
+ \blx@warning@noline{%
+ Missing 'hyperref' package.\MessageBreak
+ Setting 'hyperref=false'}%
+ \fi
+ \blx@mknohyperref}%
+ \fi
+ \undef\blx@mkhyperref
+ \undef\blx@mknohyperref
+ \fi
+ \providecommand*{\nolinkurl}{\url}%
+ \ifundef\TE@hook
+ {\let\TE@hook\@empty
+ \toggletrue{blx@tempa}%
+ \def\do#1{%
+ \patchcmd#1%
+ {\let\isundefined\TE@undef}
+ {\let\isundefined\TE@undef\TE@hook}
+ {\togglefalse{blx@tempa}\listbreak}
+ {}}%
+ \docsvlist{%
+ \ifthenelse,% ifthen
+ \org@ifthenelse,% babel
+ \HyOrg@ifthenelse,% hyperref
+ \NROrg@ifthenelse}% nameref
+ \iftoggle{blx@tempa}
+ {\blx@err@patch{'ifthen' package}}
+ {}}
+ {}%
+ \appto\TE@hook{\blx@TE@hook}%
+ \toggletrue{blx@tempa}%
+ \def\do#1{%
+ \patchcmd#1%
+ {\color@begingroup}
+ {\color@begingroup\toggletrue{blx@footnote}}
+ {\togglefalse{blx@tempa}\listbreak}
+ {}}%
+ \docsvlist{%
+ \@footnotetext,% latex
+ \H@@footnotetext,% hyperref
+ \V@@footnotetext,% fancyvrb
+ \scr@saved@footnotetext,% koma-script 3.x
+ \l@dold@footnotetext,% ledmac
+ \l@doldold@footnotetext,% ledmac
+ \predefinedfootnotetext,% linguex
+ \@fntORI}% frenchle
+ \iftoggle{blx@tempa}% ams classes ...
+ {\def\do#1{%
+ \patchcmd#1
+ {\@makefntext}
+ {\toggletrue{blx@footnote}\@makefntext}
+ {\togglefalse{blx@tempa}}
+ {}}%
+ \docsvlist{\@footnotetext,% ams classes standard
+ \H@@footnotetext}}% hyperref
+ {}%
+ \@ifpackageloaded{bidi}% bidi
+ {\blx@patchbidifootnotes}
+ {}%
+ \@ifclassloaded{memoir}
+ {\def\do#1{%
+ \patchcmd#1%
+ {\color@begingroup}
+ {\color@begingroup\toggletrue{blx@footnote}}
+ {}
+ {}}%
+ \docsvlist{%
+ \m@mold@footnotetext,%
+ \@plainfootnotetext,%
+ \@twocolfootnotetext,%
+ \@threecolfootnotetext,%
+ \@parafootnotetext}%
+ \def\do#1{%
+ \patchcmd#1%
+ {\color@begingroup\@makefntext}
+ {\color@begingroup\toggletrue{blx@footnote}\@makefntext}
+ {}
+ {}}%
+ \docsvlist{%
+ \@footnotetext,% patch twice
+ \H@@footnotetext,% patch twice
+ \@plainfootnotetext}}
+ {}%
+ \@ifclassloaded{beamer}
+ {\expandafter\patchcmd\csname beamerx@\string\beamer@framefootnotetext\endcsname
+ {\color@begingroup}
+ {\color@begingroup\toggletrue{blx@footnote}}
+ {\togglefalse{blx@tempa}}
+ {}%
+ \expandafter\patchcmd\csname beamerx@\string\@mpfootnotetext\endcsname
+ {\color@begingroup}
+ {\color@begingroup\toggletrue{blx@footnote}}
+ {}
+ {}}
+ {}%
+ \iftoggle{blx@tempa}
+ {\blx@warning@noline{%
+ Patching footnotes failed.\MessageBreak
+ Footnote detection will not work}}
+ {}%
+ \def\do#1{%
+ \patchcmd#1%
+ {\color@begingroup}
+ {\color@begingroup\toggletrue{blx@footnote}}
+ {\listbreak}
+ {}}%
+ \docsvlist{%
+ \@mpfootnotetext,% minipages
+ \H@@mpfootnotetext}% hyperref minipages
+ \@ifpackageloaded{endnotes}
+ {\patchcmd\theendnotes
+ {\enoteformat}
+ {\toggletrue{blx@footnote}\enoteformat}
+ {}
+ {\blx@err@patch{'endnotes' package}}}
+ {}%
+ \@ifpackageloaded{bigfoot}
+ {\apptocmd\@makefnstartbox
+ {\toggletrue{blx@footnote}}
+ {}
+ {\blx@err@patch{'bigfoot' package}}}
+ {}%
+ \@ifpackageloaded{showkeys}
+ {\ifdef\SK@
+ {\AtEveryBibitem{\SK@\SK@@label{\thefield{entrykey}}}%
+ \AtEveryLositem{\SK@\SK@@label{\thefield{entrykey}}}%
+ \ifundef\SK@cite % = 'notcite' disabled
+ {\AtEveryCitekey{\SK@\SK@@ref{\thefield{entrykey}}}}
+ {}}
+ {}}
+ {}%
+ \apptocmd\@floatboxreset
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}}
+ {}
+ {\blx@err@patch{floats}}%
+ \ifdef\TX@endtabularx % tabularx/memoir
+ {\pretocmd\TX@endtabularx
+ {\addtocounter{tabx@nest}{1}}% track nested tabularx environments
+ {}
+ {\blx@err@patch{'tabularx'}}%
+ % no need to conditionalise on top-level tabx as the search/replace
+ % will only match once anyway
+ \patchcmd\TX@endtabularx
+ {\edef\TX@ckpt{\cl@@ckpt}}
+ {\edef\TX@ckpt{\cl@@ckpt\abx@resttrackers}%
+ \abx@savetrackers}
+ {}
+ {\blx@err@patch{'tabularx'}}%
+ \apptocmd\TX@endtabularx
+ {\ifnum\value{tabx@nest}=1% only clear trackers for top-level tabularx
+ \abx@cleartrackers
+ \fi
+ \addtocounter{tabx@nest}{-1}}
+ {}
+ {\blx@err@patch{'tabularx'}}}
+ {}%
+ \@ifpackageloaded{csquotes}
+ {\@ifpackagelater{csquotes}{2009/05/30}
+ {}
+ {\blx@error
+ {Outdated 'csquotes' package}
+ {Upgrade to csquotes v4.4 (2009/05/30) or later.\MessageBreak
+ I found: '\csuse{ver@csquotes.sty}'}}%
+ \BlockquoteDisable{\let\blx@thecheckpunct\@gobble}%
+ \@ifpackagelater{csquotes}{2009/08/27}
+ {\appto\@blockquote@prehook{\abx@savetrackers}%
+ \appto\@blockquote@posthook{\abx@resttrackers\abx@cleartrackers}}
+ {}%
+ \@ifpackagelater{csquotes}{2010/06/09}
+ {}
+ {\newcommand*{\@quotereset}{}\newcount\@quotereset}%
+ \newcommand*{\blx@initoquote}{\initoquote}%
+ \newcommand*{\blx@textooquote}{\textooquote}%
+ \newcommand*{\blx@textcoquote}{\textcoquote}%
+ \newcommand*{\blx@initiquote}{\initiquote}%
+ \newcommand*{\blx@textoiquote}{\textoiquote}%
+ \newcommand*{\blx@textciquote}{\textciquote}%
+ \newcommand*{\blx@enquote}{\enquote}}
+ {\@ifpackageloaded{babel}
+ {\blx@warning@noline{%
+ 'babel/polyglossia' detected but 'csquotes' missing.\MessageBreak
+ Loading 'csquotes' recommended}}
+ {}%
+ \newcommand*{\@quotelevel}{}%
+ \newcount\@quotelevel
+ \newcommand*{\@quotereset}{}%
+ \newcount\@quotereset
+ \newcommand*{\@setquotesfcodes}{}%
+ \let\@setquotesfcodes\relax
+ \newrobustcmd*{\blx@initoquote}{\@quotelevel\@ne}%
+ \newrobustcmd*{\blx@initiquote}{\@quotelevel\tw@}%
+ \newrobustcmd*{\blx@textooquote}{``}%
+ \newrobustcmd*{\blx@textcoquote}{''}%
+ \newrobustcmd*{\blx@textoiquote}{`\relax}% block ligs
+ \newrobustcmd*{\blx@textciquote}{'\relax}% block ligs
+ \newrobustcmd*{\blx@enquote}
+ {\@ifstar\blx@enquote@iii\blx@enquote@i}%
+ \def\blx@enquote@i{%
+ \ifnum\@quotelevel>\z@
+ \expandafter\blx@enquote@iii
+ \else
+ \expandafter\blx@enquote@ii
+ \fi}%
+ \long\def\blx@enquote@ii#1{%
+ \begingroup\blx@initoquote
+ \blx@textooquote#1\blx@textcoquote
+ \endgroup}%
+ \long\def\blx@enquote@iii#1{%
+ \begingroup\blx@initiquote
+ \blx@textoiquote#1\blx@textciquote
+ \endgroup}%
+ \appto\blx@setsfcodes{%
+ \sfcode`\`=\z@
+ \sfcode`\'=\z@}}%
+ \let\do\noexpand}
+
+\begingroup
+\@makeother\#
+% \relax: gobble newline -> titletoc.sty
+\AtEndPreamble{%
+ \addtocontents{toc}{%
+ \boolfalse{citerequest}%
+ \boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \boolfalse{backtracker}\relax}%
+ \addtocontents{lof}{%
+ \boolfalse{citerequest}%
+ \boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \boolfalse{backtracker}\relax}%
+ \addtocontents{lot}{%
+ \boolfalse{citerequest}%
+ \boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \boolfalse{backtracker}\relax}%
+ \patchcmd\addtocontents
+ {\string\@writefile}
+ {\string\@writefile{#1}{\defcounter{refsection}{\the\c@refsection}\relax}%
+ \string\@writefile}
+ {}
+ {\blx@err@patch{\string\addtocontents}}}
+\endgroup
+
+% trick hyperref into believing we're natbib
+\let\NAT@parse\@empty
+% trick showkeys into believing we're havard
+\let\HAR@checkdef\@empty
+
+\providecommand{\@gobblefive}[5]{}
+\providecommand{\@gobblethree}[3]{}
+
+% etoolbox helpers
+
+% \ifinlist{<item>}{<list>} is not a good idea
+% for printable stuff according to the etoolbox docs
+% for \ifinlist (p. 31)
+\newrobustcmd{\blx@ifprintableinlist}[2]{%
+ \begingroup
+ \def\blx@tempa{\endgroup
+ \@secondoftwo}%
+ \renewcommand*{\do}[1]{%
+ \ifstrequal{##1}{#1}
+ {\def\blx@tempa{\endgroup
+ \@firstoftwo}%
+ \listbreak}
+ {}}%
+ \dolistloop{#2}%
+ \expandafter\blx@tempa}
+
+\newrobustcmd{\blx@ifprintableinlistcs}[2]{%
+ \expandafter\blx@ifprintableinlistcs@i\csname #2\endcsname{#1}}
+\long\def\blx@ifprintableinlistcs@i#1#2{\blx@ifprintableinlist{#2}{#1}}
+
+\ifundef\pdf@mdfivesum
+ {\let\blx@mdfivesum\@firstofone
+ \blx@warning@noline{Command '\string\pdf@mdfivesum' undefined.\MessageBreak
+ 'labelprefix' may not be able to accept all input}}
+ {\let\blx@mdfivesum\pdf@mdfivesum}
+
+
+% xstring replacements
+
+% reverse a given string
+% idea by egreg (https://tex.stackexchange.com/users/4427/egreg)
+% from https://tex.stackexchange.com/q/36034/
+% relicensed under LPPL according to
+% https://tex.meta.stackexchange.com/a/3333/
+\def\blx@revstr#1{%
+ \ifblank{#1}
+ {}
+ {\blx@revstr@l #1\blx@revstr@b@i\blx@revstr@b@ii}}
+
+\def\blx@revstr@l#1#2\blx@revstr@b@i#3\blx@revstr@b@ii{%
+ \ifblank{#2}
+ {#1#3}
+ {\blx@revstr@l#2\blx@revstr@b@i#1#3\blx@revstr@b@ii}}
+
+% these tests are inspired by Stephan v. Bechtolsheim's TUGboat article
+% https://www.tug.org/TUGboat/tb09-1/tb20bechtolsheim.pdf
+% but we need to test for start and end and not for generic substring
+% start is easy, delimited arguments help there
+\protected\def\blx@ifstrstartswith#1#2{%
+ \def\blx@ifstrstartswith@i ##1#2##2&{%
+ \ifblank{##1}}%
+ \blx@ifstrstartswith@i #1#2&}
+
+% end is harder, so we reverse everything and apply the start test
+\protected\def\blx@ifstrendswith#1#2{%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \noexpand\blx@ifstrstartswith{\blx@revstr{#1}}{\blx@revstr{#2}}}%
+ \blx@tempa}
+
+% not expandable, so write the result to the macro given in #3
+% {<string>}{<strip>}{<result>}
+% <result> will contain the bit of <string>
+% after the first occurrence of <strip>
+\protected\def\blx@stripfromstartinto#1#2#3{%
+ \def\blx@stripfromstart@i ##1#2##2&{%
+ \def#3{##2}}%
+ \blx@stripfromstart@i #1&}
+
+% {<string>}{<strip>}{<result>}
+% <result> will contain the bit of <string>
+% before the last occurence of <strip>
+\protected\def\blx@stripfromendinto#1#2#3{%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \noexpand\blx@stripfromstartinto{\blx@revstr{#1}}{\blx@revstr{#2}}}%
+ \blx@tempa{#3}%
+ \edef#3{\noexpand\blx@revstr{#3}}%
+ \edef#3{#3}}
+
+%% Allocation
+
+% Counter to track nested tabularx environemnts so we don't
+% try to patch the commands more than once below as this undefs some
+% macros and an error is thrown
+\newcounter{tabx@nest}
+\setcounter{tabx@nest}{0}
+
+\newcounter{listtotal}
+\def\thelisttotal{\the\c@listtotal}
+\newcounter{listcount}
+\def\thelistcount{\the\c@listcount}
+\newcounter{liststart}
+\def\theliststart{\the\c@liststart}
+\newcounter{liststop}
+\def\theliststop{\the\c@liststop}
+\newcounter{citecount}
+\def\thecitecount{\the\c@citecount}
+\newcounter{citetotal}
+\def\thecitetotal{\the\c@citetotal}
+\newcounter{multicitecount}
+\def\themulticitecount{\the\c@multicitecount}
+\newcounter{multicitetotal}
+\def\themulticitetotal{\the\c@multicitetotal}
+\newcounter{instcount}
+\def\theinstcount{\the\c@instcount}
+\newcounter{maxnames}
+\def\themaxnames{\the\c@maxnames}
+\newcounter{minnames}
+\def\theminnames{\the\c@minnames}
+\newcounter{maxitems}
+\def\themaxitems{\the\c@maxitems}
+\newcounter{minitems}
+\def\theminitems{\the\c@minitems}
+\newcounter{citecounter}
+\def\thecitecount{\the\c@citecounter}
+\newcounter{maxcitecounter}
+\def\themaxcitecounter{\the\c@maxcitecounter}
+\newcounter{savedcitecounter}
+\def\thecitecount{\the\c@savedcitecounter}
+\newcounter{uniquelist}
+\def\theuniquelist{\the\c@uniquelist}
+\newcounter{uniquename}
+\def\theuniquename{\the\c@uniquename}
+\newcounter{refsection}
+\def\therefsection{\the\c@refsection}
+\newcounter{refsegment}
+\def\therefsegment{\the\c@refsegment}
+\newcounter{maxextratitle}
+\def\themaxextratitle{\the\c@maxextratitle}
+\newcounter{maxextratitleyear}
+\def\themaxextratitleyear{\the\c@maxextratitleyear}
+\newcounter{maxextraname}
+\def\themaxextraname{\the\c@maxextraname}
+\newcounter{maxextradate}
+\def\themaxextradate{\the\c@maxextradate}
+\newcounter{maxextraalpha}
+\def\themaxextraalpha{\the\c@maxextraalpha}
+\newcounter{abbrvpenalty}
+\def\theabbrvpenalty{\the\c@abbrvpenalty}
+\newcounter{highnamepenalty}
+\def\thehighnamepenalty{\the\c@highnamepenalty}
+\newcounter{lownamepenalty}
+\def\thelownamepenalty{\the\c@lownamepenalty}
+\newcounter{maxparens}
+\def\themaxparens{\the\c@maxparens}
+\newcounter{parenlevel}
+\def\theparenlevel{\the\c@parenlevel}
+
+\newcount\blx@tempcnta
+\newcount\blx@tempcntb
+\newcount\blx@tempcntc
+\newcount\blx@maxsection
+\expandafter\newcount\csname blx@maxsegment@0\endcsname
+\newcount\blx@notetype
+\newcount\blx@parenlevel@text
+\newcount\blx@parenlevel@foot
+\expandafter\newcount\csname blx@sectionciteorder@0\endcsname
+\newcount\blx@entrysetcounter
+
+\def\blx@uniquename{false}
+\def\blx@uniquelist{false}
+\def\blx@maxbibnames{0}
+\def\blx@minbibnames{0}
+\def\blx@maxcitenames{0}
+\def\blx@mincitenames{0}
+\def\blx@maxsortnames{0}
+\def\blx@minsortnames{0}
+\def\blx@maxalphanames{0}
+\def\blx@minalphanames{0}
+\def\blx@maxitems{0}
+\def\blx@minitems{0}
+
+\newlength{\labelnumberwidth}
+\newlength{\labelalphawidth}
+\newlength{\biblabelsep}
+\ifdef\bibitemsep % memoir
+ {}
+ {\newlength{\bibitemsep}}
+\newlength{\bibnamesep}
+\newlength{\bibinitsep}
+\newlength{\bibparsep}
+\newlength{\bibhang}
+
+\newbool{refcontextdefaults}
+\booltrue{refcontextdefaults}%
+\newbool{sourcemap}
+\newbool{citetracker}
+\newbool{pagetracker}
+\newbool{backtracker}
+\newbool{citerequest}
+\booltrue{citerequest}
+\newbool{sortcites}
+
+\newtoggle{blx@bbldone}
+\newtoggle{blx@tempa}
+\newtoggle{blx@tempb}
+\newtoggle{blx@runltx}
+\newtoggle{blx@runbiber}
+\newtoggle{blx@block}
+\newtoggle{blx@unit}
+\newtoggle{blx@skipentry}
+\newtoggle{blx@insert}
+\newtoggle{blx@lastins}
+\newtoggle{blx@keepunit}
+\newtoggle{blx@bibtex}
+\newtoggle{blx@debug}
+\newtoggle{blx@sortcase}
+\newtoggle{blx@sortupper}
+\newtoggle{blx@autolangbib}
+\newtoggle{blx@autolangcite}
+\newtoggle{blx@clearlang}
+\newtoggle{blx@defernumbers}
+\newtoggle{blx@omitnumbers}
+\newtoggle{blx@footnote}
+\newtoggle{blx@labelalpha}
+\newtoggle{blx@labelnumber}
+\newtoggle{blx@labeltitle}
+\newtoggle{blx@labeltitleyear}
+\newtoggle{blx@labeldateparts}
+\newtoggle{blx@natbib}
+\newtoggle{blx@mcite}
+\newtoggle{blx@loadfiles}
+\newtoggle{blx@sortsets}
+\newtoggle{blx@crossrefsource}
+\newtoggle{blx@xrefsource}
+\newtoggle{blx@terseinits}
+\newtoggle{blx@useprefix}
+\newtoggle{blx@addset}
+\newtoggle{blx@setonly}
+\newtoggle{blx@dataonly}
+\newtoggle{blx@skipbib}
+\newtoggle{blx@skipbiblist}
+\newtoggle{blx@skiplab}
+\newtoggle{blx@citation}
+\newtoggle{blx@volcite}
+\newtoggle{blx@bibliography}
+\newtoggle{blx@citeindex}
+\newtoggle{blx@bibindex}
+\newtoggle{blx@localnumber}
+\newtoggle{blx@refcontext}
+\newtoggle{blx@noroman}
+\newtoggle{blx@nohashothers}
+\newtoggle{blx@nosortothers}
+\newtoggle{blx@singletitle}
+\newtoggle{blx@uniquebaretitle}
+\newtoggle{blx@uniqueprimaryauthor}
+\newtoggle{blx@uniquetitle}
+\newtoggle{blx@uniquework}
+
+\newcommand*{\blx@xifstrequal}[2]{%
+ \begingroup
+ \edef\blx@tempa{%
+ \endgroup
+ \noexpand\ifstrequal{#1}{#2}}%
+ \blx@tempa}
+
+% Special fields which need resolution using the information provided by biber
+\listadd\abx@rfields{labeltitle}
+\def\abx@dorfields{%
+ \dolistloop\abx@rfields%
+}
+\listadd\abx@rnames{labelname}
+\def\abx@dornames{%
+ \dolistloop\abx@rnames%
+}
+
+% Used to track default refcontexts for citations
+\cslet{blx@defaultrefcontexts@0}\@empty
+\listadd\blx@allrefsections{0}
+
+% Used to track sorting name key specifications
+\global\let\blx@sortingnamekeytemplates\@empty
+
+% Used to track uniquename templates
+\global\let\blx@untemplatespecs\@empty
+
+% Used to track labelalphaname templates
+\global\let\blx@lantemplatespecs\@empty
+
+% Used to track transliterations
+\global\let\blx@translits\@empty
+
+% Use to track every entry found in .bbl
+% Used to issue defernumbers warning about missing keys because this causes
+% defernumbers labelling to fail.
+\global\let\blx@entries\@empty
+
+% Initialise some lists which track changing citations/sortingtemplates
+% etc. between runs
+\global\let\blx@cites\@empty
+\global\let\blx@nocites\@empty
+\global\let\blx@directcites\@empty
+\global\let\blx@refcontexts\@empty
+\global\let\blx@lastrefcontexts\@empty
+\global\let\blx@sortingtemplatenames\@empty
+\global\let\blx@dlistnames\@empty
+\global\let\blx@biblists\@empty
+\global\let\blx@lastbiblists\@empty
+\global\let\blx@lastcites\@empty
+\global\let\blx@localnumaux\@empty
+
+\newread\blx@bcfin
+\newwrite\blx@bcfout
+
+\def\blx@onlypreamble#1{%
+ \gappto\blx@dopreamblecmds{\do#1}}
+
+\def\blx@dopreamblecmds{%
+ \do\blx@dopreamblecmds
+ \do\blx@onlypreamble}
+
+% Deprecations
+\newrobustcmd*{\DeprecateField}[2]{%
+ \csdef{abx@field@#1}{%
+ \ifcsundef{abx@legacywarning@field@#1}
+ {\blx@warning@noline{Field '#1' is deprecated. #2}}
+ {}%
+ \global\cslet{abx@legacywarning@field@#1}\@empty}}%
+\newrobustcmd*{\DeprecateList}[2]{%
+ \csdef{abx@list@#1}{%
+ \ifcsundef{abx@legacywarning@list@#1}
+ {\blx@warning@noline{List '#1' is deprecated. #2}}
+ {}%
+ \global\cslet{abx@legacywarning@list@#1}\@empty}}
+\newrobustcmd*{\DeprecateName}[2]{%
+ \csdef{abx@name@#1}{%
+ \ifcsundef{abx@legacywarning@name@#1}
+ {\blx@warning@noline{Name '#1' is deprecated. #2}}
+ {}%
+ \global\cslet{abx@legacywarning@name@#1}\@empty}}
+
+\let\blx@aliasfields\@empty
+
+\newrobustcmd*{\DeprecateFieldWithReplacement}[2]{%
+ \appto\blx@aliasfields{%
+ \ifcsundef{abx@field@#2}
+ {}
+ {\csdef{abx@field@#1}{%
+ \csuse{abx@field@#2}%
+ \ifcsundef{abx@legacywarning@field@#1}
+ {\blx@warning@noline{Field '#1' is deprecated.\MessageBreak
+ Please use '#2' instead.\MessageBreak
+ Using '#2' now}}
+ {}%
+ \global\cslet{abx@legacywarning@field@#1}\@empty}}}}
+
+\newrobustcmd*{\DeprecateListWithReplacement}[2]{%
+ \appto\blx@aliasfields{%
+ \ifcsundef{abx@list@#2}
+ {}
+ {\csdef{abx@list@#1}{%
+ \csuse{abx@list@#2}%
+ \ifcsundef{abx@legacywarning@list@#1}
+ {\blx@warning@noline{List '#1' is deprecated.\MessageBreak
+ Please use '#2' instead.\MessageBreak
+ Using '#2' now}}
+ {}%
+ \global\cslet{abx@legacywarning@list@#1}\@empty}}}}
+
+\newrobustcmd*{\DeprecateNameWithReplacement}[2]{%
+ \appto\blx@aliasfields{%
+ \ifcsundef{abx@name@#2}
+ {}
+ {\csdef{abx@name@#1}{%
+ \csuse{abx@name@#2}%
+ \ifcsundef{abx@legacywarning@name@#1}
+ {\blx@warning@noline{Name '#1' is deprecated.\MessageBreak
+ Please use '#2' instead.\MessageBreak
+ Using '#2' now}}
+ {}%
+ \global\cslet{abx@legacywarning@name@#1}\@empty}}}}
+
+%% Initialisation
+\def\blx@blxinit{%
+ \let\blx@blxinit\relax
+ \blx@initunit}
+
+\def\blx@secinit{%
+ \csgdef{blx@sections@\the\c@refsection}{true}% just to say we have a section for tests later
+ \ifcsundef{blx@bsee@\the\c@refsection}
+ {\global\cslet{blx@bsee@\the\c@refsection}\@empty}
+ {}%
+ \ifcsundef{blx@fsee@\the\c@refsection}
+ {\global\cslet{blx@fsee@\the\c@refsection}\@empty}
+ {}%
+ \blx@ibidreset@force
+ \blx@idemreset@force
+ \blx@opcitreset@force
+ \blx@loccitreset@force
+ % List to track all aliases in a section. We need to output all aliases
+ % to the .bcf every time so that they are visible to biber
+ % Reset only if undefined
+ \ifcsundef{blx@keyaliases@\the\c@refsection}
+ {\global\cslet{blx@keyaliases@\the\c@refsection}\@empty}
+ {}%
+ \ifcsundef{blx@segm@\the\c@refsection @\the\c@refsegment}
+ {\global\cslet{blx@segm@\the\c@refsection @\the\c@refsegment}\@empty}
+ {}}
+
+%% Auxiliary commands
+\protected\def\blx@regimc#1{%
+ \xappto\blx@blxinit{%
+ \let\noexpand#1\expandafter\noexpand\csname
+ blx@imc@\expandafter\@gobble\string#1\endcsname}}
+
+\protected\def\blx@regimcs#1{\blx@regimcs@i#1&}
+\def\blx@regimcs@i#1{%
+ \ifx#1&\else
+ \blx@regimc#1%
+ \expandafter\blx@regimcs@i
+ \fi}
+
+% {<field>} => \do{<item1>}\do{<item2>}...
+\def\blx@imc@docsvfield#1{%
+ \blx@imc@iffieldundef{#1}
+ {}
+ {\expandafter\expandafter\expandafter\docsvlist
+ \expandafter\expandafter\expandafter{%
+ \csname abx@field@#1\endcsname}}}
+
+% {<handler>}{<field>} => <handler>{<item1>}<handler>{<item2>}...
+\def\blx@imc@forcsvfield#1#2{%
+ \blx@imc@iffieldundef{#2}
+ {}
+ {\expandafter\expandafter\expandafter\blx@imc@forcsvfield@i
+ \expandafter\expandafter\expandafter{%
+ \csname abx@field@#2\endcsname}{#1}}}
+
+\def\blx@imc@forcsvfield@i#1#2{\forcsvlist{#2}{#1}}
+
+\blx@regimcs{\docsvfield \forcsvfield}
+
+% {<list>|<listmacro>}
+\protected\long\def\blx@listloop#1{%
+ \expandafter\blx@listloop@i#1|&}
+\long\def\blx@listloop@i#1|{%
+ \ifblank{#1}
+ {\blx@break}
+ {\blx@do{#1}\blx@listloop@i}}
+
+\long\def\blx@break#1&{%
+ \blx@done
+ \undef\blx@do
+ \undef\blx@done}
+
+% {<listmacro>}{<listcsname>} => matches in <listmacro>
+\protected\def\blx@filter#1#2{%
+ \def\do##1{%
+ \ifinlistcs{##1}{#2}
+ {\listadd#1{##1}}
+ {}}%
+ \blx@runfilter#1}
+
+% {<listmacro>}{<listcsname>} => matches in <listmacro>
+% Slightly odd use of filtering to do citation sorting.
+% Same as blx@filter but it keeps \tempcnta in step with the
+% resulting number of things in the filtered list. This is
+% because \tempcnta is used to set citetotal - this use
+% of filtering for cite sorting has the side-effect of stripping
+% duplicates like \cite{foo,foo} but we need then to keep citetotal
+% in sync.
+\protected\def\blx@filtercitesort#1#2{%
+ \blx@tempcnta\z@
+ \def\do##1{%
+ \ifinlistcs{##1}{#2}
+ {\listadd#1{##1}%
+ \advance\blx@tempcnta\@ne}
+ {}}%
+ \blx@runfilter#1}
+
+% {<listmacro>}{<listcsname>} => neg. matches in <listmacro>
+\protected\def\blx@notfilter#1#2{%
+ \def\do##1{%
+ \ifinlistcs{##1}{#2}
+ {}
+ {\listadd#1{##1}}}%
+ \blx@runfilter#1}
+
+\def\blx@runfilter#1{%
+ \begingroup\edef#1{\endgroup
+ \unexpanded{\let#1\@empty\dolistloop}{#1}}%
+ #1\let\do\noexpand}
+
+% {<code>}{<string>} => <code>{<string>}
+\protected\def\blx@xsanitizeafter#1#2{%
+ \begingroup
+ \abx@hook@xsanitize
+ \def\blx@tempa{\endgroup#1}%
+ \edef\blx@tempb{#2}%
+ \expandafter\blx@tempa
+ \expandafter{\detokenize\expandafter{\blx@tempb}}}
+
+\def\abx@hook@xsanitize{%
+ \blx@safe@actives
+ \let\protect\string}
+
+% {<code>}{<string>} => <code>{<string>}
+\begingroup
+\catcode`\<=\active
+\catcode`\>=\active
+\catcode`\&=\active
+\catcode`\"=\active
+\catcode`\'=\active
+\protected\gdef\blx@xmlsanitizeafter#1#2{%
+ \begingroup
+ \abx@hook@xsanitize
+ \def\blx@tempa{\endgroup#1}%
+ \edef\blx@tempb{#2}%
+ \let\do\@makeother
+ \dospecials
+ \catcode`\<=\active
+ \catcode`\>=\active
+ \catcode`\&=\active
+ \catcode`\"=\active
+ \catcode`\'=\active
+ \edef<{\string&lt\string;}%
+ \edef>{\string&gt\string;}%
+ \edef&{\string&amp\string;}%
+ \edef"{\string&quot\string;}%
+ \edef'{\string&apos\string;}%
+ \endlinechar\m@ne
+ \everyeof{\noexpand}%
+ \edef\blx@tempb{\scantokens\expandafter{\blx@tempb}}%
+ \expandafter\blx@tempa
+ \expandafter{\detokenize\expandafter{\blx@tempb}}}
+\endgroup
+
+% {<file>}{<message>}{<preload>}{<postload>}{<success>}{<failure>}
+\protected\long\def\blx@inputonce#1#2#3#4#5#6{%
+ \ifcsundef{blx@file@#1}
+ {\blx@info@noline{Trying to load #2..}%
+ \IfFileExists{#1}
+ {\blx@info@noline{... file '#1' found}%
+ #3\@@input\@filef@und#4#5%
+ \listxadd\blx@list@req@stat{#1}%
+ \@addtofilelist{#1}}
+ {\blx@info@noline{... file '#1' not found}#6}%
+ \global\cslet{blx@file@#1}\@empty}
+ {#5}}
+
+% {<write>}{<precode>}{<string>}
+\protected\def\blx@auxwrite#1#2#3{%
+ \if@filesw
+ \begingroup
+ \blx@safe@actives
+ \let\protect\string
+ #2%
+ \immediate\write#1{#3}%
+ \endgroup
+ \fi}
+
+% {<file>}{<signature>}{<true>}{<false>}
+\def\blx@ifsigned#1#2{%
+ \begingroup
+ \let\blx@tempa\@firstoftwo
+ \edef\blx@tempb{\csuse{blx@sig@#2}}%
+ \edef\blx@tempb{\detokenize\expandafter{\blx@tempb}}%
+ \openin\blx@bcfin #1.#2\relax
+ \ifeof\blx@bcfin
+ \else
+ \endlinechar\m@ne
+ \readline\blx@bcfin to \blx@tempc
+ \ifeof\blx@bcfin
+ \else
+ \ifx\blx@tempb\blx@tempc
+ \readline\blx@bcfin to \blx@tempc
+ \edef\blx@tempb{\csuse{blx@ver@#2}}%
+ \edef\blx@tempb{\detokenize\expandafter{\blx@tempb}}%
+ \ifx\blx@tempb\blx@tempc
+ \else
+ \blx@warning@noline{%
+ File '#1.#2' is wrong format version - expected \blx@bblversion}
+ \fi
+ \else
+ \blx@error
+ {File '#1.#2' not created by biblatex}
+ {This file was apparently not created by biblatex.
+ Rename it or\MessageBreak move it to a location were
+ TeX will not find it. If this error\MessageBreak
+ persists, consider redefining \string\blxauxsuffix.%
+ See the biblatex\MessageBreak manual for details}%
+ \let\blx@tempa\@secondoftwo
+ \fi
+ \fi
+ \fi
+ \closein\blx@bcfin
+ \expandafter\endgroup\blx@tempa}
+
+\edef\blx@sig@bbl{\@percentchar\space $ biblatex auxiliary file $}
+\edef\blx@ver@bbl{\@percentchar\space $ biblatex bbl format version \blx@bblversion\space $}
+\edef\blx@sig@bcf{\detokenize{<?xml version="1.0" encoding="UTF-8"?>}}
+\edef\blx@ver@bcf{%
+ \detokenize{<bcf:controlfile version="}\blx@bcfversion
+ \detokenize{" bltxversion="}\abx@version
+ \detokenize{" xmlns:bcf="https://sourceforge.net/projects/biblatex">}}
+
+% {<true>}{<false>}
+\newrobustcmd*{\lbx@ifutfinput}{\ifboolexpr{%
+ test {\ifdefstring\inputencodingname{utf8}}
+ or
+ test {\ifdefstring\inputencodingname{utf8x}}
+ or
+ test {\ifdefstring\inputencodingname{lutf8}}
+ or
+ ( test {\ifundef\inputencodingname}
+ and
+ ( not test {\ifundef\XeTeXrevision}
+ or
+ not test {\ifundef\luatexversion}
+ )
+ )
+}}
+
+%% More user feedback
+\protected\def\blx@warning@entry#1{%
+ \ifdef\abx@field@entrykey
+ {\blx@warning{#1\MessageBreak at entry '\abx@field@entrykey'}}
+ {\blx@warning{#1}}}
+
+\protected\def\blx@info@noline#1{%
+ \begingroup
+ \blx@safe@actives
+ \PackageInfo{biblatex}{#1\@gobble}%
+ \endgroup}
+\let\blx@info\blx@info@noline
+\AtEndOfPackage{%
+ \protected\def\blx@info#1{%
+ \begingroup
+ \blx@safe@actives
+ \PackageInfo{biblatex}{#1}%
+ \endgroup}}
+
+\let\blx@noline\@gobble
+\AtEndOfPackage{\let\blx@noline\@empty}
+\def\blx@imc@BibliographyWarning{\blx@warning@entry}
+\blx@regimc\BibliographyWarning
+
+\protected\def\abx@missing#1{%
+ \mbox{\reset@font\bfseries#1}}
+
+\def\blx@err@patch#1{%
+ \blx@error
+ {Patching #1 failed}
+ {This is an internal issue typically caused by a
+ conflict\MessageBreak between biblatex and some
+ other package. Modifying\MessageBreak the package
+ loading order may fix the problem}}
+
+\def\blx@err@nolang#1{%
+ \blx@error
+ {Language '#1' not found}
+ {The localization module for '#1' could not be found}}
+
+\def\blx@err@invarg#1#2{%
+ \blx@error
+ {Argument '#1' invalid}
+ {\ifblank{#2}
+ {The argument you have supplied is invalid.\MessageBreak
+ See the biblatex manual for details}
+ {#2}}}
+
+\def\blx@err@invopt#1#2{%
+ \blx@error
+ {Option '#1' invalid}
+ {\ifblank{#2}
+ {The option you have supplied is invalid.\MessageBreak
+ See the biblatex manual for valid option keys and
+ possible values}
+ {#2}}}
+
+\def\blx@err@confopt#1#2{%
+ \blx@error
+ {Conflicting options\ifblank{#1}{}{ (#1)}}
+ {\ifblank{#2}
+ {The option you have supplied conflicts with another one.\MessageBreak
+ See the biblatex manual for valid option keys and possible values}
+ {#2}}}
+
+\def\blx@err@optdef#1#2{%
+ \blx@error
+ {Option '#1' already defined}
+ {The option '#1' is already defined in scope '#2'}}
+
+\def\blx@err@nodocdiv#1{%
+ \blx@error
+ {\@backslashchar#1 not provided by class}
+ {The document class does not seems to support #1s}}
+
+\def\blx@err@nosec#1{%
+ \blx@error
+ {Section '#1' not found}
+ {The reference section '#1' could not be found}}
+
+\def\blx@err@nosort#1{%
+ \blx@error
+ {Sorting template '#1' not found}
+ {The sorting template '#1' does not seem to have been defined anywhere}}
+
+\def\blx@err@secfirst{%
+ \blx@error
+ {'section' not first filter}
+ {When passing multiple filter options,
+ the 'section' filter must be given first}}
+
+\protected\def\blx@err@nestcite{%
+ \blx@error
+ {Nested citation command}
+ {Citation commands may not be nested}}
+
+\def\blx@err@nestenv#1{%
+ \blx@error
+ {Nested '#1' environment}
+ {This environment may not be nested}}
+
+\protected\def\blx@err@citecmd#1{%
+ \begingroup
+ \escapechar\m@ne
+ \blx@error
+ {Command '\@backslashchar\string#1' undefined}
+ {The citation command '\@backslashchar\string#1'
+ has not been defined\MessageBreak by the
+ selected citation style}%
+ \endgroup}
+
+\def\blx@err@endnote#1{%
+ \blx@error
+ {Missing or incomplete endnote support}
+ {There does not seem to be endnote support available\MessageBreak
+ or the available support is incomplete.\MessageBreak
+ If you continue, I will fall back to '\string#1'}%
+ #1}
+
+\def\blx@err@matchparen#1{%
+ \blx@error
+ {Unbalanced parentheses or brackets}
+ {\iftoggle{blx@footnote}{#1 in foot or endnote}{#1}.\MessageBreak
+ This error is triggered if \string\bibopenparen\space and
+ \string\bibcloseparen\MessageBreak or
+ \string\bibopenbracket\space and \string\bibclosebracket\space
+ are unbalanced\MessageBreak or mismatched}}
+
+\def\blx@err@nestparen#1{%
+ \blx@error
+ {Too deeply nested parentheses or brackets}
+ {#1 nested too deeply%
+ \iftoggle{blx@footnote}{\space in foot or endnote}{}.\MessageBreak
+ This error may also be triggered if \string\mkbibparens\MessageBreak
+ or \string\mkbibbrackets\space are nested too deeply}}
+
+\def\blx@err@filter{%
+ \blx@error
+ {Invalid filter expression}
+ {The filter expression you have supplied is invalid.\MessageBreak
+ See the biblatex manual for details}}
+
+\def\blx@warn@nohyph#1{%
+ \blx@warning{No hyphenation patterns for '#1'}}
+
+\protected\def\blx@warn@citecmd#1#2{%
+ \blx@warning{%
+ '\string#1' not defined by citation style.\MessageBreak
+ Falling back to '\string#2'}%
+ #2}
+
+\protected\def\blx@warn@nostring#1{%
+ \blx@warning@entry{Bibliography string '#1'
+ \ifcsundef{KV@blx@lbx@#1}{undefined}{untranslated}}%
+ \abx@missing{#1}}
+
+\def\blx@warn@conflopt#1{%
+ \blx@warning{Conflicting options.\MessageBreak#1}}
+
+\def\blx@warn@badoptdt#1{%
+ \blx@warning{Invalid option datatype '#1'.\MessageBreak
+ Defaulting to 'boolean'}}
+
+\def\blx@warn@depropt#1{%
+ \blx@warning{Deprecated option.\MessageBreak Ignoring '#1'}}
+
+\def\blx@warn@bibempty{%
+ \@latex@warning{Empty bibliography}}
+
+\def\blx@warn@biblistempty#1{%
+ \@latex@warning{Empty biblist '#1'}}
+
+\def\blx@inf@refsec{%
+ \blx@info{Reference section=\the\c@refsection}}%
+
+\def\blx@inf@delimdeclare#1#2{%
+ \blx@info{Delimiter '#1' in context '#2' already defined, overwriting}}
+
+\def\blx@warn@delimuse#1#2{%
+ \blx@warning{Delimiter '#1' in context '#2' undefined}}
+
+\def\blx@inf@refseg{%
+ \ifnum\c@refsection=\z@
+ \blx@info{Reference segment=\the\c@refsegment}%
+ \else
+ \blx@info{%
+ Reference section/segment=%
+ \the\c@refsection/\the\c@refsegment}%
+ \fi}
+
+\def\blx@inf@creset{%
+ \blx@info{Resetting trackers}}%
+
+\def\blx@msg@cundef#1{%
+ Citation '#1' undefined}
+\def\blx@msg@cundefon#1{%
+ Citation '#1' on page \the\c@page\space undefined}
+
+% Dummy as backend is biber by default. Some style may still use this to
+% check though.
+\newrobustcmd*{\RequireBiber}[1][2]{}
+
+% \blx@list@active active aux files (basename)
+% [internal list]
+% \blx@list@inactive inactive aux files (basename)
+% [internal list]
+% \blx@list@bibfiles@<auxfile> aux file -> bib file mapping (refsections)
+% aux file (basename) -> bib files (full)
+% [internal list]
+
+\let\blx@list@active\@empty
+\let\blx@list@inactive\@empty
+\listeadd\blx@list@inactive{\jobname}
+
+\protected\def\blx@regbibfiles#1#2{%
+ \forlistloop{\blx@regbibfile{#1}}{#2}}
+
+\def\blx@regbibfile#1#2{%
+ \ifcsundef{blx@res@loca@#2}
+ {\blx@regbibfile@i{#1}{#2}}
+ {\ifcsstring{blx@res@loca@#2}{local}
+ {\blx@regbibfile@i{#1}{#2}}
+ {}}}
+
+\def\blx@regbibfile@i#1#2{%
+ \ifinlistcs{#2}{blx@list@bibfiles@#1}
+ {}
+ {\listcsxadd{blx@list@bibfiles@#1}{#2}}}
+
+\def\blx@check@logreq{%
+ \begingroup
+ \ltxrequest{biblatex}{{\iftoggle{blx@runltx}{1}{0}}}{%
+ \provides[type=dynamic]{
+ \file{\jobname.bcf}
+ }
+ \requires[type=dynamic]{
+ \file{\jobname.bbl}
+ }
+ \ifdef\blx@list@req@edit
+ {\requires[type=editable]{
+ \forlistloop\file\blx@list@req@edit
+ }}
+ {}
+ \ifdef\blx@list@req@stat
+ {\requires[type=static]{
+ \forlistloop\file\blx@list@req@stat
+ }}
+ {}
+ }%
+ \logrequest[package=biblatex,priority=5,active={{\iftoggle{blx@runbiber}{1}{0}}}]{%
+ \generic{biber}
+ \cmdline{
+ \binary{biber}
+ \infile{\jobname}
+ }
+ \input{
+ \file{\jobname.bcf}
+ }
+ \output{
+ \file{\jobname.bbl}
+ }
+ \provides[type=dynamic]{
+ \file{\jobname.bbl}
+ }
+ \requires[type=dynamic]{
+ \file{\jobname.bcf}
+ }
+ \ifcsdef{blx@list@bibfiles@\jobname}
+ {\requires[type=editable]{
+ \def\do{\file}
+ \dolistcsloop{blx@list@bibfiles@\jobname}
+ }}
+ {}
+ }%
+ \endgroup}
+
+\def\blx@logreq@active#1{%
+ \ifblank{#1}
+ {}
+ {\@latex@warning{#1}}%
+ \blx@rerun@latex
+ \blx@rerun@biber}
+
+\def\blx@rerun@latex{%
+ \G@refundefinedtrue
+ \global\toggletrue{blx@runltx}%
+ \global\let\blx@rerun@latex\relax}
+
+\def\blx@rerun@biber{%
+ \global\toggletrue{blx@runbiber}%
+ \global\let\blx@rerun@biber\relax}
+
+\let\blx@checksum@old\@empty
+\let\blx@checksum@new\@empty
+\let\blx@pagesum@old\@empty
+\let\blx@pagesum@new\@empty
+
+\def\blx@checksum#1#2#3{%
+ \begingroup
+ \blx@tempcnta\the\numexpr0#2*0#3\relax
+ \blx@tempcntb\blx@tempcnta
+ \divide\blx@tempcntb10
+ \multiply\blx@tempcntb10
+ \advance\blx@tempcnta-\blx@tempcntb
+ \xdef#1{#1\the\blx@tempcnta}%
+ \endgroup}
+
+\def\blx@addchecksum{\blx@checksum\blx@checksum@old}
+\def\blx@addpagesum{\blx@checksum\blx@pagesum@old}
+\AtEndDocument{%
+ \def\blx@addchecksum{\blx@checksum\blx@checksum@new}%
+ \def\blx@addpagesum{\blx@checksum\blx@pagesum@new}}
+
+\protected\def\blx@check@rerun{%
+ \begingroup
+ \blx@tempcnta\z@
+ \iftoggle{blx@runltx}
+ {\blx@tempcnta\@ne}
+ {\ifx\blx@checksum@old\blx@checksum@new
+ \ifx\blx@pagesum@old\blx@pagesum@new
+ \else
+ \blx@tempcnta\@ne
+ \fi
+ \else
+ \blx@tempcnta\@ne
+ \fi}%
+ \iftoggle{blx@runbiber}
+ {\advance\blx@tempcnta\tw@}
+ {}%
+ \ifcase\blx@tempcnta
+ \or
+ \blx@rerun@latex
+ \blx@warning@noline{%
+ Please rerun LaTeX%
+ \ifx\blx@pagesum@old\blx@pagesum@new\else
+ .\MessageBreak Page breaks have changed%
+ \fi}%
+ \else
+ \blx@rerun@latex
+ \blx@warn@auxlist
+ \fi
+ \endgroup}
+
+\def\blx@warn@auxlist{%
+ \begingroup
+ \edef\blx@tempa{%
+ Please (re)run Biber on the file:\MessageBreak
+ \jobname}%
+ \blx@warning@noline{%
+ \blx@tempa\MessageBreak
+ and rerun LaTeX afterwards}%
+ \endgroup}
+
+\AfterEndDocument{%
+ \blx@check@rerun
+ \blx@check@logreq}
+
+%% Punctuation and capitalization
+
+% 1001 prefix sep for names (e.g. d'Argent ... \printnames only)
+% 1002 abbreviation period (dot)
+% 1003/1250 comma
+% 1004/1500 semicolon
+% 1005/2000 colon
+% 1006/3000 period
+% 1007/3001 exclamation mark
+% 1008/3002 question mark
+% 1009 suppress punctuation
+% 1010 new paragaph
+
+\mathchardef\blx@sf@prefixchar=1001% e.g. apostrophe or equivalent for prefix handling
+\mathchardef\blx@sf@dot=1002
+\mathchardef\blx@sf@comma=1003
+\mathchardef\blx@sf@semicolon=1004
+\mathchardef\blx@sf@colon=1005
+\mathchardef\blx@sf@period=1006
+\mathchardef\blx@sf@exclam=1007
+\mathchardef\blx@sf@question=1008
+\mathchardef\blx@sf@nopunct=1009
+\mathchardef\blx@sf@par=1010
+\mathchardef\blx@sf@threshold@low=1002
+\mathchardef\blx@sf@threshold@high=1009
+
+\csdef{blx@sf@1250}{\the\blx@sf@comma}
+\csdef{blx@sf@1500}{\the\blx@sf@semicolon}
+\csdef{blx@sf@2000}{\the\blx@sf@colon}
+\csdef{blx@sf@3000}{\the\blx@sf@period}
+\csdef{blx@sf@3001}{\the\blx@sf@exclam}
+\csdef{blx@sf@3002}{\the\blx@sf@question}
+
+\csdef{blx@pm@,}{comma}
+\csdef{blx@pm@;}{semicolon}
+\csdef{blx@pm@:}{colon}
+\csdef{blx@pm@.}{period}
+\csdef{blx@pm@!}{exclam}
+\csdef{blx@pm@?}{question}
+
+\def\blx@setsfcodes{%
+ \let\blx@setsfcodes\relax
+ \let\frenchspacing\blx@setfrcodes
+ \let\nonfrenchspacing\blx@setencodes
+ \ifnum\sfcode`\.>2000
+ \blx@setencodes
+ \else
+ \blx@setfrcodes
+ \fi
+ \@setquotesfcodes
+ \sfcode`\(=\z@
+ \sfcode`\)=\z@
+ \sfcode`\[=\z@
+ \sfcode`\]=\z@
+ \sfcode`\<=\z@
+ \sfcode`\>=\z@}
+
+\def\blx@setfrcodes{%
+ \ifnum\sfcode`\A=\@m
+ \else
+ \blx@setazcodes
+ \fi
+ \sfcode`\,=\blx@sf@comma
+ \sfcode`\;=\blx@sf@semicolon
+ \sfcode`\:=\blx@sf@colon
+ \sfcode`\.=\blx@sf@period
+ \sfcode`\!=\blx@sf@exclam
+ \sfcode`\?=\blx@sf@question
+}
+
+\def\blx@setencodes{%
+ \sfcode`\,=1250
+ \sfcode`\;=1500
+ \sfcode`\:=2000
+ \sfcode`\.=3000
+ \sfcode`\!=3001
+ \sfcode`\?=3002
+}
+
+% Defining characters that count as prefices in names like d'Argent
+% Code from moewe
+\let\blx@prefchars\@empty
+
+\def\blx@defprefchars@loop#1{%
+ \ifx#1\relax
+ \else
+ \listadd{\blx@prefchars}{#1}%
+ \expandafter\blx@defprefchars@loop
+ \fi}
+
+\def\blx@defprefchars#1{%
+ \expandafter\blx@defprefchars@loop\detokenize{#1}\relax}
+
+\newrobustcmd*{\DeclarePrefChars}{%
+ \@ifstar
+ {\blx@defprefchars}
+ {\global\let\blx@prefchars\@empty
+ \blx@defprefchars}}
+\DeclarePrefChars{'-}
+
+\protected\def\blx@imc@ifprefchar{%
+ \ifhmode
+ \begingroup
+ \ifnum\spacefactor=\blx@sf@prefixchar
+ \endgroup
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \endgroup
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\blx@regimcs{\ifprefchar}
+
+\def\blx@namecodes{%
+ \ifnum\sfcode`\A=\@m
+ \else
+ \blx@setazcodes
+ \fi
+ \def\do##1{\sfcode`##1=\blx@sf@prefixchar}%
+ \dolistloop\blx@prefchars
+}
+
+\begingroup
+\let\blx@setazcodes\@empty
+\def\blx@tempa{%
+ \xdef\blx@setazcodes{%
+ \blx@setazcodes
+ \sfcode\the\blx@tempcnta=\@m}
+ \ifnum\blx@tempcnta<\blx@tempcntb
+ \advance\blx@tempcnta\@ne
+ \expandafter\blx@tempa
+ \fi}
+\blx@tempcnta`\A
+\blx@tempcntb`\Z
+\blx@tempa
+\ifnum\inputlineno=\m@ne\else
+ \blx@tempcnta"80
+ \blx@tempcntb"9C
+ \blx@tempa
+ \blx@tempcnta"C0
+ \blx@tempcntb"DF
+ \blx@tempa
+\fi
+\endgroup
+
+\def\blx@spacefactor{%
+ \ifhmode
+ \ifcsundef{blx@sf@\the\spacefactor}
+ {\the\spacefactor}
+ {\csname blx@sf@\the\spacefactor\endcsname}%
+ \else
+ \the\blx@sf@par
+ \fi}
+
+\protected\def\blx@leavevmode{%
+ \ifhmode
+ \else
+ \leavevmode\spacefactor\blx@sf@par
+ \fi}
+
+\protected\def\blx@leavevmode@cite{%
+ \ifhmode
+ \ifnum\spacefactor=\blx@sf@par
+ \else
+ \spacefactor\@m
+ \fi
+ \else
+ \leavevmode
+ \fi}
+
+\protected\def\blx@imc@setpunctfont#1{%
+ \blx@ifpuncthook
+ {\gdef\abx@puncthook{%
+ \ifdim\lastkern>\z@\unkern\fi
+ \blx@imc@resetpunctfont#1}}
+ {}}
+\protected\def\blx@imc@resetpunctfont{%
+ \blx@ifpuncthook
+ {\global\let\abx@puncthook\@firstofone}
+ {}}
+
+\protected\def\blx@setpostpunct#1{%
+ \blx@ifuspunct
+ {\global\let\blx@postpunct\blx@dopostpunct
+ \ifdef\blx@thepostpunct
+ {\gappto\blx@thepostpunct{#1}}
+ {\gdef\blx@thepostpunct{#1}}}
+ {}}
+
+\def\blx@dopostpunct{%
+ \blx@thepostpunct
+ \global\let\blx@postpunct\@empty
+ \global\undef\blx@thepostpunct}
+
+\protected\def\blx@postpunct@agroup{%
+ \aftergroup\blx@postpunct
+ \let\blx@postpunct@agroup\@empty}
+
+% {<characters>}
+\newrobustcmd*{\DeclareCapitalPunctuation}[1]{%
+ \cslet{blx@cap@\the\blx@sf@par}\@empty
+ \csundef{blx@cap@\the\blx@sf@comma}%
+ \csundef{blx@cap@\the\blx@sf@semicolon}%
+ \csundef{blx@cap@\the\blx@sf@colon}%
+ \csundef{blx@cap@\the\blx@sf@period}%
+ \csundef{blx@cap@\the\blx@sf@exclam}%
+ \csundef{blx@cap@\the\blx@sf@question}%
+ \ifblank{#1}
+ {}
+ {\expandafter\blx@defcapstring\detokenize{#1}\relax}}
+
+\def\blx@defcapstring#1{%
+ \ifx#1\relax
+ \else
+ \begingroup
+ \blx@setfrcodes
+ \ifcsdef{blx@pm@#1}
+ {\expandafter\endgroup
+ \expandafter\let
+ \csname blx@cap@\the\sfcode`#1\endcsname\@empty}
+ {\blx@warning{Ignoring invalid punctuation mark '#1'}%
+ \endgroup}%
+ \expandafter\blx@defcapstring
+ \fi}
+
+% {<characters>}
+\newrobustcmd*{\DeclareQuotePunctuation}[1]{%
+ \csdef{blx@qp@comma}{\blx@postpunct}%
+ \csdef{blx@qp@semicolon}{\blx@postpunct}%
+ \csdef{blx@qp@colon}{\blx@postpunct}%
+ \csdef{blx@qp@period}{\blx@postpunct}%
+ \csdef{blx@qp@exclam}{\blx@postpunct}%
+ \csdef{blx@qp@question}{\blx@postpunct}%
+ \cslet{blx@pq@comma}\@empty
+ \cslet{blx@pq@semicolon}\@empty
+ \cslet{blx@pq@colon}\@empty
+ \cslet{blx@pq@period}\@empty
+ \cslet{blx@pq@exclam}\@empty
+ \cslet{blx@pq@question}\@empty
+ \let\blx@quotepunct\@empty
+ \ifblank{#1}
+ {\let\blx@ifuspunct\@secondoftwo}
+ {\let\blx@ifuspunct\@firstoftwo
+ \expandafter\blx@defquotepunct\detokenize{#1}&}}
+
+\def\blx@defquotepunct#1{%
+ \ifx&#1\relax
+ \else
+ \ifcsdef{blx@pm@#1}
+ {\appto\blx@quotepunct{#1}%
+ \cslet{blx@qp@\csuse{blx@pm@#1}}\@empty
+ \csdef{blx@pq@\csuse{blx@pm@#1}}{\blx@postpunct}}
+ {\blx@warning{Ignoring invalid punctuation mark '#1'}}%
+ \expandafter\blx@defquotepunct
+ \fi}
+
+% {<mark>}{<characters>}
+\newrobustcmd*{\DeclarePunctuationPairs}[2]{%
+ \ifcsdef{blx@sf@\detokenize{#1}}
+ {\ifnum\csname blx@sf@\detokenize{#1}\endcsname>\blx@sf@prefixchar
+ \ifnum\csname blx@sf@\detokenize{#1}\endcsname<\blx@sf@nopunct
+ \expandafter\blx@defpunctpairs
+ \expandafter{\the\csname blx@sf@\detokenize{#1}\endcsname}{#2}%
+ \else
+ \blx@err@invarg{\detokenize{#1}{}}%
+ \fi
+ \else
+ \blx@err@invarg{\detokenize{#1}{}}%
+ \fi}
+ {\blx@err@invarg{\detokenize{#1}{}}}}
+
+\def\blx@defpunctpairs#1#2{%
+ \blx@undefpair{#1}{\the\blx@sf@dot}%
+ \blx@undefpair{#1}{\the\blx@sf@comma}%
+ \blx@undefpair{#1}{\the\blx@sf@semicolon}%
+ \blx@undefpair{#1}{\the\blx@sf@colon}%
+ \blx@undefpair{#1}{\the\blx@sf@period}%
+ \blx@undefpair{#1}{\the\blx@sf@exclam}%
+ \blx@undefpair{#1}{\the\blx@sf@question}%
+ \ifblank{#2}
+ {}
+ {\begingroup
+ \def\blx@tempa{#1}%
+ \let\blx@tempb\@empty
+ \blx@setfrcodes
+ \sfcode`\*=\blx@sf@dot
+ \expandafter\blx@defpair\detokenize{#2}&%
+ \expandafter\endgroup\blx@tempb}}
+
+\def\blx@defpair#1{%
+ \ifx&#1%
+ \else
+ \ifnum\the\sfcode`#1>\blx@sf@prefixchar
+ \ifnum\the\sfcode`#1<\blx@sf@nopunct
+ \eappto\blx@tempb{%
+ \cslet{blx@pp@\blx@tempa @\the\sfcode`#1}\noexpand\@empty}%
+ \else
+ \blx@err@invarg{#1}{}%
+ \fi
+ \else
+ \blx@err@invarg{#1}{}%
+ \fi
+ \expandafter\blx@defpair
+ \fi}
+
+\def\blx@undefpair#1#2{%
+ \ifcsdef{blx@pp@#1@#2}
+ {\csundef{blx@pp@#1@#2}}
+ {}}
+
+\protected\def\blx@resetpunct{%
+ \DeclareCapitalPunctuation{.!?}%
+ \DeclarePunctuationPairs{dot}{}%
+ \DeclarePunctuationPairs{comma}{*!?}%
+ \DeclarePunctuationPairs{semicolon}{*!?}%
+ \DeclarePunctuationPairs{colon}{*!?}%
+ \DeclarePunctuationPairs{period}{}%
+ \DeclarePunctuationPairs{exclam}{*}%
+ \DeclarePunctuationPairs{question}{*}%
+ \DeclareQuotePunctuation{}%
+ \def\abx@dot{\ifdim\lastkern>\z@\unkern\fi.\spacefactor\blx@sf@dot}%
+ \def\abx@comma{\ifdim\lastkern>\z@\unkern\fi\abx@puncthook{,}}%
+ \def\abx@semicolon{\abx@puncthook{;}}%
+ \def\abx@colon{\abx@puncthook{:}}%
+ \def\abx@period{\ifdim\lastkern>\z@\unkern\fi\abx@puncthook{.}}%
+ \def\abx@exclam{\abx@puncthook{!}}%
+ \def\abx@question{\abx@puncthook{?}}%
+ \global\let\abx@puncthook\@firstofone
+ \global\let\blx@postpunct\@empty}
+
+\blx@resetpunct
+
+% {<character>}{<true>}{<false>}
+\protected\def\blx@imc@ifpunctmark#1{%
+ \ifhmode
+ \begingroup
+ \sfcode`\*=\blx@sf@dot
+ \ifnum\sfcode`#1=\spacefactor
+ \endgroup
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \endgroup
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<true>}{<false>}
+\protected\def\blx@imc@ifterm{%
+ \ifhmode
+ \expandafter\blx@imc@ifcapital
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<true>}{<false>}
+\protected\def\blx@imc@ifcapital{%
+ \ifcsdef{blx@cap@\blx@spacefactor}}
+
+% {<true>}{<false>}
+\protected\def\blx@imc@ifpunct{%
+ \ifnum\blx@spacefactor>\blx@sf@threshold@low
+ \ifnum\blx@spacefactor<\blx@sf@threshold@high
+ \expandafter\expandafter
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\expandafter
+ \expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<character>}
+\newrobustcmd*{\autocap}[1]{#1}
+
+\protected\def\blx@imc@autocap{%
+ \blx@imc@ifcapital\MakeUppercase\@firstofone}
+
+\protected\def\blx@imc@nopunct{%
+ \leavevmode\spacefactor\blx@sf@nopunct}
+
+\protected\def\blx@imc@isdot{%
+ \ifnum\blx@spacefactor=\blx@sf@period
+ \spacefactor\blx@sf@dot
+ \fi}
+
+\protected\def\blx@imc@adddot{%
+ \blx@addpunct{dot}%
+ \ifnum\blx@spacefactor=\blx@sf@period
+ \spacefactor\blx@sf@dot
+ \fi}
+
+\protected\def\blx@imc@addperiod{%
+ \blx@addpunct{period}%
+ \ifnum\blx@spacefactor=\blx@sf@dot
+ \spacefactor\blx@sf@period
+ \fi}
+
+\protected\def\blx@imc@addcomma{\blx@addpunct{comma}}
+\protected\def\blx@imc@addsemicolon{\blx@addpunct{semicolon}}
+\protected\def\blx@imc@addcolon{\blx@addpunct{colon}}
+\protected\def\blx@imc@addexclam{\blx@addpunct{exclam}}
+\protected\def\blx@imc@addquestion{\blx@addpunct{question}}
+
+\def\blx@addpunct#1{%
+ \unspace
+ \ifnum\blx@spacefactor<\blx@sf@threshold@low
+ \csuse{blx@qp@#1}\csuse{abx@#1}%
+ \else
+ \ifnum\blx@spacefactor>\blx@sf@threshold@high
+ \csuse{blx@qp@#1}\csuse{abx@#1}%
+ \else
+ \ifcsdef{blx@pp@\the\csname blx@sf@#1\endcsname @\blx@spacefactor}
+ {\csuse{blx@qp@#1}\csuse{abx@#1}}
+ {\csuse{blx@qp@#1}}%
+ \fi
+ \fi
+ \csuse{blx@pq@#1}}
+
+\providerobustcmd*{\unspace}{%
+ \ifbool{hmode}
+ {\ifdimgreater\lastskip\z@
+ {\unskip\unspace}
+ {\ifnumgreater\lastpenalty\z@
+ {\unpenalty\unspace}
+ {}}}
+ {}}
+
+\newrobustcmd*{\bibsentence}{%
+ \leavevmode\spacefactor\blx@sf@par
+ \ignorespaces}
+
+\newrobustcmd*{\midsentence}{%
+ \leavevmode
+ \@ifstar
+ {\ifnum\spacefactor=\blx@sf@dot
+ \else
+ \spacefactor\@m
+ \fi}
+ {\spacefactor\@m}}
+
+\newrobustcmd*{\addslash}{%
+ \unspace/\penalty\hyphenpenalty\hskip\z@skip}
+
+\newrobustcmd*{\addspace}{%
+ \unspace\blx@postpunct
+ \space\blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addnbspace}{%
+ \unspace\blx@postpunct
+ \nobreak\space\blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addthinspace}{%
+ \unspace\blx@postpunct
+ \hskip0.16667em\relax
+ \blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addnbthinspace}{%
+ \unspace\blx@postpunct
+ \nobreak\hskip0.16667em\relax
+ \blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addlowpenspace}{%
+ \unspace\blx@postpunct
+ \penalty\value{lownamepenalty}\space
+ \blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addhighpenspace}{%
+ \unspace\blx@postpunct
+ \penalty\value{highnamepenalty}\space
+ \blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addlpthinspace}{%
+ \unspace\blx@postpunct
+ \penalty\value{lownamepenalty}%
+ \hskip0.16667em\relax\blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addhpthinspace}{%
+ \unspace\blx@postpunct
+ \penalty\value{highnamepenalty}%
+ \hskip0.16667em\relax\blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addabbrvspace}{%
+ \unspace\blx@postpunct
+ \penalty\value{abbrvpenalty}%
+ \space\blx@imc@resetpunctfont}
+
+\newrobustcmd*{\addabthinspace}{%
+ \unspace\blx@postpunct
+ \penalty\value{abbrvpenalty}%
+ \hskip0.16667em\relax
+ \blx@imc@resetpunctfont}
+
+\newrobustcmd*{\adddotspace}{%
+ \unspace\adddot\blx@postpunct
+ \penalty\value{abbrvpenalty}%
+ \space\blx@imc@resetpunctfont}
+
+\providerobustcmd*{\noligature}{%
+ \penalty\@M\discretionary{-}{}{\kern0.03em}%
+ \nobreak\hskip\z@skip}
+
+\providerobustcmd*{\hyphen}{%
+ \nobreak-\nobreak\hskip\z@skip}
+
+\providerobustcmd*{\nbhyphen}{%
+ \nobreak\mbox{-}\nobreak\hskip\z@skip}
+
+\providerobustcmd*{\hyphenate}{%
+ \nobreak\-\nobreak\hskip\z@skip}
+
+\providerobustcmd*{\allowhyphens}{%
+ \nobreak\hskip\z@skip}
+
+% Idea from Peter Wilson's hyphenat package
+% https://ctan.org/pkg/hyphenat
+% also https://texfaq.org/FAQ-hyphoff
+\newlanguage\blx@langwohyphens
+
+\providerobustcmd*{\nohyphenation}{%
+ \language\blx@langwohyphens}
+
+\providerobustcmd*{\textnohyphenation}[1]{%
+ \bgroup\nohyphenation#1\egroup}
+
+\blx@regimcs{%
+ \setpunctfont \resetpunctfont \ifcapital \autocap \ifpunctmark
+ \ifpunct \ifterm \nopunct \isdot \adddot \addperiod \addcomma
+ \addsemicolon \addcolon \addexclam \addquestion}
+
+\appto\blx@blxinit{%
+ \appto\nocorrlist{\isdot\adddot\addperiod\addcomma}}
+
+%% Style definition
+
+% {<bibstyle>}
+\newrobustcmd*{\RequireBibliographyStyle}[1]{%
+ \blx@inputonce{#1.bbx}{bibliography style '#1'}{}{}{}
+ {\blx@error
+ {Style '#1' not found}
+ {The bibliography style '#1' could not be found}}}
+\@onlypreamble\RequireBibliographyStyle
+
+% {<code>}
+\newrobustcmd*{\InitializeBibliographyStyle}{\appto\blx@hook@bbxinit}
+\@onlypreamble\InitializeBibliographyStyle
+
+% {<entry type>}{<driverdef>}
+\newrobustcmd*{\DeclareBibliographyDriver}[1]{%
+ \long\csdef{blx@bbx@#1}}
+\@onlypreamble\DeclareBibliographyDriver
+
+% {<entry type>}
+\def\blx@driver#1{%
+ \ifcsdef{blx@bbx@#1}
+ {\csuse{blx@bbx@#1}}
+ {\ifcsdef{blx@bbx@*}
+ {\blx@warning{%
+ No driver for entry type '#1'.\MessageBreak
+ Using fallback driver}%
+ \csuse{blx@bbx@*}}
+ {\blx@error
+ {No driver for '\abx@field@entrytype' found}
+ {I can't find a driver for the entry type
+ '\abx@field@entrytype'\MessageBreak
+ and there is no fallback driver either}}}}
+
+% {<type>}{<true>}{<false>}
+\def\blx@imc@ifdriver#1{\ifcsdef{blx@bbx@#1}}
+
+% {<alias>}{<type>}
+\newrobustcmd*{\DeclareBibliographyAlias}[2]{%
+ \csedef{blx@bbx@#1}{%
+ \expandafter\noexpand\csname blx@bbx@#2\endcsname}}
+\@onlypreamble\DeclareBibliographyAlias
+
+%% Auxiliary commands
+\newrobustcmd*{\citereset}{%
+ \csuse{blx@hook@cbxinit}%
+ \@ifstar
+ {}
+ {\global\cslet{blx@bsee@\the\c@refsection}\@empty
+ \global\cslet{blx@fsee@\the\c@refsection}\@empty
+ \blx@ibidreset@force
+ \blx@idemreset@force
+ \blx@opcitreset@force
+ \blx@loccitreset@force}}
+
+\def\blx@save#1{%
+ \ifcsdef{blx@saved@#1}
+ {}
+ {\blx@safe@actives
+ \csletcs{blx@saved@#1}{#1}%
+ \blx@rest@actives}}
+
+\def\blx@restore#1{%
+ \ifcsdef{blx@saved@#1}
+ {\blx@safe@actives
+ \csletcs{#1}{blx@saved@#1}%
+ \csundef{blx@saved@#1}%
+ \blx@rest@actives}
+ {}}
+
+\newrobustcmd*{\savecommand}[1]{%
+ \ifcsdef{blx@saved@cmd@\detokenize{#1}}
+ {}
+ {\cslet{blx@saved@cmd@\detokenize{#1}}{#1}}}
+
+\newrobustcmd*{\restorecommand}[1]{%
+ \ifcsdef{blx@saved@cmd@\detokenize{#1}}
+ {\letcs{#1}{blx@saved@cmd@\detokenize{#1}}%
+ \csundef{blx@saved@cmd@\detokenize{#1}}}
+ {}}
+
+% {<name>}
+\newrobustcmd*{\savebibmacro}[1]{%
+ \blx@save{abx@macro@\detokenize{#1}}}
+
+\newrobustcmd*{\restorebibmacro}[1]{%
+ \blx@restore{abx@macro@\detokenize{#1}}}
+
+% {<name>}[<args>][<optarg>]{<definition>}
+\newrobustcmd*{\newbibmacro}{%
+ \@star@or@long\blx@newbibmacro}
+
+\def\blx@newbibmacro#1{%
+ \ifcsundef{abx@macro@\detokenize{#1}}
+ {\blx@defbibmacro\new@command{#1}}
+ {\blx@warning{%
+ Macro '\detokenize{#1}' already defined.\MessageBreak
+ Using \string\renewbibmacro}
+ \blx@defbibmacro\renew@command{#1}}}
+
+\newrobustcmd*{\renewbibmacro}{%
+ \@star@or@long\blx@renewbibmacro}
+
+\def\blx@renewbibmacro#1{%
+ \ifcsundef{abx@macro@\detokenize{#1}}
+ {\blx@warning{%
+ Macro '\detokenize{#1}' undefined.\MessageBreak
+ Using \string\newbibmacro}
+ \blx@defbibmacro\new@command{#1}}
+ {\blx@defbibmacro\renew@command{#1}}}
+
+\newrobustcmd*{\providebibmacro}{%
+ \@star@or@long{\blx@defbibmacro\provide@command}}
+
+\def\blx@defbibmacro#1#2{%
+ \expandafter#1\csname abx@macro@\detokenize{#2}\endcsname}
+
+% {<alias>}{<name>}
+\newrobustcmd*{\letbibmacro}{%
+ \@ifstar
+ {\blx@letbibmacro@i}
+ {\blx@letbibmacro}}
+
+\def\blx@letbibmacro#1#2{%
+ \blx@letbibmacro@i{\detokenize{#1}}{\detokenize{#2}}}
+
+\def\blx@letbibmacro@i#1#2{%
+ \ifcsundef{abx@macro@#2}
+ {\blx@error
+ {Bibliography macro '#2' undefined}
+ {Use '\string\newbibmacro' to define this macro}}
+ {\csletcs{abx@macro@#1}{abx@macro@#2}}}
+
+% {<name>}
+\newrobustcmd*{\usebibmacro}{%
+ \@ifstar
+ {\blx@usebibmacro@i}
+ {\blx@usebibmacro}}
+
+\def\blx@usebibmacro#1{%
+ \blx@usebibmacro@i{\detokenize{#1}}}
+
+\def\blx@usebibmacro@i#1{%
+ \ifcsundef{abx@macro@#1}
+ {\blx@error
+ {Bibliography macro '#1' undefined}
+ {Use '\string\newbibmacro' to define this macro}}
+ {\csuse{abx@macro@#1}}}
+
+% {<name>}{<true>}{<false>}
+\def\blx@imc@ifbibmacroundef#1{%
+ \ifcsundef{abx@macro@#1}}
+
+\def\ifbibmacroundef{\blx@imc@ifbibmacroundef}
+
+% {<field>}
+\def\blx@imc@thefield#1{\csuse{abx@field@#1}}
+
+\def\blx@imc@strfield#1{%
+ \ifcsdef{abx@field@#1}
+ {\detokenize\expandafter\expandafter\expandafter
+ {\csname abx@field@#1\endcsname}}
+ {}}
+
+\def\blx@imc@csfield#1{\usefield{\unexpanded}{#1}}
+
+% {<command>}{<field>}
+\def\blx@imc@usefield#1#2{%
+ \expandafter\expandafter\expandafter#1%
+ \expandafter\expandafter\expandafter{\csname abx@field@#2\endcsname}}
+
+% {<plainlist>}
+\def\blx@imc@thelist#1{\csuse{abx@list@#1}}
+
+\def\blx@imc@strlist#1{%
+ \ifcsdef{abx@list@#1}
+ {\detokenize\expandafter\expandafter\expandafter
+ {\csname abx@list@#1\endcsname}}
+ {}}
+
+\def\blx@imc@thefirstlistitem#1{%
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \blx@imc@thefirstlistitem@grab
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ {\csuse{abx@list@#1}}}
+
+\def\blx@imc@thefirstlistitem@grab#1{%
+ \blx@imc@thefirstlistitem@grab@i
+ #1{}{}%
+ \blx@imc@thefirstlistitem@grab@i@end}
+\def\blx@imc@thefirstlistitem@grab@i#1#2\blx@imc@thefirstlistitem@grab@i@end{#1}
+
+% {<command>}{<field>}
+% needs 7 levels of expansion, i.e. 2^7-1=127 '\expandafter's
+\def\blx@imc@usefirstlistitem#1#2{%
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter
+ #1%
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter
+ {\blx@imc@thefirstlistitem{#2}}}
+
+\def\blx@imc@strfirstlistitem#1{%
+ \ifcsdef{abx@list@#1}
+ {\blx@imc@usefirstlistitem{\detokenize}{#1}}
+ {}}
+
+% {<namelist>}
+\def\blx@imc@thename#1{\csuse{abx@name@#1}}
+
+\def\blx@imc@strname#1{%
+ \ifcsdef{abx@name@#1}
+ {\detokenize\expandafter\expandafter\expandafter
+ {\csname abx@name@#1\endcsname}}
+ {}}
+
+
+% We have to save cleared fields/lists/names in case a related entry
+% needs them for tests
+\let\abx@dorelfields\@empty
+\let\abx@dorellists\@empty
+\let\abx@dorelnames\@empty
+
+% {<field>}
+% If there is a related field in the entry, save a special copy in case
+% the related entry needs it for tests. See the corresponding tests in
+% \blx@save{field,list,name}
+\protected\def\blx@imc@clearfield#1{%
+ \ifdef\abx@field@related
+ {\csletcs{abx@field@relsaved#1}{abx@field@#1}%
+ \listadd\abx@dorelfields{#1}}
+ {}%
+ \csundef{abx@field@#1}}
+
+% {<plainlist>}
+% If there is a related field in the entry, save a special copy in case
+% the related entry needs it for tests. See the corresponding tests in
+% \blx@save{field,list,name}
+\protected\def\blx@imc@clearlist#1{%
+ \ifcsundef{abx@list@#1}
+ {}
+ {\ifdef\abx@field@related
+ {\csletcs{abx@list@relsaved#1}{abx@list@#1}%
+ \csletcs{etb@tgl@abx@bool@morerelsaved#1}{etb@tgl@abx@bool@more#1}%
+ \csletcs{c@relsaved#1}{c@#1}%
+ \listadd\abx@dorellists{#1}}
+ {}%
+ \togglefalse{abx@bool@more#1}%
+ \csundef{abx@list@#1}%
+ \csname c@#1\endcsname\z@}}
+
+% {<namelist>}
+% If there is a related field in the entry, save a special copy in case
+% the related entry needs it for tests. See the corresponding tests in
+% \blx@save{field,list,name}
+\protected\def\blx@imc@clearname#1{%
+ \ifcsundef{abx@name@#1}
+ {}
+ {\ifdef\abx@field@related
+ {\csletcs{abx@name@relsaved#1}{abx@name@#1}%
+ \csletcs{etb@tgl@abx@bool@morerelsaved#1}{etb@tgl@abx@bool@more#1}%
+ \csletcs{c@relsaved#1}{c@#1}%
+ \listadd\abx@dorelnames{#1}}
+ {}%
+ \togglefalse{abx@bool@more#1}%
+ \csundef{abx@name@#1}%
+ \csname c@#1\endcsname\z@}}
+
+% {<field>}{<macro>}
+\protected\def\blx@imc@restorefield#1{\cslet{abx@field@#1}}
+
+% {<plainlist>}{<macro>}
+\protected\def\blx@imc@restorelist#1{\cslet{abx@list@#1}}
+
+% {<namelist>}{<macro>}
+\protected\def\blx@imc@restorename#1{\cslet{abx@name@#1}}
+
+% {<field>}{<macro>}
+\protected\def\blx@imc@savefield{%
+ \@ifstar{\blx@savedata{field}}{\global\blx@savedata{field}}}
+\def\blx@savedata#1#2#3{\letcs#3{abx@#1@#2}}
+
+% {<plainlist>}{<macro>}
+\protected\def\blx@imc@savelist{%
+ \@ifstar{\blx@savedata{list}}{\global\blx@savedata{list}}}
+
+% {<namelist>}{<macro>}
+\protected\def\blx@imc@savename{%
+ \@ifstar{\blx@savedata{name}}{\global\blx@savedata{name}}}
+
+% {<field>}{<csname>}
+\protected\def\blx@imc@savefieldcs{%
+ \@ifstar{\blx@savedatacs{field}}{\global\blx@savedatacs{field}}}
+\def\blx@savedatacs#1#2#3{\csletcs{#3}{abx@#1@#2}}
+
+% {<plainlist>}{<csname>}
+\protected\def\blx@imc@savelistcs{%
+ \@ifstar{\blx@savedatacs{list}}{\global\blx@savedatacs{list}}}
+
+% {<namelist>}{<csname>}
+\protected\def\blx@imc@savenamecs{%
+ \@ifstar{\blx@savedatacs{name}}{\global\blx@savedatacs{name}}}
+
+% {<field>}{<true>}{<false>}
+\def\blx@imc@iffieldundef#1{%
+ \ifcsundef{abx@field@#1}}
+
+% {<plainlist>}{<true>}{<false>}
+\def\blx@imc@iflistundef#1{%
+ \ifcsundef{abx@list@#1}}
+
+% {<namelist>}{<true>}{<false>}
+\def\blx@imc@ifnameundef#1{%
+ \ifcsundef{abx@name@#1}}
+
+% {<field1>}{<field2>}{<true>}{<false>}
+\def\blx@imc@iffieldsequal#1#2{%
+ \ifcsequal{abx@field@#1}{abx@field@#2}}
+
+% {<plainlist1>}{<plainlist2>}{<true>}{<false>}
+\def\blx@imc@iflistsequal#1#2{%
+ \ifcsequal{abx@list@#1}{abx@list@#2}}
+
+% {<namelist1>}{<namelist2>}{<true>}{<false>}
+\def\blx@imc@ifnamesequal#1#2{%
+ \ifcsundef{abx@name@#1}
+ {\@secondoftwo}
+ {\ifcsundef{abx@name@#2}
+ {\@secondoftwo}
+ {\blx@ifnamesequal{#1}{#2}}}}
+
+\def\blx@ifnamesequal#1#2{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \expandafter\expandafter
+ \expandafter\blx@ifnamesequal@i\csname abx@name@#2\endcsname
+ \let\blx@tempb\blx@tempa
+ \let\blx@tempa\@empty
+ \expandafter\expandafter
+ \expandafter\blx@ifnamesequal@i\csname abx@name@#1\endcsname
+ \expandafter\endgroup
+ \ifx\blx@tempa\blx@tempb
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\blx@ifnamesequal@i#1#2{%
+ \expandafter\blx@ifnamesequal@ii#2{}&}
+
+\def\blx@ifnamesequal@ii#1{%
+ \ifblank{#1}
+ {\blx@namebreak}
+ {\blx@ifnamesequal@iii#1%
+ \blx@ifnamesequal@ii}}
+
+% These explicit nameparts are alright as they are for bibtex only
+% biber names will always have a hash generated from all nameparts in datamodel
+\def\blx@ifnamesequal@iii#1#2{%
+ \setkeys{blx@opt@name}{#1}%
+ \setkeys{blx@opt@namepart}{#2}%
+ \ifdef\abx@field@hash
+ {\eappto\blx@tempa{{\abx@field@hash}}}
+ {\eappto\blx@tempa{{{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}}}}}
+
+% {<field>}{<macro>}{<true>}{<false>}
+\def\blx@imc@iffieldequals#1#2{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\ifundef#2%
+ {\@secondoftwo}
+ {\expandafter\ifx\csname abx@field@#1\endcsname#2%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}}
+
+% {<plainlist>}{<macro>}{<true>}{<false>}
+\def\blx@imc@iflistequals#1#2{%
+ \blx@imc@iflistundef{#1}
+ {\@secondoftwo}
+ {\ifundef#2%
+ {\@secondoftwo}
+ {\expandafter\ifx\csname abx@list@#1\endcsname#2%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}}
+
+% {<namelist>}{<macro>}{<true>}{<false>}
+\def\blx@imc@ifnameequals#1#2{% FIXME
+ \blx@imc@ifnameundef{#1}
+ {\@secondoftwo}
+ {\ifundef#2%
+ {\@secondoftwo}
+ {\expandafter\ifx\csname abx@name@#1\endcsname#2%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}}
+
+% {<field>}{<csname>}{<true>}{<false>}
+\def\blx@imc@iffieldequalcs#1{%
+ \ifcsequal{abx@field@#1}}
+
+% {<plainlist>}{<csname>}{<true>}{<false>}
+\def\blx@imc@iflistequalcs#1{%
+ \ifcsequal{abx@list@#1}}
+
+% {<namelist>}{<csname>}{<true>}{<false>}
+\def\blx@imc@ifnameequalcs#1{% FIXME
+ \ifcsequal{abx@name@#1}}
+
+% {<field>}{<string>}{<true>}{<false>}
+\protected\long\def\blx@imc@iffieldequalstr#1#2{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\expandafter\expandafter\expandafter\ifstrequal
+ \expandafter\expandafter\expandafter{%
+ \csname abx@field@#1\endcsname}{#2}}}
+
+% {<field>}{<true>}{<false>}
+\protected\def\blx@imc@iffieldxref#1{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\blx@whichxref
+ {\blx@iffieldxref{#1}}
+ {\@secondoftwo}}}
+
+\def\blx@iffieldxref#1#2{%
+ \begingroup
+ \letcs\blx@tempa{abx@field@#2}%
+ \letcs\blx@tempb{abx@field@#1}%
+ \blx@resetdata
+ \blx@getdata{\blx@tempa}%
+ \blx@imc@iffieldequals{#1}\blx@tempb
+ {\aftergroup\@firstoftwo}
+ {\aftergroup\@secondoftwo}%
+ \endgroup}
+
+\def\blx@whichxref#1#2{%
+ \blx@imc@iffieldundef{crossref}
+ {\blx@imc@iffieldundef{xref}
+ {#2}
+ {#1{xref}}}
+ {#1{crossref}}}
+
+% {<plainlist>}{<true>}{<false>}
+\protected\def\blx@imc@iflistxref#1{%
+ \blx@imc@iflistundef{#1}
+ {\@secondoftwo}
+ {\blx@whichxref
+ {\blx@iflistxref{#1}}
+ {\@secondoftwo}}}
+
+\def\blx@iflistxref#1#2{%
+ \begingroup
+ \letcs\blx@tempa{abx@field@#2}%
+ \letcs\blx@tempb{abx@list@#1}%
+ \blx@resetdata
+ \blx@getdata{\blx@tempa}%
+ \blx@imc@iflistequals{#1}\blx@tempb
+ {\aftergroup\@firstoftwo}
+ {\aftergroup\@secondoftwo}%
+ \endgroup}
+
+% {<namelist>}{<true>}{<false>}
+\protected\def\blx@imc@ifnamexref#1{%
+ \blx@imc@ifnameundef{#1}
+ {\@secondoftwo}
+ {\blx@whichxref
+ {\blx@ifnamexref{#1}}
+ {\@secondoftwo}}}
+
+\def\blx@ifnamexref#1#2{%
+ \begingroup
+ \letcs\blx@tempa{abx@field@#2}%
+ \letcs\blx@tempb{abx@name@#1}%
+ \blx@resetdata
+ \blx@getdata{\blx@tempa}%
+ \blx@imc@ifnameequals{#1}\blx@tempb
+ {\aftergroup\@firstoftwo}
+ {\aftergroup\@secondoftwo}%
+ \endgroup}
+
+% {<string>}{<true>}{<false>}
+\protected\def\blx@imc@ifcurrentfield#1{%
+ \begingroup
+ \def\blx@tempa{#1}%
+ \ifx\currentfield\blx@tempa
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+
+% {<string>}{<true>}{<false>}
+\protected\def\blx@imc@ifcurrentlist#1{%
+ \begingroup
+ \def\blx@tempa{#1}%
+ \ifx\currentlist\blx@tempa
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+
+% {<string>}{<true>}{<false>}
+\protected\def\blx@imc@ifcurrentname#1{%
+ \begingroup
+ \def\blx@tempa{#1}%
+ \ifx\currentname\blx@tempa
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+
+% {<string>}{<true>}{<false>}
+\protected\def\blx@imc@ifentrytype#1{%
+ \begingroup
+ \def\blx@tempa{#1}%
+ \ifx\abx@field@entrytype\blx@tempa
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+
+% {<true>}{<false>}
+\def\blx@imc@ifmorenames{%
+ \ifundef\currentname
+ {\@secondoftwo}
+ {\iftoggle{abx@bool@more\currentname}
+ {\@firstoftwo}
+ {\ifnum\c@listtotal>\c@liststop
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}}
+
+% {<true>}{<false>}
+\def\blx@imc@ifmoreitems{%
+ \ifundef\currentlist
+ {\@secondoftwo}
+ {\iftoggle{abx@bool@more\currentlist}
+ {\@firstoftwo}
+ {\ifnum\c@listtotal>\c@liststop
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}}
+
+% {<true>}{<false>}
+\def\blx@imc@iffirstcitekey{%
+ \ifboolexpr{ ( test {\ifnumequal\c@multicitetotal\z@}
+ and test {\ifnumequal\c@citecount\@ne} )
+ or ( test {\ifnumgreater\c@multicitetotal\z@}
+ and test {\ifnumequal\c@multicitecount\@ne}
+ and test {\ifnumequal\c@citecount\@ne} ) }}
+
+\def\blx@imc@iflastcitekey{%
+ \ifboolexpr{ test {\ifnumequal\c@citecount\c@citetotal}
+ and test {\ifnumequal\c@multicitecount\c@multicitetotal} }}
+
+% {<category>}{<true>}{<false>}
+\protected\def\blx@imc@ifcategory{%
+ \ifdef\abx@field@entrykey
+ {\blx@imc@ifentrycategory\abx@field@entrykey}
+ {\expandafter\@secondoftwo\@gobble}}
+
+% {<entrykey>}{<category>}{<true>}{<false>}
+\protected\def\blx@imc@ifentrycategory{%
+ \blx@xsanitizeafter\blx@imc@ifentrycategory@i}
+
+\def\blx@imc@ifentrycategory@i#1#2{%
+ \ifcsdef{blx@catg@\detokenize{#2}}
+ {\ifinlistcs{#1}{blx@catg@\detokenize{#2}}}
+ {\@secondoftwo}}
+
+% {<keyword>}{<true>}{<false>}
+\protected\def\blx@imc@ifkeyword{%
+ \ifdef\abx@field@entrykey
+ {\blx@imc@ifentrykeyword\abx@field@entrykey}
+ {\expandafter\@secondoftwo\@gobble}}
+
+% {<entrykey>}{<keyword>}{<true>}{<false>}
+\protected\def\blx@imc@ifentrykeyword{%
+ \blx@xsanitizeafter\blx@imc@ifentrykeyword@i}
+
+\def\blx@imc@ifentrykeyword@i#1#2{%
+ \ifcsdef{blx@keyw@\the\c@refsection @\detokenize{#2}}
+ {\ifinlistcs{#1}{blx@keyw@\the\c@refsection @\detokenize{#2}}}
+ {\@secondoftwo}}
+
+% {<true>}{<false>}
+\protected\def\blx@ifciteseen@global{%
+ \ifbool{citetracker}
+ {\ifdef\abx@field@entrykey
+ {\expandafter\blx@ifseen@global
+ \expandafter{\abx@field@entrykey}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+\protected\def\blx@ifciteseen@context{%
+ \ifbool{citetracker}
+ {\ifdef\abx@field@entrykey
+ {\expandafter\blx@ifseen@context
+ \expandafter{\abx@field@entrykey}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+\protected\def\blx@ifciteseen@context{%
+ \ifbool{citetracker}
+ {\ifdef\abx@field@entrykey
+ {\expandafter\blx@ifseen@context
+ \expandafter{\abx@field@entrykey}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+% {<entrykey>}{<true>}{<false>}
+\protected\def\blx@ifentryseen@global{%
+ \blx@xsanitizeafter\blx@ifseen@global}
+
+\protected\def\blx@ifentryseen@context{%
+ \blx@xsanitizeafter\blx@ifseen@context}
+
+\def\blx@ifseen@global#1{%
+ \ifbool{citetracker}
+ {\ifinlistcs{#1}{blx@bsee@\the\c@refsection}}
+ {\@secondoftwo}}
+
+\def\blx@ifseen@context#1{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\ifinlistcs{#1}{blx@fsee@\the\c@refsection}}
+ {\ifinlistcs{#1}{blx@bsee@\the\c@refsection}}}
+ {\@secondoftwo}}
+
+% {<true>}{<false>}
+\def\blx@ifciteibid@global{%
+ \ifbool{citetracker}
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}
+ {\@secondoftwo}}
+
+\def\blx@ifciteibid@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot}
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}}
+ {\@secondoftwo}}
+
+\def\blx@ifciteibid@strict{%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\blx@ifciteibid@global}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+\def\blx@ifciteibid@constrict{%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot}
+ {\@secondoftwo}}
+ {\blx@imc@iffieldequals{entrykey}\blx@lastkey@text}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+% {<true>}{<false>}
+\def\blx@ifciteidem@global{%
+ \ifbool{citetracker}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}
+ {\@secondoftwo}}
+
+\def\blx@ifciteidem@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@foot}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}}
+ {\@secondoftwo}}
+
+\let\blx@ifciteidem@strict\blx@ifciteidem@global
+
+\def\blx@ifciteidem@constrict{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@foot}
+ {\@secondoftwo}}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}}
+ {\@secondoftwo}}
+
+% {<true>}{<false>}
+\def\blx@ifopcit@global{%
+ \ifbool{citetracker}
+ {\blx@imc@iffieldundef{namehash}
+ {\@secondoftwo}
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}}
+ {\@secondoftwo}}
+
+\def\blx@ifopcit@context{%
+ \ifbool{citetracker}
+ {\blx@imc@iffieldundef{namehash}
+ {\@secondoftwo}
+ {\iftoggle{blx@footnote}
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@foot@\abx@field@namehash}}
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}}}
+ {\@secondoftwo}}
+
+\def\blx@ifopcit@strict{%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\blx@ifopcit@global}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+\def\blx@ifopcit@constrict{%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\blx@imc@iffieldundef{namehash}
+ {\@secondoftwo}
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@foot@\abx@field@namehash}}
+ {\@secondoftwo}}
+ {\blx@imc@iffieldequalcs{entrykey}{blx@lastkey@text@\abx@field@namehash}}}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+% {<true>}{<false>}
+\def\blx@ifloccit@global{%
+ \ifbool{citetracker}
+ {\blx@loccit@check{text}}
+ {\@secondoftwo}}
+
+\def\blx@ifloccit@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@loccit@check{foot}}
+ {\blx@loccit@check{text}}}
+ {\@secondoftwo}}
+
+\def\blx@ifloccit@strict{%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\blx@loccit@numcheck{text}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+\def\blx@ifloccit@constrict{%
+ \ifbool{citetracker}
+ {\blx@ifcitesingle
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheck
+ {\blx@loccit@numcheck{foot}}
+ {\@secondoftwo}}
+ {\blx@loccit@numcheck{text}}}
+ {\@secondoftwo}}
+ {\@secondoftwo}}
+
+\def\blx@loccit@check#1{%
+ \blx@imc@iffieldundef{postnote}
+ {\@secondoftwo}
+ {\blx@imc@iffieldequalcs{postnote}{blx@lastnote@#1@\abx@field@entrykey}}}
+
+\def\blx@loccit@numcheck#1{%
+ \blx@imc@iffieldundef{postnote}
+ {\@secondoftwo}
+ {\expandafter\blx@imc@ifpages
+ \expandafter{\abx@field@postnote}
+ {\blx@imc@iffieldequalcs{postnote}{blx@lastnote@#1@\abx@field@entrykey}}
+ {\@secondoftwo}}}
+
+% {<true>}{<false>}
+\def\blx@ifmpfncheck{%
+ \ifnum\numexpr\value\@mpfn-\blx@lastmpfn<\tw@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\blx@mpfnsave{%
+ \xdef\blx@lastmpfn{\the\value\@mpfn}}
+
+\def\blx@mpfnreset{%
+ \global\let\blx@lastmpfn\z@}
+
+\blx@mpfnreset
+
+% {<true>}{<false>}
+\def\blx@imc@iffirstonpage{%
+ \ifbool{pagetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@iffirstonpage{fnpage}}
+ {\blx@iffirstonpage{page}}}
+ {\@secondoftwo}}
+
+\def\blx@iffirstonpage#1{%
+ \ifcsundef{blx@#1@\number\c@instcount}
+ {\@secondoftwo}
+ {\expandafter\blx@iffirstonpage@i
+ \expandafter{\number\numexpr\c@instcount-1}{#1}}}
+
+\def\blx@iffirstonpage@i#1#2{%
+ \ifcsundef{blx@#2@#1}
+ {\ifnum#1>\@ne
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\expandafter\blx@iffirstonpage@i
+ \expandafter{\number\numexpr#1-1}{#2}}
+ {\@firstoftwo}}
+ {\ifnum\csuse{blx@#2@\number\c@instcount}=%
+ \csuse{blx@#2@#1} %
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}}
+
+% {<count1>}{<count2>}{<true>}{<false>}
+\def\blx@imc@ifsamepage#1#2{%
+ \ifbool{pagetracker}
+ {\ifcsundef{blx@page@\number\numexpr#1}
+ {\ifcsundef{blx@fnpage@\number\numexpr#1}
+ {\@secondoftwo}
+ {\blx@ifsamepage{#1}{#2}{fnpage}}}
+ {\blx@ifsamepage{#1}{#2}{page}}}
+ {\@secondoftwo}}
+
+\def\blx@ifsamepage#1#2#3{%
+ \ifcsundef{blx@page@\number\numexpr#2}
+ {\ifcsundef{blx@fnpage@\number\numexpr#2}
+ {\@secondoftwo}
+ {\blx@ifsamepage@i{#1}{#2}{#3}{fnpage}}}
+ {\blx@ifsamepage@i{#1}{#2}{#3}{page}}}
+
+\def\blx@ifsamepage@i#1#2#3#4{%
+ \ifnum\csuse{blx@#3@\number\numexpr#1}=%
+ \csuse{blx@#4@\number\numexpr#2} %
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% {<string>}{<true>}{<false>}
+\protected\long\def\blx@imc@ifinteger#1{%
+ \begingroup
+ \def\do##1{\uccode`##1=`\%}%
+ \do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9%
+ \makeatletter
+ \catcode`\%=9
+ \endlinechar\m@ne
+ \uppercase{\scantokens{\def\blx@tempa{#1}}}%
+ \ifx\blx@tempa\@empty
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup}
+
+% {<field>}{<true>}{<false>}
+\protected\def\blx@imc@iffieldint#1{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\expandafter\expandafter
+ \expandafter\blx@imc@ifinteger
+ \expandafter\expandafter
+ \expandafter{\csname abx@field@#1\endcsname}}}
+
+% {<string>}{<true>}{<false>}
+\protected\def\blx@imc@ifnumeral{%
+ \blx@ifnum\blx@hook@ifnum}
+
+\protected\def\blx@imc@ifnumerals{%
+ \blx@ifnum\blx@hook@ifnums}
+
+\protected\def\blx@imc@ifpages{%
+ \blx@ifnum\blx@hook@ifpages}
+
+\long\def\blx@ifnum#1#2{%
+ \begingroup
+ \let\protect\@unexpandable@protect
+ \uppercase{\edef\blx@tempa{#2}}%
+ \ifx\blx@tempa\@empty
+ \aftergroup\@secondoftwo
+ \else
+ \makeatletter
+ \catcode`\%=9
+ \endlinechar\m@ne
+ \everyeof{\noexpand}#1%
+ \uppercase{\edef\blx@tempa{\scantokens{#2}}}%
+ \ifx\blx@tempa\@empty
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \fi
+ \endgroup}
+
+\def\blx@hook@ifnum{%
+ \def\do##1{\uccode`##1=`\%}%
+ \do\ \do\0\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9%
+ \do\i\do\v\do\x\do\l\do\c\do\d\do\m
+ \do\I\do\V\do\X\do\L\do\C\do\D\do\M
+ \blx@donumchars
+ \let\RN\@firstofone
+ \let\Rn\@firstofone}
+
+\def\blx@hook@ifnums{%
+ \blx@hook@ifnum
+ \def\do##1{\uccode`##1=`\%}%
+ \blx@dorangechars
+ \def\do##1{\let##1\@empty}%
+ \blx@dorangecmds}
+
+\def\blx@hook@ifpages{%
+ \blx@hook@ifnum
+ \blx@hook@ifnums
+ \def\do##1{\let##1\@empty}%
+ \blx@dopagecmds}
+
+% {<field>}{<true>}{<false>}
+\protected\def\blx@imc@iffieldnum#1{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\expandafter\expandafter
+ \expandafter\blx@imc@ifnumeral
+ \expandafter\expandafter
+ \expandafter{\csname abx@field@#1\endcsname}}}
+
+\protected\def\blx@imc@iffieldnums#1{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\expandafter\expandafter
+ \expandafter\blx@imc@ifnumerals
+ \expandafter\expandafter
+ \expandafter{\csname abx@field@#1\endcsname}}}
+
+\protected\def\blx@imc@iffieldpages#1{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\expandafter\expandafter
+ \expandafter\blx@imc@ifpages
+ \expandafter\expandafter
+ \expandafter{\csname abx@field@#1\endcsname}}}
+
+% {<chars>}
+\newrobustcmd*{\DeclareNumChars}{%
+ \@ifstar
+ {\blx@defnumchars}
+ {\global\let\blx@donumchars\@empty
+ \blx@defnumchars}}
+
+\def\blx@defnumchars#1{%
+ \ifblank{#1}
+ {}
+ {\expandafter\blx@defdochars
+ \expandafter\blx@donumchars
+ \detokenize{#1}\relax}}
+
+% {<chars>}
+\newrobustcmd*{\DeclareRangeChars}{%
+ \@ifstar
+ {\blx@defrangechars}
+ {\global\let\blx@dorangechars\@empty
+ \blx@defrangechars}}
+
+\def\blx@defrangechars#1{%
+ \ifblank{#1}
+ {}
+ {\expandafter\blx@defdochars
+ \expandafter\blx@dorangechars
+ \detokenize{#1}\relax}}
+
+\def\blx@defdochars#1#2{%
+ \ifx#2\relax
+ \else
+ \xdef#1{%
+ \expandonce#1\noexpand\do
+ \expandafter\noexpand\csname#2\endcsname}%
+ \expandafter\blx@defdochars
+ \expandafter#1%
+ \fi}
+
+% {<cstokens>}
+\newrobustcmd*{\DeclareRangeCommands}{%
+ \@ifstar
+ {\blx@defrangecmds}
+ {\global\let\blx@dorangecmds\@empty
+ \blx@defrangecmds}}
+
+\def\blx@defrangecmds#1{%
+ \ifblank{#1}
+ {}
+ {\blx@defrangecmds@i#1&}}
+
+\def\blx@defrangecmds@i#1{%
+ \ifx&#1%
+ \else
+ \gappto\blx@dorangecmds{\do#1}%
+ \expandafter\blx@defrangecmds@i
+ \fi}
+
+% {<cstokens>}
+\newrobustcmd*{\DeclarePageCommands}{%
+ \@ifstar
+ {\blx@defpagecmds}
+ {\global\let\blx@dopagecmds\@empty
+ \blx@defpagecmds}}
+
+\def\blx@defpagecmds#1{%
+ \ifblank{#1}
+ {}
+ {\blx@defpagecmds@i#1&}}
+
+\def\blx@defpagecmds@i#1{%
+ \ifx&#1%
+ \else
+ \gappto\blx@dopagecmds{\do#1}%
+ \expandafter\blx@defpagecmds@i
+ \fi}
+
+\DeclareNumChars{.}
+\DeclareRangeChars{~,;-+/}
+\DeclareRangeCommands{%
+ \ \,\space\nobreakspace\addspace\addnbspace
+ \addthinspace\addnbthinspace\addlowpenspace
+ \addhighpenspace\addlpthinspace\addhpthinspace
+ \adddotspace\addabbrvspace\&\psq\psqq
+ \bibrangedash\bibdaterangesep\bibtimerangesep\textendash\textemdash\bibrangessep}
+\DeclarePageCommands{\pno\ppno}
+
+% *{<code>}
+\newrobustcmd*{\NumCheckSetup}{\appto\blx@hook@ifnum}
+\newcommand*{\NumcheckSetup}{\NumCheckSetup}
+
+% [<pagination>][<postpro>]{<string>}
+\newrobustcmd*{\blx@imc@mkpageprefix}[1][pagination]{%
+ \begingroup
+ \def\blx@tempa{\blx@mkpageprefix{page}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldequalstr{#1}{none}
+ {\def\blx@tempa{\blx@mkpageprefix@i}}
+ {\iffieldbibstring{#1}
+ {\edef\blx@tempa{\blx@mkpageprefix{\thefield{#1}}}}
+ {\blx@warning@entry{%
+ Unknown pagination type '\strfield{#1}'}}}}%
+ \@ifnextchar[%]
+ {\blx@tempa}
+ {\blx@tempa[\@firstofone]}}
+
+\protected\long\def\blx@mkpageprefix#1[#2]#3{%
+ \ifnumeral{#3}
+ {\bibstring{#1}\ppspace}
+ {\ifnumerals{#3}
+ {\bibstring{#1s}\ppspace}
+ {\def\pno{\bibstring{#1}}%
+ \def\ppno{\bibstring{#1s}}}}%
+ \blx@mkpageprefix@i[#2]{#3}}
+
+\long\def\blx@mkpageprefix@i[#1]#2{#1{#2}\endgroup}
+
+% [<pagination>][<postpro>]{<string>}
+\newrobustcmd*{\blx@imc@mkpagetotal}[1][bookpagination]{%
+ \begingroup
+ \def\blx@tempa{\blx@mkpagetotal{pagetotal}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldequalstr{#1}{none}
+ {\def\blx@tempa{\blx@mkpagetotal@i}}
+ {\iffieldplusstringbibstring{#1}{total}
+ {\edef\blx@tempa{\blx@mkpagetotal{\thefield{#1}total}}}
+ {\blx@warning@entry{%
+ Unknown pagination type '\strfield{#1}total'}}}}%
+ \@ifnextchar[%]
+ {\blx@tempa}
+ {\blx@tempa[\@firstofone]}}
+
+\protected\long\def\blx@mkpagetotal#1[#2]#3{%
+ \ifnumeral{#3}
+ {\setbox\@tempboxa=\hbox{%
+ \blx@tempcnta0#3\relax
+ \ifnum\blx@tempcnta=\@ne
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi}%
+ {#2{#3}\ppspace\bibstring{#1}}
+ {#2{#3}\ppspace\bibstring{#1s}}}
+ {\def\pno{\bibstring{#1}}%
+ \def\ppno{\bibstring{#1s}}%
+ #2{#3}}%
+ \endgroup}
+
+\long\def\blx@mkpagetotal@i[#1]#2{#1{#2}\endgroup}
+
+\newcounter{mincomprange}
+\newcounter{maxcomprange}
+\newcounter{mincompwidth}
+\setcounter{mincomprange}{10}
+\setcounter{maxcomprange}{100000}
+\setcounter{mincompwidth}{1}
+\def\abx@rangeproclimit{100000}
+
+% {<rangefield>}
+\newcommand*{\rangelen}[1]{%
+ \ifcsdef{abx@range@#1}
+ {\csuse{abx@range@#1}}
+ {}}
+
+% <*>[<postpro>]{<string>}
+\newrobustcmd*{\mknormrange}{%
+ \begingroup
+ \@ifstar
+ {\blx@range@aux\blx@normrange@ii}
+ {\blx@range@aux\blx@normrange@i}}
+
+\def\blx@range@aux#1{%
+ \@ifnextchar[{\blx@range@aux@i#1}{#1[\@firstofone][\@firstofone]}}
+
+\def\blx@range@aux@i#1[#2]{%
+ \@ifnextchar[{#1[#2]}{#1[#2][\@firstofone]}}
+
+\def\blx@normrange@i[#1][#2]#3{%
+ \let\blx@tempa\@empty
+ \protected\def\blx@range@out@value{\appto\blx@tempa}%
+ \def\blx@range@out@item@process{#2}%
+ \let\blx@range@out@delim\blx@range@out@value
+ \let\blx@range@split\blx@genrange@split
+ \let\blx@range@process\blx@normrange@process
+ \blx@range@chunk{#3}%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \unexpanded{#1}{\expandonce\blx@tempa}}%
+ \blx@tempa
+ \endgroup}
+
+\def\blx@normrange@ii[#1][#2]#3{%
+ \protected\def\blx@range@out@value{#1}%
+ \def\blx@range@out@item@process{#2}%
+ \let\blx@range@out@delim\@firstofone
+ \let\blx@range@split\blx@genrange@split
+ \let\blx@range@process\blx@normrange@process
+ \blx@range@chunk{#3}%
+ \endgroup}
+
+\def\blx@range@chunk#1{%
+ \blx@range@chunk@semcol#1;&}
+
+\def\blx@range@chunk@semcol#1;#2&{%
+ \notblank{#1}
+ {\blx@range@chunk@comma#1,&}
+ {}%
+ \notblank{#2}
+ {\notblank{#1}{\blx@range@out@delim{\bibrangessep}}{}%
+ \blx@range@chunk@semcol#2&}
+ {}}
+
+\def\blx@range@chunk@comma#1,#2&{%
+ \notblank{#1}
+ {\blx@range@chunk@sep#1\bibrangessep&}
+ {}%
+ \notblank{#2}
+ {\notblank{#1}{\blx@range@out@delim{\bibrangessep}}{}%
+ \blx@range@chunk@comma#2&}
+ {}}
+
+\def\blx@range@chunk@sep#1\bibrangessep#2&{%
+ \notblank{#1}
+ {\expandafter\blx@range@split
+ \expandafter{\@firstofone#1}}
+ {}%
+ \notblank{#2}
+ {\notblank{#1}{\blx@range@out@delim{\bibrangessep}}{}%
+ \blx@range@chunk@sep#2&}
+ {}}
+
+% Unicode en-dashes are supported in blx-unicode.def
+\def\blx@genrange@split#1{%
+ \edef\blx@normrange@abort{%
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}%
+ \blx@imc@ifpages{#1}
+ {\blx@normrange@range#1\bibrangedash\bibrangedash&}
+ {\blx@normrange@abort}}
+
+\def\blx@normrange@range#1\bibrangedash#2\bibrangedash#3&{%
+ \ifblank{#3}
+ {\blx@normrange@hyphen#1--&}
+ {\ifblank{#2}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}%
+ \noexpand\bibrangedash}}%
+ \blx@tempc}
+ {\ifblank{#1}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{%
+ \unexpanded{#2}}}}%
+ \blx@tempc}
+ {\blx@range@process{#1}{#2}}}}}
+
+\def\blx@normrange@hyphen#1-#2-#3&{%
+ \ifblank{#3}
+ {\blx@normrange@abort}
+ {\ifblank{#2}
+ {\ifblank{#1}
+ {\let\blx@tempb\@empty}
+ {\def\blx@tempb{#1}}%
+ \blx@normrange@hyphen@i#3&}
+ {\ifblank{#1}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{%
+ \unexpanded{#2}}}}%
+ \blx@tempc}
+ {\blx@range@process{#1}{#2}}}}}
+
+\def\blx@normrange@hyphen@i#1-#2&{%
+ \ifblank{#1#2}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\expandonce\blx@tempb}%
+ \noexpand\bibrangedash}}%
+ \blx@tempc}
+ {\notblank{#1}
+ {\ifdefempty\blx@tempb
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{%
+ \unexpanded{#1}}}}%
+ \blx@tempc}
+ {\expandafter\blx@range@process
+ \expandafter{\blx@tempb}{#1}}}
+ {\blx@normrange@hyphen@i#2&}}}
+
+\def\blx@normrange@process#1#2{%
+ \begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}%
+ \blx@tempc}
+
+% <*>[<postpro>]{<string>}
+\newrobustcmd*{\mkcomprange}{%
+ \begingroup
+ \@ifstar
+ {\blx@range@aux\blx@comprange@ii}
+ {\blx@range@aux\blx@comprange@i}}
+
+\def\blx@comprange@i[#1][#2]#3{%
+ \let\blx@tempa\@empty
+ \protected\def\blx@range@out@value{\appto\blx@tempa}%
+ \def\blx@range@out@item@process{#2}%
+ \let\blx@range@out@delim\blx@range@out@value
+ \let\blx@range@split\blx@genrange@split
+ \let\blx@range@process\blx@comprange@check
+ \blx@range@chunk{#3}%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \unexpanded{#1}{\expandonce\blx@tempa}}%
+ \blx@tempa
+ \endgroup}
+
+\def\blx@comprange@ii[#1][#2]#3{%
+ \protected\def\blx@range@out@value{#1}%
+ \def\blx@range@out@item@process{#2}%
+ \let\blx@range@out@delim\@firstofone
+ \let\blx@range@split\blx@genrange@split
+ \let\blx@range@process\blx@comprange@check
+ \blx@range@chunk{#3}%
+ \endgroup}
+
+\def\blx@comprange@check#1#2{%
+ \blx@imc@ifinteger{#1}
+ {\blx@imc@ifinteger{#2}
+ {\@firstoftwo}
+ {\@secondoftwo}}
+ {\@secondoftwo}
+ {\blx@comprange@comp{#1}{#2}}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}%
+ \blx@tempc}}
+
+\def\blx@comprange@comp#1#2{%
+ \def\blx@tempb{#1}%
+ \def\blx@tempc{#2}%
+ \let\blx@tempd\blx@tempc
+ \ifnum\c@maxcomprange<\abx@rangeproclimit\relax
+ \numdef\blx@tempe\abx@rangeproclimit
+ \else
+ \numdef\blx@tempe\c@maxcomprange
+ \fi
+ \blx@tempcntc=\blx@tempe\relax
+ \ifnum
+ \ifnum\c@mincompwidth<1\space1\fi
+ \ifnum\c@maxcomprange<10\space1\fi
+ \ifnum\c@mincomprange<\blx@tempb\space\else1\fi
+ \ifnum\blx@tempb<\numexpr\blx@tempcntc*10\relax\else1\fi
+ 0=\z@
+ \expandafter\blx@comprange@comp@div
+ \else
+ \expandafter\blx@comprange@end
+ \fi}
+
+\def\blx@comprange@end{%
+ \numdef\blx@tempb\blx@tempb
+ \ifnum\blx@tempe>\c@maxcomprange\relax
+ \numdef\blx@tempc\blx@tempc
+ \else
+ \numdef\blx@tempc\blx@tempd
+ \fi
+ \begingroup
+ \edef\blx@tempb{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\blx@tempb}%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{\blx@tempc}}}%
+ \blx@tempb}
+
+\def\blx@comprange@comp@div{%
+ \unless\ifnum\blx@tempb<\blx@tempcntc
+ \blx@tempcnta\blx@tempb\relax
+ \blx@tempcntb\blx@tempc\relax
+ \divide\blx@tempcnta\blx@tempcntc
+ \divide\blx@tempcntb\blx@tempcntc
+ \ifnum\blx@tempcnta=\blx@tempcntb
+ \edef\blx@tempd{\expandafter\@gobble\blx@tempd}%
+ \numdef\blx@tempe\blx@tempcntc
+ \fi
+ \fi
+ \divide\blx@tempcntc10\relax
+ \ifnum
+ \ifnum\blx@tempcntc<10 1\fi
+ \ifnum\blx@tempcntc>\c@mincompwidth\else 1\fi
+ 0=\z@
+ \expandafter\blx@comprange@comp@div
+ \else
+ \expandafter\blx@comprange@end
+ \fi}
+
+% <*>[<postpro>]{<string>}
+\newrobustcmd*{\mkfirstpage}{%
+ \begingroup
+ \@ifstar
+ {\blx@range@aux\blx@firstpage@ii}
+ {\blx@range@aux\blx@firstpage@i}}
+
+\def\blx@firstpage@i[#1][#2]#3{%
+ \let\blx@tempa\@empty
+ \protected\def\blx@range@out@value{\appto\blx@tempa}%
+ \def\blx@range@out@item@process{#2}%
+ \let\blx@range@out@delim\blx@range@out@value
+ \let\blx@range@split\blx@firstpage@split
+ \blx@range@chunk{#3}%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \unexpanded{#1}{\expandonce\blx@tempa}}%
+ \blx@tempa
+ \endgroup}
+
+\def\blx@firstpage@ii[#1][#2]#3{%
+ \protected\def\blx@range@out@value{#1}%
+ \def\blx@range@out@item@process{#2}%
+ \let\blx@range@out@delim\@firstofone
+ \let\blx@range@split\blx@firstpage@split
+ \blx@range@chunk{#3}%
+ \endgroup}
+
+% Unicode en-dashes are supported in blx-unicode.def
+\def\blx@firstpage@split#1{%
+ \edef\blx@firstpage@abort{%
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}%
+ \blx@firstpage@range#1\bibrangedash\bibrangedash&}
+
+\def\blx@firstpage@range#1\bibrangedash#2\bibrangedash#3&{%
+ \ifblank{#3}
+ {\blx@firstpage@hyphen#1--&}
+ {\ifblank{#1}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}%
+ \blx@tempc}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}%
+ \blx@tempc}}}
+
+\def\blx@firstpage@hyphen#1-#2-#3&{%
+ \ifblank{#3}
+ {\blx@firstpage@abort}
+ {\ifblank{#1}
+ {\ifblank{#2}
+ {\blx@firstpage@hyphen@i#3&}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{%
+ \unexpanded{#2}}}}%
+ \blx@tempc}}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}%
+ \blx@tempc}}}
+
+\def\blx@firstpage@hyphen@i#1-#2&{%
+ \ifblank{#1}
+ {\ifblank{#2}
+ {\blx@firstpage@abort}
+ {\blx@firstpage@hyphen@i#2&}}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{%
+ \unexpanded{#1}}}}%
+ \blx@tempc}}
+
+\newcommand*{\ppspace}{\addnbspace}
+\newcommand*{\sqspace}{\addnbspace}
+
+\newrobustcmd*{\RN}[1]{%
+ \begingroup
+ \expandafter\RNfont
+ \expandafter{\romannumeral#1}%
+ \endgroup}
+\newrobustcmd*{\Rn}[1]{%
+ \begingroup
+ \expandafter\Rnfont
+ \expandafter{\romannumeral#1}%
+ \endgroup}
+
+\newcommand*{\RNfont}{\uppercase}
+\newcommand*{\Rnfont}{}
+
+% Delimiter interface
+
+% [<contextname, ...>]{<name, ...>}{<code>}
+\newrobustcmd*{\DeclareDelimFormat}{%
+ \@ifstar
+ {\blx@declaredelimclear}
+ {\blx@declaredelim}}
+
+\def\blx@cleardelim#1{%
+ \ifcsvoid{blx@declaredelimcontexts@#1}
+ {}
+ {\def\do##1{\csundef{blx@printdelim@##1@#1}}%
+ \dolistcsloop{blx@declaredelimcontexts@#1}}%
+ \cslet{blx@declaredelimcontexts@#1}\@empty}
+
+\newrobustcmd*{\blx@declaredelimclear}[3][]{%
+ \blx@cleardelim{#2}%
+ \ifblank{#1}
+ {\blx@declaredelim{#2}{#3}}
+ {\blx@declaredelim[#1]{#2}{#3}}}
+
+\newrobustcmd*{\blx@declaredelim}[3][]{%
+ \ifblank{#1}
+ {\blx@declaredelim@i{}{}{#2}{#3}}
+ {\def\do##1{%
+ \listcsadd{blx@declaredelimcontexts@#2}{##1}%
+ \blx@declaredelim@i{blx@printdelim@##1@}{##1}{#2}{#3}}%
+ \docsvlist{#1}}}%
+
+\def\blx@declaredelim@i#1#2#3#4{%
+ \def\do@i##1{%
+ \ifcsdef{#1##1}
+ {\blx@inf@delimdeclare{##1}{#2}}
+ {}%
+ \csdef{#1##1}{#4}}%
+ \forcsvlist{\do@i}{#3}}
+
+% *[<alias context, ...>]{<alias>}[<delim context>]{<delim>}
+\newrobustcmd*{\DeclareDelimAlias}{%
+ \@ifstar
+ {\blx@declaredelimalias@expl}
+ {\blx@declaredelimalias@auto}}
+
+\newrobustcmd*{\blx@declaredelimalias@auto}[2]{%
+ \blx@cleardelim{#1}%
+ \blx@declaredelimalias@def{}{#1}{}{#2}%
+ \ifcsvoid{blx@declaredelimcontexts@#2}
+ {}
+ {\def\do##1{%
+ \blx@declaredelimalias@def
+ {blx@printdelim@##1@}{#1}{blx@printdelim@##1@}{#2}}%
+ \dolistcsloop{blx@declaredelimcontexts@#2}}}
+
+\def\blx@declaredelimalias@expl{%
+ \@ifnextchar[%]
+ {\blx@declaredelimalias@expl@i}
+ {\blx@declaredelimalias@expl@i[]}}
+
+\def\blx@declaredelimalias@expl@i[#1]#2{%
+ \@ifnextchar[%]
+ {\blx@declaredelimalias@expl@iii{#1}{#2}}
+ {\blx@declaredelimalias@expl@ii{#1}{#2}}}
+
+\def\blx@declaredelimalias@expl@ii#1#2#3{%
+ \ifblank{#1}
+ {\blx@declaredelimalias@def{}{#2}{}{#3}}
+ {\def\do##1{%
+ \blx@declaredelimalias@def
+ {blx@printdelim@##1@}{#2}{blx@printdelim@##1@}{#3}}%
+ \docsvlist{#1}}}
+
+\def\blx@declaredelimalias@expl@iii#1#2[#3]#4{%
+ \ifblank{#1}
+ {\ifblank{#3}
+ {\blx@declaredelimalias@def{}{#2}{}{#4}}
+ {\blx@declaredelimalias@def{}{#2}{blx@printdelim@#3@}{#4}}}
+ {\ifblank{#3}
+ {\def\do##1{%
+ \blx@declaredelimalias@def
+ {blx@printdelim@##1@}{#2}{}{#4}}}
+ {\def\do##1{%
+ \blx@declaredelimalias@def
+ {blx@printdelim@##1@}{#2}{blx@printdelim@#3@}{#4}}}%
+ \docsvlist{#1}}}
+
+\def\blx@declaredelimalias@def#1#2#3#4{%
+ \ifcsdef{#1#2}
+ {\blx@inf@delimdeclare{#2}{#1}}
+ {}%
+ \ifblank{#1}
+ {}
+ {\ifinlistcs{#1}{blx@declaredelimcontexts@#2}
+ {}
+ {\listcsadd{blx@declaredelimcontexts@#2}{#1}}}%
+ \csdef{#1#2}{\ifcsundef{#3#4}{\csuse{#4}}{\csuse{#3#4}}}}
+
+\def\blx@delimcontext{none}
+\newcommand*{\printdelim}[2][]{%
+ \ifblank{#1}
+ {\ifcsdef{blx@printdelim@\blx@delimcontext @#2}
+ {\csuse{blx@printdelim@\blx@delimcontext @#2}}
+ {\ifcsdef{#2}% fall back on legacy macros
+ {\csuse{#2}}
+ {\blx@warn@delimuse{#2}{*}}}}
+ {\ifcsdef{blx@printdelim@#1@#2}
+ {\csuse{blx@printdelim@#1@#2}}
+ {\blx@warn@delimuse{#2}{#1}}}}
+
+\newcommand*{\delimcontext}[1]{%
+ \edef\blx@delimcontext{\blx@delimcontextalias{#1}}}
+
+\def\blx@delimcontextalias#1{%
+ \ifcsdef{blx@delimcontextalias@#1}
+ {\csuse{blx@delimcontextalias@#1}}
+ {#1}}
+
+\newcommand*{\DeclareDelimcontextAlias}[2]{%
+ \csdef{blx@delimcontextalias@#1}{#2}}
+
+\newrobustcmd*{\AtUsedriver}{%
+ \@ifstar
+ {\global\undef\blx@hook@usedriver
+ \gappto\blx@hook@usedriver}
+ {\gappto\blx@hook@usedriver}}
+\@onlypreamble\AtUsedriver
+\def\blx@imc@UseUsedriverHook{\csuse{blx@hook@usedriver}}
+\blx@regimcs{\UseUsedriverHook}
+
+\AtUsedriver{%
+ \let\finentry\blx@finentry@usedrv
+ \let\newblock\relax
+ \let\abx@macro@bibindex\@empty
+ \let\abx@macro@pageref\@empty}
+
+% {<init>}{<entrytype>}
+\protected\def\blx@imc@usedriver#1#2{%
+ \begingroup
+ \delimcontext{bib}%
+ \csuse{blx@hook@usedriver}%
+ \csuse{blx@hook@bbxinit}#1%
+ \blx@beglangbib
+ \blx@driver{#2}%
+ \blx@endlangbib
+ \endgroup}
+
+% Punctuation
+
+\protected\def\blx@initunit{%
+ \global\togglefalse{blx@block}%
+ \global\togglefalse{blx@unit}%
+ \global\togglefalse{blx@insert}%
+ \global\togglefalse{blx@lastins}%
+ \global\togglefalse{blx@keepunit}%
+ \global\let\blx@unitpunct\newunitpunct
+ \blx@imc@resetpunctfont}
+
+\def\blx@begunit{%
+ \toggletrue{blx@tempa}%
+ \iftoggle{blx@insert}
+ {\iftoggle{blx@unit}
+ {\begingroup
+ \let\blx@begunit\@empty
+ \let\blx@endunit\@empty
+ \let\blx@endnounit\@empty
+ \blx@unitpunct\blx@postpunct
+ \endgroup
+ \global\togglefalse{blx@unit}%
+ \togglefalse{blx@tempa}}
+ {\blx@postpunct}%
+ \iftoggle{blx@block}
+ {\begingroup
+ \let\blx@begunit\@empty
+ \let\blx@endunit\@empty
+ \let\blx@endnounit\@empty
+ \newblockpunct
+ \endgroup
+ \global\togglefalse{blx@block}%
+ \togglefalse{blx@tempa}}
+ {}}
+ {}%
+ \blx@postpunct
+ \blx@imc@resetpunctfont
+ \iftoggle{blx@tempa}
+ {}
+ {\global\togglefalse{blx@insert}}%
+ \blx@leavevmode
+ \begingroup}
+
+\def\blx@endunit{%
+ \endgroup
+ \global\toggletrue{blx@insert}%
+ \global\toggletrue{blx@lastins}}
+
+\def\blx@nounit{%
+ \global\togglefalse{blx@lastins}}
+
+\def\blx@endnounit{%
+ \endgroup\blx@nounit}
+
+\protected\def\blx@imc@newblock{%
+ \global\toggletrue{blx@block}}%
+
+\protected\def\blx@imc@newunit{%
+ \iftoggle{blx@keepunit}
+ {}
+ {\global\let\blx@unitpunct\newunitpunct
+ \global\toggletrue{blx@unit}}}
+
+\protected\def\blx@imc@setunit{%
+ \@ifstar\blx@setunit@i\blx@setunit}
+
+\long\def\blx@setunit#1{%
+ \iftoggle{blx@keepunit}
+ {}
+ {\long\gdef\blx@unitpunct{#1}%
+ \global\toggletrue{blx@unit}}}
+
+\def\blx@setunit@i{%
+ \iftoggle{blx@lastins}
+ {\blx@setunit}
+ {\@gobble}}
+
+\protected\def\blx@imc@printunit{%
+ \@ifstar\blx@printunit@i\blx@printunit}
+
+\def\blx@printunit#1{%
+ \long\gdef\blx@unitpunct{#1\global\togglefalse{blx@keepunit}}%
+ \global\toggletrue{blx@keepunit}%
+ \global\toggletrue{blx@unit}}
+
+\def\blx@printunit@i{%
+ \iftoggle{blx@lastins}
+ {\blx@printunit}
+ {\@gobble}}
+
+\protected\def\blx@imc@finentry{%
+ \unspace\finentrypunct
+ \blx@postpunct
+ \blx@initunit}
+
+\protected\def\blx@finentry@usedrv{%
+ \blx@setunit\relax}
+
+\protected\def\blx@finentry@inset{%
+ \blx@setunit\entrysetpunct
+ \global\toggletrue{blx@block}}
+
+\def\ifentryseen{\blx@imc@ifentryseen}
+\def\ifentryinbib{\blx@imc@ifentryinbib}
+\def\ifentrycategory{\blx@imc@ifentrycategory}
+\def\ifentrykeyword{\blx@imc@ifentrykeyword}
+
+\def\blx@imc@iflabeldateisdate{%
+ \ifboolexpr{%
+ togl {blx@labeldateparts}
+ and not test {\iffieldundef{labeldatesource}}
+ and
+ (test {\iffieldequalstr{labeldatesource}{}}
+ or test {\iffieldequalstr{labeldatesource}{year}})}}
+
+\def\blx@imc@ifdatehasyearonlyprecision#1{%
+ \ifboolexpr{not test {\iffieldundef{#1year}}
+ and (test {\ifcsstring{blx@dateformat@#1date}{year}}
+ or (test {\iffieldundef{#1month}}
+ and test {\iffieldundef{#1season}}))}}
+
+\def\blx@imc@ifdatehastime#1{%
+ \ifboolexpr{togl {blx@#1dateusetime}
+ and not test {\iffieldundef{#1hour}}}}
+
+\def\blx@imc@ifdateshavedifferentprecision#1#2{%
+ \ifboolexpr{ (test {\ifdatehasyearonlyprecision{#1}}
+ and not test {\ifdatehasyearonlyprecision{#2}})
+ or (not test {\ifdatehasyearonlyprecision{#1}}
+ and test {\ifdatehasyearonlyprecision{#2}})
+ or (test {\ifdatehastime{#1}}
+ and not test {\ifdatehastime{#2}})
+ or (not test {\ifdatehastime{#1}}
+ and test {\ifdatehastime{#2}})}}
+
+\def\blx@imc@ifdateyearsequal#1#2{%
+ \ifboolexpr{ test {\iffieldsequal{#1year}{#2year}}
+ and test {\iffieldsequal{#1dateera}{#2dateera}}}}
+
+\blx@regimcs{%
+ \ifdriver \thefield \strfield \csfield \usefield \thelist \strlist
+ \thefirstlistitem \usefirstlistitem \strfirstlistitem
+ \thename \strname
+ \clearfield \clearlist \clearname \restorefield \restorelist \restorename
+ \ifcategory \ifkeyword
+ \ifciteseen \ifciteibid \ifciteidem \ifopcit \ifloccit
+ \ifcurrentfield \ifcurrentlist \ifcurrentname \ifentrytype
+ \iffieldequalcs \iffieldequals \iffieldequalstr \iffieldsequal
+ \iffieldundef \iffieldxref \iflistequalcs \iflistequals
+ \iflistsequal \iflistundef \iflistxref
+ \ifmorenames \ifmoreitems \iffirstcitekey \iflastcitekey
+ \ifnameequalcs \ifnameequals \ifnamesequal \ifnameundef \ifnamexref
+ \iffirstonpage \ifsamepage \savefield \savefieldcs \savelist
+ \savelistcs \savename \savenamecs \usedriver
+ \ifinteger \ifnumeral \ifnumerals \ifpages
+ \iffieldint \iffieldnum \iffieldnums \iffieldpages
+ \iflabeldateisdate \ifdatehasyearonlyprecision \ifdatehastime
+ \ifdateshavedifferentprecision
+ \ifdateyearsequal
+ \mkpageprefix \mkpagetotal
+ \newblock \newunit \setunit \printunit \finentry}
+
+\appto\blx@blxinit{%
+ \def\ifnatbibmode{\iftoggle{blx@natbib}}%
+ \def\ifcitation{\iftoggle{blx@citation}}%
+ \def\ifvolcite{\iftoggle{blx@volcite}}%
+ \def\ifbibliography{\iftoggle{blx@bibliography}}%
+ \def\ifciteindex{\iftoggle{blx@citeindex}}%
+ \def\ifbibindex{\iftoggle{blx@bibindex}}%
+ \def\iffootnote{\iftoggle{blx@footnote}}%
+ \def\ifuseprefix{\iftoggle{blx@useprefix}}%
+ \def\ifterseinits{\iftoggle{blx@terseinits}}%
+ \def\ifcrossrefsource{\iftoggle{abx@bool@crossrefsource}}%
+ \def\ifxrefsource{\iftoggle{abx@bool@xrefsource}}%
+ \def\ifsingletitle{\iftoggle{abx@bool@singletitle}}%
+ \def\ifnocite{\iftoggle{abx@bool@nocite}}%
+ \def\ifuniquetitle{\iftoggle{abx@bool@uniquetitle}}%
+ \def\ifuniquebaretitle{\iftoggle{abx@bool@uniquebaretitle}}%
+ \def\ifuniquework{\iftoggle{abx@bool@uniquework}}%
+ \def\ifuniqueprimaryauthor{\iftoggle{abx@bool@uniqueprimaryauthor}}%
+ \def\ifandothers#1{\iftoggle{abx@bool@more#1}}%
+ \protected\def\pnfmt{\printtext[postnote]}%
+ \protected\def\pno{\bibstring{page}}%
+ \protected\def\ppno{\bibstring{pages}}%
+ \let\nopp\relax
+ \protected\def\psq{\sqspace\bibstring{sequens}}%
+ \protected\def\psqq{\sqspace\bibstring{sequentes}}}
+
+% Make sure that commands which might pop up inside an \edef will be defined
+% as something. If they are taken \AtBeginDocument then we assume that all will
+% be well. If not, then provide a definition which will give an error outside
+% of a citation context.
+\AtBeginDocument{%
+ \protected\def\do#1{%
+ \ifdefined#1%
+ \else
+ \protected\def#1{\ERROR}%
+ \fi
+ }%
+ \docsvlist{\pnfmt,\pno,\ppno,\nopp,\psq,\psqq}%
+}
+
+%% Global formatting hooks
+
+% capitalization
+
+% {<text>}
+\newrobustcmd{\MakeCapital}[1]{%
+ \begingroup
+ \blx@mkcp@init
+ \protected@edef\blx@tempa{#1}%
+ \expandafter\blx@mkcp@parse\blx@tempa\@empty\blx@mkcp@end}
+
+\def\blx@mkcp@init{%
+ \def\blx@mkcp@iec{\noexpand\blx@mkcp@iec\noexpand}%
+ \def\blx@mkcp@bbl{\noexpand\blx@mkcp@bbl\noexpand}%
+ \def\blx@mkcp@sgl{\noexpand\blx@mkcp@sgl\noexpand}%
+ \def\blx@mkcp@dbl{\noexpand\blx@mkcp@dbl\noexpand}%
+ \def\do##1{\def##1{\blx@mkcp@sgl##1}}\abx@dosingleaccents
+ \def\do##1{\def##1{\blx@mkcp@dbl##1}}\abx@dodoubleaccents
+ \def\IeC##1{\blx@mkcp@iec\IeC{##1}}%
+ \def\@tabacckludge##1{%
+ \expandafter\blx@mkcp@sgl\csname\string##1\endcsname}}
+
+\begingroup
+\catcode`\"=\active
+\gappto\blx@mkcp@init{%
+ \ifnum\catcode`\"=\active
+ \def"#1{\blx@mkcp@bbl"\noexpand#1}%
+ \fi}
+\endgroup
+
+\def\blx@mkcp@parse{%
+ \futurelet\@let@token\blx@mkcp@eval}
+
+\long\def\blx@mkcp@eval{%
+ \ifx\@let@token\blx@mkcp@iec
+ \expandafter\blx@mkcp@getiec
+ \fi
+ \ifx\@let@token\blx@mkcp@bbl
+ \expandafter\blx@mkcp@gettwo
+ \fi
+ \ifx\@let@token\blx@mkcp@sgl
+ \expandafter\blx@mkcp@gettwo
+ \fi
+ \ifx\@let@token\blx@mkcp@dbl
+ \expandafter\blx@mkcp@getthree
+ \fi
+ \blx@mkcp@case}
+
+\def\blx@mkcp@getiec#1\blx@mkcp@case#2#3#4{%
+ \blx@mkcp@case{#2#3{#4}}}
+
+\def\blx@mkcp@gettwo#1\blx@mkcp@case#2#3#4{%
+ \blx@mkcp@case{#2#3#4}}
+
+\def\blx@mkcp@getthree#1\blx@mkcp@case#2#3#4#5{%
+ \blx@mkcp@case{#2#3#4#5}}
+
+\long\def\blx@mkcp@case#1{%
+ \begingroup
+ \def\i{I}\def\j{J}%
+ \def\do##1##2{\let##1##2\do}%
+ \expandafter\do\@uclclist\relax{\relax\@gobble}%
+ \uppercase{\protected@edef\blx@tempa{\endgroup\blx@mkcp@end#1}}%
+ \blx@tempa}
+
+\protected\long\def\blx@mkcp@end#1\blx@mkcp@end{%
+ \let\blx@mkcp@iec\noexpand
+ \let\blx@mkcp@bbl\noexpand
+ \let\blx@mkcp@sgl\noexpand
+ \let\blx@mkcp@dbl\noexpand
+ \protected@edef\blx@tempa{\endgroup#1}%
+ \blx@tempa}
+
+\def\abx@dosingleaccents{%
+ \do\"\do\'\do\`\do\^\do\~\do\=\do\.%
+ \do\H\do\b\do\c\do\d\do\r\do\u\do\v}
+\def\abx@dodoubleaccents{%
+ \do\t}
+
+% {<text>}
+\newrobustcmd*{\MakeSentenceCase}{%
+ \@ifstar\blx@mksc@i\blx@mksc@ii}
+
+% Check, in order:
+% * explicit option language=<lang>, which overrides everything
+% * langid field of entry
+% * babel/polyglossia lang
+% * main document lang
+\def\blx@mksc@i{%
+ \ifdef\blx@forcelanguagename
+ {\xifinlist\blx@forcelanguagename\blx@cmksc@lang
+ {\blx@mksc@ii}
+ {\@firstofone}}
+ {\ifdef\abx@field@langid
+ {\xifinlist\abx@field@langid\blx@cmksc@lang
+ {\blx@mksc@ii}
+ {\@firstofone}}
+ {\ifdef\bbl@main@language
+ {\xifinlist\bbl@main@language\blx@cmksc@lang
+ {\blx@mksc@ii}
+ {\@firstofone}}
+ {\xifinlist\blx@languagename\blx@cmksc@lang
+ {\blx@mksc@ii}
+ {\@firstofone}}}}}
+
+\long\def\blx@mksc@ii#1{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \let\blx@tempb\@empty
+ \blx@mksc@init
+ \protected@edef\@tempa{#1}%
+ \expandafter\blx@mksc@parse\@tempa\blx@mksc@end}
+
+\def\blx@mksc@init{%
+ \blx@mkcp@init
+ \def\blx@mkcp@nil{\noexpand\blx@mkcp@nil\noexpand}%
+ \def\i{\blx@mkcp@nil\i}\def\j{\blx@mkcp@nil\j}%
+ \def\do##1{%
+ \ifx##1\relax
+ \else
+ \def##1{\blx@mkcp@nil##1}%
+ \expandafter\do
+ \fi}%
+ \expandafter\do\@uclclist\relax}
+
+\def\blx@mksc@parse{%
+ \futurelet\@let@token\blx@mksc@eval}
+
+\def\blx@mksc@eval{%
+ \ifx\@let@token\blx@mksc@end
+ \expandafter\blx@mksc@end
+ \fi
+ \ifx\@let@token\bgroup
+ \expandafter\blx@mksc@group
+ \fi
+ \ifx\@let@token\@sptoken
+ \expandafter\blx@mksc@space
+ \fi
+ \ifx\@let@token\blx@mkcp@nil
+ \expandafter\blx@mksc@getone
+ \fi
+ \ifx\@let@token\blx@mkcp@iec
+ \expandafter\blx@mksc@getiec
+ \fi
+ \ifx\@let@token\blx@mkcp@bbl
+ \expandafter\blx@mksc@gettwo
+ \fi
+ \ifx\@let@token\blx@mkcp@sgl
+ \expandafter\blx@mksc@gettwo
+ \fi
+ \ifx\@let@token\blx@mkcp@dbl
+ \expandafter\blx@mksc@getthree
+ \fi
+ \if\noexpand\@let@token\relax
+ \expandafter\blx@mksc@cs
+ \fi
+ \blx@mksc@other}
+
+\def\blx@mksc@end#1\blx@mksc@end{%
+ \blx@mksc@eject
+ \let\blx@mkcp@nil\noexpand
+ \let\blx@mkcp@iec\noexpand
+ \let\blx@mkcp@bbl\noexpand
+ \let\blx@mkcp@sgl\noexpand
+ \let\blx@mkcp@dbl\noexpand
+ \let\MakeUppercase\relax
+ \let\MakeLowercase\relax
+ \protected@edef\blx@tempa{\endgroup\blx@tempa}%
+ \blx@tempa}
+
+\long\def\blx@mksc@group#1\blx@mksc@other#2{%
+ \futurelet\@let@token\blx@mksc@ingroup#2&{#2}%
+ \blx@mksc@endhead
+ \blx@mksc@parse}
+
+\long\def\blx@mksc@ingroup#1&#2{%
+ \if\noexpand\@let@token\relax
+ \ifx\@let@token\blx@mkcp@sgl
+ \blx@mksc@nocase{{#2}}%
+ \else
+ \ifx\@let@token\blx@mkcp@dbl
+ \blx@mksc@nocase{{#2}}%
+ \else
+ \blx@mksc@locase{{#2}}%
+ \fi
+ \fi
+ \else
+ \blx@mksc@nocase{{#2}}%
+ \fi}
+
+\def\blx@mksc@space{\def\blx@mksc@space##1\blx@mksc@other}
+\csuse{blx@mksc@space} {%
+ \blx@mksc@anycase{ }%
+ \blx@mksc@endhead
+ \blx@mksc@parse}
+
+\long\def\blx@mksc@cs#1\blx@mksc@other#2{%
+ \ifcat\noexpand~\noexpand#2%
+ \blx@mksc@locase{#2}%
+ \else
+ \blx@mksc@nocase{#2}%
+ \fi
+ \blx@mksc@endhead
+ \blx@mksc@parse}
+
+\def\blx@mksc@getiec#1\blx@mksc@other#2#3#4{%
+ \blx@mksc@other{#2#3{#4}}}
+
+\def\blx@mksc@getone#1\blx@mksc@other#2#3{%
+ \blx@mksc@other{#2#3}}
+
+\def\blx@mksc@gettwo#1\blx@mksc@other#2#3#4{%
+ \blx@mksc@other{#2#3#4}}
+
+\def\blx@mksc@getthree#1\blx@mksc@other#2#3#4#5{%
+ \blx@mksc@other{#2#3#4#5}}
+
+\long\def\blx@mksc@other#1{%
+ \blx@mksc@locase{#1}%
+ \blx@mksc@endhead
+ \blx@mksc@parse}
+
+\def\blx@mksc@locase{%
+ \appto\blx@tempb}
+
+\def\blx@mksc@nocase{%
+ \blx@mksc@eject
+ \appto\blx@tempa}
+
+\def\blx@mksc@anycase{%
+ \ifx\blx@tempb\@empty
+ \expandafter\appto
+ \expandafter\blx@tempa
+ \else
+ \expandafter\appto
+ \expandafter\blx@tempb
+ \fi}
+
+\def\blx@mksc@eject{%
+ \ifx\blx@tempb\@empty
+ \else
+ \eappto\blx@tempa{\noexpand\MakeLowercase{\expandonce\blx@tempb}}%
+ \let\blx@tempb\@empty
+ \fi}
+
+\def\blx@mksc@endhead{%
+ \ifx\blx@tempb\@empty
+ \else
+ \eappto\blx@tempa{\noexpand\MakeCapital{\expandonce\blx@tempb}}%
+ \let\blx@tempb\@empty
+ \fi
+ \let\blx@mksc@endhead\relax}
+
+% {<language,language,...>}
+\newrobustcmd*{\DeclareCaseLangs}{%
+ \@ifstar
+ {\blx@defcaselangs}
+ {\global\let\blx@cmksc@lang\@empty
+ \blx@defcaselangs}}
+
+\def\blx@defcaselangs#1{%
+ \ifblank{#1}
+ {}
+ {\forcsvlist{\listgadd\blx@cmksc@lang}{#1}}}
+
+\DeclareCaseLangs{%
+ american,british,canadian,
+ english,USenglish,UKenglish,
+ australian,newzealand}
+
+\newrobustcmd*{\ifcaselang}[1][]{%
+ \ifblank{#1}
+ {\xifinlist\blx@languagename\blx@cmksc@lang}
+ {\xifinlist{#1}\blx@cmksc@lang}}
+
+%% Main formatting commands
+% They work by creating a \let alias:
+% \abx@<class>@<entrytype>@<formatname> -> \blx@defformat@d
+% for later use in \print*
+% Then, \blx@defformat@d is defined by calling
+% \def\blx@defformat@d#1{format body}
+
+% [<entrytype>]{<name>}{<definiton>}
+\newrobustcmd*{\DeclareNameFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defnameformat{nfd}*}
+ {\blx@defformat\blx@defnameformat{nfd}{}}}
+
+\newrobustcmd*{\DeclareIndexNameFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defnameformat{nid}*}
+ {\blx@defformat\blx@defnameformat{nid}{}}}
+
+\newrobustcmd*{\DeclareListFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defplainformat{lfd}*}
+ {\blx@defformat\blx@defplainformat{lfd}{}}}
+\newrobustcmd*{\DeclareIndexListFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defplainformat{lid}*}
+ {\blx@defformat\blx@defplainformat{lid}{}}}
+
+\newrobustcmd*{\DeclareFieldFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defplainformat{ffd}*}
+ {\blx@defformat\blx@defplainformat{ffd}{}}}
+\newrobustcmd*{\DeclareIndexFieldFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defplainformat{fid}*}
+ {\blx@defformat\blx@defplainformat{fid}{}}}
+
+\newrobustcmd*{\DeclareNameWrapperFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defnameformat{nwd}*}
+ {\blx@defformat\blx@defnameformat{nwd}{}}}
+\newrobustcmd*{\DeclareIndexNameWrapperFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defnameformat{nxd}*}
+ {\blx@defformat\blx@defnameformat{nxd}{}}}
+
+\newrobustcmd*{\DeclareListWrapperFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defplainformat{lwd}*}
+ {\blx@defformat\blx@defplainformat{lwd}{}}}
+\newrobustcmd*{\DeclareIndexListWrapperFormat}{%
+ \@ifstar
+ {\blx@defformat\blx@defplainformat{lxd}*}
+ {\blx@defformat\blx@defplainformat{lxd}{}}}
+
+% {<macro>}{<class>}{<*>}
+\def\blx@defformat#1#2#3{%
+ \@ifnextchar[%]
+ {\blx@defformat@i{#1}{#2}{#3}}
+ {\blx@defformat@i{#1}{#2}{#3}[*]}}
+
+% {<macro>}{<class>}{<*>}[<entrytype>]{<name>}
+\def\blx@defformat@i#1#2#3[#4]#5{%
+ \notblank{#3}
+ {\blx@resetformat{#2}{#5}}
+ {}%
+ \def\blx@defformat@a{#2}%
+ \def\blx@defformat@b{#4}%
+ \blx@xsanitizeafter{\def\blx@defformat@c}{#5}%
+ \afterassignment\blx@defformat@ii
+ #1}
+
+\def\blx@defformat@ii{%
+ \expandafter\forcsvlist
+ \expandafter\blx@defformat@iii
+ \expandafter{\blx@defformat@b}}
+
+\def\blx@defformat@iii#1{%
+ \cslet{abx@\blx@defformat@a @#1@\blx@defformat@c}\blx@defformat@d}
+
+\def\blx@defplainformat{%
+ \long\def\blx@defformat@d##1}
+
+\def\blx@defnameformat{%
+ \long\def\blx@defformat@d##1}
+
+\def\blx@resetformat#1#2{%
+ \let\blx@saved@do\do
+ \def\do##1{\blx@resetformat@i{#1}{#2}{##1}}%
+ \blx@safe@actives
+ \abx@doentrytypes
+ \blx@rest@actives
+ \let\do\blx@saved@do}
+
+\def\blx@resetformat@i#1#2#3{%
+ \ifcsdef{abx@#1@#3@#2}
+ {\csundef{abx@#1@#3@#2}}
+ {}}
+
+% {<name>}{<name>}
+\def\blx@letformat#1#2{%
+ \blx@safe@actives
+ \afterassignment\blx@rest@actives
+ \csletcs{#1}{#2}}
+
+% [aliastype]{aliasname}[formattype]{formatname}
+\def\blx@defalias#1{%
+ \@ifnextchar[%]
+ {\blx@defalias@i{#1}}
+ {\blx@defalias@i{#1}[*]}}
+\def\blx@defalias@i#1[#2]#3{%
+ \@ifnextchar[%]
+ {\blx@defalias@ii{#1}{#2}{#3}}
+ {\blx@defalias@ii{#1}{#2}{#3}[*]}}
+\def\blx@defalias@ii#1#2#3[#4]#5{%
+ \blx@safe@actives
+ \afterassignment\blx@rest@actives
+ \csedef{abx@#1@#2@#3}{%
+ \expandonce{\csname abx@#1@#4@#5\endcsname}}}
+
+
+
+% {<macro>}{<class>}{<name>}{<field>}
+\def\blx@getformat#1#2#3#4{%
+ \blx@safe@actives
+ \afterassignment\blx@rest@actives
+ \ifcsundef{abx@#2@\blx@imc@thefield{entrytype}@#3}
+ {\ifcsundef{abx@#2@*@#3}
+ {\ifcsundef{abx@#2@\blx@imc@thefield{entrytype}@#4}
+ {\ifcsundef{abx@#2@*@#4}
+ {\letcs#1{abx@#2@*@default}}
+ {\letcs#1{abx@#2@*@#4}}}
+ {\letcs#1{abx@#2@\blx@imc@thefield{entrytype}@#4}}}
+ {\letcs#1{abx@#2@*@#3}}}
+ {\letcs#1{abx@#2@\blx@imc@thefield{entrytype}@#3}}}
+
+% [<entrytype>]{<name>}
+\newrobustcmd*{\savefieldformat}[2][*]{\blx@save{abx@ffd@#1@#2}}
+\newrobustcmd*{\savelistformat}[2][*]{\blx@save{abx@lfd@#1@#2}}
+\newrobustcmd*{\savenameformat}[2][*]{\blx@save{abx@nfd@#1@#2}}
+\newrobustcmd*{\savelistwrapperformat}[2][*]{\blx@save{abx@lwd@#1@#2}}
+\newrobustcmd*{\savenamewrapperformat}[2][*]{\blx@save{abx@nwd@#1@#2}}
+
+\newrobustcmd*{\restorefieldformat}[2][*]{\blx@restore{abx@ffd@#1@#2}}
+\newrobustcmd*{\restorelistformat}[2][*]{\blx@restore{abx@lfd@#1@#2}}
+\newrobustcmd*{\restorenameformat}[2][*]{\blx@restore{abx@nfd@#1@#2}}
+\newrobustcmd*{\restorelistwrapperformat}[2][*]{\blx@restore{abx@lwd@#1@#2}}
+\newrobustcmd*{\restorenamewrapperformat}[2][*]{\blx@restore{abx@nwd@#1@#2}}
+
+% [<entrytype>]{<name>}{<true>}{<false>}
+\newrobustcmd*{\iffieldformatundef}[2][*]{\ifcsundef{abx@ffd@#1@#2}}
+\newrobustcmd*{\iflistformatundef}[2][*]{\ifcsundef{abx@lfd@#1@#2}}
+\newrobustcmd*{\ifnameformatundef}[2][*]{\ifcsundef{abx@nfd@#1@#2}}
+\newrobustcmd*{\iflistwrapperformatundef}[2][*]{\ifcsundef{abx@lwd@#1@#2}}
+\newrobustcmd*{\ifnamewrapperformatundef}[2][*]{\ifcsundef{abx@nwd@#1@#2}}
+
+% [<entrytype>]{<alias>}[<entrytype>]{<name>}
+\newrobustcmd*{\DeclareNameAlias}{\blx@defalias{nfd}}
+\newrobustcmd*{\DeclareIndexNameAlias}{\blx@defalias{nid}}
+
+\newrobustcmd*{\DeclareListAlias}{\blx@defalias{lfd}}
+\newrobustcmd*{\DeclareIndexListAlias}{\blx@defalias{lid}}
+
+\newrobustcmd*{\DeclareFieldAlias}{\blx@defalias{ffd}}
+\newrobustcmd*{\DeclareIndexFieldAlias}{\blx@defalias{fid}}
+
+\newrobustcmd*{\DeclareNameWrapperAlias}{\blx@defalias{nwd}}
+\newrobustcmd*{\DeclareIndexNameWrapperAlias}{\blx@defalias{nxd}}
+
+\newrobustcmd*{\DeclareListWrapperAlias}{\blx@defalias{lwd}}
+\newrobustcmd*{\DeclareIndexListWrapperAlias}{\blx@defalias{lxd}}
+
+% #1: internal type signature, #2: type text for warning
+% #3 #4 #5 #6
+% [aliastype]{aliasname}[formattype]{formatname}
+\def\blx@deprecateformat#1#2{%
+ \@ifnextchar[%]
+ {\blx@deprecateformat@i{#1}{#2}}
+ {\blx@deprecateformat@i{#1}{#2}[*]}}
+\def\blx@deprecateformat@i#1#2[#3]#4{%
+ \@ifnextchar[%]
+ {\blx@deprecateformat@ii{#1}{#2}{#3}{#4}}
+ {\blx@deprecateformat@ii{#1}{#2}{#3}{#4}[*]}}
+\def\blx@deprecateformat@ii#1#2#3#4[#5]#6{%
+ \blx@safe@actives
+ \afterassignment\blx@rest@actives
+ \csdef{abx@#1@#3@#4}{%
+ \ifcsundef{abx@legacywarning@#1@#3@#4}
+ {\global\cslet{abx@legacywarning@#1@#3@#4}\@empty
+ \blx@warning@noline{%
+ #2 '#4' deprecated.\MessageBreak
+ Please use '#6' instead.\MessageBreak
+ Using '#6' now}}
+ {}%
+ \csname abx@#1@#5@#6\endcsname}}
+
+% [<entrytype>]{<alias>}[<entrytype>]{<name>}
+\newrobustcmd*{\DeprecateNameFormatWithReplacement}{%
+ \blx@deprecateformat{nfd}{Name format}}
+\newrobustcmd*{\DeprecateIndexNameFormatWithReplacement}{%
+ \blx@deprecateformat{nid}{Index name format}}
+
+\newrobustcmd*{\DeprecateListFormatWithReplacement}{%
+ \blx@deprecateformat{lfd}{List format}}
+\newrobustcmd*{\DeprecateIndexListFormatWithReplacement}{%
+ \blx@deprecateformat{lid}{Index list format}}
+
+\newrobustcmd*{\DeprecateFieldFormatWithReplacement}{%
+ \blx@deprecateformat{ffd}{Field format}}
+\newrobustcmd*{\DeprecateIndexFieldFormatWithReplacement}{%
+ \blx@deprecateformat{fid}{Index field format}}
+
+\newrobustcmd*{\DeprecateNameWrapperFormatWithReplacement}{%
+ \blx@deprecateformat{nwd}{Name wrapper format}}
+\newrobustcmd*{\DeprecateIndexNameWrapperFormatWithReplacement}{%
+ \blx@deprecateformat{nxd}{Index name wrapper format}}
+
+\newrobustcmd*{\DeprecateListWrapperFormatWithReplacement}{%
+ \blx@deprecateformat{lwd}{List wrapper format}}
+\newrobustcmd*{\DeprecateIndexListWrapperFormatWithReplacement}{%
+ \blx@deprecateformat{lxd}{Index list wrapper format}}
+
+% [<format>]{<text>}
+\newrobustcmd{\blx@imc@printtext}[2][]{%
+ \ifblank{#2}
+ {\blx@nounit}
+ {\ifblank{#1}
+ {\let\blx@theformat\@firstofone}
+ {\blx@getformat\blx@theformat{ffd}{#1}{}}%
+ \ifdefvoid\blx@theformat
+ {\blx@nounit}
+ {\blx@begunit
+ \blx@theformat{#2}%
+ \blx@endunit}}}
+
+% [<format>]{<field>}
+\newrobustcmd*{\blx@imc@printfield}[2][]{%
+ \blx@imc@iffieldundef{#2}
+ {\blx@nounit}
+ {\blx@getformat\blx@theformat{ffd}{#1}{#2}%
+ \ifdefvoid\blx@theformat
+ {\blx@nounit}
+ {\blx@begunit
+ \edef\currentfield{#2}%
+ \expandafter\expandafter
+ \expandafter\blx@theformat
+ \expandafter\expandafter
+ \expandafter{\csname abx@field@#2\endcsname}%
+ \blx@endunit}}}
+
+% [<format>]{<field>}
+\newcommand*{\blx@imc@indexfield}[2][]{%
+ \blx@imc@iffieldundef{#2}
+ {}
+ {\blx@getformat\blx@theformat{fid}{#1}{#2}%
+ \ifdefvoid\blx@theformat
+ {}
+ {\begingroup
+ \edef\currentfield{#2}%
+ \letcs\blx@tempa{abx@field@#2}%
+ \expandafter\blx@theformat\expandafter{\blx@tempa}%
+ \endgroup}}}
+
+% [<format>]{<file>}
+\newrobustcmd*{\blx@imc@printfile}[2][]{%
+ \iftoggle{blx@loadfiles}
+ {\IfFileExists{#2}
+ {\listxadd\blx@list@req@edit{#2}%
+ \blx@imc@printtext[#1]{\input{#2}\unspace}}
+ {\blx@nounit}}
+ {\blx@nounit}}
+
+% {<macro>}[<format>][<start>-<stop>]
+% => <macro>{<format>}{<start>}{<stop>}
+\def\blx@listargs#1{%
+ \@ifnextchar[%]
+ {\blx@listargs@i{#1}}
+ {#1{}{}{}}}
+
+\def\blx@listargs@i#1[#2]{%
+ \@ifnextchar[%]
+ {\blx@listargs@ii{#1}{#2}}
+ {#1{#2}{}{}}}
+
+\def\blx@listargs@ii#1#2[#3]{%
+ \blx@listargs@iii{#1}{#2}#3&}
+
+\def\blx@listargs@iii#1#2#3-#4&{%
+ #1{#2}{#3}{#4}}
+
+% [<format>][<start>-<stop>]{<namelist>}
+\protected\def\blx@imc@printnames{%
+ \blx@listargs\blx@printnames}
+
+% {<format>}{<start>}{<stop>}{<namelist>}
+\def\blx@printnames#1#2#3#4{%
+ \blx@imc@ifnameundef{#4}
+ {\blx@nounit}
+ {\blx@getformat\blx@thewrapperformat{nwd}{#1}{#4}%
+ \ifdefvoid\blx@thewrapperformat
+ {\blx@nounit}
+ {\blx@getformat\blx@theformat{nfd}{#1}{#4}%
+ \ifdefvoid\blx@theformat
+ {\blx@nounit}
+ {\blx@begunit
+ \blx@namesetup{#2}{#3}{#4}%
+ \blx@thewrapperformat{\expandafter\blx@nameparser\blx@thedata{}&}%
+ \blx@endunit}}}}
+
+\def\blx@namesetup#1#2#3{%
+ \def\currentname{#3}%
+ \c@listcount\@ne
+ \c@listtotal\csname c@#3\endcsname
+ \blx@namesetup@i{#3}%
+ \ifblank{#1}
+ {\c@liststart\@ne}
+ {\ifnum#1<\@ne
+ \c@liststart\@ne
+ \else
+ \c@liststart#1\relax
+ \fi}%
+ \ifblank{#2}
+ {\c@liststop\c@listtotal
+ \ifnum\c@liststop>\c@maxnames
+ \c@liststop\c@minnames
+ \ifnum\c@uniquelist>\c@liststop
+ \c@liststop\c@uniquelist
+ \fi
+ \fi}
+ {\ifnum#2>\c@listtotal
+ \c@liststop\c@listtotal
+ \else
+ \ifnum#2<\@ne
+ \c@liststop\@ne
+ \else
+ \c@liststop#2\relax
+ \fi
+ \fi}%
+ \blx@namecodes}
+
+\def\blx@namesetup@i#1{%
+ \expandafter\expandafter
+ \expandafter\blx@namesetup@ii\csname abx@name@#1\endcsname}
+
+\def\blx@namesetup@ii#1#2{%
+ \c@uniquelist\z@
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@opt@namelist}{#1}}%
+ \def\blx@thedata{#2}}
+
+% Biber-calculated info passed back to biblatex as an option in the .bbl
+% unlike stuff defined with \DeclareBiblatexOption and
+% \blx@DeclareBackendOption these are not 'real' options
+\define@key{blx@opt@namelist}{ul}{\c@uniquelist#1\relax}
+
+\define@key{blx@opt@name}{un}{\c@uniquename#1\relax}
+\define@key{blx@opt@name}{uniquepart}{\def\abx@field@uniquepart{#1}}
+\define@key{blx@opt@name}{hash}{\edef\abx@field@hash{\detokenize{#1}}}
+
+
+\newrobustcmd*{\bibinitperiod}{\adddot}
+\newrobustcmd*{\bibinitdelim}{\addnbspace}
+\newrobustcmd*{\bibinithyphendelim}{.\mbox{-}}
+\newrobustcmd*{\bibnamedelima}{\addhighpenspace}
+\newrobustcmd*{\bibnamedelimb}{\addlowpenspace}
+\newrobustcmd*{\bibnamedelimc}{\addhighpenspace}
+\newrobustcmd*{\bibnamedelimd}{\addlowpenspace}
+\newrobustcmd*{\bibnamedelimi}{\addnbspace}
+
+% [<format>][<start>-<stop>]{<namelist>}
+\protected\def\blx@imc@indexnames{%
+ \blx@listargs\blx@indexnames}
+
+% {<format>}{<start>}{<stop>}{<namelist>}
+\def\blx@indexnames#1#2#3#4{%
+ \blx@imc@ifnameundef{#4}
+ {}
+ {\blx@getformat\blx@thewrapperformat{nxd}{#1}{#4}%
+ \ifdefvoid\blx@thewrapperformat
+ {}
+ {\blx@getformat\blx@theformat{nid}{#1}{#4}%
+ \ifdefvoid\blx@theformat
+ {}
+ {\begingroup
+ \blx@namesetup{#2}{#3}{#4}%
+ \blx@indexnamesetup
+ \expandafter\blx@nameparser\blx@thedata{}&%
+ \endgroup}}}}
+
+\def\blx@indexnamesetup{%
+ \let\bibinitperiod\bibindexinitperiod
+ \let\bibinitdelim\bibindexinitdelim
+ \let\bibinithyphendelim\bibindexinithyphendelim
+ \let\bibnamedelima\bibindexnamedelima
+ \let\bibnamedelimb\bibindexnamedelimb
+ \let\bibnamedelimc\bibindexnamedelimc
+ \let\bibnamedelimd\bibindexnamedelimd
+ \let\bibnamedelimi\bibindexnamedelimi}
+
+% {<name1>}{<name2>}{...}
+\long\def\blx@nameparser#1{%
+ \ifblank{#1}
+ {\blx@namebreak}
+ {\ifnum\c@listcount<\c@liststart
+ \else
+ \blx@nameparser@i#1%
+ \fi
+ \advance\c@listcount\@ne
+ \ifnum\c@listcount>\c@liststop
+ \expandafter\blx@namebreak
+ \fi
+ \blx@nameparser}}
+
+% {name opts}{nameparts}
+\long\def\blx@nameparser@i#1#2{%
+ \begingroup
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@opt@name}{#1}}%
+ % reset all the nameparts to empty between names
+ \def\do##1{%
+ \cslet{namepart##1}\@empty
+ \cslet{namepart##1i}\@empty}%
+ \expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts}%
+ \setkeys{blx@opt@namepart}{#2}% Extract nameparts information
+ % Still pass the nameparts forward for backwards compat
+ % When \nameparts is finally removed, remove the "{2}" and remove the
+ % arg to \blx@defformat@d in def of \blx@defnameformat
+ \blx@theformat{#2}%
+ \endgroup}
+
+\long\def\blx@namebreak#1&{}
+
+% [<format>][<start>-<stop>]{<plainlist>}
+\protected\def\blx@imc@printlist{%
+ \blx@listargs\blx@printlist}
+
+% {<format>}{<start>}{<stop>}{<plainlist>}
+\def\blx@printlist#1#2#3#4{%
+ \blx@imc@iflistundef{#4}
+ {\blx@nounit}
+ {\blx@getformat\blx@thewrapperformat{lwd}{#1}{#4}%
+ \ifdefvoid\blx@thewrapperformat
+ {\blx@nounit}
+ {\blx@getformat\blx@theformat{lfd}{#1}{#4}%
+ \ifdefvoid\blx@theformat
+ {\blx@nounit}
+ {\blx@begunit
+ \blx@listsetup{#2}{#3}{#4}%
+ \blx@thewrapperformat{\expandafter\blx@listparser\blx@thedata{}&}%
+ \blx@endunit}}}}
+
+\def\blx@listsetup#1#2#3{%
+ \def\currentlist{#3}%
+ \c@listcount\@ne
+ \expandafter\c@listtotal\csname c@#3\endcsname
+ \letcs\blx@thedata{abx@list@#3}%
+ \ifblank{#1}
+ {\c@liststart\@ne}
+ {\ifnum#1<\@ne
+ \c@liststart\@ne
+ \else
+ \c@liststart#1\relax
+ \fi}%
+ \ifblank{#2}
+ {\c@liststop\c@listtotal
+ \ifnum\c@listtotal>\c@maxitems
+ \c@liststop\c@minitems
+ \fi}
+ {\ifnum#2>\c@listtotal
+ \c@liststop\c@listtotal
+ \else
+ \ifnum#2<\@ne
+ \c@liststop\@ne
+ \else
+ \c@liststop#2\relax
+ \fi
+ \fi}}
+
+% [<format>][<start>-<stop>]{<plainlist>}
+\protected\def\blx@imc@indexlist{%
+ \blx@listargs\blx@indexlist}
+
+% {<format>}{<start>}{<stop>}{<plainlist>}
+\def\blx@indexlist#1#2#3#4{%
+ \blx@imc@iflistundef{#4}
+ {}
+ {\blx@getformat\blx@thewrapperformat{lxd}{#1}{#4}%
+ \ifdefvoid\blx@thewrapperformat
+ {}
+ {\blx@getformat\blx@theformat{lid}{#1}{#4}%
+ \ifdefvoid\blx@theformat
+ {}
+ {\begingroup
+ \blx@listsetup{#2}{#3}{#4}%
+ \expandafter\blx@listparser\blx@thedata{}&%
+ \endgroup}}}}
+
+% {<item1>}{<item2>}{...}
+\long\def\blx@listparser#1{%
+ \ifblank{#1}
+ {\blx@listbreak}
+ {\ifnum\c@listcount<\c@liststart
+ \else
+ \blx@theformat{#1}%
+ \fi
+ \advance\c@listcount\@ne
+ \ifnum\c@listcount>\c@liststop
+ \expandafter\blx@listbreak
+ \fi
+ \blx@listparser}}
+
+\long\def\blx@listbreak#1&{}
+
+% <*>{<key>}{<code>}
+\protected\def\blx@imc@entrydata{%
+ \@ifstar
+ {\blx@xsanitizeafter{\blx@imc@entrydata@i\blx@saveentry}}
+ {\blx@xsanitizeafter{\blx@imc@entrydata@i{}}}}
+
+\long\def\blx@imc@entrydata@i#1#2#3{%
+ \blx@getrefcontext{#2}%
+ \blx@ifdata{#2}
+ {\begingroup
+ #1%
+ \blx@resetdata
+ \blx@getdata{#2}%
+ \blx@entrysetcount
+ \blx@setoptions@type\abx@field@entrytype
+ \blx@setoptions@entry
+ \addtocounter{instcount}\@ne
+ \blx@execute
+ \blx@beglangbib#3\blx@endlangbib
+ \endgroup}
+ {}}
+
+\protected\def\blx@imc@entryset#1#2{%
+ \blx@imc@iffieldundef{entrykey}
+ {}
+ {\begingroup
+ \long\def\blx@entryset@precode{#1}%
+ \long\def\blx@entryset@postcode{#2}%
+ \let\finentry\blx@finentry@inset
+ \let\do\blx@entryset
+ \blx@imc@docsvfield{entryset}%
+ \endgroup}}
+
+\def\blx@entryset#1{%
+ \blx@ifdata{#1}
+ {\begingroup
+ \blx@imc@clearlist{pageref}%
+ \blx@getdata{#1}%
+ \blx@setoptions@type\abx@field@entrytype
+ \blx@setoptions@entry
+ \global\blx@entrysetcounter\@ne
+ \edef\abx@field@entrysetcount{\the\blx@entrysetcounter}%
+ \blx@execute
+ \blx@beglangbib
+ \blx@begunit
+ \blx@anchor
+ \blx@entryset@precode
+ \blx@driver{\blx@imc@thefield{entrytype}}%
+ \blx@entryset@postcode
+ \blx@endunit
+ \blx@endlangbib
+ \endgroup}
+ {}%
+ \let\do\blx@entryset@i}
+
+\def\blx@entryset@i#1{%
+ \blx@ifdata{#1}
+ {\begingroup
+ \blx@resetdata
+ \blx@getdata{#1}%
+ \blx@setoptions@type\abx@field@entrytype
+ \blx@setoptions@entry
+ \global\advance\blx@entrysetcounter\@ne
+ \edef\abx@field@entrysetcount{\the\blx@entrysetcounter}%
+ \addtocounter{instcount}\@ne
+ \blx@execute
+ \blx@beglangbib
+ \blx@begunit
+ \blx@anchor
+ \blx@entryset@precode
+ \blx@driver{\blx@imc@thefield{entrytype}}%
+ \blx@entryset@postcode
+ \blx@endunit
+ \blx@endlangbib
+ \endgroup}
+ {\blx@nounit}}
+
+\blx@regimcs{%
+ \printtext \printfield \printlist \printnames \printfile
+ \indexfield \indexlist \indexnames \entrydata \entryset}
+
+%% Localization
+
+% [<wrapper>]{<string>}
+\newrobustcmd*{\blx@imc@bibstring}[2][\@firstofone]{%
+ \blx@bibstring{#1}{\abx@str}{#2}}
+
+\newrobustcmd*{\blx@imc@biblstring}[2][\@firstofone]{%
+ \blx@bibstring{#1}{abx@lstr}{#2}}
+
+\newrobustcmd*{\blx@imc@bibsstring}[2][\@firstofone]{%
+ \blx@bibstring{#1}{abx@sstr}{#2}}
+
+\def\blx@bibstringsimple{%
+ \let\bibstring\blx@imc@bibxstring
+ \let\biblstring\blx@imc@bibxlstring
+ \let\bibsstring\blx@imc@bibxsstring}
+
+\def\blx@bibstringnormal{%
+ \let\bibstring\blx@imc@bibstring
+ \let\biblstring\blx@imc@biblstring
+ \let\bibsstring\blx@imc@bibsstring}
+
+\protected\def\blx@bibstring#1#2#3{%
+ \blx@begunit
+ \blx@hyphenreset
+ \blx@bibstringsimple
+ \lowercase{\edef\blx@tempa{#3}}%
+ \ifcsundef{#2@\blx@tempa}
+ {\blx@warn@nostring\blx@tempa
+ \blx@endnounit}
+ {\blx@imc@ifcapital
+ {#1{\MakeCapital{\csuse{#2@\blx@tempa}}}}
+ {#1{\csuse{#2@\blx@tempa}}}%
+ \blx@endunit}}
+
+% [<wrapper>]{<string>}
+\newrobustcmd*{\blx@imc@bibcpstring}[2][\@firstofone]{%
+ \blx@bibcpstring{#1}{\abx@str}{#2}}
+
+\newrobustcmd*{\blx@imc@bibcplstring}[2][\@firstofone]{%
+ \blx@bibcpstring{#1}{abx@lstr}{#2}}
+
+\newrobustcmd*{\blx@imc@bibcpsstring}[2][\@firstofone]{%
+ \blx@bibcpstring{#1}{abx@sstr}{#2}}
+
+\protected\def\blx@bibcpstring#1#2#3{%
+ \blx@begunit
+ \blx@hyphenreset
+ \blx@bibstringsimple
+ \lowercase{\edef\blx@tempa{#3}}%
+ \ifcsundef{#2@\blx@tempa}
+ {\blx@warn@nostring\blx@tempa
+ \blx@endnounit}
+ {#1{\MakeCapital{\csuse{#2@\blx@tempa}}}%
+ \blx@endunit}}
+
+% [<wrapper>]{<string>}
+\newrobustcmd*{\blx@imc@biblcstring}[2][\@firstofone]{%
+ \blx@biblcstring{#1}{\abx@str}{#2}}
+
+\newrobustcmd*{\blx@imc@biblclstring}[2][\@firstofone]{%
+ \blx@biblcstring{#1}{abx@lstr}{#2}}
+
+\newrobustcmd*{\blx@imc@biblcsstring}[2][\@firstofone]{%
+ \blx@biblcstring{#1}{abx@sstr}{#2}}
+
+\protected\def\blx@biblcstring#1#2#3{%
+ \blx@begunit
+ \blx@hyphenreset
+ \blx@bibstringsimple
+ \lowercase{\edef\blx@tempa{#3}}%
+ \ifcsundef{#2@\blx@tempa}
+ {\blx@warn@nostring\blx@tempa
+ \blx@endnounit}
+ {#1{\MakeLowercase{\csuse{#2@\blx@tempa}}}%
+ \blx@endunit}}
+
+% [<wrapper>]{<string>}
+\newrobustcmd*{\blx@imc@bibucstring}[2][\@firstofone]{%
+ \blx@bibucstring{#1}{\abx@str}{#2}}
+
+\newrobustcmd*{\blx@imc@bibuclstring}[2][\@firstofone]{%
+ \blx@bibucstring{#1}{abx@lstr}{#2}}
+
+\newrobustcmd*{\blx@imc@bibucsstring}[2][\@firstofone]{%
+ \blx@bibucstring{#1}{abx@sstr}{#2}}
+
+\protected\def\blx@bibucstring#1#2#3{%
+ \blx@begunit
+ \blx@hyphenreset
+ \blx@bibstringsimple
+ \lowercase{\edef\blx@tempa{#3}}%
+ \ifcsundef{#2@\blx@tempa}
+ {\blx@warn@nostring\blx@tempa
+ \blx@endnounit}
+ {#1{\MakeUppercase{\csuse{#2@\blx@tempa}}}%
+ \blx@endunit}}
+
+% {<string>}
+\def\blx@imc@bibxstring#1{%
+ \blx@bibxstring{\abx@str}{#1}}
+
+\def\blx@imc@bibxlstring#1{%
+ \blx@bibxstring{abx@lstr}{#1}}
+
+\def\blx@imc@bibxsstring#1{%
+ \blx@bibxstring{abx@sstr}{#1}}
+
+\def\blx@bibxstring#1#2{%
+ \ifcsundef{#1@#2}
+ {\protect\blx@warn@nostring{#2}}
+ {\csuse{#1@#2}}}
+
+% {<string>}{<true>}{<false>}
+\def\blx@imc@ifbibstring#1{%
+ \ifcsundef{\abx@str @\detokenize{#1}}
+ {\@secondoftwo}
+ {\@firstoftwo}}
+
+\def\blx@imc@ifbibxstring#1{%
+ \blx@xsanitizeafter\ifcsundef{\abx@str @#1}
+ {\@secondoftwo}
+ {\@firstoftwo}}
+
+% {<field>}{<true>}{<false>}
+\def\blx@imc@iffieldbibstring#1{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\ifcsundef{\abx@str @\detokenize\expandafter
+ \expandafter\expandafter{%
+ \csname abx@field@#1\endcsname}}
+ {\@secondoftwo}
+ {\@firstoftwo}}}
+
+% {<field>}{<string>}{<true>}{<false>}
+\def\blx@imc@iffieldplusstringbibstring#1#2{%
+ \blx@imc@iffieldundef{#1}
+ {\@secondoftwo}
+ {\ifcsundef{\abx@str @\detokenize\expandafter
+ \expandafter\expandafter{%
+ \csname abx@field@#1\endcsname}#2}
+ {\@secondoftwo}
+ {\@firstoftwo}}}
+
+\blx@regimcs{%
+ \bibstring \biblstring \bibsstring
+ \bibxstring \bibxlstring \bibxsstring
+ \bibcpstring \bibcplstring \bibcpsstring
+ \biblcstring \biblclstring \biblcsstring
+ \bibucstring \bibuclstring \bibucsstring
+ \ifbibstring \ifbibxstring \iffieldbibstring
+ \iffieldplusstringbibstring}
+
+\let\blx@hook@uc\relax
+\let\blx@hook@lc\relax
+
+\AtEndPreamble{%
+ \toggletrue{blx@tempa}%
+ \toggletrue{blx@tempb}%
+ \expandafter\patchcmd\csname MakeUppercase \endcsname
+ {\protected@edef}
+ {\blx@hook@uc\protected@edef}
+ {\togglefalse{blx@tempa}}
+ {}%
+ \expandafter\patchcmd\csname MakeLowercase \endcsname
+ {\protected@edef}
+ {\blx@hook@lc\protected@edef}
+ {\togglefalse{blx@tempb}}
+ {}%
+ \@ifpackageloaded{textcase}
+ {\expandafter\patchcmd\csname MakeUppercase \endcsname
+ {\def\i}
+ {\blx@hook@uc\def\i}
+ {\togglefalse{blx@tempa}}
+ {}%
+ \expandafter\patchcmd\csname MakeLowercase \endcsname
+ {\@uclcnotmath{}}
+ {\@uclcnotmath{\blx@hook@lc}}
+ {\togglefalse{blx@tempb}}
+ {}%
+ \expandafter\patchcmd\csname MakeTextUppercase \endcsname
+ {\def\i}
+ {\blx@hook@uc\def\i}
+ {}
+ {}%
+ \expandafter\patchcmd\csname MakeTextLowercase \endcsname
+ {\@uclcnotmath{}}
+ {\@uclcnotmath{\blx@hook@lc}}
+ {}
+ {}}
+ {}%
+ \iftoggle{blx@tempa}{\blx@err@patch{\string\MakeUppercase}}{}%
+ \iftoggle{blx@tempb}{\blx@err@patch{\string\MakeLowercase}}{}%
+}
+
+\appto\blx@blxinit{%
+ \def\blx@hook@uc{%
+ \def\bibstring{\blx@imc@bibucstring}%
+ \def\biblstring{\blx@imc@bibuclstring}%
+ \def\bibsstring{\blx@imc@bibucsstring}%
+ \def\biblcstring{\blx@imc@bibucstring}%
+ \def\biblclstring{\blx@imc@bibuclstring}%
+ \def\biblcsstring{\blx@imc@bibucsstring}%
+ \def\bibcpstring{\blx@imc@bibucstring}%
+ \def\bibcplstring{\blx@imc@bibuclstring}%
+ \def\bibcpsstring{\blx@imc@bibucsstring}}%
+ \def\blx@hook@lc{%
+ \def\bibstring{\blx@imc@biblcstring}%
+ \def\biblstring{\blx@imc@biblclstring}%
+ \def\bibsstring{\blx@imc@biblcsstring}%
+ \def\bibucstring{\blx@imc@biblcstring}%
+ \def\bibuclstring{\blx@imc@biblclstring}%
+ \def\bibucsstring{\blx@imc@biblcsstring}%
+ \def\bibcpstring{\blx@imc@biblcstring}%
+ \def\bibcplstring{\blx@imc@biblclstring}%
+ \def\bibcpsstring{\blx@imc@biblcsstring}}}
+
+\def\abx@dostrings{%
+ \do{bibliography}%
+ \do{references}%
+ \do{shorthands}%
+ \do{editor}%
+ \do{editors}%
+ \do{compiler}%
+ \do{compilers}%
+ \do{redactor}%
+ \do{redactors}%
+ \do{reviser}%
+ \do{revisers}%
+ \do{founder}%
+ \do{founders}%
+ \do{continuator}%
+ \do{continuators}%
+ \do{collaborator}%
+ \do{collaborators}%
+ \do{translator}%
+ \do{translators}%
+ \do{commentator}%
+ \do{commentators}%
+ \do{annotator}%
+ \do{annotators}%
+ \do{commentary}%
+ \do{annotations}%
+ \do{introduction}%
+ \do{foreword}%
+ \do{afterword}%
+ \do{editortr}%
+ \do{editorstr}%
+ \do{editorco}%
+ \do{editorsco}%
+ \do{editoran}%
+ \do{editorsan}%
+ \do{editorin}%
+ \do{editorsin}%
+ \do{editorfo}%
+ \do{editorsfo}%
+ \do{editoraf}%
+ \do{editorsaf}%
+ \do{editortrco}%
+ \do{editorstrco}%
+ \do{editortran}%
+ \do{editorstran}%
+ \do{editortrin}%
+ \do{editorstrin}%
+ \do{editortrfo}%
+ \do{editorstrfo}%
+ \do{editortraf}%
+ \do{editorstraf}%
+ \do{editorcoin}%
+ \do{editorscoin}%
+ \do{editorcofo}%
+ \do{editorscofo}%
+ \do{editorcoaf}%
+ \do{editorscoaf}%
+ \do{editoranin}%
+ \do{editorsanin}%
+ \do{editoranfo}%
+ \do{editorsanfo}%
+ \do{editoranaf}%
+ \do{editorsanaf}%
+ \do{editortrcoin}%
+ \do{editorstrcoin}%
+ \do{editortrcofo}%
+ \do{editorstrcofo}%
+ \do{editortrcoaf}%
+ \do{editorstrcoaf}%
+ \do{editortranin}%
+ \do{editorstranin}%
+ \do{editortranfo}%
+ \do{editorstranfo}%
+ \do{editortranaf}%
+ \do{editorstranaf}%
+ \do{translatorco}%
+ \do{translatorsco}%
+ \do{translatoran}%
+ \do{translatorsan}%
+ \do{translatorin}%
+ \do{translatorsin}%
+ \do{translatorfo}%
+ \do{translatorsfo}%
+ \do{translatoraf}%
+ \do{translatorsaf}%
+ \do{translatorcoin}%
+ \do{translatorscoin}%
+ \do{translatorcofo}%
+ \do{translatorscofo}%
+ \do{translatorcoaf}%
+ \do{translatorscoaf}%
+ \do{translatoranin}%
+ \do{translatorsanin}%
+ \do{translatoranfo}%
+ \do{translatorsanfo}%
+ \do{translatoranaf}%
+ \do{translatorsanaf}%
+ \do{byauthor}%
+ \do{byeditor}%
+ \do{bycompiler}%
+ \do{byredactor}%
+ \do{byreviser}%
+ \do{byreviewer}%
+ \do{byfounder}%
+ \do{bycontinuator}%
+ \do{bycollaborator}%
+ \do{bytranslator}%
+ \do{bycommentator}%
+ \do{byannotator}%
+ \do{withcommentator}%
+ \do{withannotator}%
+ \do{withintroduction}%
+ \do{withforeword}%
+ \do{withafterword}%
+ \do{organizer}%
+ \do{organizers}%
+ \do{byorganizer}%
+ \do{byeditortr}%
+ \do{byeditorco}%
+ \do{byeditoran}%
+ \do{byeditorin}%
+ \do{byeditorfo}%
+ \do{byeditoraf}%
+ \do{byeditortrco}%
+ \do{byeditortran}%
+ \do{byeditortrin}%
+ \do{byeditortrfo}%
+ \do{byeditortraf}%
+ \do{byeditorcoin}%
+ \do{byeditorcofo}%
+ \do{byeditorcoaf}%
+ \do{byeditoranin}%
+ \do{byeditoranfo}%
+ \do{byeditoranaf}%
+ \do{byeditortrcoin}%
+ \do{byeditortrcofo}%
+ \do{byeditortrcoaf}%
+ \do{byeditortranin}%
+ \do{byeditortranfo}%
+ \do{byeditortranaf}%
+ \do{bytranslatorco}%
+ \do{bytranslatoran}%
+ \do{bytranslatorin}%
+ \do{bytranslatorfo}%
+ \do{bytranslatoraf}%
+ \do{bytranslatorcoin}%
+ \do{bytranslatorcofo}%
+ \do{bytranslatorcoaf}%
+ \do{bytranslatoranin}%
+ \do{bytranslatoranfo}%
+ \do{bytranslatoranaf}%
+ \do{and}%
+ \do{andothers}%
+ \do{andmore}%
+ \do{volume}%
+ \do{volumes}%
+ \do{involumes}%
+ \do{part}%
+ \do{jourvol}%
+ \do{jourser}%
+ \do{newseries}%
+ \do{oldseries}%
+ \do{edition}%
+ \do{reprint}%
+ \do{reprintof}%
+ \do{reprintas}%
+ \do{reprintfrom}%
+ \do{reviewof}%
+ \do{translationof}%
+ \do{translationas}%
+ \do{translationfrom}%
+ \do{origpubas}%
+ \do{origpubin}%
+ \do{astitle}%
+ \do{bypublisher}%
+ \do{nodate}%
+ \do{page}%
+ \do{pages}%
+ \do{column}%
+ \do{columns}%
+ \do{line}%
+ \do{lines}%
+ \do{verse}%
+ \do{verses}%
+ \do{section}%
+ \do{sections}%
+ \do{paragraph}%
+ \do{paragraphs}%
+ \do{pagetotal}%
+ \do{pagetotals}%
+ \do{columntotal}%
+ \do{columntotals}%
+ \do{linetotal}%
+ \do{linetotals}%
+ \do{versetotal}%
+ \do{versetotals}%
+ \do{sectiontotal}%
+ \do{sectiontotals}%
+ \do{paragraphtotal}%
+ \do{paragraphtotals}%
+ \do{in}%
+ \do{inseries}%
+ \do{ofseries}%
+ \do{book}%
+ \do{issue}%
+ \do{number}%
+ \do{chapter}%
+ \do{bathesis}%
+ \do{mathesis}%
+ \do{phdthesis}%
+ \do{candthesis}%
+ \do{resreport}%
+ \do{techreport}%
+ \do{software}%
+ \do{datacd}%
+ \do{audiocd}%
+ \do{version}%
+ \do{url}%
+ \do{urlfrom}%
+ \do{urlseen}%
+ \do{file}%
+ \do{inpreparation}%
+ \do{submitted}%
+ \do{inpress}%
+ \do{prepublished}%
+ \do{forthcoming}%
+ \do{library}%
+ \do{abstract}%
+ \do{annotation}%
+ \do{citedas}%
+ \do{seenote}%
+ \do{quotedin}%
+ \do{opcit}%
+ \do{loccit}%
+ \do{ibidem}%
+ \do{idem}%
+ \do{idemsf}%
+ \do{idemsm}%
+ \do{idemsn}%
+ \do{idempf}%
+ \do{idempm}%
+ \do{idempn}%
+ \do{idempp}%
+ \do{confer}%
+ \do{sequens}%
+ \do{sequentes}%
+ \do{passim}%
+ \do{see}%
+ \do{seealso}%
+ \do{backrefpage}%
+ \do{backrefpages}%
+ \do{thiscite}%
+ \do{january}%
+ \do{february}%
+ \do{march}%
+ \do{april}%
+ \do{may}%
+ \do{june}%
+ \do{july}%
+ \do{august}%
+ \do{september}%
+ \do{october}%
+ \do{november}%
+ \do{december}%
+ \do{langamerican}%
+ \do{langbrazilian}%
+ \do{langbulgarian}%
+ \do{langcatalan}%
+ \do{langcroatian}%
+ \do{langczech}%
+ \do{langdanish}%
+ \do{langdutch}%
+ \do{langenglish}%
+ \do{langestonian}%
+ \do{langfinnish}%
+ \do{langfrench}%
+ \do{langgalician}%
+ \do{langgerman}%
+ \do{langgreek}%
+ \do{langhungarian}%
+ \do{langitalian}%
+ \do{langjapanese}%
+ \do{langlatin}%
+ \do{langlatvian}%
+ \do{langnorwegian}%
+ \do{langpolish}%
+ \do{langportuguese}%
+ \do{langrussian}%
+ \do{langslovak}%
+ \do{langslovene}%
+ \do{langspanish}%
+ \do{langswedish}%
+ \do{langukrainian}%
+ \do{fromamerican}%
+ \do{frombrazilian}%
+ \do{frombulgarian}%
+ \do{fromcatalan}%
+ \do{fromcroatian}%
+ \do{fromczech}%
+ \do{fromdanish}%
+ \do{fromdutch}%
+ \do{fromenglish}%
+ \do{fromestonian}%
+ \do{fromfinnish}%
+ \do{fromfrench}%
+ \do{fromgalician}%
+ \do{fromgerman}%
+ \do{fromgreek}%
+ \do{fromhungarian}%
+ \do{fromitalian}%
+ \do{fromjapanese}%
+ \do{fromlatin}%
+ \do{fromlatvian}%
+ \do{fromnorwegian}%
+ \do{frompolish}%
+ \do{fromportuguese}%
+ \do{fromrussian}%
+ \do{fromslovak}%
+ \do{fromslovene}%
+ \do{fromspanish}%
+ \do{fromswedish}%
+ \do{fromukrainian}%
+ \do{countryde}%
+ \do{countryep}%
+ \do{countryeu}%
+ \do{countryfr}%
+ \do{countryuk}%
+ \do{countryus}%
+ \do{patent}%
+ \do{patentde}%
+ \do{patenteu}%
+ \do{patentfr}%
+ \do{patentuk}%
+ \do{patentus}%
+ \do{patreq}%
+ \do{patreqde}%
+ \do{patreqeu}%
+ \do{patreqfr}%
+ \do{patrequk}%
+ \do{patrequs}%
+ \do{commonera}%
+ \do{beforecommonera}%
+ \do{annodomini}%
+ \do{beforechrist}%
+ \do{circa}%
+ \do{spring}%
+ \do{summer}%
+ \do{autumn}%
+ \do{winter}%
+ \do{am}%
+ \do{pm}%
+}
+
+\newrobustcmd*{\NewBibliographyString}[1]{%
+ \forcsvlist\blx@newstring{#1}}
+
+\def\blx@newstring#1{%
+ \ifcsundef{KV@blx@lbx@#1}
+ {\gappto\abx@dostrings{\do{#1}}%
+ \csgdef{KV@blx@lbx@#1}##1{\blx@defstring{#1}{##1}}}
+ {}}
+
+% in *.cbx/bbx/tex: <key> = {<string>},
+% in *.lbx: <key> = {{<longstring>}{<abbrevstring>}},
+\def\do#1{\define@key{blx@lbx}{#1}{\blx@defstring{#1}{##1}}}
+\abx@dostrings
+
+% in *.cbx/bbx/tex: (implicit)
+% in *.lbx: inherit = {<language>},
+\define@key{blx@lbx}{inherit}{%
+ \blx@lbxinput@strings{#1}{}{\blx@err@nolang{#1}}%
+ \csuse{abx@strings@#1}}
+
+\def\blx@cfg@defstring#1#2{%
+ \csdef{abx@lstr@#1}{#2}%
+ \csdef{abx@sstr@#1}{#2}}
+
+\def\blx@lbx@defstring#1#2{%
+ \blx@lbx@defstring@i{#1}#2}
+\def\blx@lbx@defstring@i#1#2#3{%
+ \csdef{abx@lstr@#1}{#2}%
+ \csdef{abx@sstr@#1}{#3}}
+
+% {<language>}
+\def\blx@lbxcheck#1{%
+ \ifcsdef{blx@lng@#1}
+ {\expandafter\expandafter\expandafter\IfFileExists
+ \expandafter\expandafter\expandafter{%
+ \csname blx@lng@#1\endcsname.lbx}
+ {}
+ {\blx@err@nolang{#1}}}
+ {\IfFileExists{#1.lbx}
+ {}
+ {\blx@err@nolang{#1}}}}
+
+% {<language>}{<definitions>}
+\newrobustcmd*{\DefineBibliographyExtras}[2]{%
+ \blx@lbxcheck{#1}%
+ \csgappto{blx@hook@extras@#1}{%
+ \blx@defbibextras{#1}{#2}}}
+\@onlypreamble\DefineBibliographyExtras
+
+\newrobustcmd*{\UndefineBibliographyExtras}[2]{%
+ \blx@lbxcheck{#1}%
+ \csgappto{blx@hook@noextras@#1}{%
+ \blx@undefbibextras{#1}{#2}}}
+\@onlypreamble\UndefineBibliographyExtras
+
+\def\blx@defbibextras#1{\csgappto{abx@extras@#1}}
+\def\blx@undefbibextras#1{\csgappto{abx@noextras@#1}}
+
+% {<language>}{<language>}
+\def\blx@letbibextras#1#2{%
+ \blx@lbxinput@extras{#2}{}{\blx@err@nolang{#2}}%
+ \global\csletcs{abx@extras@#1}{abx@extras@#2}
+ \global\csletcs{abx@noextras@#1}{abx@noextras@#2}}%
+
+% {<language>}{<strings>}
+\newrobustcmd*{\DefineBibliographyStrings}[2]{%
+ \blx@lbxcheck{#1}%
+ \csgappto{blx@hook@strings@#1}{%
+ \begingroup
+ \let\blx@defstring\blx@cfg@defstring
+ \blx@defbibstrings{#1}{#2}%
+ \endgroup}}
+\@onlypreamble\DefineBibliographyStrings
+
+\def\blx@defbibstrings#1#2{%
+ \def\do##1{\csundef{abx@lstr@##1}\csundef{abx@sstr@##1}}%
+ \abx@dostrings
+ \csuse{abx@strings@#1}%
+ \setkeys{blx@lbx}{#2}%
+ \let\do\blx@defbibstrings@i
+ \csxdef{abx@strings@#1}{\abx@dostrings}%
+ \csgappto{abx@strings@#1}{%
+ \ifcsdef{\abx@str @bibliography}
+ {\letcs\bibname{\abx@str @bibliography}}
+ {\let\bibname\@empty}%
+ \ifcsdef{\abx@str @references}
+ {\letcs\refname{\abx@str @references}}
+ {\let\refname\@empty}%
+ \ifcsdef{\abx@str @shorthands}
+ {\letcs\biblistname{\abx@str @shorthands}}
+ {\let\biblistname\@empty}}}
+
+\def\blx@defbibstrings@i#1{%
+ \ifcsdef{abx@lstr@#1}
+ {\def\expandafter\noexpand\csname abx@lstr@#1\endcsname{%
+ \csexpandonce{abx@lstr@#1}}}
+ {\undef\expandafter\noexpand\csname abx@lstr@#1\endcsname}%
+ \ifcsdef{abx@sstr@#1}
+ {\def\expandafter\noexpand\csname abx@sstr@#1\endcsname{%
+ \csexpandonce{abx@sstr@#1}}}
+ {\undef\expandafter\noexpand\csname abx@sstr@#1\endcsname}}
+
+% {<language>}{<language>}
+\def\blx@letbibstrings#1#2{%
+ \blx@lbxinput@strings{#2}{}{\blx@err@nolang{#2}}%
+ \global\csletcs{abx@strings@#1}{abx@strings@#2}}%
+
+% {<language>}{<exceptions>}
+\newrobustcmd*{\DefineHyphenationExceptions}[2]{%
+ \ifcsundef{l@#1}
+ {\blx@warn@nohyph{#1}}
+ {}%
+ \csgappto{blx@hook@hyph@#1}{\blx@hyphexcept{#1}{#2}}}
+\@onlypreamble\DefineHyphenationExceptions
+
+\def\blx@hyphexcept#1#2{%
+ \ifcsundef{l@#1}
+ {\blx@warn@nohyph{#1}}
+ {\begingroup
+ \language\csname l@#1\endcsname\relax
+ \hyphenation{#2}%
+ \endgroup}}
+
+% {<mapping suffix>}
+\newrobustcmd*{\DeclareLanguageMappingSuffix}[1]{%
+ \gdef\blx@lng@suff{#1}}
+\@onlypreamble\DeclareLanguageMappingSuffix
+\let\blx@lng@suff\@empty
+
+% {<language>}{<mapping>}
+\newrobustcmd*{\DeclareLanguageMapping}[2]{%
+ \csgdef{blx@lng@#1}{#2}%
+ \csgdef{blx@lng@explicit@#1}{#2}}
+\@onlypreamble\DeclareLanguageMapping
+
+% to avoid copying, these commands simply redefine the input handlers and
+% process and postprocess code
+% {<language>}{<success>}{<failure>}
+\def\blx@lbxinput#1{%
+ \csletcs{blx@lbx@input@handler}{blx@lbx@input@handler@once}%
+ \csletcs{blx@lbx@input@process}{blx@lbx@input@process@all}%
+ \csletcs{blx@lbx@input@postprocess}{blx@lbx@input@postprocess@all}%
+ \blx@lbxinput@i{#1}}
+
+\def\blx@lbxinput@strings#1{%
+ \csletcs{blx@lbx@input@handler}{blx@lbx@input@handler@simple}%
+ \csletcs{blx@lbx@input@process}{blx@lbx@input@process@strings}%
+ \csletcs{blx@lbx@input@postprocess}{blx@lbx@input@postprocess@strings}%
+ \blx@lbxinput@i{#1}}
+
+\def\blx@lbxinput@extras#1{%
+ \csletcs{blx@lbx@input@handler}{blx@lbx@input@handler@simple}%
+ \csletcs{blx@lbx@input@process}{blx@lbx@input@process@extras}%
+ \csletcs{blx@lbx@input@postprocess}{blx@lbx@input@postprocess@extras}%
+ \blx@lbxinput@i{#1}}
+
+\def\blx@lbxinput@i#1{%
+ \ifcsundef{blx@nolbxrecurse@#1}
+ {\ifcsdef{blx@lng@explicit@#1}
+ {\global\csletcs{blx@lng@#1}{blx@lng@explicit@#1}}
+ {\ifdefempty\blx@lng@suff
+ {}
+ {\csgdef{blx@lng@#1}{#1\blx@lng@suff}}}}
+ {}%
+ \blx@lbxinput@ii{#1}}
+
+\def\blx@lbxinput@ii#1{%
+ \ifcsdef{blx@lng@#1}
+ {\expandafter\expandafter\expandafter\blx@lbxinput@iii
+ \expandafter\expandafter\expandafter{%
+ \csname blx@lng@#1\endcsname}{#1}}
+ {\blx@lbxinput@iv{#1}{#1}{language '#1'}}}
+
+% {<mapping>}{<language>}
+\def\blx@lbxinput@iii#1#2{%
+ \global\csundef{blx@lng@#2}%
+ \IfFileExists{#1.lbx}
+ {\blx@lbxinput@iv{#2}{#1}{language '#2' -> '#1'}}
+ {\ifcsdef{blx@suffmaptried@#2}
+ {}
+ {\blx@warning@noline{%
+ File '#1.lbx' not found!\MessageBreak
+ Ignoring mapping '#2' -> '#1'}%
+ \global\cslet{blx@suffmaptried@#2}\@empty}%
+ \blx@lbxinput@iv{#2}{#2}{language '#2'}}}
+
+% .lbx files must be read with one of the two following commands,
+% do not use \blx@inputonce. Only the commands here make sure that the file
+% is read as many times as necessary.
+% blx@file@lbx@simple@#1 only blocks the file being added to the file list
+% blx@file@lbx@once@#1 blocks a file from being loaded again by the input-once
+% routine
+% {<file>}{<message>}{<preload>}{<postload>}{<success>}{<failure>}
+\protected\long\def\blx@lbx@input@handler@simple#1#2#3#4#5#6{%
+ \blx@info@noline{Trying to load #2..}%
+ \IfFileExists{#1}
+ {\blx@info@noline{... file '#1' found}%
+ #3\@@input\@filef@und#4#5%
+ \ifcsundef{blx@file@lbx@simple@#1}
+ {\listxadd\blx@list@req@stat{#1}%
+ \@addtofilelist{#1}%
+ \global\cslet{blx@file@lbx@simple@#1}\@empty}
+ {}}
+ {\blx@info@noline{... file '#1' not found}#6}}
+
+% {<file>}{<message>}{<preload>}{<postload>}{<success>}{<failure>}
+\protected\long\def\blx@lbx@input@handler@once#1#2#3#4#5#6{%
+ \ifcsundef{blx@file@lbx@once@#1}
+ {\blx@info@noline{Trying to load #2..}%
+ \IfFileExists{#1}
+ {\blx@info@noline{... file '#1' found}%
+ #3\@@input\@filef@und#4#5%
+ \ifcsundef{blx@file@lbx@simple@#1}
+ {\listxadd\blx@list@req@stat{#1}%
+ \@addtofilelist{#1}}
+ {}}
+ {\blx@info@noline{... file '#1' not found}#6}%
+ \global\cslet{blx@file@lbx@once@#1}\@empty
+ \global\cslet{blx@file@lbx@simple@#1}\@empty}
+ {#5}}
+
+\def\blx@lbx@input@process@strings#1{%
+ \global\cslet{abx@strings@#1}\@empty
+ \def\InheritBibliographyStrings{%
+ \blx@letbibstrings{#1}}%
+ \def\DeclareBibliographyStrings##1{%
+ \begingroup
+ \let\blx@defstring\blx@lbx@defstring
+ \blx@defbibstrings{#1}{##1}%
+ \endgroup}}
+
+\def\blx@lbx@input@process@extras#1{%
+ \global\cslet{abx@extras@#1}\@empty
+ \global\cslet{abx@noextras@#1}\@empty
+ \def\InheritBibliographyExtras{\blx@letbibextras{#1}}%
+ \def\DeclareBibliographyExtras{\blx@defbibextras{#1}}%
+ \def\UndeclareBibliographyExtras{\blx@undefbibextras{#1}}}
+
+\def\blx@lbx@input@process@all#1{%
+ \blx@lbx@input@process@strings{#1}%
+ \blx@lbx@input@process@extras{#1}%
+ \def\DeclareHyphenationExceptions{\blx@hyphexcept{#1}}}
+
+\def\blx@lbx@input@postprocess@strings#1{%
+ \csuse{blx@hook@strings@#1}}
+
+\def\blx@lbx@input@postprocess@extras#1{%
+ \csuse{blx@hook@extras@#1}%
+ \csuse{blx@hook@noextras@#1}}
+
+\def\blx@lbx@input@postprocess@all#1{%
+ \blx@lbx@input@postprocess@strings{#1}%
+ \blx@lbx@input@postprocess@extras{#1}%
+ \csuse{blx@hook@hyph@#1}%
+ \blx@maplang{#1}{#1}}
+
+% {<language>}{<lbxfile>}{<message>}
+\def\blx@lbxinput@iv#1#2#3{%
+ \begingroup
+ \blx@lbx@input@handler{#2.lbx}{#3}
+ {\let\InheritBibliographyStrings\@gobble
+ \let\DeclareBibliographyStrings\@gobble
+ \let\InheritBibliographyExtras\@gobble
+ \let\DeclareBibliographyExtras\@gobble
+ \let\UndeclareBibliographyExtras\@gobble
+ \blx@lbx@input@process{#1}%
+ \begingroup
+ \cslet{blx@nolbxrecurse@#1}\@empty
+ \blx@saneccodes
+ \makeatletter}
+ {\endgroup
+ \blx@lbx@input@postprocess{#1}}
+ {\aftergroup\@firstoftwo}
+ {\aftergroup\@secondoftwo}%
+ \endgroup}
+
+% {<language>}
+\def\blx@langsetup#1{%
+ \blx@lbxinput{#1}
+ {\edef\blx@languagename{#1}}
+ {\blx@warning
+ {Language '#1' not supported.\MessageBreak
+ Using fallback language '\blx@languagename'}%
+ \blx@lbxinput{\blx@languagename}
+ {\blx@maplang{#1}{\blx@languagename}}
+ {\blx@err@nolang{\blx@languagename}}}}
+
+% auxiliary macros
+
+% {<field base name>}
+\newrobustcmd*{\mkdaterangeshort}{%
+ \mkdaterangefull{short}}
+
+\newrobustcmd*{\mkdaterangelong}{%
+ \mkdaterangefull{long}}
+
+\newrobustcmd*{\mkdaterangeterse}{%
+ \mkdaterangetrunc{short}}
+
+\newrobustcmd*{\mkdaterangecomp}{%
+ \mkdaterangetrunc{long}}
+
+\newrobustcmd*{\mkdaterangeshortextra}{%
+ \mkdaterangefullextra{short}}
+
+\newrobustcmd*{\mkdaterangelongextra}{%
+ \mkdaterangefullextra{long}}
+
+\newrobustcmd*{\mkdaterangeterseextra}{%
+ \mkdaterangetruncextra{short}}
+
+\newrobustcmd*{\mkdaterangecompextra}{%
+ \mkdaterangetruncextra{long}}
+
+% calls to \blx@metadateinfo should be grouped to avoid name clashes
+\def\blx@metadateinfo#1{%
+ \letcs\ifdateera{if#1dateera}%
+ \letcs\ifenddateera{if#1enddateera}%
+ \letcs\ifdatecirca{if#1datecirca}%
+ \letcs\ifenddatecirca{if#1enddatecirca}%
+ \letcs\ifdatejulian{if#1datejulian}%
+ \letcs\ifenddatejulian{if#1enddatejulian}%
+ \letcs\ifdateuncertain{if#1dateuncertain}%
+ \letcs\ifenddateuncertain{if#1enddateuncertain}%
+ \letcs\ifdateunknown{if#1dateunknown}%
+ \letcs\ifenddateunknown{if#1enddateunknown}}
+
+\expandafter\newrobustcmd\expandafter*\csname mktimerange24h\endcsname{%
+ \mktimerange{24h}}
+
+\expandafter\newrobustcmd\expandafter*\csname mktimerange12h\endcsname{%
+ \mktimerange{12h}}
+
+\expandafter\newrobustcmd\expandafter*\csname mktimerange24hcomp\endcsname[1]{%
+ \iffieldundef{#1hour}
+ {}
+ {\ifboolexpr{test {\iffieldundef{#1endhour}}
+ or
+ test {\iffieldequalstr{#1endhour}{}}}
+ {\mktimerange{24h}{#1}}
+ {\iffieldsequal{#1hour}{#1endhour}
+ % 14:xx:xx 14:xx:xx
+ {\iffieldsequal{#1minute}{#1endminute}
+ % 14:13:xx 14:13:xx
+ {\toggletrue{blx@seconds}%
+ \printtext[#1time]{%
+ \csuse{mkbibtime24h}{#1hour}{#1minute}{#1second}{}%
+ \bibtimerangesep
+ \csuse{mkbibtime24h}{}{}{#1endsecond}{}}}
+ % 14:13:xx 14:14:xx
+ {\toggletrue{blx@seconds}%
+ \printtext[#1time]{\csuse{mkbibtime24h}{#1hour}{#1minute}{}{}%
+ \bibtimerangesep
+ \csuse{mkbibtime24h}{}{#1endminute}{}{}}}}
+ % 14:xx:xx 15:xx:xx
+ {\mktimerange{24h}{#1}}}}}
+
+% {<24h|24hcomp|12h>}{<datetype>}
+\newrobustcmd*{\mktimerange}[2]{%
+ \iffieldundef{#2hour}
+ {\blx@nounit}
+ {\blx@timepre{#2}{}%
+ \printtext[#2time]{\csuse{mkbibtime#1}{#2hour}{#2minute}{#2second}{#2timezone}%
+ \iffieldundef{#2endhour}
+ {}
+ {\blx@timepre{#2}{end}%
+ \iffieldequalstr{#2endhour}{}
+ {\mbox{\bibtimerangesep}}
+ {\bibtimerangesep
+ \csuse{mkbibtime#1}{#2endhour}{#2endminute}{#2endsecond}{#2endtimezone}}}}}}
+
+% {<datetype>}{''|end}
+\newrobustcmd*{\blx@timepre}[2]{%
+ \iftoggle{blx@timezones}{}
+ {\blx@imc@clearfield{#1#2timezone}}%
+ \iftoggle{blx@seconds}{}
+ {\blx@imc@clearfield{#1#2second}}}
+
+\newcommand*{\blx@if@printtime}[2]{%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1#2hour}}}}
+
+\newcommand*{\blx@if@printanytimes}[1]{%
+ \ifboolexpr{
+ togl {blx@#1dateusetime}
+ and
+ ( not test {\iffieldundef{#1hour}}
+ or not test {\iffieldundef{#1endhour}})}}
+
+% {<datetype>}{'' | end}
+\newrobustcmd*{\blx@printtime}[2]{%
+ \blx@if@printtime{#1}{#2}
+ {\blx@timepre{#1}{#2}%
+ \printtext{\bibdatetimesep}%
+ \printtext[#1time]{%
+ \csuse{mkbibtime\csuse{blx@timeformat@#1time}}
+ {#1#2hour}{#1#2minute}{#1#2second}{#1#2timezone}}}
+ {}}
+
+% {<short|long>}{<datetype>}
+\newrobustcmd*{\mkdaterangefull}[2]{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateuncertainprint
+ \dateeraprint{#2year}%
+ \iffieldundef{#2endyear}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{end}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\newrobustcmd*{\mkdaterangefullextra}[2]{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateuncertainprint
+ \dateeraprint{#2year}%
+ \iffieldundef{#2endyear}
+ {\printfield{extradate}}
+ {\iffieldequalstr{#2endyear}{}
+ {\printfield{extradate}%
+ \printtext{\mbox{\bibdaterangesep}}}
+ {\printtext{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{end}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \printfield{extradate}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\newrobustcmd*{\mkdaterangetrunc}[2]{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefull{#1}{#2}}
+ {\mkdaterangetrunc@i{#1}{#2}}}
+
+\newrobustcmd*{\mkdaterangetrunc@i}[2]{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{}{}{#2day}}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\newrobustcmd*{\mkdaterangetruncextra}[2]{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefullextra{#1}{#2}}
+ {\mkdaterangetruncextra@i{#1}{#2}}}
+
+\newrobustcmd*{\mkdaterangetruncextra@i}[2]{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{}{}{#2day}}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {\printfield{extradate}}
+ {\iffieldequalstr{#2endyear}{}
+ {\printfield{extradate}%
+ \printtext{\mbox{\bibdaterangesep}}}
+ {\printtext{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \printfield{extradate}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\newrobustcmd*{\mkdaterangeyear}[1]{%
+ \blx@imc@clearfield{#1season}%
+ \blx@imc@clearfield{#1month}%
+ \blx@imc@clearfield{#1day}%
+ \blx@imc@clearfield{#1hour}%
+ \blx@imc@clearfield{#1minute}%
+ \blx@imc@clearfield{#1second}%
+ \blx@imc@clearfield{#1timezone}%
+ \blx@imc@clearfield{#1endseason}%
+ \blx@imc@clearfield{#1endmonth}%
+ \blx@imc@clearfield{#1endday}%
+ \blx@imc@clearfield{#1endhour}%
+ \blx@imc@clearfield{#1endminute}%
+ \blx@imc@clearfield{#1endsecond}%
+ \blx@imc@clearfield{#1endtimezone}%
+ \ifdateyearsequal{#1}{#1end}
+ {\blx@imc@clearfield{#1endyear}}
+ {}%
+ \mkdaterangefull{short}{#1}}
+
+% {<datetype>}
+\newrobustcmd*{\mkdaterangeymd}[1]{%
+ \begingroup
+ \blx@metadateinfo{#1}%
+ \iffieldundef{#1year}
+ {\blx@nounit}
+ {\printtext[#1date]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{}}
+ {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
+ \dateuncertainprint
+ \dateeraprint{#1year}%
+ \iffieldundef{#1endyear}
+ {}
+ {\iffieldequalstr{#1endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{end}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{end}}
+ {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#1endyear}}}}}%
+ \endgroup}
+
+% {<datetype>}
+\newrobustcmd*{\mkdaterangeymdextra}[1]{%
+ \begingroup
+ \blx@metadateinfo{#1}%
+ \iffieldundef{#1year}
+ {\blx@nounit}
+ {\printtext[#1date]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#1season}
+ {\blx@ymddate[extradate]{#1}{}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{}}
+ {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
+ \dateuncertainprint
+ \dateeraprint{#1year}%
+ \iffieldundef{#1endyear}
+ {}
+ {\iffieldequalstr{#1endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\printtext{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{end}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{end}}
+ {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}%
+ \enddateuncertainprint
+ \dateeraprint{#1endyear}}}}}%
+ \endgroup}
+
+% [extradate]{<datetype>}{''|end}
+\newrobustcmd*{\blx@ymddate}[3][]{%
+ \dateeraprintpre{#2#3year}%
+ \mkyearzeros{\thefield{#2#3year}}\ifblank{#1}{}{\printfield{#1}}%
+ \iffieldundef{#2#3month}{}{\bibdatesep\mkmonthzeros{\thefield{#2#3month}}}%
+ \iffieldundef{#2#3day}{}{\bibdatesep\mkdayzeros{\thefield{#2#3day}}}}
+
+\newrobustcmd*{\mkdaterangeyearextra}[1]{%
+ \blx@imc@clearfield{#1season}%
+ \blx@imc@clearfield{#1month}%
+ \blx@imc@clearfield{#1day}%
+ \blx@imc@clearfield{#1hour}%
+ \blx@imc@clearfield{#1minute}%
+ \blx@imc@clearfield{#1second}%
+ \blx@imc@clearfield{#1timezone}%
+ \blx@imc@clearfield{#1endseason}%
+ \blx@imc@clearfield{#1endmonth}%
+ \blx@imc@clearfield{#1endday}%
+ \blx@imc@clearfield{#1endhour}%
+ \blx@imc@clearfield{#1endminute}%
+ \blx@imc@clearfield{#1endsecond}%
+ \blx@imc@clearfield{#1endtimezone}%
+ \ifdateyearsequal{#1}{#1end}
+ {\blx@imc@clearfield{#1endyear}}
+ {}%
+ \mkdaterangefullextra{short}{#1}}
+
+\newrobustcmd*{\mkdaterangeiso}[1]{%
+ \begingroup
+ \blx@metadateinfo{#1}%
+ \def\bibdatetimesep{T}%
+ \iffieldundef{#1year}
+ {\blx@nounit}
+ {\printtext[#1date]{%
+ \blx@isodate{#1}{}%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1hour}}}
+ {\printtext{\bibdatetimesep}%
+ \blx@isotime{#1}{}}
+ {}%
+ \dateuncertainprint
+ \datecircaprintiso
+ \iffieldundef{#1endyear}
+ {}
+ {\addslash
+ \blx@isodate{#1}{end}%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1endhour}}}
+ {\printtext{\bibdatetimesep}%
+ \blx@isotime{#1}{end}}
+ {}%
+ \enddateuncertainprint
+ \enddatecircaprintiso}}}%
+ \endgroup}
+
+\newrobustcmd*{\mkdaterangeisoextra}[1]{%
+ \begingroup
+ \blx@metadateinfo{#1}%
+ \def\bibdatetimesep{T}%
+ \iffieldundef{#1year}
+ {\blx@nounit}
+ {\printtext[#1date]{%
+ \blx@isodate[extradate]{#1}{}%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1hour}}}
+ {\printtext{\bibdatetimesep}%
+ \blx@isotime{#1}{}}
+ {}%
+ \dateuncertainprint
+ \datecircaprintiso
+ \iffieldundef{#1endyear}
+ {}
+ {\addslash
+ \blx@isodate{#1}{end}}%
+ \ifboolexpr{%
+ togl {blx@#1dateusetime}
+ and
+ not test {\iffieldundef{#1endhour}}}
+ {\printtext{\bibdatetimesep}%
+ \blx@isotime{#1}{end}}
+ {}%
+ \enddateuncertainprint
+ \enddatecircaprintiso}}%
+ \endgroup}
+
+% [extradate]{<datetype>}{''|end}
+\newrobustcmd*{\blx@isodate}[3][]{%
+ \dateeraprintpre{#2#3year}%
+ \blx@imc@forcezerosy{\thefield{#2#3year}}\ifblank{#1}{}{\printfield{#1}}%
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2#3season}
+ {\iffieldundef{#2#3month}{}{\hyphen\blx@imc@forcezerosmdt{\thefield{#2#3month}}}%
+ \iffieldundef{#2#3day}{}{\hyphen\blx@imc@forcezerosmdt{\thefield{#2#3day}}}}
+ {\hyphen\blx@seasonmap{\thefield{#2#3season}}}}
+
+\def\blx@seasonmap#1{%
+ \blx@xifstrequal{#1}{spring}{21}
+ {\blx@xifstrequal{#1}{summer}{22}
+ {\blx@xifstrequal{#1}{autumn}{23}
+ {\blx@xifstrequal{#1}{winter}{24}{}}}}}
+
+\newrobustcmd*{\blx@isotime}[2]{%
+ \blx@imc@forcezerosmdt{\thefield{#1#2hour}}%
+ :\blx@imc@forcezerosmdt{\thefield{#1#2minute}}%
+ :\blx@imc@forcezerosmdt{\thefield{#1#2second}}%
+ \iftoggle{blx@timezones}
+ {\mkbibtimezone{\thefield{#1#2timezone}}}
+ {}}
+
+% some sane defaults for bibliography extras
+% many of these should be redefined in the .lbx files
+% all .lbx files should have date and time handling, so the fallback values
+% issue a warning to make people aware of the deficiency in their file
+% \mkbibordinal should also only be used if it is defined, so it warns as well
+% times
+\newrobustcmd*{\bibtimesep}{:}
+\newrobustcmd*{\bibtimerangesep}{\textendash}
+\newrobustcmd*{\bibutctimezone}{Z}
+\newrobustcmd*{\bibtimezonesep}{}
+\newrobustcmd*{\bibtzminsep}{\bibtimesep}
+% dates
+\newrobustcmd*{\bibdateuncertain}{?}
+% \textminus is only guaranteed for non-PDFTeX
+\newrobustcmd*{\bibdateeraprefix}{\ifdef\textminus\textminus\textendash}
+\newrobustcmd*{\bibdateeraendprefix}{\,\bibdateeraprefix}
+\newrobustcmd*{\bibdatesep}{\hyphen}
+\newrobustcmd*{\bibdaterangesep}{\bibrangedash}
+% date+times
+\newrobustcmd*{\bibdatetimesep}{\space}
+% ranges
+\newrobustcmd*{\bibrangedash}{\textendash}
+\newrobustcmd*{\bibrangessep}{,\space}
+% formatters
+\newrobustcmd*{\mkbibtimezone}[1]{\blx@xifstrequal{#1}{Z}{\bibutctimezone}{#1}}
+% you should never end up needing the next few definitions
+% but it is safer to do something than just swallow the input
+\newrobustcmd*{\mkbibdatelong}[3]{%
+ \blx@warning@noline{%
+ Using fallback definition for \string\mkbibdatelong.\MessageBreak
+ The command should be defined in the .lbx file.\MessageBreak
+ If you see this message, the .lbx file could not be\MessageBreak
+ loaded, is faulty or does not contain a definition\MessageBreak
+ for \string\mkbibdatelong
+ }%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}
+
+\newrobustcmd*{\mkbibdateshort}[3]{%
+ \blx@warning@noline{%
+ Using fallback definition for \string\mkbibdateshort.\MessageBreak
+ The command should be defined in the .lbx file.\MessageBreak
+ If you see this message, the .lbx file could not be\MessageBreak
+ loaded, is faulty or does not contain a definition\MessageBreak
+ for \string\mkbibdateshort
+ }%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{/}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}
+
+\expandafter\newrobustcmd\expandafter*\csname mkbibtime24h\endcsname[4]{%
+ \blx@warning@noline{%
+ Using fallback definition for
+ \expandafter\string\csname mkbibtime24h\endcsname.\MessageBreak
+ The command should be defined in the .lbx file.\MessageBreak
+ If you see this message, the .lbx file could not be\MessageBreak
+ loaded, is faulty or does not contain a definition\MessageBreak
+ for \expandafter\string\csname mkbibtime24h\endcsname
+ }%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}
+
+\expandafter\newrobustcmd\expandafter*\csname mkbibtime12h\endcsname[4]{%
+ \blx@warning@noline{%
+ Using fallback definition for
+ \expandafter\string\csname mkbibtime12h\endcsname.\MessageBreak
+ The command should be defined in the .lbx file.\MessageBreak
+ If you see this message, the .lbx file could not be\MessageBreak
+ loaded, is faulty or does not contain a definition\MessageBreak
+ for \expandafter\string\csname mkbibtime12h\endcsname
+ }%
+ \stripzeros{\mktimehh{\thefield{#1}}}%
+ \bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezeros{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}
+
+\newrobustcmd*{\mkbibseasondateshort}[2]{%
+ \blx@warning@noline{%
+ Using fallback definition for \string\mkbibseasondateshort.\MessageBreak
+ The command should be defined in the .lbx file.\MessageBreak
+ If you see this message, the .lbx file could not be\MessageBreak
+ loaded, is faulty or does not contain a definition\MessageBreak
+ for \string\mkbibseasondateshort
+ }%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}
+
+\newrobustcmd*{\mkbibseasondatelong}[2]{%
+ \blx@warning@noline{%
+ Using fallback definition for \string\mkbibseasondatelong.\MessageBreak
+ The command should be defined in the .lbx file.\MessageBreak
+ If you see this message, the .lbx file could not be\MessageBreak
+ loaded, is faulty or does not contain a definition\MessageBreak
+ for \string\mkbibseasondatelong
+ }%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}
+
+\newrobustcmd*{\bibdatedash}{\bibrangedash}
+\newrobustcmd*{\finalandcomma}{}
+\newrobustcmd*{\finalandsemicolon}{}
+\newrobustcmd*{\mkbibordinal}[1]{%
+ \blx@warning@noline{%
+ Using fallback definition for \string\mkbibordinal.\MessageBreak
+ The command should be defined in the .lbx file.\MessageBreak
+ If you see this message, the .lbx file could not be\MessageBreak
+ loaded, is faulty or does not contain a definition\MessageBreak
+ for \string\mkbibordinal
+ }%
+ #1%
+}
+\newrobustcmd*{\mkbibmascord}{\mkbibordinal}
+\newrobustcmd*{\mkbibfemord}{\mkbibordinal}
+\newrobustcmd*{\mkbibneutord}{\mkbibordinal}
+% the following is usually not redefined in an .lbx
+\newrobustcmd*{\mkbibseason}[1]{\abx@bibseason{#1}}
+\newrobustcmd*{\mkbibmonth}[1]{%
+ \ifcase0#1\relax
+ \blx@warning@entry{Month out of range or not an integer}%
+ \or\abx@bibmonth{january}%
+ \or\abx@bibmonth{february}%
+ \or\abx@bibmonth{march}%
+ \or\abx@bibmonth{april}%
+ \or\abx@bibmonth{may}%
+ \or\abx@bibmonth{june}%
+ \or\abx@bibmonth{july}%
+ \or\abx@bibmonth{august}%
+ \or\abx@bibmonth{september}%
+ \or\abx@bibmonth{october}%
+ \or\abx@bibmonth{november}%
+ \or\abx@bibmonth{december}%
+ \else
+ \blx@warning@entry{Month out of range}#1%
+ \fi}
+
+% strip leading zeros and prepend zero for month/day/timeparts
+% Allow for non numeric labelyear values
+\protected\def\blx@imc@forcezerosmdt#1{%
+ \protected@edef\blx@tempa{#1}%
+ \expandafter\blx@imc@forcezerosmdt@i\expandafter{\blx@tempa}}
+
+\protected\def\blx@imc@forcezerosmdt@i#1{%
+ \notblank{#1}
+ {\blx@imc@ifinteger{#1}
+ {\ifnumless{#1}{10}
+ {0\the\numexpr(#1)\relax}
+ {#1}}
+ {#1}}
+ {#1}}
+
+% strip leading zeros and prepend zero(s) for year
+% Allow for non numeric labelyear values
+\protected\def\blx@imc@forcezerosy#1{%
+ \protected@edef\blx@tempa{#1}%
+ \expandafter\blx@imc@forcezerosy@i\expandafter{\blx@tempa}}
+
+\protected\def\blx@imc@forcezerosy@i#1{%
+ \notblank{#1}
+ {\blx@imc@ifinteger{#1}
+ {\ifnumless{#1}{10}% 1-digit year
+ {000\the\numexpr(#1)\relax}
+ {\ifnumless{#1}{100}% 2-digit year
+ {00\the\numexpr(#1)\relax}
+ {\ifnumless{#1}{1000}% 3-digit year
+ {0\the\numexpr(#1)\relax}
+ {#1}}}}
+ {#1}}
+ {#1}}%
+
+\let\blx@imc@mkyearzeros\blx@imc@forcezerosy
+\let\blx@imc@mkmonthzeros\blx@imc@forcezerosmdt
+\let\blx@imc@mkdayzeros\blx@imc@forcezerosmdt
+\protected\def\blx@imc@stripzeros#1{%
+ \begingroup
+ \setbox\@tempboxa=\hbox\bgroup
+ \aftergroup\endgroup
+ \abx@hook@xsanitize
+ \if0#1\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\@tempcnta#1\relax
+ \expandafter\egroup
+ \number\@tempcnta
+ \@tempcnta#1\relax}
+ {\egroup#1}}
+
+\let\blx@imc@printlabeldate\@empty
+\let\blx@imc@printlabeltime\@empty
+\let\blx@imc@printlabeldateextra\@empty
+
+\blx@regimcs{\printlabeldate \printlabeltime \printlabeldateextra
+ \stripzeros \forcezerosy \forcezerosmdt
+ \mkyearzeros \mkmonthzeros \mkdayzeros \mktimezeros}
+
+% User macro for retrieving currrent language
+\def\currentlang{\blx@languagename}
+
+% {<language>}{<strings>}
+\def\blx@maplang#1#2{%
+ \csgappto{extras#1}{%
+ \blx@resetpunct
+ \csuse{abx@extras@#2}%
+ \csuse{abx@strings@#2}}%
+ \csgappto{noextras#1}{%
+ \blx@resetpunct
+ \csuse{abx@noextras@#2}}}
+
+%% babel/polyglossia interface
+\def\blx@beglang{\blx@clearlang\begingroup}
+\def\blx@endlang{\endgroup}
+\let\blx@beglangbib\blx@beglang
+\let\blx@endlangbib\blx@endlang
+\let\blx@beglangcite\blx@beglang
+\let\blx@endlangcite\blx@endlang
+\let\blx@hook@endlang\@empty
+\let\blx@hook@initlang\@empty
+\let\blx@imc@mainlang\@empty
+\def\blx@hyphenreset{%
+ \ifcsundef{l@\blx@languagename}
+ {}
+ {\language\csname l@\blx@languagename\endcsname\relax}%
+ \ifcsundef{\blx@languagename hyphenmins}
+ {\blx@sethyphenmins\tw@\thr@@}
+ {\expandafter\expandafter\expandafter\blx@sethyphenmins
+ \csname\blx@languagename hyphenmins\endcsname}}
+\def\blx@sethyphenmins#1#2{%
+ \lefthyphenmin#1\relax
+ \righthyphenmin#2\relax}
+
+\begingroup
+\@makeother\#
+\gdef\blx@mkautolangbabel{%
+ \ifundef\bbl@main@language
+ {\blx@error
+ {No default 'babel' language defined}
+ {You must define a default language for 'babel'}}
+ {}%
+ \pretocmd\select@language{\blx@langsetup{#1}}
+ {\ifdef\blx@thelangenv
+ {\def\blx@beglang{%
+ \blx@clearlang
+ \begingroup
+ % Need to override all entries, regardless of if there is a langid
+ % if language=<language> option is given
+ \ifboolexpr { test {\ifdef\abx@field@langid }
+ or
+ test {\ifdef\blx@forcelanguagename} }
+ % override local langid if we forced it with
+ % language=<language> option
+ {\ifdef\blx@forcelanguagename
+ {\let\abx@field@langid\blx@forcelanguagename}
+ {}%
+ \let\blx@languagename\abx@field@langid% track global language
+ \ifcsundef{l@\abx@field@langid}
+ {\blx@warn@nohyph{\abx@field@langid}}
+ {\blx@hook@initlang
+ \def\blx@endlang{%
+ \blx@hook@endlang
+ \csname end\blx@thelangenv\endcsname
+ \endgroup}%
+ \iftoggle{blx@autolangbib}
+ {\let\blx@endlangbib\blx@endlang}
+ {}%
+ \iftoggle{blx@autolangcite}
+ {\let\blx@endlangcite\blx@endlang}
+ {}%
+ \csname\blx@thelangenv\expandafter\endcsname
+ \expandafter{\abx@field@langid}}}
+ {}}}
+ {}%
+ \def\blx@langstrings{}%
+ \def\blx@imc@mainlang{\select@language{\bbl@main@language}}%
+ \blx@langsetup\bbl@main@language}
+ {\blx@err@patch{'babel' package}%
+ \blx@mknoautolang}}
+
+\gdef\blx@mkautolangpoly{%
+ \ifundef\bbl@main@language
+ {\blx@error
+ {No default 'polyglossia' language defined}
+ {You must define a default language for 'polyglossia'}}
+ {}%
+ \edef\blx@saved@underscore@catcode{\the\catcode`\_}%
+ \catcode`\_=11% polyglossia uses "_" as a letter
+ \pretocmd\select@language{\blx@langsetup{#1}}
+ {\ifdef\blx@thelangenv
+ {\def\blx@beglang{%
+ \blx@clearlang
+ \begingroup
+ % Need to override all entries, regardless of if there is a langid
+ % if language=<language> option is given
+ \ifboolexpr { test {\ifdef\abx@field@langid }
+ or
+ test {\ifdef\blx@forcelanguagename} }
+ % override local langid if we forced it with
+ % language=<language> option
+ {\ifdef\blx@forcelanguagename
+ {\let\abx@field@langid\blx@forcelanguagename}
+ {}%
+ \let\blx@languagename\abx@field@langid% track global language
+ \ifcsundef{l@\abx@field@langid}
+ {\blx@warn@nohyph{\abx@field@langid}}
+ {\blx@hook@initlang
+ \def\blx@endlang{%
+ \blx@hook@endlang
+ % Polyglossia language envs are \<lang>[]
+ \ifcsstring{blx@thelangenv}{langname}
+ {\csname end\abx@field@langid\endcsname}
+ {\csname end\blx@thelangenv\endcsname}%
+ \endgroup}%
+ \iftoggle{blx@autolangbib}
+ {\let\blx@endlangbib\blx@endlang}
+ {}%
+ \iftoggle{blx@autolangcite}
+ {\let\blx@endlangcite\blx@endlang}
+ {}%
+ \ifcsstring{blx@thelangenv}{langname}
+ {\ifdef\abx@field@langidopts
+ {\csname\abx@field@langid\expandafter\endcsname\expandafter[\abx@field@langidopts]}
+ {\csname\abx@field@langid\endcsname}}
+ {\csname\blx@thelangenv\expandafter\endcsname\expandafter{\abx@field@langid}}%
+ % These lines are equal to \blx@maplang
+ \ifcsstring{blx@thelangenv}{hyphenrules}
+ {}
+ {\blx@resetpunct
+ \csuse{abx@extras@\abx@field@langid}%
+ \csuse{abx@strings@\abx@field@langid}}}}
+ {}}}
+ {}%
+ % polyglossia needs this - it doesn't get the
+ % strings automatically set for some reason
+ \def\blx@langstrings{%
+ \csuse{abx@extras@\languagename}%
+ \csuse{abx@strings@\languagename}}%
+ \def\blx@imc@mainlang{%
+ \select@language{\bbl@main@language}%
+ % These lines are equal to \blx@maplang
+ \blx@resetpunct
+ \csuse{abx@extras@\bbl@main@language}%
+ \csuse{abx@strings@\bbl@main@language}}%
+ \blx@langsetup\bbl@main@language}
+ {\blx@err@patch{'polyglossia' package}%
+ \blx@mknoautolang}%
+ \catcode`\_=\blx@saved@underscore@catcode\relax}
+\endgroup
+
+\def\blx@mknoautolang{%
+ \blx@lbxinput{\blx@languagename}
+ {}
+ {\blx@err@nolang{\blx@languagename}}}
+
+\blx@regimcs{\mainlang}
+
+\newrobustcmd*{\DeclareRedundantLanguages}[2]{%
+ \begingroup
+ \ifblank{#2}
+ {\def\do##1{%
+ \global\csundef{blx@rlm@##1}%
+ \global\csundef{blx@rlm@lang##1}}}
+ {\def\do##1{%
+ \csxdef{blx@rlm@##1}{#2}%
+ \csxdef{blx@rlm@lang##1}{#2}}}%
+ \docsvlist{#1}%
+ \endgroup}
+
+\def\blx@clearlang{%
+ \iftoggle{blx@clearlang}
+ {\iflistundef{language}
+ {}
+ {\ifnumgreater{\value{language}}{1}
+ {}
+ {\expandafter\blx@clearlang@i\abx@list@language}}}
+ {}}
+
+\def\blx@clearlang@i#1{%
+ \ifcsdef{blx@rlm@#1}
+ {\expandafter\expandafter\expandafter\forcsvlist
+ \expandafter\expandafter\expandafter\blx@clearlang@ii
+ \expandafter\expandafter\expandafter{%
+ \csname blx@rlm@#1\endcsname}}
+ {}}
+
+\def\blx@clearlang@ii#1{%
+ \ifdefstring\languagename{#1}
+ {\clearlist{language}}
+ {}}
+
+%% Biber equivalents to bibtex data interface
+
+\def\abx@doentrytypes{\dolistloop\blx@datamodel@entrytypes}
+
+% fields which can be used as labels - we auto-create some macros for these
+\def\abx@dolabelfields{\dolistloop\blx@datamodel@labelfields}
+
+\def\abx@donames{\dolistloop\blx@datamodel@names}
+\def\abx@donameparts{\expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts}}
+
+\def\abx@dofields{\dolistloop\blx@datamodel@fields}
+
+\def\abx@dolists{%
+ \dolistloop\blx@datamodel@lists%
+ \do{pageref}}
+
+% Used to pass regexps to .bcf
+\def\regexp#1{\expandafter\zap@space\detokenize{#1} \@empty}
+
+% Have to do this otherwise the '~'s in the .bcf strings are not expanded
+% This is done for the .bcf later but since we have to do all the
+% data model things much earlier, have to set this here and reset on finishing
+\let\blx@tsave~
+\let~\space
+% Data model and supporting macros must be loaded early
+\blx@inputonce{blx-dm.def}{biblatex default data model}{}{}{}{}
+\let~\blx@tsave
+
+% We need to now load any style data model
+% Order of precedence is:
+% <datamodel option>.dbx
+% <style option>.dbx
+% <citestyle option>.dbx and <bibstyle option>.dbx
+% This has to be done before the real options processing so we need to
+% pick out just these four options to look at. You can't do this with keyval,
+% you have to use kvoptions. So, pick out these four, pass through all
+% others and delete datamodel option as we don't care about it when we come
+% to really set options below
+\SetupKeyvalOptions{
+ family=blx@opt@eldt,
+ prefix=blx@opt@eldt@}
+\DeclareStringOption{datamodel}
+\DeclareStringOption{style}
+\DeclareStringOption{citestyle}
+\DeclareStringOption{bibstyle}
+\DeclareDefaultOption{}
+\ProcessLocalKeyvalOptions{blx@opt@eldt}
+\ifx\blx@opt@eldt@datamodel\@empty
+ \ifx\blx@opt@eldt@style\@empty
+ \ifx\blx@opt@eldt@citestyle\@empty
+ \else
+ \blx@inputonce{\blx@opt@eldt@citestyle.dbx}{biblatex citestyle data model}{}{}{}{}
+ \fi
+ \ifx\blx@opt@eldt@bibstyle\@empty
+ \else
+ \blx@inputonce{\blx@opt@eldt@bibstyle.dbx}{biblatex bibstyle data model}{}{}{}{}
+ \fi
+ \else
+ \blx@inputonce{\blx@opt@eldt@style.dbx}{biblatex style data model}{}{}{}{}
+ \fi
+\else
+ \blx@inputonce{\blx@opt@eldt@datamodel.dbx}{biblatex style data model}{}{}{}{}
+\fi
+\DisableKeyvalOption[action=undef,local]{blx@opt@eldt}{datamodel}
+
+% Override with user-defined data model if there is one
+\blx@inputonce{biblatex-dm.cfg}{biblatex custom data model}{}{}{}{}
+
+% Initialise option datatypes lists
+\global\let\blx@bcf@options@scope@global\@empty
+\global\let\blx@bcf@options@scope@type\@empty
+\global\let\blx@bcf@options@scope@entry\@empty
+\global\let\blx@bcf@options@scope@namelist\@empty
+\global\let\blx@bcf@options@scope@name\@empty
+\global\let\blx@globalopts@datatypes\@empty
+\global\let\blx@typeopts@datatypes\@empty
+\global\let\blx@entryopts@datatypes\@empty
+\global\let\blx@namelistopts@datatypes\@empty
+\global\let\blx@nameopts@datatypes\@empty
+\def\do#1{%
+ \global\cslet{blx@globalopts@#1}\@empty
+ \global\cslet{blx@typeopts@#1}\@empty
+ \global\cslet{blx@entryopts@#1}\@empty
+ \global\cslet{blx@namelistopts@#1}\@empty
+ \global\cslet{blx@nameopts@#1}\@empty}
+\expandafter\expandafter\expandafter
+\docsvlist
+\expandafter\expandafter\expandafter
+{\csname blx@datamodel@constant@optiondatatypes\endcsname}
+
+% Helper for collecting options and datatypes
+% {<datatype>}{<scope>}{<name>}
+\def\blx@collectopts#1#2#3{%
+ \ifinlistcs{#1}{#2@datatypes}
+ {}
+ {\listcsgadd{#2@datatypes}{#1}}%
+ \ifinlistcs{#3}{#2@#1}
+ {}
+ {\listcsgadd{#2@#1}{#3}}}
+
+
+% entry, namelist, name scopes are input/handled on the backend side
+% if we want to see the info back on the biblatex side, we need the backend
+% to pass the info through via the .bbl file
+\def\blx@declareblxopt@extrahandler@entry#1{%
+ \csgdef{blx@bcf@backendout@entry@#1}{1}}
+\def\blx@declareblxopt@extrahandler@namelist#1{%
+ \csgdef{blx@bcf@backendout@namelist@#1}{1}}
+\def\blx@declareblxopt@extrahandler@name#1{%
+ \csgdef{blx@bcf@backendout@name@#1}{1}}
+
+% {<option scope>}[<datatype>]{<key>}[<value>]{<code>}
+\protected\def\blx@declareblxopt#1{%
+ \@ifnextchar[%]
+ {\blx@declareblxopt@i#1}
+ {\blx@declareblxopt@i#1[]}}
+
+\def\blx@declareblxopt@i#1[#2]#3{%
+ \begingroup
+ \ifblank{#2}
+ {\def\blx@tempa{boolean}}
+ {\ifcsundef{blx@#1opts@#2}
+ {\blx@warn@badoptdt{#2}%
+ \def\blx@tempa{boolean}}
+ {\def\blx@tempa{#2}}}%
+ \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@#1opts}{#3}%
+ \ifcsundef{blx@declareblxopt@extrahandler@#1}
+ {}
+ {\csuse{blx@declareblxopt@extrahandler@#1}{#3}}%
+ \endgroup
+ \@ifnextchar[%]
+ {\csuse{blx@defblxopt@#1opt}{#3}}
+ {\csuse{blx@defblxopt@#1opt}{#3}[]}}
+
+\long\def\blx@defblxopt@globalopt#1[#2]#3{%
+ \ifcsundef{KV@blx@opt@ldt@#1}
+ {\ifcsundef{KV@blx@opt@pre@#1}
+ {\ifblank{#2}
+ {\define@key{blx@opt@pre}{#1}{#3}}
+ {\define@key{blx@opt@pre}{#1}[#2]{#3}}}
+ {\blx@err@optdef{#1}{pre/global}}}
+ {\blx@err@optdef{#1}{ldt/global}}}
+
+\long\def\blx@defblxopt@typeentryopt#1#2[#3]#4{%
+ \ifcsundef{KV@blx@opt@#1@#2}
+ {\ifblank{#3}
+ {\define@key{blx@opt@#1}{#2}{#4}}
+ {\define@key{blx@opt@#1}{#2}[#3]{#4}}}
+ {\blx@err@optdef{#2}{#1}}}
+
+\def\blx@defblxopt@typeopt{\blx@defblxopt@typeentryopt{typ}}
+\def\blx@defblxopt@entryopt{\blx@defblxopt@typeentryopt{ent}}
+\def\blx@defblxopt@nameopt{\blx@defblxopt@typeentryopt{name}}
+\def\blx@defblxopt@namelistopt{\blx@defblxopt@typeentryopt{namelist}}
+
+% The Declare*Option macros are for options which need to be visible
+% to biblatex. For options which only biber needs to see, they can be
+% passed to the .bcf directly using \blx@collectopts
+% [<datatype>]{<key>}[<default value>]{<code>}
+\newcommand*{\DeclareBibliographyOption}{\blx@declareblxopt{global}}
+\newcommand*{\DeclareTypeOption}{\blx@declareblxopt{type}}
+\newcommand*{\DeclareEntryOption}{\blx@declareblxopt{entry}}
+
+% we'll assume that \blx@optscopes is non-empty from now on
+\newcommand*{\blx@optscopes}{}
+\forcsvlist{\listadd\blx@optscopes}{global,type,entry}
+
+\long\def\blx@defblxopt@loopscopes@i#1[#2]#3#4{%
+ \csuse{blx@defblxopt@#4opt}{#1}[#2]{#3}}
+
+\long\def\blx@defblxopt@loopscopes#1[#2]#3{%
+ \forlistloop{\blx@defblxopt@loopscopes@i{#1}[#2]{#3}}{\blx@optscopes}}
+
+% {<option scopes>}[<datatype>]{<key>}[<default value>]{<code>}
+\newrobustcmd*{\DeclareBiblatexOption}[1]{%
+ \let\blx@optscopes\@empty
+ \forcsvlist{\listadd\blx@optscopes}{#1}%
+ \blx@DeclareBiblatexOption@i}
+
+\newrobustcmd*{\blx@DeclareBiblatexOption@i}[2][]{%
+ \begingroup
+ \ifblank{#1}
+ {\def\blx@tempa{boolean}}
+ {\let\blx@tempb\@secondoftwo
+ \def\do##1{%
+ \ifcsundef{blx@##1opts@#1}
+ {\let\blx@tempb\@firstoftwo\listbreak}
+ {}}%
+ \dolistloop{\blx@optscopes}%
+ \blx@tempb
+ {\blx@warn@badoptdt{#1}%
+ \def\blx@tempa{boolean}}
+ {\def\blx@tempa{#1}}}%
+ \def\do##1{%
+ \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@##1opts}{#2}%
+ \ifcsundef{blx@declareblxopt@extrahandler@##1}
+ {}
+ {\csuse{blx@declareblxopt@extrahandler@##1}{#2}}}%
+ \dolistloop{\blx@optscopes}%
+ \endgroup
+ \@ifnextchar[%]
+ {\blx@defblxopt@loopscopes{#2}}
+ {\blx@defblxopt@loopscopes{#2}[]}}
+
+% this macro is internal for now because options declared with it need
+% support on the backend side and are not useful for document or style authors
+% {<option scopes>}[<datatype>]{<key>}
+\newrobustcmd*{\blx@DeclareBackendOption}[1]{%
+ \let\blx@optscopes\@empty
+ \forcsvlist{\listadd\blx@optscopes}{#1}%
+ \blx@DeclareBackendOption@i}
+
+\newrobustcmd*{\blx@DeclareBackendOption@i}[2][]{%
+ \begingroup
+ \ifblank{#1}
+ {\def\blx@tempa{boolean}}
+ {\let\blx@tempb\@secondoftwo
+ \def\do##1{%
+ \ifcsundef{blx@##1opts@#1}
+ {\let\blx@tempb\@firstoftwo\listbreak}
+ {}}%
+ \dolistloop{\blx@optscopes}%
+ \blx@tempb
+ {\blx@warn@badoptdt{#1}%
+ \def\blx@tempa{boolean}}
+ {\def\blx@tempa{#1}}}%
+ \def\do##1{%
+ \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@##1opts}{#2}}%
+ \dolistloop{\blx@optscopes}%
+ \endgroup}
+
+% per-entry inheritance blocking option for biber
+\blx@DeclareBackendOption{entry}[string]{noinherit}
+
+
+% nametemplates meta-option entry/namelist/name scope
+% this meta option is resolved by Biber
+\blx@DeclareBackendOption{entry,namelist,name}[string]{nametemplates}
+\gdef\blx@bcf@backendin@entry@nametemplates{sortingnamekeytemplatename,%
+ uniquenametemplatename,labelalphanametemplatename}%
+\gdef\blx@bcf@backendin@namelist@nametemplates{sortingnamekeytemplatename,%
+ uniquenametemplatename,labelalphanametemplatename}%
+\gdef\blx@bcf@backendin@name@nametemplates{sortingnamekeytemplatename,%
+ uniquenametemplatename,labelalphanametemplatename}%
+
+% Misc globalopts
+\blx@DeclareBackendOption{global}[xml]{datamodel}
+\blx@collectopts{string}{blx@globalopts}{controlversion}
+
+\newcommand*{\labelalphaothers}{+}
+\newcommand*{\sortalphaothers}{\labelalphaothers}
+\blx@DeclareBackendOption{global,type}[string]{alphaothers}
+\blx@DeclareBackendOption{global,type}[string]{sortalphaothers}
+
+% date, eventdate, urldate etc.
+\def\abx@dodates{\dolistloop\blx@datamodel@dates}
+% year, endyear, month, endmonth etc.
+\def\abx@dodateparts{\expandafter\docsvlist\expandafter{\blx@dateparts}}
+
+% '', event, url, orig etc.
+\def\do#1{%
+ \blx@stripfromendinto{#1}{date}\blx@datetype
+ \listxadd\blx@datetypes{\blx@datetype}}
+\abx@dodates
+% main date field has an empty prefix (''date) which can't be added to a list
+% and so do it explicity
+% This is one of the few (only?) hard-coded datamodel assumptions but it is
+% very unlikely that anyone would *remove* the main date field in a custom application ...
+\def\abx@dodatetypes{\do{}\dolistloop\blx@datetypes}
+
+% Sanity check on date field names - they *must* end in 'date' to make things easier/possible later
+\def\do#1{%
+ \blx@ifstrendswith{#1}{date}
+ {}
+ {\blx@error
+ {Invalid date field name '#1'}
+ {Date fields in the datamodel must end in the string 'date' but '#1' doesn't}}}
+\abx@dodates
+
+% date meta-information option fallbacks
+\def\do#1{%
+ \cslet{#1datecircaprint}\@empty
+ \cslet{#1enddatecircaprint}\@empty
+ \cslet{#1datecircaprintiso}\@empty
+ \cslet{#1enddatecircaprintiso}\@empty
+ \cslet{#1dateuncertainprint}\@empty
+ \cslet{#1enddateuncertainprint}\@empty
+ \cslet{#1dateeraprint}\@gobble
+ \cslet{#1dateeraprintpre}\@gobble
+ \csdef{if#1dateera}##1{\@secondoftwo}%
+ \csdef{if#1enddateera}##1{\@secondoftwo}%
+ \cslet{if#1datecirca}\@secondoftwo
+ \cslet{if#1enddatecirca}\@secondoftwo
+ \cslet{if#1datejulian}\@secondoftwo
+ \cslet{if#1enddatejulian}\@secondoftwo
+ \cslet{if#1dateuncertain}\@secondoftwo
+ \cslet{if#1enddateuncertain}\@secondoftwo
+ \cslet{if#1dateunknown}\@secondoftwo
+ \cslet{if#1enddateunknown}\@secondoftwo}
+\abx@dodatetypes
+\do{labeldate}
+
+% These are internal fields/booleans which are not part of the data model but
+% which need to be dealt with along with data model fields in places
+\def\do#1{%
+ \listxadd\blx@datemetafields{#1dateera}%
+ \listxadd\blx@datemetafields{#1enddateera}%
+ \listxadd\blx@datemetafields{#1dateunspecified}}
+\abx@dodatetypes
+
+\def\do#1{%
+ \listxadd\blx@datemetabooleans{#1datecirca}%
+ \listxadd\blx@datemetabooleans{#1enddatecirca}%
+ \listxadd\blx@datemetabooleans{#1datejulian}%
+ \listxadd\blx@datemetabooleans{#1enddatejulian}%
+ \listxadd\blx@datemetabooleans{#1dateuncertain}%
+ \listxadd\blx@datemetabooleans{#1enddateuncertain}%
+ \listxadd\blx@datemetabooleans{#1dateunknown}%
+ \listxadd\blx@datemetabooleans{#1enddateunknown}}
+\abx@dodatetypes
+
+\def\do#1{%
+ \listxadd\blx@namepartmetafields{#1namehash}%
+ \listxadd\blx@namepartmetafields{#1fullhash}%
+ \listxadd\blx@namepartmetafields{#1bibnamehash}}
+\abx@donameparts
+
+\def\do#1{%
+ \listxadd\blx@labeldatepartfields{label#1}}
+\abx@dodateparts
+
+\def\abx@dointernalfields{%
+ \do{clonesourcekey}%
+ \do{labeldate}%
+ \do{labeldatesource}%
+ \do{labeldateera}%
+ \do{labelenddateera}%
+ \do{labelyear}%
+ \do{labelendyear}%
+ \do{labelmonth}%
+ \do{labelendmonth}%
+ \do{labelday}%
+ \do{labelendday}%
+ \do{labelhour}%
+ \do{labelendhour}%
+ \do{labelminute}%
+ \do{labelendminute}%
+ \do{labelsecond}%
+ \do{labelendsecond}%
+ \do{labeltimezone}%
+ \do{labelendtimezone}%
+ \do{labelseason}%
+ \do{labelendseason}%
+ \do{entrykey}%
+ \do{entryset}%
+ \do{entrysetcount}%
+ \do{entrytype}%
+ \do{extraalpha}%
+ \do{extraname}%
+ \do{extratitle}%
+ \do{extratitleyear}%
+ \do{extradate}%
+ \do{fullhash}%
+ \do{labelalpha}%
+ \do{labelnumber}%
+ \do{labelprefix}%
+ \do{labeltitleyear}%
+ \do{localnumber}%
+ \do{namehash}%
+ \do{bibnamehash}%
+ \do{options}%
+ \do{sortinit}%
+ \do{sortinithash}%
+ \dolistloop\blx@datemetafields
+ \dolistloop\blx@namepartmetafields
+ \dolistloop\blx@labeldatepartfields}
+
+\def\abx@dobooleans{%
+ \do{crossrefsource}%
+ \do{xrefsource}%
+ \do{singletitle}%
+ \do{uniquetitle}%
+ \do{uniquebaretitle}%
+ \do{uniquework}%
+ \do{uniqueprimaryauthor}%
+ \do{nocite}%
+ \dolistloop\blx@datemetabooleans}
+
+% Date datatype fields
+\def\do#1{%
+ \protected\csdef{blx@imc@print#1date}{}%
+ \protected\csdef{blx@imc@print#1dateextra}{}%
+ \protected\csdef{blx@imc@print#1time}{}}
+\abx@dodatetypes
+
+% \blx@regimcs doesn't work in do-lists nicely so use internal macro it calls
+\def\do#1{%
+ \xappto\blx@blxinit{\csletcs{print#1date}{blx@imc@print#1date}}%
+ \xappto\blx@blxinit{\csletcs{print#1time}{blx@imc@print#1time}}%
+ \xappto\blx@blxinit{\csletcs{print#1dateextra}{blx@imc@print#1dateextra}}}
+\abx@dodatetypes
+
+% Set up circa, julian and uncertain date internals
+\def\blx@makeifdatemeta@bools@i#1#2{%
+ \appto\blx@blxinit{%
+ \blx@makeifdatemeta@bools{#1}{#2}}}
+
+\def\blx@makeifdatemeta@bools#1#2{%
+ \csdef{if#1date#2}{\iftoggle{abx@bool@#1date#2}}%
+ \csdef{if#1enddate#2}{\iftoggle{abx@bool@#1enddate#2}}%
+ \appto\blx@TE@hook{%
+ \csdef{if#1date#2}{\blx@TE{\iftoggle{abx@bool@#1date#2}}}%
+ \csdef{if#1enddate#2}{\blx@TE{\iftoggle{abx@bool@#1enddate#2}}}}}
+
+% Set up date era internals
+\def\blx@makeifdatemeta@fields@i#1{%
+ \appto\blx@blxinit{%
+ \blx@makeifdatemeta@fields{#1}}}
+
+\def\blx@makeifdatemeta@fields#1{%
+ \csdef{if#1dateera}##1{\ifcsstring{abx@field@#1dateera}{##1}}%
+ \csdef{if#1enddateera}##1{\ifcsstring{abx@field@#1enddateera}{##1}}%
+ \appto\blx@TE@hook{%
+ \csdef{if#1dateera}##1{\blx@TE{\ifcsstring{abx@field@#1dateera}{##1}}}%
+ \csdef{if#1enddateera}##1{\blx@TE{\ifcsstring{abx@field@#1enddateera}{##1}}}}}
+
+% Create date meta information boolean tests
+\def\do#1{%
+ \blx@makeifdatemeta@bools@i{#1}{circa}%
+ \blx@makeifdatemeta@bools@i{#1}{julian}%
+ \blx@makeifdatemeta@bools@i{#1}{uncertain}%
+ \blx@makeifdatemeta@bools@i{#1}{unknown}}
+\abx@dodatetypes
+
+% Create date meta information field tests
+\def\do#1{%
+ \blx@makeifdatemeta@fields@i{#1}}
+\abx@dodatetypes
+
+% Resolve date meta information tests and print routines for labeldate
+% We have to test here, in each \def, whether the labeldatesource
+% is a real date field or not. If it's not, then we don't want to use
+% any of the meta-information and so make the conditionals always return false
+% This can't be neater by testing for the \abx@field@labeldatesource value
+% earlier because its not available until the tests are in scope.
+\appto\blx@blxinit{%
+ \ifdefstring\blx@dateera{astronomical}
+ {\protected\def\dateeraprintpre#1{%
+ \iffieldnum{#1}
+ {\begingroup
+ \let\blx@tempa\@empty
+ \blx@ifstrendswith{#1}{endyear}
+ {\blx@stripfromendinto{#1}{endyear}\blx@datetype
+ \def\blx@tempa{end}}
+ {\blx@stripfromendinto{#1}{year}\blx@datetype}%
+ \csuse{if\blx@datetype\blx@tempa dateera}{bce}
+ {\ifnumless{0-\thefield{#1}}{0}
+ {\printtext{\csuse{bibdateera\blx@tempa prefix}}}
+ {}}
+ {}%
+ \endgroup}
+ {}}}
+ {\protected\def\dateeraprint#1{%
+ \iffieldnum{#1}
+ {\begingroup
+ \let\blx@tempa\@empty
+ \blx@ifstrendswith{#1}{endyear}
+ {\blx@stripfromendinto{#1}{endyear}\blx@datetype
+ \def\blx@tempa{end}}
+ {\blx@stripfromendinto{#1}{year}\blx@datetype}%
+ \csuse{if\blx@datetype\blx@tempa dateera}{bce}
+ {\ifnum\numexpr0-\thefield{#1}\relax<\blx@dateeraauto
+ % \midsentence is to suppress automatic capitalisation
+ \printtext{\printdelim{dateeradelim}\midsentence\bibstring{\blx@dateera@bce}}\relax
+ \fi}
+ {\ifnumless{\thefield{#1}}\blx@dateeraauto
+ {\printtext{\printdelim{dateeradelim}\midsentence\bibstring{\blx@dateera@ce}}}
+ {}}%
+ \endgroup}
+ {}}}%
+ \iftoggle{blx@labeldateparts}
+ {\def\iflabeldateera#1{% start era
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\ifcsstring{abx@field@\abx@field@labeldatesource dateera}{#1}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabeldateera#1{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\ifcsstring{abx@field@\abx@field@labeldatesource dateera}{#1}}}
+ {\@secondoftwo}}}%
+ % end era
+ \def\iflabelenddateera#1{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\ifcsstring{abx@field@\abx@field@labeldatesource enddateera}{#1}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabelenddateera#1{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\ifcsstring{abx@field@\abx@field@labeldatesource enddateera}{#1}}}
+ {\@secondoftwo}}}%
+ % start circa
+ \def\iflabeldatecirca{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource datecirca}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabeldatecirca{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource datecirca}}}
+ {\@secondoftwo}}}%
+ % end circa
+ \def\iflabelenddatecirca{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource enddatecirca}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabelenddatecirca{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddatecirca}}}
+ {\@secondoftwo}}}%
+ % start julian
+ \def\iflabeldatejulian{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource datejulian}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabeldatejulian{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource datejulian}}}
+ {\@secondoftwo}}}%
+ % end julian
+ \def\iflabelenddatejulian{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource enddatejulian}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabelenddatejulian{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddatejulian}}}
+ {\@secondoftwo}}}%
+ % start uncertain
+ \def\iflabeldateuncertain{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource dateuncertain}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabeldateuncertain{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource dateuncertain}}}
+ {\@secondoftwo}}}%
+ % end uncertain
+ \def\iflabelenddateuncertain{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\iftoggle{abx@bool@\abx@field@labeldatesource enddateuncertain}}
+ {\@secondoftwo}}%
+ \appto\blx@TE@hook{\def\iflabelenddateuncertain{%
+ \xifinlist{\abx@field@labeldatesource date}\blx@datamodel@dates
+ {\blx@TE{\iftoggle{abx@bool@\abx@field@labeldatesource enddateuncertain}}}
+ {\@secondoftwo}}}}%
+ {}}
+
+% Name toggles like \ifauthor etc. need to be dynamically created for all
+% name datatypes in the data model and we have to do this here after the
+% datamodel is available. Need to be careful about expansions here as these
+% go into hooks to be executed later
+
+% toggle to say if we have set any <name>inits to true. Used for conflict
+% tests with uniquename settings (see \AtEndPreamble below)
+\newtoggle{abx@bool@xinits}
+% define <name>inits options and tests (terseinits is global for all initials)
+\def\do#1{%
+ \newtoggle{abx@bool@#1inits}%
+ \appto\blx@blxinit{%
+ \csdef{if#1inits}{\iftoggle{abx@bool@#1inits}}%
+ \appto\blx@TE@hook{%
+ \csdef{if#1inits}{\blx@TE{\iftoggle{abx@bool@#1inits}}}}}%
+ \DeclareBiblatexOption{global,type,entry,namelist,name}[boolean]{#1inits}[true]{%
+ \settoggle{abx@bool@#1inits}{##1}}}
+\abx@donameparts
+
+\def\do#1{%
+ % Define use<name> options scope for biber
+ \blx@DeclareBackendOption{global,type,entry}[boolean]{use#1}%
+ % Define name toggles
+ \newtoggle{blx@use#1}\toggletrue{blx@use#1}%
+ % Define tests
+ \appto\blx@blxinit{%
+ \csdef{ifuse#1}{\iftoggle{blx@use#1}}%
+ \appto\blx@TE@hook{%
+ \csdef{ifuse#1}{\blx@TE{\iftoggle{blx@use#1}}}}}}
+\abx@donames
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Since these are bare counters which define \the<string>, save any current values
+% (memoir, titling, koma etc. have a \theauthor macro, for example) and restore at
+% end of package
+\def\do#1{%
+ \csletcs{blx@compat@the#1}{the#1}%
+ \newcounter{#1}%
+ \newcounter{saved#1}%
+ \appto\abx@dobooleans{\do{more#1}}}
+
+\abx@donames
+\abx@dornames
+\abx@dolists
+%\abx@dorlists
+
+\AtEndOfPackage{%
+ \def\do#1{\csletcs{the#1}{blx@compat@the#1}}%
+ \abx@donames
+ \abx@dornames
+ \abx@dolists}
+
+\def\do#1{\newtoggle{abx@bool@#1}}
+\abx@dobooleans
+
+\def\do#1{\expandafter\newlength\expandafter{\csname #1width\endcsname}}
+\abx@dolabelfields
+
+\newlength{\locallabelnumberwidth}
+\newlength{\locallabelalphawidth}
+\def\do#1{\expandafter\newlength\expandafter{\csname local#1width\endcsname}}
+\abx@dolabelfields
+
+\protected\def\blx@resetdata{%
+ \let\blx@saved@do\do
+ \let\do\blx@imc@clearname
+ \abx@donames
+ \let\do\blx@imc@clearlist
+ \abx@dolists
+ \let\do\blx@imc@clearfield
+ \abx@dofields
+ \abx@dointernalfields
+ \ifundef\abx@annotation@defined
+ {}
+ {\def\do##1{\csundef{abx@annotation@##1}}%
+ \dolistloop\abx@annotation@defined}%
+ \let\abx@annotation@defined\@empty
+ \def\do##1{\togglefalse{abx@bool@##1}}%
+ \abx@dobooleans
+ \let\do\blx@saved@do
+ \c@citecounter\z@
+ \iftoggle{blx@bibliography}
+ {\c@maxnames\blx@maxbibnames\relax
+ \c@minnames\blx@minbibnames\relax}
+ {\c@maxnames\blx@maxcitenames\relax
+ \c@minnames\blx@mincitenames\relax}%
+ \c@maxitems\blx@maxitems\relax
+ \c@minitems\blx@minitems\relax}
+
+\protected\def\blx@saveentry{%
+ \let\blx@saved@do\do
+ \let\do\blx@savename
+ \abx@donames
+ \let\do\blx@saverelname
+ \dolistloop\abx@dorelnames
+ \let\do\blx@savelist
+ \abx@dolists
+ \let\do\blx@saverellist
+ \dolistloop\abx@dorellists
+ \let\do\blx@savefield
+ \abx@dofields
+ \abx@dointernalfields
+ \let\do\blx@saverelfield
+ \dolistloop\abx@dorelfields
+ \ifundef\abx@savedannotation@defined
+ {}
+ {\def\do##1{\csundef{abx@annotation@\blx@saveannotations@makesaved##1}}%
+ \dolistloop\abx@savedannotation@defined}%
+ \let\abx@savedannotation@defined\@empty
+ \ifundef\abx@annotation@defined
+ {}
+ {\let\do\blx@saveannotations
+ \dolistloop\abx@annotation@defined}%
+ \let\abx@savedannotation@defined\abx@annotation@defined
+ \let\do\blx@savebool
+ \abx@dobooleans
+ \let\do\blx@savedatetype
+ \abx@dodatetypes
+ \do{label}%
+ \c@savedcitecounter\c@citecounter
+ \let\do\blx@saved@do}
+
+\protected\def\blx@savename#1{%
+ \csletcs{etb@tgl@abx@bool@moresaved#1}{etb@tgl@abx@bool@more#1}%
+ \csletcs{abx@name@saved#1}{abx@name@#1}%
+ \csname c@saved#1\endcsname\csname c@#1\endcsname}
+
+% override with name saved from \clearfield for related processing
+\protected\def\blx@saverelname#1{%
+ \csletcs{etb@tgl@abx@bool@moresaved#1}{etb@tgl@abx@bool@morerelsaved#1}%
+ \csletcs{abx@name@saved#1}{abx@name@relsaved#1}%
+ \csname c@saved#1\endcsname\csname c@relsaved#1\endcsname}
+
+\protected\def\blx@savelist#1{%
+ \csletcs{etb@tgl@abx@bool@moresaved#1}{etb@tgl@abx@bool@more#1}%
+ \csletcs{abx@list@saved#1}{abx@list@#1}%
+ \csname c@saved#1\endcsname\csname c@#1\endcsname}
+
+% override with list saved from \clearfield for related processing
+\protected\def\blx@saverellist#1{%
+ \csletcs{etb@tgl@abx@bool@moresaved#1}{etb@tgl@abx@bool@morerelsaved#1}%
+ \csletcs{abx@list@saved#1}{abx@list@relsaved#1}%
+ \csname c@saved#1\endcsname\csname c@relsaved#1\endcsname}
+
+\protected\def\blx@savefield#1{%
+ \csletcs{abx@field@saved#1}{abx@field@#1}}
+
+% override with field saved from \clearfield for related processing
+\protected\def\blx@saverelfield#1{%
+ \csletcs{abx@field@saved@#1}{abx@field@relsaved#1}}
+
+\protected\def\blx@savebool#1{%
+ \csletcs{etb@tgl@abx@bool@saved#1}{etb@tgl@abx@bool@#1}}
+
+\protected\def\blx@savedatetype#1{%
+ \csletcs{blx@dateformat@saved#1date}{blx@dateformat@#1date}%
+ \protected\csedef{blx@imc@printsaved#1date}{%
+ \noexpand\csuse{mkdaterange\csuse{blx@dateformat@saved#1date}}
+ {saved#1}}%
+ \protected\csedef{blx@imc@printsaved#1dateextra}{%
+ \begingroup
+ % extradate is hard-coded in date macros, so reset it temporarily
+ \csletcs{abx@field@extradate}{abx@field@savedextradate}%
+ \noexpand\csuse{mkdaterange\csuse{blx@dateformat@saved#1date}extra}
+ {saved#1}%
+ \endgroup}%
+ \csletcs{blx@timeformat@saved#1time}{blx@timeformat@#1time}%
+ \protected\csedef{blx@imc@printsaved#1time}{%
+ \noexpand\csuse{mktimerange\csuse{blx@timeformat@saved#1time}}
+ {saved#1}}%
+ \csletcs{etb@tgl@blx@saved#1dateusetime}{etb@tgl@blx@#1dateusetime}%
+ % the datemetabooleans are here again for labeldate
+ \blx@savebool{#1datecirca}%
+ \blx@savebool{#1enddatecirca}%
+ \blx@savebool{#1datejulian}%
+ \blx@savebool{#1enddatejulian}%
+ \blx@savebool{#1dateuncertain}%
+ \blx@savebool{#1enddateuncertain}%
+ \blx@savebool{#1dateunknown}%
+ \blx@savebool{#1enddateunknown}%
+ \blx@makeifdatemeta@bools{saved#1}{circa}%
+ \blx@makeifdatemeta@bools{saved#1}{julian}%
+ \blx@makeifdatemeta@bools{saved#1}{uncertain}%
+ \blx@makeifdatemeta@bools{saved#1}{unknown}%
+ \blx@makeifdatemeta@fields{saved#1}%
+ \csletcs{printsaved#1date}{blx@imc@printsaved#1date}%
+ \csletcs{printsaved#1time}{blx@imc@printsaved#1time}%
+ \csletcs{printsaved#1dateextra}{blx@imc@printsaved#1dateextra}}
+
+\def\blx@saveannotations@makesaved#1@#2{#1@saved#2}
+\protected\def\blx@saveannotations#1{%
+ \csletcs{abx@annotation@\blx@saveannotations@makesaved#1}{abx@annotation@#1}}
+
+% {<code>}
+\protected\long\def\blx@bbl@preamble#1{%
+ \gappto\abx@preamble{#1}}
+
+% {<message>}
+\protected\def\blx@bbl@warn#1{%
+ \begingroup
+ \def\item{\MessageBreak-\space}%
+ \def\break{\MessageBreak\space\space}%
+ \edef\blx@tempa{%
+ Biber reported the following issues%
+ \ifdef\abx@field@entrykey
+ {\MessageBreak with '\abx@field@entrykey'}
+ {}%
+ :#1}%
+ \blx@warning@noline{\blx@tempa}%
+ \endgroup}
+
+% {<field>}{<code>}
+\newrobustcmd{\DeclareFieldInputHandler}[2]{%
+ \ifblank{#2}
+ {\csundef{blx@fih@#1}}
+ {\long\csdef{blx@fih@#1}##1{#2}}}
+\@onlypreamble\DeclareFieldInputHandler
+
+% {<list>}{<code>}
+\newrobustcmd*{\DeclareListInputHandler}[2]{%
+ \ifblank{#2}
+ {\csundef{blx@lih@#1}}
+ {\csdef{blx@lih@#1}##1{#2}}}
+\@onlypreamble\DeclareListInputHandler
+
+% {<name>}{<code>}
+\newrobustcmd*{\DeclareNameInputHandler}[2]{%
+ \ifblank{#2}
+ {\csundef{blx@nih@#1}}
+ {\csdef{blx@nih@#1}##1{#2}}}
+\@onlypreamble\DeclareNameInputHandler
+
+% {<entrykey>}{<refsection>}{<field>}{<refcontext>}{<value>}
+\long\def\blx@bbl@addentryfield#1#2#3#4#5{%
+ \csxappto{blx@data@#2@#4@#1}{%
+ \def\expandafter\noexpand\csname abx@field@#3\endcsname{#5}}}
+
+% {<rangefield>}{<value>}
+\protected\def\blx@bbl@rangedef#1#2{%
+ \csxappto\blx@bbl@data{%
+ \def\expandafter\noexpand\csname abx@range@#1\endcsname{#2}}}
+
+% {<field>}{<value>}
+\long\def\blx@bbl@addfield#1#2{%
+ \csxappto\blx@bbl@data{%
+ \def\expandafter\noexpand\csname abx@field@#1\endcsname{#2}}}
+
+\protected\long\def\blx@bbl@fielddef#1#2{%
+ \def\NewValue{#2}%
+ \ifcsdef{blx@fih@#1}
+ {\csname blx@fih@#1\endcsname{#2}%
+ \ifdefvoid\NewValue}
+ {\@secondoftwo}
+ {}
+ {\blx@bbl@addfield{#1}{\expandonce\NewValue}}}
+
+\protected\long\def\blx@bbl@fieldedef#1#2{%
+ \edef\NewValue{#2}%
+ \ifcsdef{blx@fih@#1}
+ {\csname blx@fih@#1\expandafter
+ \endcsname\expandafter{\NewValue}%
+ \ifdefvoid\NewValue}
+ {\@secondoftwo}
+ {}
+ {\blx@bbl@addfield{#1}{\NewValue}}}
+
+\protected\long\def\blx@bbl@stringdef#1#2{%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \blx@bbl@fielddef{#1}{\detokenize{#2}}}%
+ \blx@tempa}
+
+% Verbatim lists
+% {<list>}{<listcount>}
+\protected\def\blx@bbl@verbldef#1#2{%
+ \begingroup
+ \let\lverb\blx@bbl@verbladd
+ \def\blx@tempa{#1}%
+ \def\blx@tempb{#2}%
+ \let\blx@tempc\@empty
+ \let\NewValue\@empty}
+
+\protected\def\blx@bbl@verblend{%
+ \expandafter\blx@bbl@listdef\expandafter{\expandafter\blx@tempa\expandafter}\expandafter{\expandafter\blx@tempb\expandafter}\expandafter{\blx@tempc}%
+ \endgroup}
+
+\protected\def\blx@bbl@verbladd{%
+ \begingroup
+ \let\do\@makeother
+ \dospecials
+ \catcode\endlinechar=12\relax
+ \blx@bbl@verbladd@i}
+
+% Verbatim fields
+% {<field>}
+\protected\def\blx@bbl@verbdef#1{%
+ \begingroup
+ \let\verb\blx@bbl@verbadd
+ \def\blx@tempa{#1}%
+ \let\NewValue\@empty}
+
+\protected\def\blx@bbl@verbend{%
+ \ifcsdef{blx@fih@\blx@tempa}
+ {\csname blx@fih@\blx@tempa\expandafter
+ \endcsname\expandafter{\NewValue}%
+ \ifdefvoid\NewValue}
+ {\@secondoftwo}
+ {}
+ {\blx@bbl@addfield{\blx@tempa}{\NewValue}}%
+ \endgroup}
+
+\protected\def\blx@bbl@verbadd{%
+ \begingroup
+ \let\do\@makeother
+ \dospecials
+ \catcode\endlinechar=12\relax
+ \blx@bbl@verbadd@i}
+
+% {<scope>}{<field>}{<name>}{<itemcount>}{<part>}{<isliteral>}{<value>}
+\protected\def\blx@bbl@annotationdef#1#2#3#4#5#6#7{%
+ \ifstrequal{#1}{field}
+ {\csxappto\blx@bbl@data{%
+ \listadd\noexpand\abx@annotation@defined{field@#2@#3}}%
+ \ifstrequal{#6}{1}
+ {\csgappto\blx@bbl@data{%
+ \csdef{abx@annotation@literal@field@#2@#3}{#7}}}
+ {\csxappto\blx@bbl@data{%
+ \def\do####1{\listcsadd{abx@annotation@field@#2@#3}{####1}}%
+ \docsvlist{#7}}}}
+ {}%
+ \ifstrequal{#1}{item}
+ {\csxappto\blx@bbl@data{%
+ \listadd\noexpand\abx@annotation@defined{item@#2@#3@#4}}%
+ \ifstrequal{#6}{1}
+ {\csgappto\blx@bbl@data{%
+ \csdef{abx@annotation@literal@item@#2@#3@#4}{#7}}}
+ {\csxappto\blx@bbl@data{%
+ \def\do####1{\listcsadd{abx@annotation@item@#2@#3@#4}{####1}}%
+ \docsvlist{#7}}}}
+ {}%
+ \ifstrequal{#1}{part}
+ {\csxappto\blx@bbl@data{%
+ \listadd\noexpand\abx@annotation@defined{part@#2@#3@#4@#5}}%
+ \ifstrequal{#6}{1}
+ {\csgappto\blx@bbl@data{%
+ \csdef{abx@annotation@literal@part@#2@#3@#4@#5}{#7}}}
+ {\csxappto\blx@bbl@data{%
+ \def\do####1{\listcsadd{abx@annotation@part@#2@#3@#4@#5}{####1}}%
+ \docsvlist{#7}}}}
+ {}}
+
+% [<field>][<annotationname>]
+\def\blx@imc@getfieldannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@getfieldannotation@i}
+ {\blx@imc@getfieldannotation@i[\blx@tempa]}}
+
+\def\blx@imc@getfieldannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@getfieldannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@getfieldannotation@ii{#1}}
+ {\blx@imc@getfieldannotation@ii{#1}[default]}}}
+
+\def\blx@imc@getfieldannotation@ii#1[#2]{%
+ \def\blx@tempb{#1}%
+ \blx@resolve@annotation@label{\blx@tempb}%
+ \ifcsdef{abx@annotation@literal@field@\blx@tempb @#2}
+ {\csuse{abx@annotation@literal@field@\blx@tempb @#2}}
+ {}}
+
+% [<field>][<annotationname>][<item>]
+\def\blx@imc@getitemannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@getitemannotation@i}
+ {\blx@imc@getitemannotation@i[\blx@tempa]}}
+
+\def\blx@imc@getitemannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@getitemannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@getitemannotation@ii{#1}}
+ {\blx@imc@getitemannotation@ii{#1}[default]}}}
+
+\def\blx@imc@getitemannotation@ii#1[#2]{%
+ \ifstrempty{#2}
+ {\def\blx@tempb{default}}
+ {\def\blx@tempb{#2}}%
+ \@ifnextchar[%]
+ {\blx@imc@getitemannotation@iii{#1}{\blx@tempb}}
+ {\blx@imc@getitemannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}}
+
+\def\blx@imc@getitemannotation@iii#1#2[#3]{%
+ \def\blx@tempc{#1}%
+ \blx@resolve@annotation@label{\blx@tempc}%
+ \ifcsdef{abx@annotation@literal@item@\blx@tempc @#2@#3}
+ {\csuse{abx@annotation@literal@item@\blx@tempc @#2@#3}}
+ {}}
+
+% [<field>][<annotationname>][<item>]{<part>}
+\def\blx@imc@getpartannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@getpartannotation@i}
+ {\blx@imc@getpartannotation@i[\blx@tempa]}}
+
+\def\blx@imc@getpartannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@getpartannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@getpartannotation@ii{#1}}
+ {\blx@imc@getpartannotation@ii{#1}[default]}}}
+
+\def\blx@imc@getpartannotation@ii#1[#2]{%
+ \ifstrempty{#2}
+ {\def\blx@tempb{default}}
+ {\def\blx@tempb{#2}}%
+ \@ifnextchar[%]
+ {\blx@imc@getpartannotation@iii{#1}{\blx@tempb}}
+ {\blx@imc@getpartannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}}
+
+\def\blx@imc@getpartannotation@iii#1#2[#3]#4{%
+ \ifstrempty{#3}
+ {\def\blx@tempc{\the\value{listcount}}}
+ {\def\blx@tempc{#3}}%
+ \def\blx@tempd{#1}%
+ \blx@resolve@annotation@label{\blx@tempd}%
+ \ifcsdef{abx@annotation@literal@part@\blx@tempd @#2@\blx@tempc @#4}
+ {\csuse{abx@annotation@literal@part@\blx@tempd @#2@\blx@tempc @#4}}
+ {}}
+
+% [<field>][<annotationname>]{<annotation>}
+\def\blx@imc@iffieldannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@iffieldannotation@i}
+ {\blx@imc@iffieldannotation@i[\blx@tempa]}}
+
+\def\blx@imc@iffieldannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@iffieldannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@iffieldannotation@ii{#1}}
+ {\blx@imc@iffieldannotation@ii{#1}[default]}}}
+
+\def\blx@imc@iffieldannotation@ii#1[#2]#3{%
+ \ifstrempty{#2}
+ {\def\blx@tempb{default}}
+ {\def\blx@tempb{#2}}%
+ \def\blx@tempc{#1}%
+ \blx@resolve@annotation@label{\blx@tempc}%
+ \ifinlistcs{#3}{abx@annotation@field@\blx@tempc @\blx@tempb}}
+
+% [<field>][<annotationname>][<item>]{<annotation>}
+\def\blx@imc@ifitemannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@ifitemannotation@i}
+ {\blx@imc@ifitemannotation@i[\blx@tempa]}}
+
+\def\blx@imc@ifitemannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@ifitemannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@ifitemannotation@ii{#1}}
+ {\blx@imc@ifitemannotation@ii{#1}[default]}}}
+
+\def\blx@imc@ifitemannotation@ii#1[#2]{%
+ \ifstrempty{#2}
+ {\def\blx@tempb{default}}
+ {\def\blx@tempb{#2}}%
+ \@ifnextchar[%]
+ {\blx@imc@ifitemannotation@iii{#1}{\blx@tempb}}
+ {\blx@imc@ifitemannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}}
+
+\def\blx@imc@ifitemannotation@iii#1#2[#3]#4{%
+ \def\blx@tempc{#1}%
+ \blx@resolve@annotation@label{\blx@tempc}%
+ \ifinlistcs{#4}{abx@annotation@item@\blx@tempc @#2@#3}}
+
+% [<field>][<annotationname>][<item>]{<part>}{<annotation>}
+\def\blx@imc@ifpartannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@ifpartannotation@i}
+ {\blx@imc@ifpartannotation@i[\blx@tempa]}}
+
+\def\blx@imc@ifpartannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@ifpartannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@ifpartannotation@ii{#1}}
+ {\blx@imc@ifpartannotation@ii{#1}[default]}}}
+
+\def\blx@imc@ifpartannotation@ii#1[#2]{%
+ \ifstrempty{#2}
+ {\def\blx@tempb{default}}
+ {\def\blx@tempb{#2}}%
+ \@ifnextchar[%]
+ {\blx@imc@ifpartannotation@iii{#1}{\blx@tempb}}
+ {\blx@imc@ifpartannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}}
+
+\def\blx@imc@ifpartannotation@iii#1#2[#3]#4#5{%
+ \ifstrempty{#3}
+ {\def\blx@tempc{\the\value{listcount}}}
+ {\def\blx@tempc{#3}}%
+ \def\blx@tempd{#1}%
+ \blx@resolve@annotation@label{\blx@tempd}%
+ \ifinlistcs{#5}{abx@annotation@part@\blx@tempd @#2@\blx@tempc @#4}}
+
+% [<field>][<annotationname>]
+\def\blx@imc@hasfieldannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@hasfieldannotation@i}
+ {\blx@imc@hasfieldannotation@i[\blx@tempa]}}
+
+\def\blx@imc@hasfieldannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@hasfieldannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@hasfieldannotation@ii{#1}}
+ {\blx@imc@hasfieldannotation@ii{#1}[default]}}}
+
+\def\blx@imc@hasfieldannotation@ii#1[#2]{%
+ \ifstrempty{#2}
+ {\def\blx@tempb{default}}
+ {\def\blx@tempb{#2}}%
+ \def\blx@tempc{#1}%
+ \blx@resolve@annotation@label{\blx@tempc}%
+ \ifcsdef{abx@annotation@literal@field@\blx@tempc @\blx@tempb}}
+
+% [<field>][<annotationname>][<item>]
+\def\blx@imc@hasitemannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@hasitemannotation@i}
+ {\blx@imc@hasitemannotation@i[\blx@tempa]}}
+
+\def\blx@imc@hasitemannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@hasitemannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@hasitemannotation@ii{#1}}
+ {\blx@imc@hasitemannotation@ii{#1}[default]}}}
+
+\def\blx@imc@hasitemannotation@ii#1[#2]{%
+ \ifstrempty{#2}
+ {\def\blx@tempb{default}}
+ {\def\blx@tempb{#2}}%
+ \@ifnextchar[%]
+ {\blx@imc@hasitemannotation@iii{#1}{\blx@tempb}}
+ {\blx@imc@hasitemannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}}
+
+\def\blx@imc@hasitemannotation@iii#1#2[#3]{%
+ \def\blx@tempc{#1}%
+ \blx@resolve@annotation@label{\blx@tempc}%
+ \ifcsdef{abx@annotation@literal@item@\blx@tempc @#2@#3}}
+
+% [<field>][<annotationname>][<item>]{<part>}
+\def\blx@imc@haspartannotation{%
+ \let\blx@tempa\@empty
+ \ifdefvoid\currentfield{}{\let\blx@tempa\currentfield}%
+ \ifdefvoid\currentlist{}{\let\blx@tempa\currentlist}%
+ \ifdefvoid\currentname{}{\let\blx@tempa\currentname}%
+ \@ifnextchar[%]
+ {\blx@imc@haspartannotation@i}
+ {\blx@imc@haspartannotation@i[\blx@tempa]}}
+
+\def\blx@imc@haspartannotation@i[#1]{%
+ \ifstrempty{#1}
+ {\blx@imc@haspartannotation@i[\blx@tempa]}
+ {\@ifnextchar[%]
+ {\blx@imc@haspartannotation@ii{#1}}
+ {\blx@imc@haspartannotation@ii{#1}[default]}}}
+
+\def\blx@imc@haspartannotation@ii#1[#2]{%
+ \ifstrempty{#2}
+ {\def\blx@tempb{default}}
+ {\def\blx@tempb{#2}}%
+ \@ifnextchar[%]
+ {\blx@imc@haspartannotation@iii{#1}{\blx@tempb}}
+ {\blx@imc@haspartannotation@iii{#1}{\blx@tempb}[\the\value{listcount}]}}
+
+\def\blx@imc@haspartannotation@iii#1#2[#3]#4{%
+ \ifstrempty{#3}
+ {\def\blx@tempc{\the\value{listcount}}}
+ {\def\blx@tempc{#3}}%
+ \def\blx@tempd{#1}%
+ \blx@resolve@annotation@label{\blx@tempd}%
+ \ifcsdef{abx@annotation@literal@part@\blx@tempd @#2@\blx@tempc @#4}}
+
+% labeldatesource has a slightly different format than other <field>sources
+% that's one reason for a dedicated command, the other being that this command
+% is probably only used in contexts where \currentfield is not defined, so
+% the <datetype> argument is always required
+% [<annotationname>]{<datetype>}{<annotation>}
+\newcommand*{\blx@imc@ifdateannotation}[3][]{%
+ \ifblank{#1}
+ {\def\blx@tempa{default}}
+ {\def\blx@tempa{#1}}%
+ \def\blx@tempb{#2}%
+ \ifcsundef{abx@field@\blx@tempb source}
+ {}%
+ {\letcs\blx@tempa{abx@field@\blx@tempb source}%
+ \edef\blx@tempb{\blx@tempb date}}%
+ \ifinlistcs{#3}{abx@annotation@field@\blx@tempb @\blx@tempa}}
+
+% [<annotationname>]{<datetype>}
+\newcommand*{\blx@imc@hasdateannotation}[2][]{%
+ \ifblank{#1}
+ {\def\blx@tempa{default}}
+ {\def\blx@tempa{#1}}%
+ \def\blx@tempb{#2}%
+ \ifcsundef{abx@field@\blx@tempb source}
+ {}%
+ {\letcs\blx@tempa{abx@field@\blx@tempb source}%
+ \edef\blx@tempb{\blx@tempb date}}%
+ \ifboolexpr { test {\ifcsdef{abx@annotation@field@\blx@tempb @\blx@tempa}}
+ or
+ test {\ifcsdef{abx@annotation@literal@field@\blx@tempb @\blx@tempa}} }}
+
+% [<annotationname>]{<datetype>}
+\newcommand*{\blx@imc@getdateannotation}[2][]{%
+ \ifblank{#1}
+ {\def\blx@tempa{default}}
+ {\def\blx@tempa{#1}}%
+ \def\blx@tempb{#1}%
+ \ifcsundef{abx@field@\blx@tempb source}
+ {}%
+ {\letcs\blx@tempb{abx@field@\blx@tempb source}%
+ \edef\blx@tempb{\blx@tempb date}}%
+ \ifcsdef{abx@annotation@literal@field@\blx@tempb @\blx@tempa}
+ {\csuse{abx@annotation@literal@field@\blx@tempb @\blx@tempa}}
+ {}}
+
+\blx@regimcs{\iffieldannotation \ifitemannotation \ifpartannotation
+ \ifdateannotation \getfieldannotation \getitemannotation \getpartannotation
+ \getdateannotation \hasfieldannotation \hasitemannotation \haspartannotation
+ \hasdateannotation}
+
+% {<fieldname>}
+\def\blx@resolve@annotation@label#1{%
+ \ifcsundef{abx@field@#1source}
+ {}%
+ {\letcs\blx@tempa{abx@field@#1source}}}
+
+\begingroup
+\catcode`\<=12
+\catcode`\>=12
+\uccode`\<=`\ %
+\uccode`\>=\endlinechar
+\uppercase{\gdef\blx@bbl@verbadd@i<#1>}{%
+ \endgroup
+ \edef\NewValue{\NewValue\detokenize{#1}}}
+\uppercase{\gdef\blx@bbl@verbladd@i<#1>}{%
+ \endgroup
+ \eappto\blx@tempc{{\detokenize{#1}}}}%
+\endgroup
+
+% {<counter>}{<value>}
+\protected\long\def\blx@bbl@cntdef#1#2{%
+ \csxappto\blx@bbl@data{%
+ \csname c@#1\endcsname#2\relax}}
+
+% {<boolean>}
+\protected\def\blx@bbl@booltrue#1{%
+ \csgappto\blx@bbl@data{%
+ \toggletrue{abx@bool@#1}}}
+
+\protected\def\blx@bbl@boolfalse#1{%
+ \csgappto\blx@bbl@data{%
+ \togglefalse{abx@bool@#1}}}
+
+% {<list>}{<itemcount>}{<value>}
+\protected\def\blx@bbl@listdef#1#2#3{%
+ \def\NewCount{#2}%
+ \def\NewValue{#3}%
+ \ifcsdef{blx@lih@#1}
+ {\csname blx@lih@#1\endcsname{#3}%
+ \ifdefvoid\NewValue}
+ {\@secondoftwo}
+ {}
+ {\csxappto\blx@bbl@data{%
+ \csname c@#1\endcsname\NewCount\relax
+ \def\expandafter\noexpand\csname abx@list@#1\endcsname
+ {\expandonce\NewValue}}}}
+
+% {<name>}{<itemcount>}{<nameoptions>}{<value>}
+\protected\def\blx@bbl@namedef#1#2#3#4{%
+ \def\NewCount{#2}%
+ \def\NewOption{#3}%
+ \def\NewValue{#4}%
+ \ifcsdef{blx@nih@#1}
+ {\csname blx@nih@#1\endcsname{#4}%
+ \ifdefvoid\NewValue}
+ {\@secondoftwo}
+ {}
+ {\csxappto\blx@bbl@data{%
+ \csname c@#1\endcsname\NewCount\relax
+ \def\expandafter\noexpand\csname abx@name@#1\endcsname
+ {{\expandonce\NewOption}{\expandonce\NewValue}}}}}
+
+% blx@setp@<rs>@<sp> = map of set parent <sp> in a refsection <rs> to csv
+% of set children
+% blx@seti@<rs>@<sc> = position of set child <sc> in entry set in
+% refsection <rs>
+% blx@setc@<rs>@<sc> = map of set child <sc> in refsection <rs> to set parent
+
+% {<entrykey>,...}
+\protected\def\blx@bbl@set#1{%
+ \blx@bbl@fieldedef{entryset}{\detokenize{#1}}%
+ \csxdef{blx@setp@\the\c@refsection @\abx@field@entrykey}{\detokenize{#1}}%
+ \begingroup
+ \blx@tempcnta\z@
+ \expandafter\forcsvlist
+ \expandafter\blx@bbl@set@i
+ \expandafter{\detokenize{#1}}%
+ \endgroup}
+
+\def\blx@bbl@set@i#1{%
+ \advance\blx@tempcnta\@ne
+ \csxdef{blx@seti@\the\c@refsection @#1}{\the\blx@tempcnta}}
+
+% {<entrykey>}
+\protected\def\blx@bbl@inset#1{%
+ \toggletrue{blx@setonly}%
+ \blx@bbl@fieldedef{entryset}{\detokenize{#1}}%
+ \csxdef{blx@setc@\the\c@refsection @\abx@field@entrykey}{\detokenize{#1}}}
+
+% {<entrykey>}
+\protected\def\blx@bbl@xref#1{}% No-op to avoid an error with BibTeX .bbl
+
+% {<keyword>,...}
+\protected\def\blx@bbl@keyw#1{%
+ \forcsvlist{\blx@addkeyword{\abx@field@entrykey}}{#1}%
+ \blx@bbl@fielddef{keywords}{#1}}
+
+\def\blx@addkeyword#1#2{%
+ \listcsxadd{blx@keyw@\the\c@refsection @\detokenize{#2}}{#1}}
+
+% {<options>}
+\protected\long\def\blx@bbl@options#1{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \forcsvlist\blx@bbl@options@i{#1}%
+ \edef\blx@tempa{%
+ \endgroup
+ \ifx\blx@tempa\@empty
+ \else
+ \def\noexpand\abx@field@options{\expandonce\blx@tempa}%
+ \fi}%
+ \blx@tempa}
+
+\long\def\blx@bbl@options@i#1{\blx@bbl@options@ii#1==&}
+
+\long\def\blx@bbl@options@ii#1=#2=#3&{%
+ \ifcsundef{KV@blx@opt@ent@#1}
+ {\blx@warning@noline{%
+ Ignoring undefined option '#1'\MessageBreak
+ at entry '\abx@field@entrykey'}}
+ {\eappto\blx@tempa{%
+ \ifx\blx@tempa\@empty\else,\fi
+ \unexpanded{#1}\ifblank{#2}{}{=\unexpanded{#2}}}}}
+
+\def\blx@ifdata#1{%
+ \ifcsdef{blx@data@\the\c@refsection @\blx@refcontext@context @#1}}
+\let\blx@imc@ifentryinbib\blx@ifdata
+
+\def\blx@getdata#1{%
+ \csuse{blx@data@\the\c@refsection @\blx@refcontext@context @#1}%
+ \blx@adjustyears
+ \blx@getlabeldata
+ \blx@aliasfields
+ \blx@setcitecounter}
+
+\def\blx@adjustyears{%
+ % All dates by default are output from biber in astronomical era with a year 0
+ % So, if we are ouputting BCE/BC era, we need to adjust the years by +1
+ \def\do##1{%
+ \ifdefstring\blx@dateera{astronomical}
+ {}
+ {\ifcsdef{abx@field@##1year}
+ {\csuse{if##1dateera}{bce}
+ {\csedef{abx@field@##1year}{\number\numexpr\csuse{abx@field@##1year}+1}}
+ {}}
+ {}%
+ \ifcsdef{abx@field@##1endyear}
+ {\csuse{if##1enddateera}{bce}
+ {\csedef{abx@field@##1endyear}{\number\numexpr\csuse{abx@field@##1endyear}+1}}
+ {}}
+ {}}%
+ {}}%
+ \abx@dodatetypes}
+
+\def\blx@getlabeldata{%
+ % Here we resolve label* bib fields to their real fields. In fact, currently biber resolves
+ % the label* fields too, as it needs to do this to generate various internal
+ % counters for tracking things like singletitle etc. internally. However, it does not output
+ % the resolved values to the .bbl. It is conceptually neater to have just the calculated label*
+ % source field in the .bbl and let biblatex resolve the label* field using the label*source
+ % fields. However, currently there is no way/need to vary the label* resolution to pick up a
+ % different target field in biblatex and so practically, this resolution is being done twice,
+ % once by biber, once by biblatex. It is possible in the future that it would be useful to
+ % to change the resolution of the label* fields dynamically in a style/document and so this
+ % biblatex-side resolution remains.
+ %
+ % An unanswered question is whether such dynamic resolution causes problems due to the fact
+ % that biber uses the label* field to generate counters internally and changing the
+ % label* field resolution in biblatex would occur after such counters have been used to
+ % generate the .bbl
+ % This could all be removed from biblatex if necessary and biber could output all resolved
+ % label* fields to the .bbl but then it potentially removes control of such things from
+ % macros
+ %
+ % fields
+ \def\do##1{%
+ \ifcsundef{abx@field@##1source}
+ {}%
+ {\csletcs{abx@field@##1}{abx@field@\csuse{abx@field@##1source}}}}%
+ \dolistloop\abx@rfields%
+ % names
+ \def\do##1{%
+ \ifcsundef{abx@field@##1source}
+ {}
+ {\csname c@##1\expandafter\endcsname\expandafter
+ \the\csname c@\csuse{abx@field@##1source}\endcsname
+ \csletcs{abx@name@##1}{abx@name@\csuse{abx@field@##1source}}%
+ \csletcs{etb@tgl@abx@bool@more##1}{%
+ etb@tgl@abx@bool@more\csuse{abx@field@##1source}}}}%
+ \dolistloop\abx@rnames%
+ % Resolve labeldate
+ % Note that here we can't refer to labelyear as this is where we create it, hence the
+ % complications in constructing test names etc.
+ % This also shows why biber shouldn't resolve labeldate fields as we have to add
+ % circa/uncertain/era etc. information to them and that has to be done here.
+ \ifundef\abx@field@labeldatesource
+ {}
+ {\ifcsundef{abx@field@\abx@field@labeldatesource year}
+ % \DeclareLabeldate resolved to a literal/localisation string or a non-date field
+ % in which case we only set labelyear.
+ {\ifcsundef{abx@field@\abx@field@labeldatesource}
+ % \DeclareLabeldate resolved to a literal/localisation string
+ {\edef\abx@field@labelyear{\abx@field@labeldatesource}}
+ % \DeclareLabeldate resolved to a non-date field. Not safe to \edef because
+ % such contents could contain arbitrary macros, unlike ETDF sourced labeldatesource values
+ {\letcs\abx@field@labelyear{abx@field@\abx@field@labeldatesource}}}
+ % \DeclareLabeldate resolved to a date field name prefix like '', 'event', 'url'
+ % or 'orig'
+ {% labeldateera/labelenddateera
+ \ifcsdef{abx@field@\abx@field@labeldatesource dateera}
+ {\edef\abx@field@labeldateera{\csuse{abx@field@\abx@field@labeldatesource dateera}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource enddateera}
+ {\edef\abx@field@labelenddateera{\csuse{abx@field@\abx@field@labeldatesource enddateera}}}
+ {}%
+ % labelyear/labelendyear
+ \ifcsdef{abx@field@\abx@field@labeldatesource year}
+ {\edef\abx@field@labelyear{\csuse{abx@field@\abx@field@labeldatesource year}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endyear}
+ {\edef\abx@field@labelendyear{\csuse{abx@field@\abx@field@labeldatesource endyear}}}
+ {}%
+ % labelmonth
+ \ifcsdef{abx@field@\abx@field@labeldatesource month}
+ {\edef\abx@field@labelmonth{\csuse{abx@field@\abx@field@labeldatesource month}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endmonth}
+ {\edef\abx@field@labelendmonth{\csuse{abx@field@\abx@field@labeldatesource endmonth}}}
+ {}%
+ % labelday/labelendday
+ \ifcsdef{abx@field@\abx@field@labeldatesource day}
+ {\edef\abx@field@labelday{\csuse{abx@field@\abx@field@labeldatesource day}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endday}
+ {\edef\abx@field@labelendday{\csuse{abx@field@\abx@field@labeldatesource endday}}}
+ {}%
+ % labelhour/labelendhour
+ \ifcsdef{abx@field@\abx@field@labeldatesource hour}
+ {\edef\abx@field@labelhour{\csuse{abx@field@\abx@field@labeldatesource hour}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endhour}
+ {\edef\abx@field@labelendhour{\csuse{abx@field@\abx@field@labeldatesource endhour}}}
+ {}%
+ % labelminute/labelendminute
+ \ifcsdef{abx@field@\abx@field@labeldatesource minute}
+ {\edef\abx@field@labelminute{\csuse{abx@field@\abx@field@labeldatesource minute}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endminute}
+ {\edef\abx@field@labelendminute{\csuse{abx@field@\abx@field@labeldatesource endminute}}}
+ {}%
+ % labelsecond/labelendsecond
+ \ifcsdef{abx@field@\abx@field@labeldatesource second}
+ {\edef\abx@field@labelsecond{\csuse{abx@field@\abx@field@labeldatesource second}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endsecond}
+ {\edef\abx@field@labelendsecond{\csuse{abx@field@\abx@field@labeldatesource endsecond}}}
+ {}%
+ % labeltimezone/labelendtimezone
+ \ifcsdef{abx@field@\abx@field@labeldatesource timezone}
+ {\edef\abx@field@labeltimezone{\csuse{abx@field@\abx@field@labeldatesource timezone}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endtimezone}
+ {\edef\abx@field@labelendtimezone{\csuse{abx@field@\abx@field@labeldatesource endtimezone}}}
+ {}%
+ % labelseason/labelendseason
+ \ifcsdef{abx@field@\abx@field@labeldatesource season}
+ {\edef\abx@field@labelseason{\csuse{abx@field@\abx@field@labeldatesource season}}}
+ {}%
+ \ifcsdef{abx@field@\abx@field@labeldatesource endseason}
+ {\edef\abx@field@labelendseason{\csuse{abx@field@\abx@field@labeldatesource endseason}}}
+ {}%
+ % labeldateunspecified
+ \ifcsdef{abx@field@\abx@field@labeldatesource dateunspecified}
+ {\csletcs{abx@field@labeldateunspecified}{abx@field@\abx@field@labeldatesource dateunspecified}}
+ {}%
+ % labeldatecirca/labelenddatecirca
+ \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource datecirca}
+ {\csletcs{etb@tgl@abx@bool@labeldatecirca}{etb@tgl@abx@bool@\abx@field@labeldatesource datecirca}}
+ {}%
+ \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource enddatecirca}
+ {\csletcs{etb@tgl@abx@bool@labelenddatecirca}{etb@tgl@abx@bool@\abx@field@labeldatesource enddatecirca}}
+ {}%
+ % labeldatejulian/labelenddatejulian
+ \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource datejulian}
+ {\csletcs{etb@tgl@abx@bool@labeldatejulian}{etb@tgl@abx@bool@\abx@field@labeldatesource datejulian}}
+ {}%
+ \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource enddatejulian}
+ {\csletcs{etb@tgl@abx@bool@labelenddatejulian}{etb@tgl@abx@bool@\abx@field@labeldatesource enddatejulian}}
+ {}%
+ % labeldateuncertain/labelenddateuncertain
+ \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource dateuncertain}
+ {\csletcs{etb@tgl@abx@bool@labeldateuncertain}{etb@tgl@abx@bool@\abx@field@labeldatesource dateuncertain}}
+ {}%
+ \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource enddateuncertain}
+ {\csletcs{etb@tgl@abx@bool@labelenddateuncertain}{etb@tgl@abx@bool@\abx@field@labeldatesource enddateuncertain}}
+ {}%
+ % labeldateunknown/labelenddateunknown
+ \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource dateunknown}
+ {\csletcs{etb@tgl@abx@bool@labeldateunknown}{etb@tgl@abx@bool@\abx@field@labeldatesource dateunknown}}
+ {}%
+ \ifcsdef{etb@tgl@abx@bool@\abx@field@labeldatesource enddateunknown}
+ {\csletcs{etb@tgl@abx@bool@labelenddateunknown}{etb@tgl@abx@bool@\abx@field@labeldatesource enddateunknown}}
+ {}}}}
+
+% This gets the entry data for a citation
+\def\blx@getdata@cite#1{%
+ \blx@getdata{#1}%
+ % Inject the relevant set parent fields like labelnumber/labelprefix into child
+ \ifcsdef{blx@setc@\the\c@refsection @#1}
+ {\blx@ifdata{#1}
+ {\def\abx@field@childentrykey{#1}%LEGACY(<3.8)
+ \edef\abx@field@childentrytype{\abx@field@entrytype}%LEGACY(<3.8)
+ \begingroup
+ \expandafter\expandafter\expandafter\blx@getdata\expandafter\expandafter\expandafter{%
+ \csname blx@setc@\the\c@refsection @#1\endcsname}%
+ \let\blx@tempa\@empty
+ % Inject labelnumber if it exists
+ \ifdef\abx@field@labelnumber
+ {\appto\blx@tempa{\def\noexpand\abx@field@labelnumber{\abx@field@labelnumber}}}
+ {}%
+ % Inject labelprefix if it exists
+ \ifdef\abx@field@labelprefix
+ {\appto\blx@tempa{\def\noexpand\abx@field@labelprefix{\abx@field@labelprefix}}}
+ {}%
+ % Inject labelalpha if it exists
+ \ifdef\abx@field@labelalpha
+ {\appto\blx@tempa{\def\noexpand\abx@field@labelalpha{\abx@field@labelalpha}}}
+ {}%
+ % Inject extraalpha if it exists
+ \ifdef\abx@field@extraalpha
+ {\appto\blx@tempa{\def\noexpand\abx@field@extraalpha{\abx@field@extraalpha}}}
+ {}%
+ % Perform the injection
+ \edef\blx@tempb{\endgroup\blx@tempa}%
+ \blx@tempb}
+ {}}
+ {}%
+ \ifcsdef{blx@seti@\the\c@refsection @#1}
+ {\letcs\abx@field@entrysetcount{blx@seti@\the\c@refsection @#1}}
+ {}}
+
+\def\blx@execute{%
+ \blx@imc@thefield{execute}}
+
+\def\blx@setoptions@entry{%
+ \blx@imc@iffieldundef{options}
+ {}
+ {\begingroup
+ \edef\blx@tempa{\endgroup
+ \noexpand\setkeys{blx@opt@ent}{\abx@field@options}}%
+ \blx@tempa
+ \blx@checkoptions@entry}}
+
+\def\blx@setoptions@type#1{%
+ \ifcsdef{blx@opts@type@#1}
+ {\begingroup
+ \edef\blx@tempa{\endgroup
+ \noexpand\setkeys{blx@opt@typ}{\csuse{blx@opts@type@#1}}}%
+ \blx@tempa}
+ {}}
+
+\def\blx@checkoptions@global{}
+\def\blx@checkoptions@type{}
+\def\blx@checkoptions@entry{}
+
+\def\blx@entrysetcount{%
+ \ifdef\abx@field@entrykey
+ {\ifcsdef{blx@seti@\the\c@refsection @\abx@field@entrykey}
+ {\letcs\abx@field@entrysetcount{%
+ blx@seti@\the\c@refsection @\abx@field@entrykey}}
+ {}}
+ {}}
+
+% {<section>}
+\def\blx@bbl@refsection#1{%
+ \begingroup
+ \c@refsection#1\relax}
+
+\def\blx@bbl@endrefsection{%
+ \iftoggle{blx@addset}
+ {\blx@addset
+ \global\togglefalse{blx@addset}}
+ {}%
+ \endgroup}
+
+% {<entrykey>}
+\protected\def\blx@bbl@missing#1{%
+ \listcsxadd{blx@miss@\the\c@refsection}{\detokenize{#1}}%
+ \blx@warning@noline{%
+ The following entry could not be found\MessageBreak
+ in the database%
+ \ifnumgreater\c@refsection\z@
+ { (refsection \the\c@refsection)}
+ {}:\MessageBreak
+ \detokenize{#1}\MessageBreak
+ Please verify the spelling and rerun\MessageBreak
+ LaTeX afterwards}}
+
+% We create an alias resolving macro and also a list of aliases
+% which we need to add to the .bcf. We need to resolve the aliases
+% for internal use but we always want the aliases themselves in the .bcf
+% so that biber can correctly use and resolve them too.
+\protected\def\blx@bbl@keyalias#1#2{%
+ \csgdef{blx@keyalias@\the\c@refsection @#1}{\detokenize{#2}}%
+ \listcsgadd{blx@keyaliases@\the\c@refsection}{#1}}
+
+% blx@dlist@list@<section>@<refcontext> - a list of list items in a refcontext in a
+% section (for tracking bibliography lists,
+% obeys skipbiblist)
+% blx@dlist@entry@<section>@<list> - a list of normal entries in a list in a
+% section (for tracking bibliographies,
+% obeys skipbib)
+% blx@dlist@centry@<section>@<list> - a list of normal entries in a list in a
+% section (for tracking citations,
+% obeys skipbib). Same as @entry@ but
+% with added set children
+
+% {<entrykey>}{<entrytype>}{<options>}
+\protected\def\blx@bbl@entry#1#2#3{%
+ \begingroup
+ \edef\abx@field@entrykey{\detokenize{#1}}%
+ \blx@setoptions@type{#2}%
+ \blx@bbl@options{#3}%
+ \blx@setoptions@entry
+ \edef\blx@bbl@data{blx@data@\the\c@refsection @\blx@dlist@name @\abx@field@entrykey}%
+ \blx@bbl@addfield{entrykey}{\abx@field@entrykey}%
+ \listxadd\blx@entries{\abx@field@entrykey}%
+ \blx@bbl@addfield{entrytype}{#2}%
+ \csuse\blx@bbl@data
+ \blx@imc@iffieldundef{options}
+ {}
+ {\blx@bbl@fieldedef{options}{\expandonce\abx@field@options}}}
+
+\protected\def\blx@bbl@endentry{%
+ \csuse\blx@bbl@data
+ \ifcsundef{blx@pref@\the\c@refsection @\abx@field@entrykey}
+ {}
+ {\blx@addpageref{\abx@field@entrykey}}%
+ \nottoggle{blx@setonly}
+ {}
+ {\global\toggletrue{blx@addset}%
+ \toggletrue{blx@skipbib}%
+ \toggletrue{blx@skipbiblist}%
+ \toggletrue{blx@skiplab}}%
+ \nottoggle{blx@skipbib}
+ {\expandafter\ifstrequal\expandafter{\blx@dlist@type}{entry}
+ {\listcsxadd{blx@dlist@entry@\the\c@refsection @\blx@dlist@name}{\abx@field@entrykey}%
+ \listcsxadd{blx@dlist@centry@\the\c@refsection @\blx@dlist@name}{\abx@field@entrykey}%
+ \listcsxadd{blx@type@\the\c@refsection @\abx@field@entrytype}{\abx@field@entrykey}%
+ \ifdef\abx@field@entrysubtype
+ {\listcsxadd{blx@subt@\the\c@refsection @\abx@field@entrysubtype}{\abx@field@entrykey}}
+ {}}
+ {}}%
+ {}%
+ \nottoggle{blx@skipbiblist}
+ {\expandafter\ifstrequal\expandafter{\blx@dlist@type}{list}
+ {\blx@bbl@labelfields
+ \listcsxadd{blx@dlist@\blx@dlist@type @\the\c@refsection @\blx@dlist@name}{\abx@field@entrykey}}
+ {}}%
+ {}%
+ \nottoggle{blx@skiplab}
+ {\iftoggle{blx@labelnumber}
+ {\blx@bbl@labelnumber}
+ {}%
+ \iftoggle{blx@labelalpha}
+ {\blx@bbl@labelalpha}
+ {}%
+ \iftoggle{blx@labeltitle}
+ {\blx@bbl@labeltitle}
+ {}%
+ \iftoggle{blx@labeltitleyear}
+ {\blx@bbl@labeltitleyear}
+ {}%
+ \iftoggle{blx@labeldateparts}
+ {\blx@bbl@labeldate}
+ {}%
+ \blx@bbl@labelname}
+ {}%
+ \blx@bbl@titles
+ \blx@bbl@hooks
+ \endgroup}
+
+% This, at the end of the .bbl, puts any set parent children into the
+% current context sort list of citations (a separate list *@centry@* to the
+% bibliography *@entry@* which doesn't want the children adding if they weren't
+% cited) as this is needed for the subentry citing
+% when sortcites is enabled as for sortcites, the current context sorting list
+% is used and the parent set of a subentry is not necessarily
+% available in the current context sortlist.
+\def\blx@addset{%
+ \begingroup
+ \ifcsdef{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}
+ {\letcs\blx@tempa{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}%
+ \global\cslet{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}\@empty
+ \forlistloop\blx@addset@i\blx@tempa}
+ {\blx@warning@noline{Sorting template has changed}}%
+ \endgroup}
+
+\def\blx@addset@i#1{%
+ \listcsgadd{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}{#1}%
+ \ifcsdef{blx@setp@\the\c@refsection @#1}
+ {\expandafter\expandafter\expandafter\forcsvlist
+ \expandafter\expandafter\expandafter\blx@addset@ii
+ \expandafter\expandafter\expandafter{%
+ \csname blx@setp@\the\c@refsection @#1\endcsname}}
+ {}}
+
+\def\blx@addset@ii#1{%
+ \listcsgadd{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}{#1}}
+
+% {<csname>}{<field>/<format>}{<field>}
+\def\abx@flfw@getfieldformat#1#2#3{%
+ \blx@getformat\abx@tmp@theformat{ffd}{#2}{#3}%
+ \csletcs{#1}{abx@tmp@theformat}}
+
+\def\blx@labelwidth@resetlocal{%
+ \locallabelnumberwidth\z@
+ \locallabelalphawidth\z@
+ \def\do##1{%
+ \csname local##1width\endcsname\z@}%
+ \abx@dolabelfields}
+
+\def\blx@labelwidth@settolocal{%
+ \labelnumberwidth\locallabelnumberwidth
+ \labelalphawidth\locallabelalphawidth
+ \def\do##1{%
+ \csname ##1width\endcsname\csname local##1width\endcsname}%
+ \abx@dolabelfields}
+
+\def\blx@locallabelwidth#1{%
+ \blx@labelwidth@resetlocal
+ \let\blx@do\blx@lengthitem
+ \let\blx@done\relax
+ \blx@listloop{#1}%
+ \blx@labelwidth@settolocal}
+
+% {<prefix for labelwidth fields>}
+\def\blx@bbl@labelnumberwidth@numeric#1{%
+ \abx@flfw@getfieldformat{abx@flfw@labelnumberwidth}{labelnumberwidth}{}%
+ \abx@flfw@getfieldformat{abx@flfw@labelprefix}{labelprefix}{}%
+ \abx@flfw@getfieldformat{abx@flfw@labelnumber}{labelnumber}{}%
+ \iftoggle{blx@defernumbers}
+ {\ifundef\abx@field@localnumber
+ {\numdef\abx@field@localnumber{0}}%
+ {}}
+ {\ifundef\abx@field@localnumber
+ {\edef\abx@field@localnumber{%
+ \csuse{blx@labelnumber@\the\c@refsection}}}
+ {}}%
+ \blx@setlabwidth{\csname #1labelnumberwidth\endcsname}{%
+ \csuse{abx@flfw@labelnumberwidth}{%
+ \ifdef\abx@field@labelprefix
+ {\csuse{abx@flfw@labelprefix}{\abx@field@labelprefix}}
+ {}%
+ \csuse{abx@flfw@labelnumber}{\abx@field@localnumber}}}}
+
+\def\blx@bbl@labelnumberwidth@shorthand#1{%
+ \abx@flfw@getfieldformat{abx@flfw@labelnumberwidth}{labelnumberwidth}{}%
+ \abx@flfw@getfieldformat{abx@flfw@labelnumber}{labelnumber}{}%
+ \blx@setlabwidth{\csname #1labelnumberwidth\endcsname}{%
+ \csuse{abx@flfw@labelnumberwidth}{%
+ \csuse{abx@flfw@labelnumber}{\abx@field@shorthand}}}}
+
+\def\blx@bbl@locallabelnumberwidth{%
+ \ifdefempty\abx@field@localnumber
+ {}
+ {\ifundef\abx@field@shorthand
+ {\blx@bbl@labelnumberwidth@numeric{local}}
+ {\blx@bbl@labelnumberwidth@shorthand{local}}}}
+
+% {<prefix for labelwidth fields>}
+\def\blx@bbl@labelalphawidth#1{%
+ \abx@flfw@getfieldformat{abx@flfw@labelalphawidth}{labelalphawidth}{}%
+ \abx@flfw@getfieldformat{abx@flfw@labelprefix}{labelprefix}{}%
+ \abx@flfw@getfieldformat{abx@flfw@labelalpha}{labelalpha}{}%
+ \abx@flfw@getfieldformat{abx@flfw@extraalpha}{extraalpha}{}%
+ \blx@setlabwidth{\csname #1labelalphawidth\endcsname}{%
+ \csuse{abx@flfw@labelalphawidth}{%
+ \ifdef\abx@field@labelprefix
+ {\csuse{abx@flfw@labelprefix}{\abx@field@labelprefix}}
+ {}%
+ \csuse{abx@flfw@labelalpha}{\abx@field@labelalpha}%
+ \ifundef\abx@field@extraalpha
+ {}
+ {\csuse{abx@flfw@extraalpha}{\abx@field@extraalpha}}}}}
+
+\def\blx@bbl@locallabelalphawidth{%
+ \ifundef\abx@field@labelalpha
+ {}
+ {\blx@bbl@labelalphawidth{local}}}
+
+\def\blx@bbl@locallabelfields{\blx@bbl@labelfields@i{local}}
+
+\def\blx@bbl@labelfields{\blx@bbl@labelfields@i{}}
+
+% {<prefix for labelwidth fields>}
+\def\blx@bbl@labelfields@i#1{%
+ \def\do##1{%
+ \ifcsundef{abx@field@##1}
+ {}
+ {\abx@flfw@getfieldformat{abx@flfw@##1width}{##1width}{##1}%
+ \blx@setlabwidth{\csname #1##1width\endcsname}{%
+ \csuse{abx@flfw@##1width}{\csname abx@field@##1\endcsname}}}}%
+ \abx@dolabelfields}
+
+\def\blx@bbl@labelnumber{%
+ % Used at endentry, when reading .bbl
+ % only do this for the global sorting list otherwise we increment
+ % the labelnumbers for each sortlist
+ \ifdefempty\abx@field@localnumber
+ {}% only if omitnumbers=true
+ {\ifundef\abx@field@shorthand
+ {\iftoggle{blx@defernumbers}
+ % only if defernumbers=true, we have to define localnumber to
+ % something to stop labelnumberwidth def complaining on first
+ % post-backend run since there will be nothing in the .aux yet
+ % for defernums localnumbers. On the second post-backend run,
+ % it will have a value correct for generating labelnumberwidth
+ % We also have to define a dummy value for labelnumber here for
+ % first post-backend runs otherwise references to labelnumber
+ % in cite styles like numeric-comp will die.
+ {\ifundef\abx@field@localnumber
+ {\numdef\abx@field@localnumber{0}%
+ \blx@bbl@fielddef{labelnumber}{0}}%
+ {}}
+ {\csnumgdef{blx@labelnumber@\the\c@refsection}{%
+ \csuse{blx@labelnumber@\the\c@refsection}+1}%
+ \edef\abx@field@localnumber{%
+ \csuse{blx@labelnumber@\the\c@refsection}}%
+ \blx@bbl@fieldedef{labelnumber}{\abx@field@localnumber}}%
+ \iftoggle{blx@skipbib}
+ {}
+ {\blx@bbl@labelnumberwidth@numeric{}}}
+ {\csgappto\blx@bbl@data{\let\abx@field@labelnumber\abx@field@shorthand}%
+ \iftoggle{blx@skipbib}
+ {}
+ {\blx@bbl@labelnumberwidth@shorthand{}}}}}
+
+\def\blx@bbl@labelalpha{%
+ \ifundef\abx@field@labelalpha
+ {}
+ {\ifundef\abx@field@extraalpha
+ {}
+ {\ifnum\abx@field@extraalpha>\c@maxextraalpha
+ \global\c@maxextraalpha\abx@field@extraalpha\relax
+ \fi}%
+ \iftoggle{blx@skipbib}
+ {}
+ {\blx@bbl@labelalphawidth{}}}}
+
+\def\blx@bbl@labeltitle{%
+ \ifundef\abx@field@extratitle
+ {}
+ {\ifnum\abx@field@extratitle>\c@maxextratitle
+ \global\c@maxextratitle\abx@field@extratitle\relax
+ \fi}}
+
+\def\blx@bbl@labeltitleyear{%
+ \ifundef\abx@field@extratitleyear
+ {}
+ {\ifnum\abx@field@extratitleyear>\c@maxextratitleyear
+ \global\c@maxextratitleyear\abx@field@extratitleyear\relax
+ \fi}}
+
+\def\blx@bbl@labelname{%
+ \ifundef\abx@field@extraname
+ {}
+ {\ifnum\abx@field@extraname>\c@maxextraname
+ \global\c@maxextraname\abx@field@extraname\relax
+ \fi}}
+
+\def\blx@bbl@labeldate{%
+ \ifundef\abx@field@extradate
+ {}
+ {\ifnum\abx@field@extradate>\c@maxextradate
+ \global\c@maxextradate\abx@field@extradate\relax
+ \fi}}
+
+\def\blx@bbl@titles{%
+ \ifundef\abx@field@indextitle
+ {\csgappto\blx@bbl@data{%
+ \let\abx@field@indextitle\abx@field@title}}
+ {}%
+ \ifundef\abx@field@indexsorttitle
+ {\csgappto\blx@bbl@data{%
+ \let\abx@field@indexsorttitle\abx@field@indextitle}}
+ {}}
+
+\def\blx@bbl@hooks{%
+ \ifcsundef{blx@hook@bblitem@*}
+ {\ifcsundef{blx@hook@bblitem@\abx@field@entrytype}
+ {}
+ {\csuse\blx@bbl@data
+ \csuse{blx@hook@bblitem@\abx@field@entrytype}}}
+ {\csuse\blx@bbl@data
+ \csuse{blx@hook@bblitem@*}%
+ \csuse{blx@hook@bblitem@\abx@field@entrytype}}}
+
+\newrobustcmd*{\AtDataInput}[1][*]{\csgappto{blx@hook@bblitem@#1}}
+\@onlypreamble\AtDataInput
+
+\def\blx@setlabwidth#1#2{%
+ \begingroup
+ \settowidth{\@tempdima}{\bibfont#2}%
+ \ifnum\@tempdima>#1%
+ \global#1\@tempdima
+ \fi
+ \endgroup}
+
+\def\blx@bblstart{%
+ \let\preamble\blx@bbl@preamble
+ \let\warn\blx@bbl@thewarn
+ \let\refsection\blx@bbl@refsection
+ \let\endrefsection\blx@bbl@endrefsection
+ \let\entry\blx@bbl@entry
+ \let\endentry\blx@bbl@endentry
+ \let\missing\blx@bbl@missing
+ \let\keyalias\blx@bbl@keyalias
+ \let\datalist\blx@bbl@dlist
+ \let\enddatalist\blx@bbl@enddlist
+ \let\set\blx@bbl@set
+ \let\inset\blx@bbl@inset
+ \let\xref\blx@bbl@xref % A No-op for Biber
+ \let\keyw\blx@bbl@keyw
+ \let\name\blx@bbl@namedef
+ \let\list\blx@bbl@listdef
+ \let\field\blx@bbl@fielddef
+ \let\range\blx@bbl@rangedef
+ \let\strng\blx@bbl@stringdef
+ \let\cnt\blx@bbl@cntdef
+ \let\true\blx@bbl@booltrue
+ \let\false\blx@bbl@boolfalse
+ \let\verb\blx@bbl@verbdef
+ \let\endverb\blx@bbl@verbend
+ \let\lverb\blx@bbl@verbldef
+ \let\endlverb\blx@bbl@verblend
+ \let\annotation\blx@bbl@annotationdef}
+
+\def\blx@bblend{%
+ % Special warning for defernumbers when a citation cannot be found
+ \iftoggle{blx@defernumbers}
+ {\def\do##1{\ifinlist{##1}\blx@entries
+ {}
+ {\blx@warning@noline{%
+ citation '##1' was not found at all in the .bbl, bibliography labels cannot be generated, please correct the citation}}}%
+ \dolistloop\blx@lastcites}
+ {}}
+
+% {<entrykey>}
+% Get the saved information on which citations were mentioned last run
+\protected\def\abx@aux@cite#1{%
+ \xifinlist{\detokenize{#1}}\blx@lastcites
+ {}
+ {\listxadd\blx@lastcites{\detokenize{#1}}}}
+
+% {<refcontext>}
+% Get the saved information on which refcontexts were mentioned last run
+\protected\def\abx@aux@refcontext#1{%
+ \xifinlist{\detokenize{#1}}\blx@lastrefcontexts
+ {}
+ {\listxadd\blx@lastrefcontexts{\detokenize{#1}}}}
+
+% {<sortingtemplatename>}
+% Get the saved information on which shorthand sorting templates were mentioned last run
+\protected\def\abx@aux@biblist#1{%
+ \ifinlist{#1}\blx@lastbiblists
+ {}
+ {\listgadd\blx@lastbiblists{#1}}}
+
+% Here we mustn't change the checksum if we used localnumbers from the
+% .aux file as this means that deferred numbering is
+% complete. Otherwise we get in an endless rerun loop because the
+% checksum due to number changes is always different.
+\AtEndDocument{%
+ \def\abx@aux@number#1#2#3#4#5{%
+ \ifblank{#5}
+ {}
+ {\nottoggle{blx@localnumber}
+ {\blx@addchecksum{#1}{#5}}
+ {}}}}
+
+\AtEndDocument{%
+ % Here we run some tests to decide if we need to issue re-run
+ % messages in certain circumstances. In general, if we add/remove
+ % any citations or add/remove any sorting templates, we need to re-run
+ % biber. Also, if we have to re-run biber, we need to defer writing
+ % the defernumbers .aux information because it will not yet be correct.
+
+ % Test to see if we *removed* any citations since last run
+ % (adding citations is dealt with naturally in \blx@citation@entry)
+ % If so, give a rerun biber message. This also sets the
+ % rerun biber toggle so defernums doesn't consume the localnumbers
+ % in the .aux but instead, re-writes them, which is what we need.
+ \begingroup
+ \def\do#1{\ifinlist{#1}\blx@cites{}{\blx@logreq@active{}}\relax}%
+ \dolistloop\blx@lastcites
+ % Special case - if we are using sortingtemplate "none" anywhere, then changes
+ % in citation order matter and we need to re-run biber. So a special test
+ % to see if the cites from last run are identical in order. We have
+ % already tested for more or less cites between runs by now, we are
+ % testing here for exactly the same cites by treating the cite and
+ % lastcite lists as strings and comparing them. This doesn't apply
+ % to biblist sortingtemplates as nobody wants to sort biblists with
+ % "none", since it makes no sense
+ \ifinlist{none}\blx@sortingtemplatenames
+ {\ifdefstrequal{\blx@cites}{\blx@lastcites}
+ {}
+ {\blx@logreq@active{}}}
+ {}%
+ % Test if we removed any mention of a reference context since last run
+ % If we did, we need to re-run biber
+ \def\do#1{\ifinlist{#1}\blx@refcontexts{}{\blx@logreq@active{}}\relax}%
+ \dolistloop\blx@lastrefcontexts
+ % Test if we added any mention of a reference context since last run
+ % If we did, we need to re-run biber
+ \def\do#1{\ifinlist{#1}\blx@lastrefcontexts{}{\blx@logreq@active{}}\relax}%
+ \dolistloop\blx@refcontexts
+ % Test if we removed any mention of a biblist since last run.
+ % If we did, we need to re-run biber
+ \def\do#1{\ifinlist{#1}\blx@biblists{}{\blx@logreq@active{}}\relax}%
+ \dolistloop\blx@lastbiblists
+ % Test to see if we added any mention of a biblist since last run.
+ % If we did, we need to re-run biber
+ \def\do#1{\ifinlist{#1}\blx@lastbiblists{}{\blx@logreq@active{}}\relax}%
+ \dolistloop\blx@biblists
+ % If we have to run biber or latex again and we are using defernumbers,
+ % don't write the localnumber information to the .aux file yet as we will
+ % potentially have to regenerate sorting order first in biber
+ \iftoggle{blx@defernumbers}
+ {\iftoggle{blx@runbiber}
+ {}
+ {\def\do#1{\blx@auxwrite\@mainaux{}{#1}}
+ \dolistloop\blx@localnumaux}}
+ {}%
+ \endgroup}
+
+% {<instcount>}{<entrykey>}{<refsection>}{<refcontext>}{<labelnumber>}
+\protected\def\blx@aux@number#1#2#3#4#5{%
+ \blx@bbl@addentryfield{\detokenize{#2}}{#3}{localnumber}{#4}{#5}%
+ \blx@bbl@addentryfield{\detokenize{#2}}{#3}{labelnumber}{#4}{#5}%
+ \global\toggletrue{blx@localnumber}%
+ \ifblank{#5}
+ {}
+ {\csgdef{blx@labelnumber@#3}{#5}}}
+
+% Called as part of bib output for an entry
+% Only used when defernumbers=true
+\def\blx@addlabelnumber{%
+ \begingroup
+ \nottoggle{blx@skiplab}
+ {\iftoggle{blx@labelnumber}
+ {\ifundef\abx@field@shorthand
+ % Need to know if we set any localnumber from .aux file, not
+ % just current item. Otherwise, we may just write new
+ % localnumbers but not existing ones
+ % Also, don't want to regenerate localnumber for any key in a
+ % refsection which we've already seen because this has the nasty
+ % side-effect of incrementing the localnum counter
+ {\ifboolexpr { not togl {blx@localnumber}
+ and
+ not test {\ifcsdef{blx@defer@\the\c@refsection @\blx@refcontext@context @\abx@field@entrykey}} }
+ {\iftoggle{blx@omitnumbers}
+ {\let\abx@field@localnumber\@empty}
+ {\csnumgdef{blx@labelnumber@\the\c@refsection}{%
+ \csuse{blx@labelnumber@\the\c@refsection}+1}%
+ \edef\abx@field@localnumber{%
+ \csuse{blx@labelnumber@\the\c@refsection}}%
+ \blx@bbl@addentryfield{\abx@field@entrykey}{\the\c@refsection}%
+ {localnumber}{\blx@refcontext@context}{\abx@field@localnumber}}}
+ {}%
+ % If localnumbers were already in the .aux, add them
+ % again from the .aux. This prevents some cycling
+ % problems where pagebreaks change after localnumber
+ % settles down and then we need another run which then
+ % regenerates localnumber requiring another run but then
+ % the pagebreaks change back again ... etc.
+ \ifcsundef{blx@defer@\the\c@refsection @\blx@refcontext@context @\abx@field@entrykey}
+ {\ifundef\abx@field@localnumber
+ {}
+ {\listxadd\blx@localnumaux{%
+ \string\abx@aux@number%
+ {\the\c@instcount}%
+ {\abx@field@entrykey}%
+ {\the\c@refsection}%
+ {\blx@refcontext@context}%
+ {\abx@field@localnumber}}%
+ % record that we have already generated and output localnum
+ % for this key in this refsection/refcontext
+ \global\cslet{blx@defer@\the\c@refsection @\blx@refcontext@context @\abx@field@entrykey}\@empty}}
+ {}}
+ {}}%
+ {}}
+ {}%
+ \endgroup}
+
+% {<datalistname>}
+\def\blx@bbl@dlist[#1]#2{%
+ \begingroup
+ \def\blx@dlist@type{#1}%
+ \def\blx@dlist@name{#2}}
+
+\def\blx@bbl@enddlist{%
+ \csnumgdef{blx@labelnumber@\the\c@refsection}{0}%
+ \endgroup}
+
+\def\blx@addpageref#1{%
+ \begingroup
+ \blx@tempcnta\z@
+ \let\blx@tempa\@empty
+ \def\do##1{%
+ \appto\blx@tempa{{##1}}%
+ \advance\blx@tempcnta\@ne}%
+ \dolistcsloop{blx@pref@\the\c@refsection @#1}%
+ \edef\blx@tempa{\endgroup\noexpand\blx@bbl@listdef
+ {pageref}{\the\blx@tempcnta}{\expandonce{\blx@tempa}}}%
+ \blx@tempa}
+
+%% Data input
+\def\blx@bblinput{%
+ \begingroup
+ \blx@info@noline{Trying to load bibliographic data..}%
+ \blx@blxinit
+ \blx@bblfile
+ \endgroup}
+
+\def\blx@bblfile{%
+ \blx@secinit
+ \begingroup
+ \blx@bblstart
+ \blx@ifsigned{\jobname}{bbl}
+ {\InputIfFileExists{\jobname.bbl}
+ {\blx@info@noline{... file '\jobname.bbl' found}%
+ \global\toggletrue{blx@bbldone}}
+ {\blx@info@noline{... file '\jobname.bbl' not found}%
+ \typeout{No file \jobname.bbl.}}}
+ {}%
+ \blx@bblend
+ \endgroup
+ % global sorting as this is called at BeginDocument
+ \csnumgdef{blx@labelnumber@\the\c@refsection}{0}}
+
+%% Bibliography
+
+% {<name>}{<start code>}[<end code>]{<item code>}
+\newrobustcmd*{\defbibenvironment}[4]{%
+ \long\csdef{blx@env@#1}{#2}%
+ \long\csdef{blx@endenv@#1}{#3}%
+ \long\csdef{blx@item@#1}{#4}}
+
+\defbibenvironment{bibliography}
+ {\list{}{%
+ \leftmargin\bibhang
+ \itemindent-\leftmargin
+ \itemsep\bibitemsep
+ \parsep\bibparsep}}
+ {\endlist}
+ {\item}
+
+\def\do#1{%
+ \defbibenvironment{#1}
+ {\list{\thefield{#1}}{%
+ \labelwidth\csname #1width\endcsname
+ \labelsep\biblabelsep
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \itemsep\bibitemsep
+ \parsep\bibparsep
+ \def\makelabel####1{####1\hss}}}
+ {\endlist}
+ {\item}}
+\abx@dolabelfields
+
+% {<name>}[<default>]{<code>}
+\newrobustcmd*{\defbibheading}[1]{%
+ \@ifnextchar[%]
+ {\blx@defbibheading{blx@head@#1}}
+ {\blx@defbibheading{blx@head@#1}[\bibname]}}
+
+\def\blx@defbibheading#1[#2]{%
+ \csundef{#1}%
+ \expandafter\newcommand\csname#1\endcsname[1][#2]}
+
+% {<name>}{<text>}
+\newrobustcmd*{\defbibnote}[1]{%
+ \long\csdef{blx@note@#1}}
+
+% {<name>}{<code>}
+\newrobustcmd*{\defbibfilter}[2]{%
+ \begingroup
+ \def\blx@flt@error{\csname blx@flt@errortrue\endcsname}%
+ \let\not\blx@flt@not \let\NOT\not
+ \let\and\blx@flt@and \let\AND\and
+ \let\or\blx@flt@or \let\OR\or
+ \letcs\({blx@flt@(} \letcs\){blx@flt@)}%
+ \def\section##1{\blx@flt@error}%
+ \def\segment##1{segment=##1}%
+ \def\type##1{type=##1}%
+ \def\subtype##1{subtype=##1}%
+ \def\keyword##1{keyword={##1}}%
+ \def\category##1{category={##1}}%
+ \edef\blx@tempa{\noexpand\blx@defbibfilter{#2}}%
+ \ifdef\blx@flt@errortrue
+ {\blx@err@filter}
+ {\let\the\relax
+ \let\blx@flt@item\relax
+ \edef\blx@tempa{\blx@tempa}%
+ \ifdef\blx@flt@errortrue
+ {\blx@err@filter}
+ {\csxdef{blx@filter@#1}{\blx@tempa}}}%
+ \endgroup}
+
+\def\blx@defbibfilter#1{%
+ \blx@defbibfilter@i#1 &}
+\def\blx@defbibfilter@i#1 #2&{%
+ \blx@defbibfilter@ii#1==&%
+ \ifblank{#2}{}{\blx@defbibfilter@i#2 &}}
+\def\blx@defbibfilter@ii#1=#2=#3&{%
+ \ifblank{#2}
+ {\ifblank{#1}
+ {}
+ {\ifcsdef{blx@flt@#1}
+ {\csname blx@flt@#1\endcsname}
+ {\blx@flt@error}}}
+ {\ifcsdef{blx@flt@#1}
+ {\csname blx@flt@#1\endcsname{\detokenize{#2}}}
+ {\blx@flt@error}}}
+
+\def\blx@flt@and{ and }
+\def\blx@flt@or{ or }
+\def\blx@flt@not{ not }
+\csdef{blx@flt@(}{ ( }
+\csdef{blx@flt@)}{ ) }
+\def\blx@flt@segment#1{%
+ test {\xifinlistcs\blx@flt@item{blx@segm@\the\c@refsection @#1}}}
+\def\blx@flt@type#1{%
+ test {\xifinlistcs\blx@flt@item{blx@type@\the\c@refsection @#1}}}
+\def\blx@flt@subtype#1{%
+ test {\xifinlistcs\blx@flt@item{blx@subt@\the\c@refsection @#1}}}
+\def\blx@flt@keyword#1{%
+ test {\xifinlistcs\blx@flt@item{blx@keyw@\the\c@refsection @#1}}}
+\def\blx@flt@category#1{%
+ test {\xifinlistcs\blx@flt@item{blx@catg@#1}}}
+
+% {<name>}{<code>}
+\newrobustcmd*{\defbibcheck}[2]{%
+ \csdef{blx@bibcheck@#1}{%
+ \togglefalse{blx@skipentry}%
+ \def\skipentry{\toggletrue{blx@skipentry}}%
+ #2\undef\skipentry}}
+
+% options
+% We need a 2-pass structure for options in \printbibliography and
+% \printbiblist because the section has to be set before any
+% other options and this partly determines which list to use for later filtering
+\define@key{blx@bib1}{segment}{}
+\define@key{blx@bib1}{type}{}
+\define@key{blx@bib1}{nottype}{}
+\define@key{blx@bib1}{subtype}{}
+\define@key{blx@bib1}{notsubtype}{}
+\define@key{blx@bib1}{keyword}{}
+\define@key{blx@bib1}{notkeyword}{}
+\define@key{blx@bib1}{category}{}
+\define@key{blx@bib1}{notcategory}{}
+\define@key{blx@bib1}{filter}{}
+\define@key{blx@bib1}{check}{}
+\define@key{blx@bib1}{heading}{}
+\define@key{blx@bib1}{env}{}
+\define@key{blx@bib1}{title}{}
+\define@key{blx@bib1}{prenote}{}
+\define@key{blx@bib1}{postnote}{}
+\define@key{blx@bib1}{omitnumbers}[]{}
+% Here we are using the first pass to see if there is an explicit setting for resetnumbers
+% If there isn't we will use the default behaviour where if there is a labelprefix,
+% resetnumbers will default to "true"
+\define@key{blx@bib1}{resetnumbers}[true]{%
+ \toggletrue{blx@resetnumsexplicit}}
+
+\define@key{blx@bib2}{section}{}
+\define@key{blx@bib2}{sorting}{}
+
+\define@key{blx@biblist1}{segment}{}
+\define@key{blx@biblist1}{type}{}
+\define@key{blx@biblist1}{nottype}{}
+\define@key{blx@biblist1}{subtype}{}
+\define@key{blx@biblist1}{notsubtype}{}
+\define@key{blx@biblist1}{keyword}{}
+\define@key{blx@biblist1}{notkeyword}{}
+\define@key{blx@biblist1}{category}{}
+\define@key{blx@biblist1}{notcategory}{}
+\define@key{blx@biblist1}{filter}{}
+\define@key{blx@biblist1}{check}{}
+\define@key{blx@biblist1}{heading}{}
+\define@key{blx@biblist1}{env}{}
+\define@key{blx@biblist1}{title}{}
+\define@key{blx@biblist1}{prenote}{}
+\define@key{blx@biblist1}{postnote}{}
+
+\define@key{blx@biblist2}{section}{}
+\define@key{blx@biblist2}{sorting}{}
+
+\define@key{blx@bib1}{section}{%
+ \ifcsundef{blx@sections@#1}
+ {\blx@err@nosec{#1}}
+ {\c@refsection#1\relax
+ \def\blx@tempe{#1}}}
+
+\define@key{blx@biblist1}{section}{%
+ \ifcsundef{blx@sections@#1}
+ {\blx@err@nosec{#1}}
+ {\c@refsection#1\relax
+ \def\blx@tempe{#1}}}
+
+\define@key{blx@bbg}{section}{%
+ \ifcsundef{blx@sections@#1}
+ {\blx@err@nosec{#1}}
+ {\c@refsection#1\relax}}
+
+\define@key{blx@bbc}{section}{%
+ \ifcsundef{blx@sections@#1}
+ {\blx@err@nosec{#1}}
+ {\c@refsection#1\relax}}
+
+\define@key{blx@bib2}{segment}{\blx@key@segment{#1}}
+\define@key{blx@biblist2}{segment}{\blx@key@segment{#1}}
+
+\def\blx@key@segment#1{%
+ \ifcsundef{blx@segm@\the\c@refsection @#1}
+ {\blx@warning{Segment '#1' not found in section '\the\c@refsection'}}
+ {\c@refsegment#1\relax
+ \blx@printbibchecks
+ \blx@filter\blx@tempa{blx@segm@\the\c@refsection @#1}}}
+
+\define@key{blx@bib2}{type}{\blx@key@type{#1}}
+\define@key{blx@biblist2}{type}{\blx@key@type{#1}}
+
+\def\blx@key@type#1{%
+ \ifcsundef{blx@type@\the\c@refsection @#1}
+ {\blx@warning{Type '#1' not found}%
+ \let\blx@tempa\@empty}
+ {\blx@printbibchecks
+ \iftoggle{blx@tempb}
+ {\togglefalse{blx@tempb}%
+ \blx@filter\blx@tempa{blx@type@\the\c@refsection @#1}}
+ {\let\blx@tempa\@empty
+ \blx@error
+ {'type' used multiple times}
+ {When passing multiple filter options, each entry\MessageBreak
+ must satisfy all conditions (AND conjunction),\MessageBreak
+ hence some options may not be used twice.\MessageBreak
+ Use 'filter' and '\string\defbibfilter' with OR conjunctions}}}}
+
+\define@key{blx@bib2}{nottype}{\blx@key@nottype{#1}}
+\define@key{blx@biblist2}{nottype}{\blx@key@nottype{#1}}
+
+\def\blx@key@nottype#1{%
+ \ifcsundef{blx@type@\the\c@refsection @#1}
+ {}
+ {\blx@printbibchecks
+ \blx@notfilter\blx@tempa{blx@type@\the\c@refsection @#1}}}
+
+\define@key{blx@bib2}{subtype}{\blx@key@subtype{#1}}
+\define@key{blx@biblist2}{subtype}{\blx@key@subtype{#1}}
+
+\def\blx@key@subtype#1{%
+ \ifcsundef{blx@subt@\the\c@refsection @#1}
+ {\blx@warning{Subtype '#1' not found}%
+ \let\blx@tempa\@empty}
+ {\blx@printbibchecks
+ \iftoggle{blx@tempb}
+ {\togglefalse{blx@tempb}%
+ \blx@filter\blx@tempa{blx@subt@\the\c@refsection @#1}}
+ {\let\blx@tempa\@empty
+ \blx@error
+ {'subtype' used multiple times}
+ {When passing multiple filter options, each entry\MessageBreak
+ must satisfy all conditions (AND conjunction),\MessageBreak
+ hence some options may not be used twice.\MessageBreak
+ Use 'filter' and '\string\defbibfilter' with OR conjunctions}}}}
+
+\define@key{blx@bib2}{notsubtype}{\blx@key@notsubtype{#1}}
+\define@key{blx@biblist2}{notsubtype}{\blx@key@notsubtype{#1}}
+
+\def\blx@key@notsubtype#1{%
+ \ifcsundef{blx@subt@\the\c@refsection @#1}
+ {}
+ {\blx@printbibchecks
+ \blx@notfilter\blx@tempa{blx@subt@\the\c@refsection @#1}}}
+
+\define@key{blx@bib2}{keyword}{\blx@key@keyword{#1}}
+\define@key{blx@biblist2}{keyword}{\blx@key@keyword{#1}}
+
+\def\blx@key@keyword#1{%
+ \ifcsundef{blx@keyw@\the\c@refsection @\detokenize{#1}}
+ {\blx@warning{Keyword '\detokenize{#1}' not found}%
+ \let\blx@tempa\@empty}
+ {\blx@printbibchecks
+ \blx@filter\blx@tempa{blx@keyw@\the\c@refsection @\detokenize{#1}}}}
+
+\define@key{blx@bib2}{notkeyword}{\blx@key@notkeyword{#1}}
+\define@key{blx@biblist2}{notkeyword}{\blx@key@notkeyword{#1}}
+
+\def\blx@key@notkeyword#1{%
+ \ifcsundef{blx@keyw@\the\c@refsection @\detokenize{#1}}
+ {}
+ {\blx@printbibchecks
+ \blx@notfilter\blx@tempa{blx@keyw@\the\c@refsection @\detokenize{#1}}}}
+
+\define@key{blx@bib2}{category}{\blx@key@category{#1}}
+\define@key{blx@biblist2}{category}{\blx@key@category{#1}}
+
+\def\blx@key@category#1{%
+ \ifcsundef{blx@catg@\detokenize{#1}}
+ {\blx@warning{Category '\detokenize{#1}' not found}%
+ \let\blx@tempa\@empty}
+ {\blx@printbibchecks
+ \blx@filter\blx@tempa{blx@catg@\detokenize{#1}}}}
+
+\define@key{blx@bib2}{notcategory}{\blx@key@notcategory{#1}}
+\define@key{blx@biblist2}{notcategory}{\blx@key@notcategory{#1}}
+
+\def\blx@key@notcategory#1{%
+ \ifcsundef{blx@catg@#1}
+ {}
+ {\blx@printbibchecks
+ \blx@notfilter\blx@tempa{blx@catg@#1}}}
+
+\define@key{blx@bib2}{filter}{\blx@key@filter{#1}}
+\define@key{blx@biblist2}{filter}{\blx@key@filter{#1}}
+
+\def\blx@key@filter#1{%
+ \ifcsdef{blx@filter@#1}
+ {\blx@printbibchecks
+ \blx@bibfilter\blx@tempa{blx@filter@#1}}
+ {\let\blx@tempa\@empty
+ \blx@error
+ {Filter '#1' not found}
+ {The filter '#1' could not be found.\MessageBreak
+ Use \string\defbibfilter\space to define it}}}
+
+\define@key{blx@bib2}{check}{\blx@key@bibcheck{#1}}
+\define@key{blx@biblist2}{check}{\blx@key@bibcheck{#1}}
+
+% empty bibcheck does nothing
+\cslet{blx@bibcheck@}\relax
+\def\blx@key@bibcheck#1{%
+ \ifcsdef{blx@bibcheck@#1}
+ {\letcs\blx@bibcheck{blx@bibcheck@#1}}
+ {\let\blx@tempa\@empty
+ \blx@error
+ {Check '#1' not found}
+ {The check '#1' could not be found.\MessageBreak
+ Use \string\defbibcheck\space to define it}}}
+
+\def\blx@default@theheading{bibliography}
+\define@key{blx@bibdefaults}{heading}{%
+ \blx@key@heading{\blx@default@theheading}{#1}}
+\define@key{blx@bhd}{heading}{%
+ \blx@key@heading{\blx@theheading}{#1}}
+\define@key{blx@bib2}{heading}{%
+ \blx@key@heading{\blx@theheading}{#1}}
+\define@key{blx@biblist2}{heading}{%
+ \blx@key@heading{\blx@theheading}{#1}}
+\define@key{blx@bbs}{heading}{%
+ \blx@key@heading{\blx@theheading}{#1}}
+\define@key{blx@bbg}{heading}{%
+ \blx@key@heading{\blx@theheading}{#1}}
+
+\def\blx@key@heading#1#2{%
+ \ifcsundef{blx@head@#2}
+ {\blx@error
+ {Heading '#2' not found}
+ {The heading '#2' could not be found.\MessageBreak
+ Use \string\defbibheading\space to define it}}
+ {\def#1{#2}}}
+
+\def\blx@default@theenv{bibliography}
+\define@key{blx@bibdefaults}{env}{%
+ \blx@key@env{\blx@default@theenv}{#1}}
+\define@key{blx@bib2}{env}{\blx@key@env{\blx@theenv}{#1}}
+\define@key{blx@biblist2}{env}{\blx@key@env{\blx@theenv}{#1}}
+\define@key{blx@bbs}{env}{\blx@key@env{\blx@theenv}{#1}}
+\define@key{blx@bbg}{env}{\blx@key@env{\blx@theenv}{#1}}
+\define@key{blx@bbc}{env}{\blx@key@env{\blx@theenv}{#1}}
+
+\def\blx@key@env#1#2{%
+ \ifcsundef{blx@env@#2}
+ {\blx@error
+ {Environment '#2' not found}
+ {The environment '#2' could not be found.\MessageBreak
+ Use \string\defbibenvironment\space to define it}}
+ {\def#1{#2}}}
+
+\let\blx@default@thetitle\@empty
+\define@key{blx@bibdefaults}{title}{%
+ \def\blx@default@thetitle{#1}}
+\define@key{blx@bhd}{title}{\def\blx@thetitle{#1}}
+\define@key{blx@bib2}{title}{\def\blx@thetitle{#1}}
+\define@key{blx@biblist2}{title}{\def\blx@thetitle{#1}}
+
+\cslet{blx@note@}\@empty
+\def\blx@key@bibnote#1#2{%
+ \ifcsundef{blx@note@#2}
+ {\blx@error
+ {Note '#2' not found}
+ {The note '#2' could not be found.\MessageBreak
+ Use \string\defbibnote\space to define it}}
+ {\def#1{#2}}}
+
+\let\blx@default@theprenote\@empty
+\define@key{blx@bibdefaults}{prenote}{%
+ \blx@key@bibnote{\blx@default@theprenote}{#1}}
+\define@key{blx@bib2}{prenote}{%
+ \blx@key@bibnote{\blx@theprenote}{#1}}
+\define@key{blx@biblist2}{prenote}{%
+ \blx@key@bibnote{\blx@theprenote}{#1}}
+\define@key{blx@bbs}{prenote}{%
+ \blx@key@bibnote{\blx@theprenote}{#1}}
+\define@key{blx@bbg}{prenote}{%
+ \blx@key@bibnote{\blx@theprenote}{#1}}
+\define@key{blx@bbc}{prenote}{%
+ \blx@key@bibnote{\blx@theprenote}{#1}}
+
+\let\blx@default@thepostnote\@empty
+\define@key{blx@bibdefaults}{postnote}{%
+ \blx@key@bibnote{\blx@default@thepostnote}{#1}}
+\define@key{blx@bib2}{postnote}{%
+ \blx@key@bibnote{\blx@thepostnote}{#1}}
+\define@key{blx@biblist2}{postnote}{%
+ \blx@key@bibnote{\blx@thepostnote}{#1}}
+\define@key{blx@bbs}{postnote}{%
+ \blx@key@bibnote{\blx@thepostnote}{#1}}
+\define@key{blx@bbg}{postnote}{%
+ \blx@key@bibnote{\blx@thepostnote}{#1}}
+\define@key{blx@bbc}{postnote}{%
+ \blx@key@bibnote{\blx@thepostnote}{#1}}
+
+\let\abx@default@locallabelwidth\@gobble
+\define@key{blx@bibdefaults}{locallabelwidth}{%
+ \blx@key@locallabelwidth{\abx@default@locallabelwidth}{#1}}
+\define@key{blx@bib1}{locallabelwidth}[]{}
+\define@key{blx@biblist1}{locallabelwidth}[]{}
+\define@key{blx@bib2}{locallabelwidth}[true]{%
+ \blx@key@locallabelwidth{\abx@locallabelwidth}{#1}}
+\define@key{blx@biblist2}{locallabelwidth}[true]{%
+ \blx@key@locallabelwidth{\abx@locallabelwidth}{#1}}
+
+\def\blx@key@locallabelwidth#1#2{%
+ \ifstrequal{#2}{true}
+ {\def#1{\blx@locallabelwidth}}
+ {\let#1\@gobble}}
+
+\define@key{blx@bib2}{resetnumbers}[true]{%
+ \iftoggle{blx@defernumbers}
+ {\ifstrequal{#1}{true}
+ {\csnumdef{blx@labelnumber@\the\c@refsection}{0}}
+ {\ifstrequal{#1}{false}
+ {}
+ {\csnumdef{blx@labelnumber@\the\c@refsection}{#1-1}}}}
+ {\blx@warning{%
+ Option 'resetnumbers' requires 'defernumbers=true'.\MessageBreak
+ Ignoring 'resetnumbers=true'}}}
+
+\define@key{blx@bib2}{omitnumbers}[true]{%
+ \ifstrequal{#1}{true}
+ {\iftoggle{blx@defernumbers}
+ {\toggletrue{blx@omitnumbers}}
+ {\blx@warning{%
+ Option 'omitnumbers' requires 'defernumbers=true'.\MessageBreak
+ Ignoring 'omitnumbers=true'}}}
+ {}}
+
+
+\newrobustcmd*{\DeclarePrintbibliographyDefaults}{%
+ \setkeys{blx@bibdefaults}}
+
+% [<options>]
+\newrobustcmd*{\printbibheading}{%
+ \begingroup
+ \edef\on@line{\on@line}%
+ \@ifnextchar[%]
+ {\blx@printbibheading}
+ {\blx@printbibheading[]}}
+
+\def\blx@printbibheading[#1]{%
+ \let\blx@theheading\blx@default@theheading
+ \let\blx@thetitle\blx@default@thetitle
+ \blx@safe@actives
+ \setkeys{blx@bhd}{#1}%
+ \blx@rest@actives
+ \blx@langstrings
+ \blx@bibheading\blx@theheading\blx@thetitle
+ \endgroup}
+
+% We use this to determine whether an explicit value for resetnumbers is passed to
+% \printbibliography, if not, then we use the default behaviour where a labelprefix forces
+% a reset. It is useful that we have a 2-pass structure for \printbibliography keys anyway.
+\newtoggle{blx@resetnumsexplicit}
+
+% [<options>]
+\newrobustcmd*{\printbibliography}{%
+ \begingroup
+ \delimcontext{bib}%
+ \edef\on@line{\on@line}%
+ \@ifnextchar[%]
+ {\blx@printbibliography}
+ {\blx@printbibliography[]}}
+
+\def\blx@printbibliography[#1]{%
+ \toggletrue{blx@tempa}%
+ \toggletrue{blx@tempb}%
+ \let\blx@theheading\blx@default@theheading
+ \let\blx@theenv\blx@default@theenv
+ \let\blx@theprenote\blx@default@theprenote
+ \let\blx@thepostnote\blx@default@thepostnote
+ \let\blx@thetitle\blx@default@thetitle
+ % defaults
+ \let\blx@tempa\@empty% before there is a .bbl, this must not be undef
+ \edef\blx@tempe{\the\c@refsection}% default refsection is current
+ \blx@safe@actives
+ \togglefalse{blx@resetnumsexplicit}%
+ \setkeys{blx@bib1}{#1}% First pass options keys - section and resetnumbers
+ % Is there a user-specified option for resetnumbers? If so, this overrides the default
+ % "labelprefix implies resetnumbers" behaviour
+ \iftoggle{blx@resetnumsexplicit}
+ {}
+ {\ifdefempty\blx@refcontext@labelprefix
+ {\ifdefempty\blx@refcontext@labelprefix@real}
+ {\@secondoftwo}
+ {}
+ {\setkeys{blx@bib2}{resetnumbers}}}%
+ \blx@rest@actives
+ \ifcsvoid{blx@dlist@entry@\blx@tempe @\blx@refcontext@context}
+ {}
+ {\letcs\blx@tempa{blx@dlist@entry@\blx@tempe @\blx@refcontext@context}}%
+ \blx@safe@actives
+ % Must reset omitnumbers as it's a global macro and if we don't, any
+ % \printbibliography following one with this set will inherit any
+ % previous "true" value
+ \togglefalse{blx@omitnumbers}%
+ \setkeys{blx@bib2}{#1}% ... now we have correct \blx@tempa, set rest of options
+ \blx@rest@actives
+ % Add datalist to list of seen datalists to prevent duplicates
+ \xifinlist{\blx@refcontext@context @\blx@tempe @entry}\blx@dlistnames
+ {}
+ {\listxadd\blx@dlistnames{\blx@refcontext@context @\blx@tempe @entry}%
+ \csxappto{blx@dlists}{%
+ \blx@xml@dlist{\blx@refcontext@context}{entry}{\blx@tempe}{\blx@xml@dlist@refcontext{\blx@refcontext@sortingtemplatename}{\blx@refcontext@sortingnamekeytemplatename}{\blx@refcontext@labelprefix@real}{\blx@refcontext@uniquenametemplatename}{\blx@refcontext@labelalphanametemplatename}}{}}}%
+ \ifdefvoid\blx@tempa
+ {\blx@warn@bibempty\endgroup}
+ {\blx@bibliography\blx@tempa}}
+
+% [<options>]
+\newrobustcmd*{\bibbysection}{%
+ \begingroup
+ \delimcontext{bib}%
+ \ifnum\blx@maxsection=\z@
+ \blx@warning{No reference sections found}%
+ \fi
+ \edef\on@line{\on@line}%
+ \@ifnextchar[%]
+ {\blx@bibbysection}
+ {\blx@bibbysection[]}}
+
+\def\blx@bibbysection[#1]{%
+ \let\blx@theheading\blx@default@theheading
+ \let\blx@theenv\blx@default@theenv
+ \let\blx@theprenote\blx@default@theprenote
+ \let\blx@thepostnote\blx@default@thepostnote
+ \let\blx@thetitle\blx@default@thetitle
+ \c@refsection\z@
+ \blx@safe@actives
+ \setkeys{blx@bbs}{#1}%
+ \blx@rest@actives
+ \togglefalse{blx@tempa}%
+ \blx@refsections}
+
+\def\blx@refsections{%
+ \ifcsvoid{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}
+ {}
+ {\toggletrue{blx@tempa}%
+ \begingroup
+ \expandafter\blx@bibliography\csname blx@dlist@entry@\the\c@refsection @\blx@refcontext@context\endcsname}%
+ \ifnum\c@refsection<\blx@maxsection
+ \advance\c@refsection\@ne
+ \expandafter\blx@refsections
+ \else
+ \iftoggle{blx@tempa}{}{\blx@warn@bibempty}%
+ \endgroup
+ \fi}
+
+% [<options>]
+\newrobustcmd*{\bibbysegment}{%
+ \begingroup
+ \delimcontext{bib}%
+ \edef\on@line{\on@line}%
+ \ifnum\csname blx@maxsegment@\the\c@refsection\endcsname=\z@
+ \blx@warning{No reference segments found}%
+ \fi
+ \@ifnextchar[%]
+ {\blx@bibbysegment}
+ {\blx@bibbysegment[]}}
+
+\def\blx@bibbysegment[#1]{%
+ \let\blx@theheading\blx@default@theheading
+ \let\blx@theenv\blx@default@theenv
+ \let\blx@theprenote\blx@default@theprenote
+ \let\blx@thepostnote\blx@default@thepostnote
+ \let\blx@thetitle\blx@default@thetitle
+ \c@refsegment\@ne
+ \blx@safe@actives
+ \setkeys{blx@bbg}{#1}%
+ \blx@rest@actives
+ \togglefalse{blx@tempa}%
+ \blx@refsegments}
+
+\def\blx@refsegments{%
+ \ifcsvoid{blx@segm@\the\c@refsection @\the\c@refsegment}
+ {}
+ {\toggletrue{blx@tempa}%
+ \begingroup
+ \let\blx@tempa\@empty
+ \ifcsvoid{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}
+ {}
+ {\letcs\blx@tempa{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}}%
+ \blx@filter\blx@tempa{blx@segm@\the\c@refsection @\the\c@refsegment}%
+ \blx@bibliography\blx@tempa}%
+ \ifnum\c@refsegment<\csname blx@maxsegment@\the\c@refsection\endcsname
+ \advance\c@refsegment\@ne
+ \expandafter\blx@refsegments
+ \else
+ \iftoggle{blx@tempa}{}{\blx@warn@bibempty}%
+ \endgroup
+ \fi}
+
+% [<options>]
+\newrobustcmd*{\bibbycategory}{%
+ \begingroup
+ \delimcontext{bib}%
+ \edef\on@line{\on@line}%
+ \ifx\blx@categories\@empty
+ \blx@warning{No categories found}%
+ \fi
+ \@ifnextchar[%]
+ {\blx@bibbycategory}
+ {\blx@bibbycategory[]}}
+
+\def\blx@bibbycategory[#1]{%
+ \let\blx@theheading\blx@default@theheading
+ \let\blx@theenv\blx@default@theenv
+ \let\blx@theprenote\blx@default@theprenote
+ \let\blx@thepostnote\blx@default@thepostnote
+ \let\blx@thetitle\blx@default@thetitle
+ \c@refsection\z@
+ \blx@safe@actives
+ \setkeys{blx@bbc}{#1}%
+ \blx@rest@actives
+ \togglefalse{blx@tempa}%
+ \forlistloop\blx@bibcategory\blx@categories
+ \blx@endbibcategory}
+
+\def\blx@bibcategory#1{%
+ \ifcsvoid{blx@catg@#1}
+ {}
+ {\toggletrue{blx@tempa}%
+ \begingroup
+ \blx@key@heading{\blx@theheading}{#1}%
+ \let\blx@tempa\@empty
+ \ifcsvoid{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}
+ {}
+ {\letcs\blx@tempa{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}}%
+ \blx@filter\blx@tempa{blx@catg@#1}%
+ \blx@bibliography\blx@tempa}}%
+
+\def\blx@endbibcategory{%
+ \iftoggle{blx@tempa}{}{\blx@warn@bibempty}%
+ \endgroup}
+
+% {<entrykey>,...}
+\def\blx@bibliography#1{%
+ \blx@langstrings
+ \blx@bibheading\blx@theheading\blx@thetitle
+ \blx@bibnote\blx@theprenote
+ \begingroup
+ \blx@bibinit
+ \let\@noitemerr\@empty
+ \let\blx@noitem\blx@warn@bibempty
+ \ifnum\bibinitsep=\z@
+ \let\blx@initsep\relax
+ \fi
+ \ifnum\bibnamesep=\z@
+ \let\blx@namesep\relax
+ \fi
+ \abx@locallabelwidth{#1}%
+ \csuse{blx@env@\blx@theenv}%
+ \csuse{blx@hook@bibinit}%
+ \csuse{blx@hook@bibinit@next}%
+ \let\blx@do\blx@bibitem
+ \let\blx@done\blx@endbibliography
+ \blx@listloop{#1}}
+
+\def\blx@endbibliography{%
+ \csuse{blx@endenv@\blx@theenv}%
+ \blx@noitem
+ \endgroup
+ \blx@bibnote\blx@thepostnote
+ \endgroup}
+
+\def\blx@bibheading#1#2{%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \noexpand\blx@bibheading@i{\expandonce#1}{\expandonce#2}}%
+ \blx@tempa}
+
+\def\blx@bibheading@i#1#2{%
+ \let\newrefsection\relax
+ \let\newrefsegment\relax
+ \ifblank{#2}
+ {\csuse{blx@head@#1}}
+ {\csuse{blx@head@#1}[#2]}%
+ \let\newrefsection\blx@newrefsection
+ \let\newrefsegment\blx@newrefsegment}
+
+\def\blx@bibnote#1{%
+ \ifdefempty#1
+ {}
+ {\begingroup
+ \let\newrefsection\relax
+ \let\newrefsegment\relax
+ \noindent
+ \csuse{blx@note@#1}\par\nobreak
+ \endgroup}}
+
+\def\blx@bibinit{%
+ \iftoggle{blx@citation}
+ {}
+ {\toggletrue{blx@bibliography}}%
+ \blx@blxinit
+ \blx@resetdata
+ \csuse{blx@hook@bbxinit}%
+ \bibsetup\bibfont
+ \blx@setsfcodes
+ \csuse{blx@bibsetup}}
+
+% {<entrykey>}
+\def\blx@lengthitem#1{%
+ \blx@ifdata{#1}
+ {\begingroup
+ \blx@getdata{#1}%
+ \blx@bibcheck
+ \iftoggle{blx@skipentry}{}{%
+ \iftoggle{blx@labelnumber}
+ {\blx@bbl@locallabelnumberwidth}
+ {}%
+ \iftoggle{blx@labelalpha}
+ {\blx@bbl@locallabelalphawidth}
+ {}%
+ \nottoggle{blx@skipbiblist}
+ {\blx@bbl@locallabelfields}
+ {}}%
+ \endgroup}
+ {}}
+
+% {<entrykey>}
+% output a bib item, this is why \blx@thelabelnumber is here so that
+% labelnumber is deferred if defernumbers=true
+\def\blx@bibitem#1{%
+ \blx@ifdata{#1}
+ {\begingroup
+ \blx@getdata{#1}%
+ \blx@bibcheck
+ \iftoggle{blx@skipentry}{}{%
+ \blx@setdefaultrefcontext{#1}%
+ \global\let\blx@noitem\@empty
+ \blx@setoptions@type\abx@field@entrytype
+ \blx@setoptions@entry
+ \blx@thelabelnumber
+ \addtocounter{instcount}\@ne
+ \csuse{blx@item@\blx@theenv}\relax
+ \blx@initsep
+ \blx@namesep
+ \csuse{blx@hook@bibitem}%
+ \blx@execute
+ \blx@initunit
+ \blx@anchor
+ \blx@beglangbib
+ \bibsentence
+ \blx@pagetracker
+ \blx@driver\abx@field@entrytype
+ \blx@postpunct
+ \blx@endlangbib}%
+ \endgroup}
+ {}}
+
+\let\blx@bibcheck\relax
+
+\def\blx@edef@refcontext#1{%
+ \edef\blx@refcontext@context{#1}%
+ \expandafter\edef\expandafter\blx@refcontext@context\expandafter{%
+ \expandafter\detokenize\expandafter{\blx@refcontext@context}}}
+
+\def\blx@xdef@refcontext#1{%
+ \edef\blx@refcontext@context{#1}%
+ \expandafter\xdef\expandafter\blx@refcontext@context\expandafter{%
+ \expandafter\detokenize\expandafter{\blx@refcontext@context}}}
+
+
+% This sets and saves to the .aux the default refcontext for an entry. The
+% default refcontext for an entry is the refcontext of the last
+% bibliography in the refsection in which it is actually printed. This
+% allows citations to default to selecting data from the correct
+% bibliography list in standard cases where entries are not listed in
+% multiple bibliographies
+\def\blx@setdefaultrefcontext#1{%
+ \ifbool{refcontextdefaults}
+ {\blx@rerun@latex}%
+ {}%
+ \ifinlistcs{#1}{blx@defaultrefcontexts@\the\c@refsection}
+ {}
+ {\listcsgadd{blx@defaultrefcontexts@\the\c@refsection}{#1}}%
+ \csxdef{blx@assignedrefcontextbib@\the\c@refsection @#1}{\blx@refcontext@context}}
+% <refsection><key><refcontext>
+\def\abx@aux@defaultrefcontext#1#2#3{%
+ \global\boolfalse{refcontextdefaults}%
+ \csxdef{blx@assignedrefcontextbib@#1@#2}{\detokenize{#3}}}
+\def\abx@aux@refcontextdefaultsdone{%
+ \global\boolfalse{refcontextdefaults}}
+% \abx@aux@defaultlabelprefix is a dummy only used by BibTeX to implement a
+% simple labelprefix not based on full refcontexts, which BibTeX does not
+% support.
+\let\abx@aux@defaultlabelprefix\@gobblethree
+
+\AtEndDocument{%
+ % write the .aux to say we don't need to re-run to consume refcontext defaults
+ \ifbool{refcontextdefaults}
+ {}
+ {\blx@auxwrite\@mainaux{}{\string\abx@aux@refcontextdefaultsdone}}%
+ % always add default refcontext declarations to .aux after biber run
+ \iftoggle{blx@bbldone}
+ {\def\do#1{%
+ \begingroup
+ \def\do##1{%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@defaultrefcontext{#1}{##1}{\csuse{blx@assignedrefcontextbib@#1@##1}}}}%
+ \dolistcsloop{blx@defaultrefcontexts@#1}%
+ \endgroup}
+ \dolistloop\blx@allrefsections}
+ {}}
+
+\def\blx@initsep{%
+ \blx@imc@iffieldundef{sortinithash}
+ {}
+ {\ifnum\c@instcount>\@ne
+ \blx@imc@iffieldequals{sortinithash}\blx@previnithash
+ {}
+ {\addvspace{\bibinitsep}}%
+ \fi
+ \global\let\blx@previnithash\abx@field@sortinithash}}
+
+\def\blx@namesep{%
+ \ifnum\c@instcount>\@ne
+ \blx@imc@iffieldequals{fullhash}\blx@prevhash
+ {}
+ {\addvspace{\bibnamesep}}%
+ \fi
+ \global\let\blx@prevhash\abx@field@fullhash}
+
+\newrobustcmd*{\AtBeginBibliography}{\gappto\blx@hook@bibinit}
+\newrobustcmd*{\AtEveryBibitem}{\gappto\blx@hook@bibitem}
+\@onlypreamble\AtBeginBibliography
+\@onlypreamble\AtEveryBibitem
+
+\def\blx@imc@UseBibitemHook{\csuse{blx@hook@bibitem}}
+
+\blx@regimcs{\UseBibitemHook}
+
+\newrobustcmd*{\AtNextBibliography}{%
+ \ifundef\blx@hook@bibinit@next
+ {\gdef\blx@hook@bibinit@next{\global\undef\blx@hook@bibinit@next}}
+ {}%
+ \gappto\blx@hook@bibinit@next}
+
+% page tracker
+\def\blx@pagetracker@context{%
+ \blx@leavevmode
+ \ifbool{@filesw}
+ {\ifbool{pagetracker}
+ {\protected@write\@mainaux{}{%
+ \iftoggle{blx@footnote}
+ {\string\abx@aux@fnpage}
+ {\string\abx@aux@page}%
+ {\the\c@instcount}{\noexpand\the\c@page}}}
+ {}}
+ {}}
+
+% {<instcount>}{<page>}
+\protected\def\blx@aux@page#1#2{%
+ \csgdef{blx@page@#1}{#2}%
+ \blx@addpagesum{#1}{#2}}
+\protected\def\blx@aux@spread#1#2{%
+ \ifodd#2\relax
+ \csxdef{blx@page@#1}{\number\numexpr#2-1}%
+ \else
+ \csgdef{blx@page@#1}{#2}%
+ \fi
+ \blx@addpagesum{#1}{#2}}
+
+\protected\def\blx@aux@fnpage#1#2{%
+ \csgdef{blx@fnpage@#1}{#2}%
+ \blx@addpagesum{#1}{#2}}
+\protected\def\blx@aux@fnspread#1#2{%
+ \ifodd#2\relax
+ \csxdef{blx@fnpage@#1}{\number\numexpr#2-1}%
+ \else
+ \csgdef{blx@fnpage@#1}{#2}%
+ \fi
+ \blx@addpagesum{#1}{#2}}
+
+\AtEndDocument{%
+ \def\abx@aux@page#1#2{\blx@addpagesum{#1}{#2}}%
+ \def\abx@aux@fnpage#1#2{\blx@addpagesum{#1}{#2}}}
+
+% hyperref interface
+\appto\blx@mkhyperref{%
+ \let\blx@anchors\@empty
+ \ifundef\hyper@natanchorstart
+ {\protected\def\blx@anchor{%
+ \xifinlist{\the\c@refsection @\abx@field@entrykey}{\blx@anchors}
+ {}
+ {\listxadd\blx@anchors{\the\c@refsection @\abx@field@entrykey}%
+ \hypertarget{cite.\the\c@refsection @\abx@field@entrykey}{}}}}
+ {\protected\def\blx@anchor{%
+ \xifinlist{\the\c@refsection @\abx@field@entrykey}{\blx@anchors}
+ {}
+ {\listxadd\blx@anchors{\the\c@refsection @\abx@field@entrykey}%
+ \hyper@natanchorstart{\the\c@refsection @\abx@field@entrykey}%
+ \hyper@natanchorend}}}}
+
+\appto\blx@mknohyperref{\let\blx@anchor\relax}
+
+\define@key{blx@biblist2}{driver}{\blx@key@driver{#1}}
+\define@key{blx@biblist1}{driver}{}
+
+\def\blx@key@driver#1{%
+ \def\blx@thebiblistdriver{#1}}
+
+% Custom bibliography list
+% [<otions>]{biblistname}
+\newrobustcmd*{\printbiblist}[2][]{%
+ \begingroup
+ \delimcontext{biblist}%
+ \edef\on@line{\on@line}%
+ \toggletrue{blx@tempa}%
+ \toggletrue{blx@tempb}%
+ \def\blx@theheading{biblist}% default to biblist heading
+ \def\blx@theenv{#2}% default to list name
+ \def\blx@thebiblist{#2}%
+ \def\blx@thebiblistdriver{#2}%
+ \def\blx@thebiblistfilter{#2}%
+ \let\blx@theprenote\@empty
+ \let\blx@thepostnote\@empty
+ \let\blx@thetitle\@empty
+ % defaults
+ \let\blx@tempa\@empty% before there is a .bbl, this must not be undef
+ % default sorting template and template name for list is same name as list
+ % name, then current context if not found
+ \edef\blx@tempc{%
+ \ifcsdef{blx@sortingtemplate@#2}
+ {#2}
+ {\blx@refcontext@sortingtemplatename}}%
+ % locally define this since we want to fetch data from the datalist named
+ % after the list we are printing rather than the data in refcontext list
+ % Note that the name must be unique so we prepend "#2:" because the combination of
+ % options might not generate a unique name since sortschemename has a fallback to the
+ % refcontext scheme if there is no sortscheme named after the list
+ \blx@edef@refcontext{#2:\blx@tempc/%
+ \blx@refcontext@sortingnamekeytemplatename/%
+ \blx@refcontext@labelprefix/%
+ \blx@refcontext@uniquenametemplatename/%
+ \blx@refcontext@labelalphanametemplatename}%
+ \xifinlist\blx@tempc\blx@sortingtemplatenames
+ {}
+ {\listxadd\blx@sortingtemplatenames\blx@tempc}%
+ \let\blx@printbibchecks\relax
+ \edef\blx@tempe{\the\c@refsection}% default refsection is current
+ \blx@safe@actives
+ \blx@printbibchecks
+ % Add the sortingtemplate to the list of sortingtemplates for this biblist
+ % so we can compare on next run
+ \xifinlist\blx@tempc\blx@biblists
+ {}
+ {\listxadd\blx@biblists\blx@tempc}%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@biblist{\blx@tempc}}%
+ \setkeys{blx@biblist1}{#1}% Set section only, if present ...
+ \blx@rest@actives
+ \ifcsvoid{blx@dlist@list@\blx@tempe @\blx@refcontext@context}
+ {}
+ {\letcs\blx@tempa{blx@dlist@list@\blx@tempe @\blx@refcontext@context}}%
+ \blx@safe@actives
+ \setkeys{blx@biblist2}{#1}% ... now we have correct \blx@tempa, set rest of options
+ \ifundef\blx@bibcheck
+ {\ifcsdef{blx@bibcheck@#2}
+ {\letcs\blx@bibcheck{blx@bibcheck@#2}}
+ {}}
+ {}%
+ \blx@rest@actives
+ % Add datalist to list of seen datalists to prevent duplicates
+ \xifinlist{\blx@refcontext@context @\blx@tempe @list}\blx@dlistnames
+ {}
+ {\listxadd\blx@dlistnames{\blx@refcontext@context @\blx@tempe @list}%
+ \xappto\blx@dlists{%
+ \blx@xml@dlist{\blx@refcontext@context}{list}{\blx@tempe}{\blx@xml@dlist@refcontext{\blx@tempc}{\blx@refcontext@sortingnamekeytemplatename}{\blx@refcontext@labelprefix@real}{\blx@refcontext@uniquenametemplatename}{\blx@refcontext@labelalphanametemplatename}}{\csuse{blx@biblistfilters@\blx@thebiblistfilter}}}}%
+ \ifdefvoid\blx@tempa
+ {\blx@warn@biblistempty{#2}\endgroup}
+ {\blx@biblist\blx@tempa}}
+
+\def\blx@printbibchecks{%
+ \togglefalse{blx@tempa}%
+ \iftoggle{blx@defernumbers}
+ {\global\let\blx@printbibchecks\relax}
+ {\iftoggle{blx@labelnumber}
+ {}
+ {\global\let\blx@printbibchecks\relax}}}
+
+% {<entrykey>,...}
+\def\blx@biblist#1{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \blx@langstrings
+ \blx@bibheading\blx@theheading\blx@thetitle
+ \blx@bibnote\blx@theprenote
+ \begingroup
+ \blx@bibinit
+ \let\@noitemerr\@empty
+ \def\blx@noitem{\blx@warn@biblistempty{\blx@thebiblist}}%
+ \abx@locallabelwidth{#1}%
+ \csuse{blx@env@\blx@theenv}%
+ \csuse{blx@hook@biblistinit@\blx@thebiblist}%
+ \let\blx@do\blx@biblistitem
+ \let\blx@done\blx@endbiblist
+ \blx@listloop{#1}}
+
+\def\blx@endbiblist{%
+ \csuse{blx@endenv@\blx@theenv}%
+ \blx@noitem
+ \endgroup
+ \blx@bibnote\blx@thepostnote
+ \endgroup
+ \if@restonecol\twocolumn\fi}
+
+% {<biblistname>}
+\newrobustcmd*{\AtBeginBiblist}[1]{\csgappto{blx@hook@biblistinit@#1}}
+\newrobustcmd*{\AtEveryBiblistitem}[1]{\csgappto{blx@hook@biblistitem@#1}}
+\@onlypreamble\AtBeginBiblist
+\@onlypreamble\AtEveryBiblistitem
+
+% {<entrykey>}
+\def\blx@biblistitem#1{%
+ \blx@ifdata{#1}
+ {\begingroup
+ \blx@getdata{#1}%
+ \blx@bibcheck
+ \iftoggle{blx@skipentry}{}{%
+ \blx@setdefaultrefcontext{#1}%
+ \global\let\blx@noitem\@empty
+ \blx@setoptions@type\abx@field@entrytype
+ \blx@setoptions@entry
+ \addtocounter{instcount}\@ne
+ \csuse{blx@item@\blx@theenv}\relax
+ \csuse{blx@hook@biblistitem@\blx@thebiblist}%
+ \blx@execute
+ \blx@initunit
+ \blx@beglangbib
+ \bibsentence
+ \blx@pagetracker
+ \blx@driver{\blx@thebiblistdriver}%
+ \blx@postpunct
+ \blx@endlangbib}%
+ \endgroup}
+ {}}
+
+% Just a default in case .bbx doesn't define it. standard.bbx defines
+% it to print a complete entry, like the bibliography.
+\DeclareBibliographyDriver{shorthand}{%
+ \iffieldundef{shorttitle}
+ {\printfield{title}}
+ {\printfield{shorttitle}}}
+
+% Reference contexts
+\newcommand*{\DeclareRefcontext}[2]{%
+ \csgdef{blx@refcontext@name@#1}{#2}}
+\@onlypreamble\DeclareRefcontext
+
+\def\newrefcontext{%
+ \endrefcontext
+ \refcontext}
+
+% Backwards compat for older \refcontext[] format
+\def\refcontext{%
+ \@ifnextchar[%]
+ {\refcontext@i}
+ {\refcontext@i[]}}
+
+\def\refcontext@i[#1]{%
+ \@ifnextchar\bgroup
+ {\refcontext@ii[#1]}
+ {\refcontext@ii[#1]{}}}
+
+\newcommand*{\refcontext@ii}[2][]{%
+ \iftoggle{blx@refcontext}
+ {\blx@err@nestenv{refcontext}%
+ \endrefcontext}
+ {\toggletrue{blx@refcontext}%
+ % Set refcontext from named refcontext, if given
+ \ifblank{#2}
+ {}
+ {\edef\z{%
+ \noexpand\setkeys{blx@refcontext}{\csuse{blx@refcontext@name@#2}}}%
+ \z}%
+ % Override with explicit refcontext keyvals, if given
+ \setkeys{blx@refcontext}{#1}%
+ % Add the sortingtemplate to the list of sortingtemplates so we can track
+ % special cases like sorting=none which need cite order change detection
+ \xifinlist\blx@refcontext@sortingtemplatename\blx@sortingtemplatenames
+ {}
+ {\listxadd\blx@sortingtemplatenames\blx@refcontext@sortingtemplatename}%
+ \blx@xdef@refcontext{%
+ \blx@refcontext@sortingtemplatename/%
+ \blx@refcontext@sortingnamekeytemplatename/%
+ \blx@refcontext@labelprefix/%
+ \blx@refcontext@uniquenametemplatename/%
+ \blx@refcontext@labelalphanametemplatename}%
+ % Add the refcontext to the list of refcontexts so we can compare on next run
+ \xifinlist\blx@refcontext@context\blx@refcontexts
+ {}
+ {\listxadd\blx@refcontexts\blx@refcontext@context}%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@refcontext{\blx@refcontext@context}}%
+ \ifcsundef{blx@sortingtemplate@\blx@refcontext@sortingtemplatename}
+ {\blx@err@invopt{sorting=\blx@refcontext@sortingtemplatename}{}}
+ {}%
+ \ifcsundef{blx@sortingnamekeytemplate@\blx@refcontext@sortingnamekeytemplatename}
+ {\blx@err@invopt{sortingnamekeytemplate=\blx@refcontext@sortingnamekeytemplatename}{}}
+ {}%
+ \ifcsundef{blx@uniquenametemplate@\blx@refcontext@uniquenametemplatename}
+ {\blx@err@invopt{uniquenametemplate=\blx@refcontext@uniquenametemplatename}{}}
+ {}%
+ \ifcsundef{blx@labelalphanametemplate@\blx@refcontext@labelalphanametemplatename}
+ {\blx@err@invopt{labelalphanametemplate=\blx@refcontext@labelalphanametemplatename}{}}
+ {}}}
+
+% Reset to global sorting etc. when we leave a ref context (since they can't be nested)
+\protected\def\endrefcontext{%
+ \togglefalse{blx@refcontext}%
+ \global\let\blx@refcontext@labelprefix\@empty
+ \global\let\blx@refcontext@labelprefix@real\@empty
+ \xdef\blx@refcontext@sortingtemplatename{\blx@sorting}%
+ \gdef\blx@refcontext@sortingnamekeytemplatename{global}%
+ \gdef\blx@refcontext@uniquenametemplatename{global}%
+ \gdef\blx@refcontext@labelalphanametemplatename{global}%
+ \blx@xdef@refcontext{%
+ \blx@refcontext@sortingtemplatename/%
+ \blx@refcontext@sortingnamekeytemplatename/%
+ /%
+ \blx@refcontext@uniquenametemplatename/%
+ \blx@refcontext@labelalphanametemplatename}}
+
+% Meta option to set all name template options
+\define@key{blx@refcontext}{nametemplates}{%
+ \gdef\blx@refcontext@sortingnamekeytemplatename{#1}%
+ \gdef\blx@refcontext@uniquenametemplatename{#1}%
+ \gdef\blx@refcontext@labelalphanametemplatename{#1}}
+
+\define@key{blx@refcontext}{sorting}{\gdef\blx@refcontext@sortingtemplatename{#1}}
+\define@key{blx@refcontext}{sortingnamekeytemplatename}{\gdef\blx@refcontext@sortingnamekeytemplatename{#1}}
+\define@key{blx@refcontext}{uniquenametemplatename}{\gdef\blx@refcontext@uniquenametemplatename{#1}}
+\define@key{blx@refcontext}{labelalphanametemplatename}{\gdef\blx@refcontext@labelalphanametemplatename{#1}}
+
+% labelprefix cannot be used as is because it is used to construct the internal
+% refcontext name which is referenced/expanded a lot all over the place. So,
+% we hash the given input and use the safe hash as internal name.
+% But that is not enough since the MD5 hash function expands the argument all
+% the way and so unexpandable content like \dag breaks.
+% Unexpandable content should be protected with \detokenize.
+\define@key{blx@refcontext}{labelprefix}{%
+ \xdef\blx@refcontext@labelprefix{\blx@mdfivesum{#1}}%
+ \gdef\blx@refcontext@labelprefix@real{#1}%
+ \iftoggle{blx@defernumbers}
+ {}%
+ {\iftoggle{blx@labelnumber}
+ {\blx@warning{%
+ Option 'labelprefix' requires global\MessageBreak
+ 'defernumbers=true'}}
+ {}}}
+
+% [refcontext keys]{<keyword1>,<keyword2>,...}
+\newcommand*{\assignrefcontextkeyws}{%
+ \@ifstar
+ {\blx@assignrefcontextkeyws[*]}
+ {\blx@assignrefcontextkeyws[]}}
+
+\def\blx@assignrefcontextkeyws[#1][#2]#3{%
+ \edef\blx@tempa{\blx@sorting}%
+ \def\blx@tempb{global}%
+ \let\blx@tempc\@empty%
+ \def\blx@tempd{global}%
+ \def\blx@tempe{global}%
+ \setkeys{blx@assignrefcontext}{#2}%
+ \def\do##1{%
+ \listxadd\blx@assignedrefcontextkeywlist{##1}%
+ \csxdef{blx@assignedrefcontextkeyws#1@\the\c@refsection @##1}%
+ {\blx@tempa/\blx@tempb/\blx@tempc/\blx@tempd/\blx@tempe}}%
+ \docsvlist{#3}}
+
+% [refcontext keys]{<category1>,<category2>,...}
+\newcommand*{\assignrefcontextcats}{%
+ \@ifstar
+ {\blx@assignrefcontextcats[*]}
+ {\blx@assignrefcontextcats[]}}
+
+\def\blx@assignrefcontextcats[#1][#2]#3{%
+ \edef\blx@tempa{\blx@sorting}%
+ \def\blx@tempb{global}%
+ \let\blx@tempc\@empty%
+ \def\blx@tempd{global}%
+ \def\blx@tempe{global}%
+ \setkeys{blx@assignrefcontext}{#2}%
+ \def\do##1{%
+ \listxadd\blx@assignedrefcontextcatlist{##1}%
+ \csxdef{blx@assignedrefcontextcats#1@\the\c@refsection @##1}%
+ {\blx@tempa/\blx@tempb/\blx@tempc/\blx@tempd/\blx@tempe}}%
+ \docsvlist{#3}}
+
+% [refcontext keys]{<entrykey1>,<entrykey2>,...}
+\newcommand*{\assignrefcontextentries}{%
+ \@ifstar
+ {\blx@assignrefcontextentries[*]}
+ {\blx@assignrefcontextentries[]}}
+
+\def\blx@assignrefcontextentries[#1][#2]#3{%
+ \edef\blx@tempa{\blx@sorting}%
+ \def\blx@tempb{global}%
+ \let\blx@tempc\@empty%
+ \def\blx@tempd{global}%
+ \def\blx@tempe{global}%
+ \setkeys{blx@assignrefcontext}{#2}%
+ \def\do##1{%
+ \csxdef{blx@assignedrefcontextkeys#1@\the\c@refsection @##1}%
+ {\blx@tempa/\blx@tempb/\blx@tempc/\blx@tempd/\blx@tempe}}%
+ \docsvlist{#3}}
+
+% Meta option to set all name template options
+\define@key{blx@assignrefcontext}{nametemplates}{%
+ \def\blx@tempb{#1}%
+ \def\blx@tempd{#1}%
+ \def\blx@tempe{#1}}
+
+\define@key{blx@assignrefcontext}{sorting}{\def\blx@tempa{#1}}
+\define@key{blx@assignrefcontext}{sortingnamekeytemplatename}{\def\blx@tempb{#1}}
+\define@key{blx@assignrefcontext}{labelprefix}{%
+ \edef\blx@tempc{\blx@mdfivesum{#1}}}
+\define@key{blx@assignrefcontext}{uniquenametemplatename}{\def\blx@tempd{#1}}
+\define@key{blx@assignrefcontext}{labelalphanametemplatename}{\def\blx@tempe{#1}}
+
+% Reference sections
+\newrobustcmd*{\newrefsection}{%
+ \endrefcontext
+ \ifnum\c@refsection>\z@
+ \endrefsection
+ \fi
+ \refsection}
+\let\blx@newrefsection\newrefsection
+
+\newrobustcmd*{\refsection}{%
+ \begingroup
+ \edef\on@line{\on@line}%
+ \ifnum\c@refsection>\z@
+ \blx@err@nestenv{refsection}%
+ \blx@endrefsection
+ \fi
+ \ifnum\c@refsegment>\z@
+ \blx@err@nestenv{refsection}%
+ \blx@endrefsegment
+ \fi
+ \@ifnextchar[%]
+ {\blx@refsection}
+ {\blx@refsection[]}}
+
+\def\blx@refsection{%
+ \begingroup
+ \blx@hook@fileverb
+ \blx@refsection@i}
+
+\def\blx@refsection@i[#1]{%
+ \endgroup
+ \global\advance\blx@maxsection\@ne
+ \global\c@refsection\blx@maxsection
+ \xifinlist{\the\c@refsection}\blx@allrefsections
+ {}
+ {\listxadd\blx@allrefsections{\the\c@refsection}}%
+ \ifcsdef{blx@defaultrefcontexts@\the\c@refsection}
+ {}
+ {\global\cslet{blx@defaultrefcontexts@\the\c@refsection}\@empty}%
+ \expandafter\newcount\csname blx@maxsegment@\the\c@refsection\endcsname
+ \expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname
+ \blx@inf@refsec
+ \blx@secinit
+ \if@filesw
+ \blx@auxwrite\@mainaux{}{%
+ \string\abx@aux@refsection{\the\c@refsection}{\the\c@page}}%
+ \ifblank{#1}
+ {}
+ {\let\blx@bibfiles\@empty
+ % globals should be first as it might contain macros needed for others
+ \forlistloop{\listadd\blx@bibfiles}\blx@bibfiles@global}%
+ \blx@xsanitizeafter{\forcsvlist\blx@refsection@addfile}{#1}%
+ \blx@refsection@ii
+ \fi
+ \blx@info{Setting label 'refsection:\the\c@refsection'}%
+ \label{refsection:\the\c@refsection}%
+ \endgroup}
+
+\def\blx@refsection@addfile#1{%
+ \ifcsdef{blx@res@labl@#1}
+ {\blx@refsection@addfile@i{\csuse{blx@res@labl@#1}}}
+ {\blx@refsection@addfile@i{#1}}}
+
+\def\blx@refsection@addfile@i#1{%
+ \ifcsdef{blx@res@loca@#1}
+ {\listeadd\blx@bibfiles{#1}}
+ {\listeadd\blx@bibfiles{\blx@stripbib{#1}\detokenize{.bib}}}}
+
+\def\blx@refsection@ii{%
+ \blx@regbibfiles\jobname\blx@bibfiles
+ \begingroup
+ \let\blx@tempa\@empty
+ \blx@bibdata\blx@tempa\blx@bibfiles
+ \blx@auxwrite\blx@bcfout
+ {\let\do\blx@datasource}
+ {\blx@xml@endsection\blx@nl
+ \blx@xml@comment{SECTION \the\c@refsection}%
+ \blx@xml@bibdata{\the\c@refsection}{\blx@tempa}%
+ \blx@xml@section{\the\c@refsection}}%
+ \endgroup}
+
+\protected\def\endrefsection{%
+ \endrefcontext
+ \blx@endrefsection
+ \blx@inf@refsec}
+
+\def\blx@endrefsection{%
+ \blx@endrefsegment
+ % make sure we always output aliases to the .bcf otherwise after their
+ % first resolution by biber, they will be invisible to subsequent biber
+ % runs since biblatex will resolve the \keyalias{} macro to the main
+ % entry key, biber won't put \keyalias{}in the .bbl on subsequent runs
+ % and biblatex will report a missing citekey
+ \def\do##1{%
+ % Make sure this counter exists. Sometimes it might not when using, e.g:
+ % refsection=chapter and \includeonly to put in the chapters or when
+ % inserting citations into table of contents
+ \ifcscounter{blx@sectionciteorder@\the\c@refsection}
+ {}
+ {\expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname}%
+ \global\advance\csname blx@sectionciteorder@\the\c@refsection\endcsname\@ne
+ \blx@auxwrite\blx@bcfout{}{\blx@xml@citekey{##1}{}{\expandafter\the\csname blx@sectionciteorder@\the\c@refsection\endcsname}}}%
+ \dolistcsloop{blx@keyaliases@\the\c@refsection}%
+ \ifnum\c@refsection>\z@
+ \blx@auxwrite\blx@bcfout{}{%
+ \blx@xml@endsection\blx@nl
+ \blx@xml@comment{SECTION 0 (cont.)}%
+ \blx@xml@section{0}}%
+ \fi
+ \global\c@refsection\z@}
+
+\AtEndDocument{%
+ \endrefcontext
+ \blx@endrefsection
+ \def\abx@aux@refsection#1#2{\blx@addchecksum{#1}{#2}}}
+
+\protected\def\abx@aux@refsection#1#2{%
+ \ifnum#1>\blx@maxsection
+ \global\blx@maxsection#1\relax
+ \fi
+ \blx@addchecksum{#1}{#2}}
+
+% Reference segments
+\newrobustcmd*{\newrefsegment}{%
+ \ifnum\c@refsegment>\z@
+ \blx@endrefsegment
+ \fi
+ \refsegment}
+\let\blx@newrefsegment\newrefsegment
+
+\newrobustcmd*{\refsegment}{%
+ \ifnum\c@refsegment>\z@
+ \blx@err@nestenv{refsegment}%
+ \blx@endrefsegment
+ \fi
+ \global\advance\csname blx@maxsegment@\the\c@refsection\endcsname\@ne
+ \global\c@refsegment\csname blx@maxsegment@\the\c@refsection\endcsname
+ \blx@inf@refseg
+ \blx@info{Setting label 'refsegment:\the\c@refsection\the\c@refsegment'}%
+ \label{refsegment:\the\c@refsection\the\c@refsegment}%
+ \ifcsundef{blx@segm@\the\c@refsection @\the\c@refsegment}
+ {\global\cslet{blx@segm@\the\c@refsection @\the\c@refsegment}\@empty}
+ {}}
+
+\protected\def\endrefsegment{%
+ \blx@endrefsegment
+ \blx@inf@refseg}
+
+\def\blx@endrefsegment{%
+ \global\c@refsegment\z@}
+
+% Reference section/segment auto-reset
+% we are prepending to the commands so that the resets happen before
+% the part title is typeset otherwise \cites in there could be "ibid"
+% which makes no sense
+
+% option switch
+%{<option level counter>}{<patch>}{<pre>}{<post>}
+\def\blx@patchsection@switch#1#2#3#4{%
+ \AtEndPreamble{%
+ #3%
+ \ifcase#1
+ \or % 1: part
+ \blx@refpatch@part{#2}%
+ \or % 2: chapter
+ \blx@refpatch@chapter{#2}%
+ \or % 3: section
+ \blx@refpatch@sect{section}{#2}{1}%
+ \or % 4: subsection
+ \blx@refpatch@sect{subsection}{#2}{2}%
+ \or % 5: chapter+ = part, chapter
+ \blx@refpatch@part{#2}%
+ \blx@refpatch@chapter{#2}%
+ \or % 6: section+ = part, chapter, section
+ \blx@refpatch@part{#2}%
+ \ifundef\chapter
+ {}
+ {\blx@refpatch@chapter{#2}}%
+ \blx@refpatch@sect{section}{#2}{1}%
+ \or % 7: subsection+ = part, chapter, section, subsection
+ \blx@refpatch@part{#2}%
+ \ifundef\chapter
+ {}
+ {\blx@refpatch@chapter{#2}}%
+ \blx@refpatch@sect{section}{#2}{1}%
+ \blx@refpatch@sect{subsection}{#2}{2}%
+ \fi
+ #4%
+ }%
+}
+
+%% Patching all the different document classes and their sectioning
+%% commands is ... messy at best
+%% For now we do the big three: (1) Standard classes, (2) KOMA-Script
+%% and (3) memoir.
+%%
+%% Timing of the patch can be tricky.
+%% Ideally we want the code to be executed when all counters have
+%% been increased so the labels attach to the right thing, but
+%% at the same time we want the code to be executed before the heading
+%% is typeset so it already applies to the text in the heading.
+%% Bonus points for actually executing the code on the correct page.
+
+%% memoir has hooks for section headings that we can use here
+%% see 18.25 'Heading Hooks' of the manual (v3.7h, 2018/12/12)
+%% they are in a good position, when the counters have been
+%% increased but heading text not yet typeset.
+%% The manual suggests this hooks have been around since 2005 or so,
+%% so we take them for granted.
+
+%% Newer versions of KOMA-Script (>=3.27) (will) have a hook system
+%% that we can use for that purpose as well.
+%% This is fairly new, so we need to have a fallback for older versions.
+
+%% The standard classes are tricky. They have no good hooks and just
+%% for sections at least \pretocmd-ing executes the code before
+%% counters are increased, so the labels attach to the wrong thing.
+
+%% Test for correct KOMA patch method
+% KOMA 3.27 has \AddtoDoHook
+\newcommand*{\blx@ifkoma@AddtoDoHook}{%
+ \ifboolexpr{not test {\ifcsundef{KOMAClassName}}
+ and not test {\ifcsundef{AddtoDoHook}}}}
+
+% KOMA 3.26 has \startsection@secnumdepth for some testing
+\newcommand*{\blx@ifkoma@startsection}{%
+ \ifboolexpr{not test {\ifcsundef{KOMAClassName}}
+ and not test {\ifcsundef{startsection@secnumdepth}}}}
+
+\newcommand*{\blx@ifmemoir}{\@ifclassloaded{memoir}}
+
+% Note that \ExecuteDoHook always feeds an argument to the code, here that is
+% going to be an empty group, which we explicitly gobble to avoid trouble.
+\def\blx@refpatch@koma@AddtoDoHook#1#2{%
+ \AddtoDoHook{heading/begingroup/#1}{#2\@gobble}}
+
+% \part
+\def\blx@refpatch@part@memoir#1{%
+ \apptocmd\mempartinfo{#1}
+ {}{\blx@err@patch{\string\mempartinfo}}%
+ \apptocmd\mempartstarinfo{#1}
+ {}{\blx@err@patch{\string\mempartstarinfo}}}
+
+\def\blx@refpatch@part@std#1{%
+ \toggletrue{blx@tempa}%
+ \def\do##1{%
+ \pretocmd##1{#1}
+ {\togglefalse{blx@tempa}\listbreak}
+ {}}%
+ \docsvlist{%
+ \H@old@part,% hyperref
+ \NR@part,% nameref
+ \@part}% latex/koma-script/memoir
+ \iftoggle{blx@tempa}
+ {\blx@err@patch{\string\@part}}
+ {}%
+ \let\do\noexpand}
+
+\def\blx@refpatch@part#1{%
+ \ifundef\part
+ {\blx@err@nodocdiv{part}}
+ {\blx@ifkoma@AddtoDoHook
+ {\blx@refpatch@koma@AddtoDoHook{part}{#1}}
+ {\blx@ifmemoir
+ {\blx@refpatch@part@memoir{#1}}
+ {\blx@refpatch@part@std{#1}}}}}
+
+% \chapter
+\def\blx@refpatch@chapter@memoir#1{%
+ \apptocmd\memchapinfo{#1}
+ {}{\blx@err@patch{\string\memchapinfo}}%
+ \apptocmd\memchapstarinfo{#1}
+ {}{\blx@err@patch{\string\memchapstarinfo}}}
+
+\def\blx@refpatch@chapter@std#1{%
+ \pretocmd\@makechapterhead{#1}
+ {}
+ {\blx@err@patch{\string\@makechapterhead}}
+ \pretocmd\@makeschapterhead{#1}
+ {}
+ {\blx@err@patch{\string\@makeschapterhead}}}
+
+\def\blx@refpatch@chapter#1{%
+ \ifundef\chapter
+ {\blx@err@nodocdiv{chapter}}
+ {\blx@ifkoma@AddtoDoHook
+ {\blx@refpatch@koma@AddtoDoHook{chapter}{#1}}
+ {\blx@ifmemoir
+ {\blx@refpatch@chapter@memoir{#1}}
+ {\blx@refpatch@chapter@std{#1}}}}}
+
+% \section, \subsection
+% {<section csname>}{<precode>}{<section level number>}
+\def\blx@refpatch@sect#1#2#3{%
+ \ifcsundef{#1}
+ {\blx@err@nodocdiv{#1}\@gobbletwo}
+ {\blx@ifkoma@AddtoDoHook
+ {\blx@refpatch@koma@AddtoDoHook{#1}{#2}}
+ {\blx@ifkoma@startsection
+ {\blx@refpatch@sect@koma@startsection{#2}{#3}}
+ {\blx@ifmemoir
+ {\blx@refpatch@sect@memoir{#1}{#2}}
+ {\blx@refpatch@sect@std{#2}{#3}}}}}}
+
+% KOMA >= 3.26 defines \startsection@secnumdepth to check the sectioning level,
+% so we can now use \At@startsection.
+% Starting from 3.27 we use AddtoDoHook, so this is a short-lived
+% intermezzo.
+\def\blx@refpatch@sect@koma@startsection#1#2{%
+ \At@startsection{\ifnumequal{\startsection@secnumdepth}{#2}{#1}{}}}
+
+\edef\blx@refpatch@sect@memoir#1#2{%
+ \apptocmd\noexpand\memsecinfo
+ {\noexpand\blx@refpatch@sect@memoir@i{\string#1}{#1}{#2}}
+ {}{\noexpand\blx@err@patch{\string\memsecinfo}}%
+ \apptocmd\noexpand\memsecstarinfo
+ {\noexpand\blx@refpatch@sect@memoir@i{\string#1}{#1}{#2}}
+ {}{\noexpand\blx@err@patch{\string\memsecstarinfo}}}
+
+\def\blx@refpatch@sect@memoir@i#1#2#3{%
+ \ifstrequal{#1}{#2}{#3}{}}
+
+\edef\blx@refpatch@sect@std#1#2{%
+ \def\noexpand\do##1{%
+ \pretocmd##1%
+ {\noexpand\blx@refpatch@sect@std@i{#1}{#2}{\string#2}}
+ {\togglefalse{blx@tempa}\noexpand\listbreak}
+ {}}%
+ \noexpand\blx@refpatch@sect@std@ii}
+
+\def\blx@refpatch@sect@std@i#1#2#3{%
+ \ifnumequal{#2}{#3}{#1}{}}
+
+\def\blx@refpatch@sect@std@ii{%
+ \toggletrue{blx@tempa}%
+ \docsvlist{% order does matter:
+ \H@old@sectm@m,% memoir+hyperref (what a mess...)
+ \M@sect,% memoir
+ \H@old@sect,% hyperref
+ \NR@sect,% nameref
+ \scr@sect,% koma-script 3.x
+ \scr@startsection,% bad hack for koma 3.15 <= v <= 3.25
+ \@startsection}% latex
+ \iftoggle{blx@tempa}
+ {\blx@err@patch{\string\@sect}}
+ {}%
+ \let\do\noexpand}
+
+% Bibliography categories
+
+\let\blx@categories\@empty
+
+% {<category>}
+\newrobustcmd*{\DeclareBibliographyCategory}[1]{%
+ \ifcsundef{blx@catg@#1}
+ {\global\cslet{blx@catg@#1}\@empty
+ \listgadd\blx@categories{#1}}
+ {\blx@error
+ {Category '#1' already declared}
+ {The bibliography category '#1'\MessageBreak
+ has already been declared}}}
+\@onlypreamble\DeclareBibliographyCategory
+
+% {<category>}{<entrykey>,...}
+\newrobustcmd*{\addtocategory}[2]{%
+ \ifcsundef{blx@catg@#1}
+ {\blx@error
+ {Category '#1' not declared}
+ {Use \string\DeclareBibliographyCategory\space to declare}}
+ {\AfterPreamble{%
+ \blx@xsanitizeafter{\forcsvlist{\blx@addtocategory{#1}}}{#2}}}}
+
+% {<category>}{<entrykey>,...}
+\def\blx@addtocategory#1#2{%
+ % If we are adding a set member to a category, make sure we also add the
+ % set parent if it is cited. If it is cited, we should be using the set
+ % parent in the category, not the set child member. blx@setc@... will
+ % only exist if the set parent is also cited as it is only defined when a
+ % member contains \inset which only happens when the set parent is cited.
+ \ifcsdef{blx@setc@\the\c@refsection @#2}
+ {\blx@auxwrite\@mainaux{}{\string\abx@aux@category{#1}{\csuse{blx@setc@\the\c@refsection @#2}}}%
+ \abx@aux@category{#1}{\csuse{blx@setc@\the\c@refsection @#2}}}
+ {}%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@category{#1}{#2}}%
+ \abx@aux@category{#1}{#2}}
+
+% {<category>}{<entrykey>,...}
+\protected\def\abx@aux@category#1#2{%
+ \xifinlistcs{\detokenize{#2}}{blx@catg@#1}
+ {}
+ {\listcsxadd{blx@catg@#1}{\detokenize{#2}}}}
+
+\AtEndDocument{\let\abx@aux@category\@gobbletwo}
+
+% [<options>]{<resource>,...}
+\renewrobustcmd*{\bibliography}[1]{%
+ \begingroup
+ \def\blx@tempa{file}%
+ \def\blx@tempb{bibtex}%
+ \def\blx@tempc{local}%
+ \undef\blx@tempd
+ \let\blx@tempe\@empty
+ \blx@xsanitizeafter{\forcsvlist\blx@addbib@legacy}{#1}%
+ \endgroup}
+\@onlypreamble\bibliography
+
+\def\blx@addbib@legacy#1{%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \noexpand\blx@addbib@resource{\blx@stripbib{#1}\detokenize{.bib}}}%
+ \blx@tempa}
+
+\def\blx@stripbib#1{%
+ \expandafter\blx@stripbib@i\detokenize{#1.bib}&}
+\edef\blx@stripbib@i{%
+ \def\noexpand\blx@stripbib@i##1\detokenize{.bib}##2&}
+\blx@stripbib@i{#1}
+
+% [<options>]{<resource>,...}
+\newrobustcmd*{\addbibresource}{%
+ \blx@addbib\blx@addbib@resource}
+\@onlypreamble\addbibresource
+
+\newrobustcmd*{\addglobalbib}{%
+ \blx@addbib\blx@addbib@global}
+\@onlypreamble\addglobalbib
+
+\newrobustcmd*{\addsectionbib}{%
+ \blx@addbib\blx@addbib@register}
+\@onlypreamble\addsectionbib
+
+\def\blx@addbib#1{%
+ \@ifnextchar[%]
+ {\blx@addbib@i{#1}}
+ {\blx@addbib@i{#1}[]}}
+
+\def\blx@addbib@i#1[#2]{%
+ \begingroup
+ \blx@hook@fileverb
+ \blx@addbib@ii{#1}{#2}}
+
+\def\blx@addbib@ii#1#2#3{%
+ \endgroup
+ \begingroup
+ \def\blx@tempa{file}%
+ \def\blx@tempb{bibtex}%
+ \def\blx@tempc{local}%
+ \undef\blx@tempd
+ \let\blx@tempe\@empty
+ \setkeys{blx@addbib}{#2}%
+ \blx@xsanitizeafter{#1}{#3}%
+ \endgroup}
+
+\def\blx@hook@fileverb{%
+ \let\do\@makeother
+ \dospecials
+ \catcode`\\=\z@
+ \catcode`\{=\@ne
+ \catcode`\}=\tw@}
+
+\define@key{blx@addbib}{type}{\def\blx@tempa{#1}}
+\define@key{blx@addbib}{datatype}{\def\blx@tempb{#1}}
+\define@key{blx@addbib}{location}{\def\blx@tempc{#1}}
+\define@key{blx@addbib}{label}{\edef\blx@tempd{\detokenize{#1}}}
+\define@key{blx@addbib}{bibencoding}{\def\blx@tempe{#1}}
+
+% \blx@res@type@<resource> resource -> type
+% \blx@res@data@<resource> resource -> datatype
+% \blx@res@loca@<resource> resource -> datatype
+% \blx@res@labl@<resource> label -> resource
+
+\def\blx@addbib@register#1{%
+ \csxdef{blx@res@type@#1}{\blx@tempa}%
+ \csxdef{blx@res@data@#1}{\blx@tempb}%
+ \csxdef{blx@res@loca@#1}{\blx@tempc}%
+ \csxdef{blx@res@bibencoding@#1}{\blx@tempe}%
+ \ifdef\blx@tempd
+ {\csxdef{blx@res@labl@\blx@tempd}{#1}}
+ {}}
+
+\def\blx@addbib@resource#1{%
+ \blx@addbib@register{#1}%
+ \listgadd\blx@bibfiles{#1}%
+ \blx@regbibfile\jobname{#1}}
+
+\def\blx@addbib@global#1{%
+ \blx@addbib@resource{#1}%
+ \listgadd\blx@bibfiles@global{#1}}
+
+\let\blx@bibfiles\@empty
+\let\blx@bibfiles@global\@empty
+
+\def\blx@bibdata#1#2{%
+ \forlistloop{\blx@bibdata@i{#1}}#2}
+\def\blx@bibdata@i#1#2{%
+ \blx@xmlsanitizeafter{\blx@bibdata@ii{#1}{#2}}{#2}}
+\def\blx@bibdata@ii#1#2#3{%
+ \eappto#1{%
+ \blx@xml@datasource
+ {\ifcsdef{blx@res@type@#2}
+ {\csuse{blx@res@type@#2}}
+ {file}}
+ {\ifcsdef{blx@res@data@#2}
+ {\csuse{blx@res@data@#2}}
+ {bibtex}}
+ {\ifcsvoid{blx@res@bibencoding@#2}
+ {}
+ { encoding="\csuse{blx@res@bibencoding@#2}"}}
+ {#3}}}
+
+%% Citations
+
+\newrobustcmd*{\AtEveryCite}{\gappto\blx@hook@cite}
+\newrobustcmd*{\AtEveryCitekey}{\gappto\blx@hook@citekey}
+\newrobustcmd*{\AtEveryMultiCite}{\gappto\blx@hook@mcite}
+\@onlypreamble\AtEveryCite
+\@onlypreamble\AtEveryCitekey
+\@onlypreamble\AtEveryMultiCite
+
+\newrobustcmd*{\AtEachCitekey}{%
+ \iftoggle{blx@citation}{\appto\blx@hook@citekey}{\@gobble}}
+
+\def\blx@imc@UseEveryCiteHook{\csuse{blx@hook@cite}}
+\def\blx@imc@UseEveryCitekeyHook{\csuse{blx@hook@citekey}}
+\def\blx@imc@UseEveryMultiCiteHook{\csuse{blx@hook@mcite}}
+
+\newrobustcmd*{\AtNextCite}{%
+ \ifundef\blx@hook@cite@next
+ {\gdef\blx@hook@cite@next{\global\undef\blx@hook@cite@next}}
+ {}%
+ \gappto\blx@hook@cite@next}
+
+\newrobustcmd*{\AtNextCitekey}{%
+ \ifundef\blx@hook@citekey@next
+ {\gdef\blx@hook@citekey@next{\global\undef\blx@hook@citekey@next}}
+ {}%
+ \gappto\blx@hook@citekey@next}
+
+\newrobustcmd*{\AtNextMultiCite}{%
+ \ifundef\blx@hook@mcite@next
+ {\gdef\blx@hook@mcite@next{\global\undef\blx@hook@mcite@next}}
+ {}%
+ \gappto\blx@hook@mcite@next}
+
+\def\blx@imc@UseNextCiteHook{\csuse{blx@hook@cite@next}}
+\def\blx@imc@UseNextCitekeyHook{\csuse{blx@hook@citekey@next}}
+\def\blx@imc@UseNextMultiCiteHook{\csuse{blx@hook@mcite@next}}
+
+\def\blx@imc@DeferNextCitekeyHook{\undef\blx@hook@citekey@next}
+
+\blx@regimcs{%
+ \UseEveryCiteHook \UseEveryCitekeyHook \UseEveryMultiCiteHook
+ \UseNextCiteHook \UseNextCitekeyHook \UseNextMultiCiteHook
+ \DeferNextCitekeyHook}
+
+% {<style>}
+
+\newrobustcmd*{\RequireCitationStyle}[1]{%
+ \blx@inputonce{#1.cbx}{citation style '#1'}{}{}{}
+ {\blx@error
+ {Style '#1' not found}
+ {The citation style '#1' could not be found}}}
+\@onlypreamble\RequireCitationStyle
+
+% {<code>}
+
+\newrobustcmd*{\InitializeCitationStyle}{\appto\blx@hook@cbxinit}
+\@onlypreamble\InitializeCitationStyle
+
+% {<code>}
+
+\newrobustcmd*{\OnManualCitation}{\appto\blx@hook@mancite}
+\@onlypreamble\OnManualCitation
+
+\newrobustcmd*{\mancite}{%
+ \csuse{blx@hook@mancite}%
+ \blx@ibidreset
+ \blx@idemreset
+ \blx@opcitreset
+ \blx@loccitreset}
+
+% {<entrykey>}{<message>}
+% Wrapper to track cite keys which are \nocited
+\def\blx@nocitation#1#2{%
+ \ifinlist{#1}\blx@nocites
+ {}
+ {\listgadd\blx@nocites{#1}}%
+ \blx@citation@i{#1}{#2}}
+
+% {<entrykey>}{<message>}
+% Just a wrapper to suppress citation tracking in toc/lof etc.
+\def\blx@citation#1#2{%
+ \ifinlist{#1}\blx@directcites
+ {}
+ {\listgadd\blx@directcites{#1}}%
+ \blx@citation@i{#1}{#2}}
+
+\def\blx@citation@i#1#2{%
+ \ifbool{citerequest}
+ {\blx@citation@entry{#1}{#2}}
+ {}}
+
+\def\blx@citation@entry#1#2{%
+ \blx@bibreq{#1}%
+ \ifinlist{#1}\blx@cites
+ {}
+ {\listgadd{\blx@cites}{#1}}%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@cite{#1}}%
+ \ifinlistcs{#1}{blx@segm@\the\c@refsection @\the\c@refsegment}
+ {}
+ {\listcsgadd{blx@segm@\the\c@refsection @\the\c@refsegment}{#1}}%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@segm{\the\c@refsection}%
+ {\the\c@refsegment}%
+ {\detokenize{#1}}}%
+ \blx@ifdata{#1}
+ {}
+ {\ifcsdef{blx@miss@\the\c@refsection}
+ {\ifinlistcs{#1}{blx@miss@\the\c@refsection}
+ {}
+ {\blx@logreq@active{#2{#1}}}}
+ {\blx@logreq@active{#2{#1}}}}}
+
+\protected\def\abx@aux@segm#1#2#3{%
+ \xifinlistcs{\detokenize{#3}}{blx@segm@#1@#2}
+ {}
+ {\listcsxadd{blx@segm@#1@#2}{\detokenize{#3}}}}
+
+\def\blx@nocitation@all{%
+ \ifinlist{*}\blx@nocites
+ {}
+ {\listgadd\blx@nocites{*}}%
+ \blx@citation@all}
+
+\def\blx@citation@all{%
+ \ifbool{citerequest}
+ {\blx@bibreq{*}%
+ \global\csletcs
+ {blx@segm@\the\c@refsection @\the\c@refsegment}
+ {blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}%
+ \ifcsvoid{blx@dlist@entry@\the\c@refsection @\blx@refcontext@context}
+ {\blx@logreq@active{}}
+ {}}
+ {}}
+
+\protected\def\blx@bibreq#1{%
+ \begingroup
+ \blx@xmlsanitizeafter{\def\blx@tempa}{#1}%
+ \let\blx@tempb\@empty
+ % Only output as \nocited if a key wasn't also directly \cite'd
+ % Since citekey output is sequential as cites are read, the .bcf might contain
+ % duplicate keys with differring nocite attributes if \nocite{X} and \cite{X} both occur
+ % but biber deals with this and priorities \cites
+ \ifboolexpr{test {\ifinlist{#1}\blx@nocites}
+ and
+ not test {\ifinlist{#1}\blx@directcites}}
+ {\def\blx@tempb{ nocite="1"}}
+ {}%
+ % citeall is always order "0" - this makes no real difference as biber
+ % ignores all other citekeys in the section if citeall is present
+ \ifstrequal{*}{#1}
+ {\blx@auxwrite\blx@bcfout{}{\blx@xml@citekey{\blx@tempa}{\blx@tempb}{0}}}
+ {\blx@auxwrite\blx@bcfout{}{\blx@xml@citekey{\blx@tempa}{\blx@tempb}{\expandafter\the\csname blx@sectionciteorder@\the\c@refsection\endcsname}}}%
+ \endgroup}
+
+% {<set>}{<key1,key2,key3>}
+
+\newrobustcmd*{\defbibentryset}[2]{%
+ \@bsphack
+ \begingroup
+ \blx@xsanitizeafter{\def\blx@tempa}{#1}%
+ \let\blx@tempb\@empty
+ \let\blx@tempc\@empty
+ \blx@xsanitizeafter{\forcsvlist\blx@defentryset@add}{#2}%
+ \ifcsdef{blx@set@\the\c@refsection @\blx@tempa}
+ {\expandafter\ifdefequal
+ \csname blx@set@\the\c@refsection @\blx@tempa\endcsname
+ \blx@tempb
+ {}
+ {\blx@error
+ {Conflicting definitions of '\blx@tempa'}
+ {The entry set '\blx@tempa' has been defined before.%
+ \MessageBreak
+ old: \blx@tempa\space = %
+ \csuse{blx@set@\the\c@refsection @\blx@tempa}\MessageBreak
+ new: \blx@tempa\space = \blx@tempb\MessageBreak
+ I'm ignoring the new definition}}}
+ {\global\cslet{blx@set@\the\c@refsection @\blx@tempa}\blx@tempb
+ \edef\blx@tempa{%
+ \AfterPreamble{\blx@setreq{\blx@tempa}{\blx@tempb}}}%
+ \blx@tempa}%
+ \endgroup
+ \@esphack}
+
+\def\blx@defentryset@add#1{%
+ \edef\blx@tempb{\blx@tempb\blx@tempc#1}%
+ \def\blx@tempc{,}}
+
+\protected\def\blx@setreq#1#2{%
+ \begingroup
+ \blx@xmlsanitizeafter{\def\blx@tempa}{#1}%
+ \blx@xmlsanitizeafter{\def\blx@tempb}{#2}%
+ \blx@auxwrite\blx@bcfout{}{\blx@xml@citeset{\blx@tempa}{\blx@tempb}}%
+ \endgroup}
+
+% {<entrykey>,...}
+\protected\def\blx@citeloop#1{%
+ \expandafter\blx@citeloop@i\expandafter{\detokenize{#1}}}
+\protected\def\blx@citeloop@i#1{%
+ \begingroup
+ % This must be here and not after \blx@citeadd as this changes the refcontext
+ \letcs\blx@tempb{blx@dlist@centry@\the\c@refsection @\blx@refcontext@context}%
+ \ifundef\blx@tempb
+ {\let\blx@tempb\@empty}
+ {}%
+ % Make sure this counter exists. Sometimes it might not when using, e.g:
+ % refsection=chapter and \includeonly to put in the chapters or when
+ % inserting citations into table of contents
+ \ifcscounter{blx@sectionciteorder@\the\c@refsection}
+ {}
+ {\expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname}%
+ \global\advance\csname blx@sectionciteorder@\the\c@refsection\endcsname\@ne
+ \blx@tempcnta\z@
+ \blx@tempcntb\z@
+ \let\blx@tempa\@empty
+ \forcsvlist\blx@citeadd{#1}% adds to \blx@tempa
+ \blx@thenotecheck
+ \ifnum\blx@tempcnta>\z@
+ \ifnum\blx@tempcntb>\z@
+ \multicitedelim
+ \fi
+ \else
+ \blx@postpunct@saved
+ \fi
+ % \blx@tempb is a sorted list of all cites, \blx@tempa is the list of cites to
+ % sort using this list
+ \blx@thecitesort
+ \edef\blx@tempa{\endgroup
+ \c@citecount\z@
+ \c@citetotal\the\blx@tempcnta\relax
+ \unexpanded{\forlistloop\blx@citeprint}{\blx@tempb}}%
+ \blx@tempa}
+
+\def\blx@notecheck{%
+ \ifnum\blx@tempcnta>\@ne
+ \blx@warning{%
+ Package option 'sortcites' enabled.\MessageBreak
+ Verify postnote placement}%
+ \fi}
+
+\def\blx@citesort{%
+ \ifnum\blx@tempcnta>\@ne
+ \blx@filtercitesort\blx@tempb{blx@tempa}%
+ \else
+ \blx@citenosort
+ \fi}
+
+\def\blx@citenosort{%
+ \let\blx@tempb\blx@tempa}
+
+\def\abx@missing@entry#1{%
+ \abx@missing{#1}}
+
+% {<entrykey>}
+\def\blx@citeadd#1{%
+ \ifcsdef{blx@keyalias@\the\c@refsection @#1}
+ {\edef\blx@realkey{\csuse{blx@keyalias@\the\c@refsection @#1}}}
+ {\def\blx@realkey{#1}}%
+ \expandafter\blx@getrefcontext\expandafter{\blx@realkey}% needed for \ifdata
+ \expandafter\blx@citation\expandafter{\blx@realkey}\blx@msg@cundefon
+ \expandafter\blx@ifdata\expandafter{\blx@realkey}
+ {\advance\blx@tempcnta\@ne
+ \listeadd\blx@tempa{\blx@realkey}}
+ {\ifnum\blx@tempcntb>\z@\multicitedelim\fi
+ \expandafter\abx@missing@entry\expandafter{\blx@realkey}%
+ \advance\blx@tempcntb\@ne}}
+
+% set default refcontext for one citation key
+% and then override with data from auto-assign \assignrefcontext* macros, if any
+% <entrykey>
+\def\blx@getrefcontext#1{%
+ % Save refcontext for restoration at end of \citeprint
+ \let\blx@refcontext@context@saved\blx@refcontext@context
+ % Get the default refcontext
+ % If there was one due to appearance in a bib/biblist, use it
+ % otherwise fall back on global refcontext. This can happen for cites
+ % made (a bit strangely but some styles do this) inside a biblist
+ % which never appear in any printed bib/biblist and therefore have no default
+ % refcontext defined
+ \ifcsdef{blx@assignedrefcontextbib@\the\c@refsection @#1}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextbib@\the\c@refsection @#1}}
+ {\blx@edef@refcontext{\blx@sorting/global//global/global}}%
+ % assignment via keyword list
+ \ifdef\blx@assignedrefcontextkeywlist
+ {\def\do##1{%
+ \blx@imc@ifentrykeyword{#1}{##1}
+ {% weak version
+ \ifboolexpr{test {\ifcsdef{blx@assignedrefcontextkeyws*@\the\c@refsection @##1}}
+ and
+ not togl {blx@refcontext}}% inside explicit non-global refcontext
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeyws*@\the\c@refsection @##1}}
+ {}%
+ % strong version
+ \ifcsdef{blx@assignedrefcontextkeyws@\the\c@refsection @##1}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeyws@\the\c@refsection @##1}}
+ {}}
+ {}}%
+ \dolistloop\blx@assignedrefcontextkeywlist}
+ {}%
+ % assignment via category
+ \ifdef\blx@assignedrefcontextcatlist
+ {\def\do##1{%
+ \blx@imc@ifentrycategory{#1}{##1}
+ {% weak version
+ \ifboolexpr{test {\ifcsdef{blx@assignedrefcontextcats*@\the\c@refsection @##1}}
+ and
+ not togl {blx@refcontext}}% inside explicit non-global refcontext
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextcats*@\the\c@refsection @##1}}
+ {}%
+ % strong version
+ \ifcsdef{blx@assignedrefcontextcats@\the\c@refsection @##1}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextcats@\the\c@refsection @##1}}
+ {}}
+ {}}%
+ \dolistloop\blx@assignedrefcontextcatlist}
+ {}%
+ % assignment via entrykeys
+ % weak version
+ \nottoggle{blx@refcontext}
+ {\ifcsdef{blx@assignedrefcontextkeys*@\the\c@refsection @*}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys*@\the\c@refsection @*}}
+ {\ifcsdef{blx@assignedrefcontextkeys*@\the\c@refsection @#1}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys*@\the\c@refsection @#1}}
+ {}}}
+ {}%
+ % strong version
+ \ifcsdef{blx@assignedrefcontextkeys@\the\c@refsection @*}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys@\the\c@refsection @*}}
+ {\ifcsdef{blx@assignedrefcontextkeys@\the\c@refsection @#1}
+ {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys@\the\c@refsection @#1}}
+ {}}}
+
+% {<entrykey>}
+\protected\def\blx@citeprint#1{%
+ \blx@getrefcontext{#1}%
+ \advance\c@citecount\@ne
+ \addtocounter{instcount}\@ne
+ \ifnum\c@citecount=\@ne
+ \blx@getdata@cite{#1}%
+ \blx@precode
+ \ifnum\c@citetotal>\@ne
+ \blx@resetdata
+ \fi
+ \else
+ \blx@dlimcode
+ \fi
+ \begingroup
+ \ifnum\c@citetotal>\@ne
+ \blx@getdata@cite{#1}%
+ \fi
+ \blx@entrysetcount
+ \blx@setoptions@type\abx@field@entrytype
+ \blx@setoptions@entry
+ \blx@backref{#1}%
+ \blx@pagetracker
+ \csuse{blx@hook@citekey}%
+ \csuse{blx@hook@citekey@next}%
+ \blx@beglangcite
+ \blx@execute
+ \blx@loopcode
+ \blx@citecounter
+ \blx@citetracker
+ \blx@ibidtracker
+ \blx@idemtracker
+ \blx@opcittracker
+ \blx@loccittracker
+ \ifnum\c@citecount=\c@citetotal
+ \def\blx@thecheckpunct{\blx@err@nestcite\@gobble}%
+ \blx@postcode
+ \blx@postpunct@saved
+ \fi
+ \blx@endlangcite
+ \endgroup
+ \let\blx@refcontext@context\blx@refcontext@context@saved}
+
+% cite counter
+\def\blx@citecounter@global{%
+ \ifbool{@filesw}
+ {\ifbool{citetracker}
+ {\immediate\write\@mainaux{%
+ \string\abx@aux@count
+ {\the\c@refsection}{\abx@field@entrykey}}}
+ {}}
+ {}}
+
+\def\blx@citecounter@context{%
+ \ifbool{@filesw}
+ {\ifbool{citetracker}
+ {\immediate\write\@mainaux{%
+ \iftoggle{blx@footnote}
+ {\string\abx@aux@fncount}
+ {\string\abx@aux@count}%
+ {\the\c@refsection}{\abx@field@entrykey}}}
+ {}}
+ {}}
+
+% {<refsection>}{<entrykey>}
+% set maxcitecounter as well, note that we also define a maxcitecounter across
+% all refsections, but that does not have a high-level interface
+\protected\def\blx@aux@count#1#2{%
+ \csnumgdef{blx@count@#1@\detokenize{#2}}{%
+ \csuse{blx@count@#1@\detokenize{#2}}+1}%
+ \ifnumgreater{\csuse{blx@count@#1@\detokenize{#2}}}{%
+ 0\csuse{blx@maxcitecounter@#1}}
+ {\csnumgdef{blx@maxcitecounter@#1}{%
+ \csuse{blx@count@#1@\detokenize{#2}}}}
+ {}%
+ \ifnumgreater{\csuse{blx@count@#1@\detokenize{#2}}}{%
+ 0\csuse{blx@maxcitecounter}}
+ {\csnumgdef{blx@maxcitecounter}{%
+ \csuse{blx@count@#1@\detokenize{#2}}}}
+ {}}
+
+\protected\def\blx@aux@fncount#1#2{%
+ \csnumgdef{blx@fncount@#1@\detokenize{#2}}{%
+ \csuse{blx@fncount@#1@\detokenize{#2}}+1}%
+ \ifnumgreater{\csuse{blx@fncount@#1@\detokenize{#2}}}{%
+ 0\csuse{blx@maxfncitecounter@#1}}
+ {\csnumgdef{blx@maxfncitecounter@#1}{%
+ \csuse{blx@fncount@#1@\detokenize{#2}}}}
+ {}%
+ \ifnumgreater{\csuse{blx@fncount@#1@\detokenize{#2}}}{%
+ 0\csuse{blx@maxfncitecounter}}
+ {\csnumgdef{blx@maxfncitecounter}{%
+ \csuse{blx@fncount@#1@\detokenize{#2}}}}
+ {}}
+
+\let\abx@aux@count\@gobbletwo
+\let\abx@aux@fncount\@gobbletwo
+
+\AtEndDocument{%
+ \let\abx@aux@count\@gobbletwo
+ \let\abx@aux@fncount\@gobbletwo}
+
+\protected\def\blx@setcitecounter@global{%
+ \c@citecounter0%
+ \csuse{blx@count@\the\c@refsection @\abx@field@entrykey}%
+ \relax
+ \c@maxcitecounter0%
+ \csuse{blx@maxcitecounter@\the\c@refsection}%
+ \relax}
+
+\protected\def\blx@setcitecounter@context{%
+ \c@citecounter0%
+ \iftoggle{blx@footnote}
+ {\csuse{blx@fncount@\the\c@refsection @\abx@field@entrykey}}
+ {\csuse{blx@count@\the\c@refsection @\abx@field@entrykey}}%
+ \relax
+ \c@maxcitecounter0%
+ \iftoggle{blx@footnote}
+ {\csuse{blx@maxfncitecounter@\the\c@refsection}}
+ {\csuse{blx@maxcitecounter@\the\c@refsection}}%
+ \relax}
+
+% cite tracker
+\def\blx@citetracker@global{%
+ \ifbool{citetracker}
+ {\xifinlistcs\abx@field@entrykey{blx@bsee@\the\c@refsection}
+ {}
+ {\listcsxadd{blx@bsee@\the\c@refsection}\abx@field@entrykey}}
+ {}}
+
+\def\blx@citetracker@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\xifinlistcs\abx@field@entrykey{blx@fsee@\the\c@refsection}
+ {}
+ {\listcsxadd{blx@fsee@\the\c@refsection}\abx@field@entrykey}}
+ {\xifinlistcs\abx@field@entrykey{blx@bsee@\the\c@refsection}
+ {}
+ {\listcsxadd{blx@bsee@\the\c@refsection}\abx@field@entrykey}}}
+ {}}
+
+\protected\appto\abx@savetrackers{%
+ \global\csletcs{blx@saved@bsee@\the\c@refsection}{blx@bsee@\the\c@refsection}%
+ \global\csletcs{blx@saved@fsee@\the\c@refsection}{blx@fsee@\the\c@refsection}}
+
+\protected\appto\abx@resttrackers{%
+ \global\csletcs{blx@bsee@\the\c@refsection}{blx@saved@bsee@\the\c@refsection}%
+ \global\csletcs{blx@fsee@\the\c@refsection}{blx@saved@fsee@\the\c@refsection}}
+
+\protected\appto\abx@cleartrackers{%
+ \global\cslet{blx@saved@bsee@\the\c@refsection}\@empty
+ \global\cslet{blx@saved@fsee@\the\c@refsection}\@empty}
+
+% ibidem tracker
+\def\blx@ibidtracker@global{%
+ \ifbool{citetracker}
+ {\global\let\blx@lastkey@text\abx@field@entrykey}
+ {}}
+
+\def\blx@ibidtracker@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\global\let\blx@lastkey@foot\abx@field@entrykey}
+ {\global\let\blx@lastkey@text\abx@field@entrykey}}
+ {}}
+
+\def\blx@ibidtracker@strict{%
+ \blx@ifcitesingle
+ {\blx@ibidtracker@global}
+ {\blx@ibidreset@global}}%
+
+\def\blx@ibidtracker@constrict{%
+ \blx@ifcitesingle
+ {\blx@mpfnsave
+ \blx@ibidtracker@context}
+ {\blx@ibidreset@context}}%
+
+\def\blx@ibidreset@force{%
+ \global\undef\blx@lastkey@text
+ \global\undef\blx@lastkey@foot
+ \blx@mpfnreset}
+
+\def\blx@ibidreset@global{%
+ \global\undef\blx@lastkey@text}
+
+\def\blx@ibidreset@context{%
+ \iftoggle{blx@footnote}
+ {\blx@mpfnreset
+ \global\undef\blx@lastkey@foot}
+ {\global\undef\blx@lastkey@text}}
+
+\protected\appto\abx@savetrackers{%
+ \global\let\blx@saved@lastkey@text\blx@lastkey@text
+ \global\let\blx@saved@lastkey@foot\blx@lastkey@foot}
+
+\protected\appto\abx@resttrackers{%
+ \global\let\blx@lastkey@text\blx@saved@lastkey@text
+ \global\let\blx@lastkey@foot\blx@saved@lastkey@foot}
+
+\protected\appto\abx@cleartrackers{%
+ \global\undef\blx@saved@lastkey@text
+ \global\undef\blx@saved@lastkey@foot}
+
+% idem tracker
+\def\blx@idemtracker@global{%
+ \ifbool{citetracker}
+ {\global\let\blx@lasthash@text\abx@field@fullhash}
+ {}}
+
+\def\blx@idemtracker@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\global\let\blx@lasthash@foot\abx@field@fullhash}
+ {\global\let\blx@lasthash@text\abx@field@fullhash}}
+ {}}
+
+\let\blx@idemtracker@strict\blx@idemtracker@global
+
+\def\blx@idemtracker@constrict{%
+ \blx@mpfnsave
+ \blx@idemtracker@context}
+
+\def\blx@idemreset@force{%
+ \global\undef\blx@lasthash@text
+ \global\undef\blx@lasthash@foot
+ \blx@mpfnreset}
+
+\def\blx@idemreset@global{%
+ \global\undef\blx@lasthash@text}
+
+\def\blx@idemreset@context{%
+ \iftoggle{blx@footnote}
+ {\blx@mpfnreset
+ \global\undef\blx@lasthash@foot}
+ {\global\undef\blx@lasthash@text}}
+
+\protected\appto\abx@savetrackers{%
+ \global\let\blx@saved@lasthash@text\blx@lasthash@text
+ \global\let\blx@saved@lasthash@text\blx@lasthash@text}
+
+\protected\appto\abx@resttrackers{%
+ \global\let\blx@lasthash@text\blx@saved@lasthash@text
+ \global\let\blx@lasthash@text\blx@saved@lasthash@text}
+
+\protected\appto\abx@cleartrackers{%
+ \global\undef\blx@saved@lasthash@text
+ \global\undef\blx@saved@lasthash@foot}
+
+% opcit tracker
+\def\blx@opcittracker@global{%
+ \ifbool{citetracker}
+ {\blx@opcit@tracker{text}}
+ {}}
+
+\def\blx@opcittracker@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@opcit@tracker{foot}}
+ {\blx@opcit@tracker{text}}}
+ {}}
+
+\def\blx@opcittracker@strict{%
+ \blx@ifcitesingle
+ {\blx@opcittracker@global}
+ {\blx@opcitreset@global}}%
+
+\def\blx@opcittracker@constrict{%
+ \blx@ifcitesingle
+ {\blx@mpfnsave
+ \blx@opcittracker@context}
+ {\blx@opcitreset@context}}%
+
+\def\blx@opcit@tracker#1{%
+ \blx@imc@iffieldundef{namehash}
+ {}
+ {\global\cslet{blx@lastkey@#1@\abx@field@namehash}\abx@field@entrykey
+ \xifinlistcs\abx@field@namehash{blx@trackhash@#1}
+ {}
+ {\listcsxadd{blx@trackhash@#1}\abx@field@namehash}}}
+
+\def\blx@opcit@reset#1{%
+ \begingroup
+ \def\do##1{\global\csundef{blx@lastkey@#1@##1}}%
+ \dolistcsloop{blx@trackhash@#1}%
+ \global\cslet{blx@trackhash@#1}\@empty
+ \endgroup}
+
+\def\blx@opcitreset@force{%
+ \blx@opcit@reset{text}%
+ \blx@opcit@reset{foot}%
+ \blx@mpfnreset}
+
+\def\blx@opcitreset@global{%
+ \blx@opcit@reset{text}}
+
+\def\blx@opcitreset@context{%
+ \iftoggle{blx@footnote}
+ {\blx@opcit@reset{foot}%
+ \blx@mpfnreset}
+ {\blx@opcit@reset{text}}}
+
+\let\blx@trackhash@text\@empty
+\let\blx@trackhash@foot\@empty
+
+\protected\appto\abx@savetrackers{%
+ \begingroup
+ \def\do#1{\global\csletcs{blx@saved@lastkey@text@#1}{blx@lastkey@text@#1}}%
+ \dolistloop\blx@trackhash@text
+ \global\let\blx@saved@trackhash@text\blx@trackhash@text
+ \def\do#1{\global\csletcs{blx@saved@lastkey@foot@#1}{blx@lastkey@foot@#1}}%
+ \dolistloop\blx@trackhash@foot
+ \global\let\blx@saved@trackhash@foot\blx@trackhash@foot
+ \endgroup}
+
+\protected\appto\abx@resttrackers{%
+ \begingroup
+ \blx@opcit@reset{text}%
+ \global\let\blx@trackhash@text\blx@saved@trackhash@text
+ \def\do#1{\global\csletcs{blx@lastkey@text@#1}{blx@saved@lastkey@text@#1}}%
+ \dolistloop\blx@trackhash@text
+ \blx@opcit@reset{foot}%
+ \global\let\blx@trackhash@foot\blx@saved@trackhash@foot
+ \def\do#1{\global\csletcs{blx@lastkey@foot@#1}{blx@saved@lastkey@foot@#1}}%
+ \dolistloop\blx@trackhash@foot
+ \endgroup}
+
+\protected\appto\abx@cleartrackers{%
+ \begingroup
+ \def\do#1{\global\csundef{blx@saved@lastkey@text@#1}}%
+ \dolistloop\blx@saved@trackhash@text
+ \global\undef\blx@saved@trackhash@text
+ \def\do#1{\global\csundef{blx@saved@lastkey@foot@#1}}%
+ \dolistloop\blx@saved@trackhash@foot
+ \global\undef\blx@saved@trackhash@foot
+ \endgroup}
+
+% loccit tracker
+\def\blx@loccittracker@global{%
+ \ifbool{citetracker}
+ {\blx@loccit@tracker{text}}
+ {}}
+
+\def\blx@loccittracker@context{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@loccit@tracker{foot}}
+ {\blx@loccit@tracker{text}}}
+ {}}
+
+\def\blx@loccittracker@strict{%
+ \ifbool{citetracker}
+ {\blx@loccit@stricttracker{text}}
+ {}}
+
+\def\blx@loccittracker@constrict{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@mpfnsave
+ \blx@loccit@stricttracker{foot}}
+ {\blx@loccit@stricttracker{text}}}
+ {}}
+
+\def\blx@loccit@tracker#1{%
+ \global\csundef{blx@lastnote@#1@\abx@field@entrykey}%
+ \blx@imc@iffieldundef{postnote}
+ {}
+ {\global\cslet{blx@lastnote@#1@\abx@field@entrykey}\abx@field@postnote
+ \xifinlistcs\abx@field@entrykey{blx@trackkeys@#1}
+ {}
+ {\listcsxadd{blx@trackkeys@#1}\abx@field@entrykey}}}
+
+\def\blx@loccit@stricttracker#1{%
+ \global\csundef{blx@lastnote@#1@\abx@field@entrykey}%
+ \blx@imc@iffieldundef{postnote}
+ {}
+ {\blx@ifcitesingle
+ {\expandafter\blx@imc@ifpages
+ \expandafter{\abx@field@postnote}
+ {\global\cslet{blx@lastnote@#1@\abx@field@entrykey}\abx@field@postnote
+ \xifinlistcs\abx@field@entrykey{blx@trackkeys@#1}
+ {}
+ {\listcsxadd{blx@trackkeys@#1}\abx@field@entrykey}}
+ {}}
+ {}}}
+
+\def\blx@loccit@reset#1{%
+ \begingroup
+ \def\do##1{\global\csundef{blx@lastnote@#1@##1}}%
+ \dolistcsloop{blx@trackkeys@#1}%
+ \global\cslet{blx@trackkeys@#1}\@empty
+ \endgroup}
+
+\def\blx@loccitreset@force{%
+ \blx@loccit@reset{text}%
+ \blx@loccit@reset{foot}%
+ \blx@mpfnreset}
+
+\def\blx@loccitreset@global{%
+ \blx@loccit@reset{text}}
+
+\def\blx@loccitreset@context{%
+ \iftoggle{blx@footnote}
+ {\blx@loccit@reset{foot}%
+ \blx@mpfnreset}
+ {\blx@loccit@reset{text}}}
+
+\let\blx@trackkeys@text\@empty
+\let\blx@trackkeys@foot\@empty
+
+\protected\appto\abx@savetrackers{%
+ \begingroup
+ \def\do#1{\global\csletcs{blx@saved@lastnote@text@#1}{blx@lastnote@text@#1}}%
+ \dolistloop\blx@trackkeys@text
+ \global\let\blx@saved@trackkeys@text\blx@trackkeys@text
+ \def\do#1{\global\csletcs{blx@saved@lastnote@foot@#1}{blx@lastnote@foot@#1}}%
+ \dolistloop\blx@trackkeys@foot
+ \global\let\blx@saved@trackkeys@foot\blx@trackkeys@foot
+ \endgroup}
+
+\protected\appto\abx@resttrackers{%
+ \begingroup
+ \blx@loccit@reset{text}%
+ \global\let\blx@trackkeys@text\blx@saved@trackkeys@text
+ \def\do#1{\global\csletcs{blx@lastnote@text@#1}{blx@saved@lastnote@text@#1}}%
+ \dolistloop\blx@trackkeys@text
+ \blx@loccit@reset{foot}%
+ \global\let\blx@trackkeys@foot\blx@saved@trackkeys@foot
+ \def\do#1{\global\csletcs{blx@lastnote@foot@#1}{blx@saved@lastnote@foot@#1}}%
+ \dolistloop\blx@trackkeys@foot
+ \endgroup}
+
+\protected\appto\abx@cleartrackers{%
+ \begingroup
+ \def\do#1{\global\csundef{blx@saved@lastnote@text@#1}}%
+ \dolistloop\blx@saved@trackkeys@text
+ \global\undef\blx@saved@trackkeys@text
+ \def\do#1{\global\csundef{blx@saved@lastnote@foot@#1}}%
+ \dolistloop\blx@saved@trackkeys@foot
+ \global\undef\blx@saved@trackkeys@foot
+ \endgroup}
+
+\def\blx@addbackref#1{%
+ \ifcsdef{blx@setp@\the\c@refsection @#1}
+ {\ifcase\blx@backrefsetstyle
+ \blx@addbackref@i{#1}%
+ \or
+ \blx@addbackref@ii{setp}{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \blx@addbackref@ii{setp}{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \blx@addbackref@ii{setp}{#1}%
+ \fi}
+ {\ifcsdef{blx@setc@\the\c@refsection @#1}
+ {\ifcase\blx@backrefsetstyle
+ \blx@addbackref@ii{setc}{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \blx@addbackref@ii{setc}{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \or
+ \blx@addbackref@i{#1}%
+ \blx@addbackref@ii{setc}{#1}%
+ \fi}
+ {\blx@addbackref@i{#1}}}}
+
+\def\blx@addbackref@i#1{%
+ \ifbacktracker
+ \blx@leavevmode
+ \if@filesw
+ \protected@write\@mainaux{}{\string\abx@aux@backref
+ {\the\c@instcount}{#1}{\the\c@refsection}%
+ {\thepage}{\noexpand\the\c@page}}%
+ \fi
+ \fi}
+
+\def\blx@addbackref@ii#1#2{%
+ \expandafter\expandafter\expandafter\forcsvlist
+ \expandafter\expandafter\expandafter\blx@addbackref@i
+ \expandafter\expandafter\expandafter{%
+ \csname blx@#1@\the\c@refsection @#2\endcsname}}
+
+% {<instcount>}{<entrykey>}{<refsection>}{<page>}{<page int>}
+\protected\def\blx@aux@backref#1#2#3#4#5{%
+ \ifcsundef{blx@pref@#3@\detokenize{#2}}
+ {\global\cslet{blx@pref@#3@\detokenize{#2}}\@empty
+ \expandafter\blx@onlypreamble\csname blx@pref@#3@\detokenize{#2}\endcsname}
+ {}%
+ \blx@ifprintableinlistcs{#4}{blx@pref@#3@\detokenize{#2}}
+ {}
+ {\listcsgadd{blx@pref@#3@\detokenize{#2}}{#4}}%
+ \blx@addpagesum{#1}{#5}}
+
+\AtEndDocument{%
+ \def\abx@aux@backref#1#2#3#4#5{\blx@addpagesum{#1}{#5}}}
+
+% {<true>}{<false>}
+\def\blx@ifcitesingle{%
+ \ifnum\c@citetotal=\@ne
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+% hyperref interface
+\appto\blx@mkhyperref{%
+ \protected\def\blx@imc@bibhyperref{%
+ \@ifnextchar[%]
+ {\blx@bibhyperref}
+ {\blx@bibhyperref[\abx@field@entrykey]}}%
+ \ifundef\hyper@natanchorstart
+ {\long\def\blx@bibhyperref[#1]#2{%
+ \blx@sfsave\hyperlink{cite.\the\c@refsection @#1}{\blx@sfrest
+ #2%
+ \blx@sfsave}\blx@sfrest}%
+ \protected\long\def\blx@imc@bibhyperlink#1#2{%
+ \blx@sfsave\hyperlink{cite.\the\c@refsection:#1}{\blx@sfrest
+ #2%
+ \blx@sfsave}\blx@sfrest}%
+ \protected\long\def\blx@imc@bibhypertarget#1#2{%
+ \blx@sfsave\hypertarget{cite.\the\c@refsection:#1}{\blx@sfrest
+ #2%
+ \blx@sfsave}\blx@sfrest}}%
+ {\long\def\blx@bibhyperref[#1]#2{%
+ \blx@sfsave\hyper@natlinkstart{\the\c@refsection @#1}\blx@sfrest
+ #2%
+ \blx@sfsave\hyper@natlinkend\blx@sfrest}%
+ \protected\long\def\blx@imc@bibhyperlink#1#2{%
+ \blx@sfsave\hyper@natlinkstart{\the\c@refsection:#1}\blx@sfrest
+ #2%
+ \blx@sfsave\hyper@natlinkend\blx@sfrest}%
+ \protected\long\def\blx@imc@bibhypertarget#1#2{%
+ \blx@sfsave\hyper@natanchorstart{\the\c@refsection:#1}\blx@sfrest
+ #2%
+ \blx@sfsave\hyper@natanchorend\blx@sfrest}}
+ \let\blx@imc@ifhyperref\@firstoftwo
+ \def\blx@sf{\spacefactor}%
+ \def\blx@sfsave{%
+ \blx@leavevmode
+ \numgdef\blx@sf{\spacefactor}}%
+ \def\blx@sfrest{%
+ \ifhmode\spacefactor\blx@sf\relax\fi
+ \gdef\blx@sf{\spacefactor}}}
+
+\appto\blx@mknohyperref{%
+ \protected\def\blx@imc@bibhyperref{\@ifnextchar[\blx@nohyperref\@firstofone}%
+ \def\blx@nohyperref[#1]#2{#2}%
+ \let\blx@imc@bibhyperlink\@secondoftwo
+ \let\blx@imc@bibhypertarget\@secondoftwo
+ \let\blx@imc@ifhyperref\@secondoftwo}
+
+\blx@regimcs{%
+ \bibhyperref \bibhyperlink \bibhypertarget \ifhyperref}
+
+% {<entrykey>,...}
+\protected\def\nocite#{\blx@nocite}
+
+\def\blx@nocite#1{%
+ \@bsphack
+ \AfterPreamble{%
+ \ifstrequal{*}{#1}
+ {\blx@nocitation@all}
+ {\blx@xsanitizeafter{\forcsvlist\blx@nocite@do}{#1}}}%
+ \@esphack}
+
+\def\blx@nocite@do#1{%
+ % Make sure this counter exists. Sometimes it might not when using, e.g:
+ % refsection=chapter and \includeonly to put in the chapters or when
+ % inserting citations into table of contents
+ \ifcscounter{blx@sectionciteorder@\the\c@refsection}
+ {}
+ {\expandafter\newcount\csname blx@sectionciteorder@\the\c@refsection\endcsname}%
+ \global\advance\csname blx@sectionciteorder@\the\c@refsection\endcsname\@ne
+ \blx@nocitation{#1}\blx@msg@cundef}
+
+% {<macro>}[<arg1>][<arg2>]{<arg3>}
+% => <macro>{<arg1>}{<arg2>}{<arg3>}
+\protected\def\blx@citeargs#1{%
+ \@ifnextchar[%]
+ {\blx@citeargs@i{#1}}
+ {\blx@citeargs@iii{#1{}{}}}}
+\long\def\blx@citeargs@i#1[#2]{%
+ \@ifnextchar[%]
+ {\blx@citeargs@ii{#1{#2}}}
+ {\blx@citeargs@iii{#1{}{#2}}}}
+\long\def\blx@citeargs@ii#1[#2]{%
+ \blx@citeargs@iii{#1{#2}}}
+\long\def\blx@citeargs@iii#1#2{%
+ \blx@xsanitizeafter{#1}{#2}}
+
+% {<macro>}(<arg1>)(<arg2>)
+% => <macro>{<arg1>}{<arg2>}
+\protected\def\blx@multiargs#1{%
+ \@ifnextchar(%)
+ {\blx@multiargs@i{#1}}
+ {#1{}{}}}
+\long\def\blx@multiargs@i#1(#2){%
+ \@ifnextchar(%)
+ {\blx@multiargs@ii{#1{#2}}}
+ {#1{}{#2}}}
+\long\def\blx@multiargs@ii#1(#2){#1{#2}}
+
+% {<macro>}[<arg1>][<arg2>]{<arg3>}<punct>
+% => <macro>{<arg1>}{<arg2>}{<arg3>}{<punctcmd>}
+\protected\def\blx@citepunct#1{%
+ \blx@citeargs{\blx@citepunct@i{#1}}}
+\long\def\blx@citepunct@i#1#2#3#4{%
+ \blx@thecheckpunct{#1{#2}{#3}{#4}}}
+
+% {<csname>}[<arg1>][<arg2>]{arg3}[arg4]{arg5}<punct>
+% => <macro>{<arg1>}{<arg2>}{<arg3>}{<arg4>}{arg5}{<punctcmd>}
+\protected\def\blx@citexpunct#1{%
+ \blx@citeargs{\blx@citexpunct@i{#1}}}
+\long\def\blx@citexpunct@i#1#2#3#4{%
+ \@ifnextchar[%]
+ {\blx@citexpunct@ii{#1}{{#2}{#3}{#4}}}
+ {\blx@citexpunct@ii{#1}{{#2}{#3}{#4}}[#1]}}
+\long\def\blx@citexpunct@ii#1#2[#3]#4{%
+ \blx@thecheckpunct{\blxcitecmd{#1}#2{#3}{#4}}}
+
+% {<code>}<punct> => <code>{<punctcmd>}
+\long\def\blx@checkpunct#1{%
+ \begingroup
+ \def\blx@tempa{\endgroup#1}%
+ \futurelet\blx@tempb\blx@checkpunct@i}
+\def\blx@checkpunct@i{%
+ \expandafter\blx@checkpunct@ii\blx@autopunct&}
+\def\blx@checkpunct@ii#1{%
+ \ifx#1&%
+ \expandafter\blx@checkpunct@iii
+ \fi
+ \ifx#1\blx@tempb
+ \expandafter\blx@checkpunct@iv
+ \fi
+ \blx@checkpunct@ii}
+\def\blx@checkpunct@iii#1\blx@checkpunct@ii{%
+ \global\undef\abx@field@postpunct
+ \blx@tempa{\blx@postpunct}}
+\def\blx@checkpunct@iv#1\blx@checkpunct@ii#2&#3{%
+ \gdef\abx@field@postpunct{#3}%
+ \edef\blx@tempa{%
+ \expandonce\blx@tempa{%
+ \ifcsdef{blx@pm@\detokenize{#3}}
+ {\csname blx@imc@add\csname blx@pm@\detokenize{#3}\endcsname
+ \endcsname}
+ {\noexpand#3}}}%
+ \blx@tempa}
+
+\long\def\blx@nocheckpunct#1{#1{}}
+
+\protected\def\blx@citeinit{%
+ \iftoggle{blx@bibliography}
+ {}
+ {\toggletrue{blx@citation}}%
+ \blx@blxinit
+ \blx@langstrings
+ \citesetup
+ \blx@setsfcodes
+ \blx@postpunct@agroup
+ \blx@resetdata
+ \blx@leavevmode
+ \csuse{blx@hook@cite}%
+ \csuse{blx@hook@cite@next}%
+ \let\blx@citeinit\blx@resetdata}
+
+\protected\def\blx@citecmdinit{%
+ \blx@leavevmode@cite
+ \iftoggle{blx@bibliography}
+ {}
+ {\blx@initunit}}
+
+% *{<command>}[<wrapper>]{<precode>}{<loopcode>}{<delimcode>}{<postcode>}
+\newrobustcmd*{\DeclareCiteCommand}{%
+ \@ifstar{\blx@defcitecmd*}{\blx@defcitecmd{}}}
+
+\def\blx@defcitecmd#1#2{%
+ \begingroup
+ \escapechar\m@ne
+ \edef\blx@tempa{\endgroup
+ \noexpand\blx@defcitecmd@i{#1}{\string#2}}%
+ \blx@tempa}
+
+\def\blx@defcitecmd@i#1#2{%
+ \blx@checkcitecmd{#2}{#1}%
+ \protected\csdef{#2}{%
+ \blx@citecmdinit
+ \@ifstar
+ {\blx@citepunct{\blxcitecmd{#2*}}}
+ {\blx@citepunct{\blxcitecmd{#2}}}}%
+ \@ifnextchar[%]
+ {\blx@defcitecmd@iii{#2#1}}
+ {\blx@defcitecmd@ii{#2#1}}}
+
+\long\def\blx@defcitecmd@ii#1{%
+ \csundef{blx@defcite@wrapper@#1}%
+ \blx@defcitecmd@iv{#1}%
+ \blx@defcitecmd@v{#1}}
+
+\long\def\blx@defcitecmd@iii#1[#2]{%
+ \csdef{blx@defcite@wrapper@#1}{#2}%
+ \blx@defcitecmd@iv{#1}%
+ \blx@defcitecmd@v{#1}}
+
+\long\def\blx@defcitecmd@iv#1{%
+ \protected\long\csedef{blx@cite@#1}##1##2##3##4{%
+ \ifboolexpe{test {\ifcsundef{blx@defcite@wrapper@#1}}
+ and
+ (test {\ifcsundef{blx@citepunct@#1}}
+ or
+ test {\ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@c}})}
+ {}
+ {\begingroup
+ \blx@citeinit}%
+ \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@l}
+ {\noexpand\unspace##4}
+ {}%
+ \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@f}
+ {\noexpand\iftoggle{blx@footnote}{}{\unspace##4}}
+ {}%
+ \ifcsundef{blx@defcite@wrapper@#1}
+ {\blxciteicmd{#1}{##1}{##2}{##3}{%
+ \ifcsundef{blx@citepunct@#1}{##4}{}%
+ \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@c}{##4}{}}}
+ {\csexpandonce{blx@defcite@wrapper@#1}{%
+ \blxciteicmd{#1}{##1}{##2}{##3}{%
+ \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@c}{##4}{}}}%
+ \ifcsundef{blx@citepunct@#1}{##4}{}}%
+ \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@r}{##4}{}%
+ \ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@f}
+ {\noexpand\iftoggle{blx@footnote}{##4}{}}
+ {}%
+ \ifboolexpe{test {\ifcsundef{blx@defcite@wrapper@#1}}
+ and
+ (test {\ifcsundef{blx@citepunct@#1}}
+ or
+ test {\ifcsequal{blx@citepunct@#1}{blx@citepunctid@pos@c}})}
+ {}
+ {\endgroup}}}
+
+\long\def\blx@defcitecmd@v#1#2#3#4#5{%
+ \protected\long\csdef{blx@citei@#1}##1##2##3##4{%
+ \ifblank{##1}
+ {}
+ {\def\abx@field@prenote{##1}}%
+ \ifblank{##2}
+ {\let\blx@thenotecheck\relax}
+ {\def\abx@field@postnote{##2}%
+ \iftoggle{blx@volcite}
+ {\blx@defvolcitepostnote##2}
+ {}}%
+ \def\blx@precode{\delimcontext{#1}#2}%
+ \def\blx@loopcode{#3}%
+ \def\blx@dlimcode{#4}%
+ \def\blx@postcode{#5}%
+ \def\blx@postpunct@saved{##4}%
+ \blx@citeloop{##3}%
+ \endgroup}}
+
+% {<type>}{<name>}{*}
+\def\blx@checkcitecmd#1#2{%
+ \ifblank{#2}
+ {\ifcsdef{blx@cite@#1}
+ {\blx@info{Redefining '\@backslashchar#1'}}
+ {\ifcsundef{#1}
+ {}
+ {\blx@warning@noline{Redefining '\@backslashchar#1'}}}%
+ \ifcsdef{blx@cite@#1*}
+ {}
+ {\csedef{blx@cite@#1*}{%
+ \expandafter\noexpand\csname blx@cite@#1\endcsname}%
+ \csedef{blx@citei@#1*}{%
+ \expandafter\noexpand\csname blx@citei@#1\endcsname}}}
+ {\ifcsdef{blx@cite@#1}
+ {}
+ {\csdef{blx@cite@#1}{\blx@err@citecmd{#1}}%
+ \csdef{blx@citei@#1}{\blx@err@citecmd{#1}}}}}
+
+% {<name>}{prenote}{postnote}{citekey}{punct}
+\newrobustcmd*{\blxcitecmd}[1]{%
+ \ifcsundef{blx@cite@#1}
+ {\blx@err@citecmd{#1}}
+ {\csuse{blx@cite@#1}}}
+
+\newrobustcmd*{\blxciteicmd}[1]{%
+ \begingroup
+ \blx@citeinit
+ \ifcsundef{blx@citei@#1}
+ {\blx@err@citecmd{#1}}
+ {\csuse{blx@citei@#1}}}
+
+% {<multicitecount>}{<name>}{prenote}{postnote}{citekey}{punct}
+\protected\def\blxmciteicmd#1{%
+ \c@multicitecount#1\relax
+ \blxciteicmd}
+
+% {<multicitetotal>}{<multiprenote>}{<multipostnote>}
+\protected\def\blxmcites#1#2#3{%
+ \begingroup
+ \blx@citeinit
+ \c@multicitecount\z@
+ \c@multicitetotal#1\relax
+ \ifnum\c@multicitetotal>\@ne
+ \let\blx@ifcitesingle\@secondoftwo
+ \fi
+ \csuse{blx@hook@mcite}%
+ \csuse{blx@hook@mcite@next}%
+ \ifblank{#2}%
+ {}
+ {\def\abx@field@multiprenote{#2}}%
+ \ifblank{#3}%
+ {}
+ {\def\abx@field@multipostnote{#3}}%
+ \usebibmacro{multiprenote}}
+
+\protected\def\blxendmcites{%
+ \usebibmacro{multipostnote}%
+ \endgroup}
+
+% {<command>}[<wrapper>]{<cite>}{<delimiter>}
+\newrobustcmd{\DeclareMultiCiteCommand}[1]{%
+ \ifundef#1%
+ {}
+ {\blx@info{Redefining '\string#1'}}%
+ \@ifnextchar[%]
+ {\blx@defmcitecmd{#1}}
+ {\blx@defmcitecmd{#1}[\@firstofone]}}
+
+\def\blx@defmcitecmd#1[#2]#3#4{%
+ \begingroup
+ \escapechar\m@ne
+ \edef\blx@tempa{\endgroup
+ \protected\def\noexpand#1{%
+ \blx@citecmdinit
+ \noexpand\@ifstar
+ {\expandafter\noexpand
+ \csname blx@mcite@\string#1\endcsname*%
+ \expandafter\noexpand
+ \csname blx@mcitei@\string#1\endcsname}
+ {\expandafter\noexpand
+ \csname blx@mcite@\string#1\endcsname{}%
+ \expandafter\noexpand
+ \csname blx@mcitei@\string#1\endcsname}}%
+ \protected\csdef{blx@mcite@\string#1}####1####2{%
+ \begingroup
+ \blx@citeinit
+ \noexpand\blx@multicite
+ ####2%
+ {\unexpanded{#2}}%
+ {\string#3####1}%
+ {\unexpanded{#4}}}%
+ \protected\long\csdef{blx@mcitei@\string#1}}%
+ \blx@tempa##1##2##3{##1{##2}##3\endgroup}}
+
+% {<command>}{<wrapper>}{<citecmd>}{<delimiter>} =>
+% <init><command>{<wrapper>}{<cites>}{<punct>}
+\def\blx@multicite#1#2#3#4{%
+ \begingroup
+ \csuse{blx@hook@mcite@before}%
+ \def\blx@tempa{#1}%
+ \def\blx@tempb{#2}%
+ \def\blx@tempc{#3}%
+ \def\blx@tempd{#4}%
+ \c@multicitetotal\z@
+ \blx@multiargs\blx@multicite@i}
+
+\def\blx@multicite@i#1#2{%
+ \ifblank{#1}%
+ {\let\abx@field@multiprenote\@empty}%
+ {\def\abx@field@multiprenote{#1}}%
+ \ifblank{#2}%
+ {\let\abx@field@multipostnote\@empty}%
+ {\def\abx@field@multipostnote{#2}}%
+ \let\blx@tempe\@empty
+ \let\blx@tempf\@empty
+ \togglefalse{blx@tempa}%
+ \blx@multiparse}
+
+\def\blx@multicite@add#1#2#3{%
+ \togglefalse{blx@tempa}%
+ \advance\c@multicitetotal\@ne
+ \eappto\blx@tempe{%
+ \expandonce\blx@tempf
+ \blxmciteicmd{\the\c@multicitetotal}%
+ {\expandonce\blx@tempc}\unexpanded{{#1}{#2}{#3}}{}}%
+ \let\blx@tempf\blx@tempd
+ \blx@multiparse}
+
+\def\blx@multicite@end#1{%
+ \edef\blx@tempa{\endgroup
+ \expandonce\blx@tempa
+ {\expandonce\blx@tempb}%
+ {\blxmcites
+ {\the\c@multicitetotal}%
+ {\expandonce\abx@field@multiprenote}%
+ {\expandonce\abx@field@multipostnote}%
+ \expandonce\blx@tempe
+ \blxendmcites}%
+ {#1}%
+ \iftoggle{blx@tempa}{\relax\space}{}}%
+ \blx@tempa}
+
+\def\blx@multiparse{%
+ \futurelet\@let@token\blx@multiparse@i}
+
+\def\blx@multiparse@i{%
+ \ifx\@let@token\relax
+ \blx@multiparse@ii{\blx@multicite@end{}}%
+ \fi
+ \ifx\@let@token[%]
+ \blx@multiparse@ii{\blx@citeargs\blx@multicite@add}%
+ \fi
+ \ifx\@let@token\bgroup
+ \blx@multiparse@ii{\blx@citeargs\blx@multicite@add}%
+ \fi
+ \ifx\@let@token\@sptoken
+ \blx@multiparse@ii\blx@multiparse@iii
+ \fi
+ \iftrue
+ \iftoggle{blx@tempa}
+ {\blx@multiparse@ii{\blx@multicite@end{}}}
+ {\blx@multiparse@ii{\blx@thecheckpunct\blx@multicite@end}}%
+ \fi
+ &}
+
+\def\blx@multiparse@ii#1#2&{\fi#1}
+\csdef{blx@multiparse@iii} {\toggletrue{blx@tempa}\blx@multiparse}
+
+% {<name>}[l|i|r]{<cite>}{<multicite>}
+\newrobustcmd*{\DeclareAutoCiteCommand}[1]{%
+ \ifcsundef{blx@acite@#1}
+ {}
+ {\blx@info{Redefining autocite command '#1'}}%
+ \@ifnextchar[%]
+ {\blx@defautocmd@i{#1}}
+ {\blx@defautocmd@i{#1}[r]}}
+
+\def\blx@defautocmd@i#1[#2]#3#4{%
+ \begingroup
+ \escapechar\m@ne
+ \edef\blx@tempa{\endgroup
+ \noexpand\blx@defautocmd@ii{#1}{#2}%
+ {\string#3}{\string#4}}%
+ \blx@tempa}
+
+\def\blx@defautocmd@ii#1#2#3#4{%
+ \protected\csedef{blx@acite@#1}{%
+ \blx@citecmdinit
+ \noexpand\@ifstar
+ {\blx@citepunct{\expandafter\noexpand
+ \csname blx@acitei@#1\endcsname*}}
+ {\blx@citepunct{\expandafter\noexpand
+ \csname blx@acitei@#1\endcsname{}}}}%
+ \protected\csedef{blx@acitei@#1}##1##2##3##4##5{%
+ \begingroup
+ \blx@citeinit
+ \if l#2\noexpand\unspace##5\fi
+ \if f#2\noexpand\iftoggle{blx@footnote}{}{\unspace##5}\fi
+ \blxcitecmd{#3##1}{##2}{##3}{##4}{}%
+ \if r#2##5\fi
+ \if f#2\noexpand\iftoggle{blx@footnote}{##5}{}\fi
+ \endgroup}%
+ \protected\csedef{blx@macite@#1}{%
+ \blx@citecmdinit
+ \noexpand\@ifstar
+ {\expandafter\noexpand
+ \csname blx@macitei@#1\endcsname*%
+ \expandafter\noexpand
+ \csname blx@maciteii@#1\endcsname}
+ {\expandafter\noexpand
+ \csname blx@macitei@#1\endcsname{}%
+ \expandafter\noexpand
+ \csname blx@maciteii@#1\endcsname}}%
+ \csedef{blx@macitei@#1}{\csname blx@mcite@#4\endcsname}%
+ \protected\csedef{blx@maciteii@#1}##1##2##3{%
+ \if l#2\noexpand\unspace##3\fi
+ \if f#2\noexpand\iftoggle{blx@footnote}{}{\unspace##3}\fi
+ ##1{##2}%
+ \if r#2##3\fi
+ \if f#2\noexpand\iftoggle{blx@footnote}{##3}{}\fi
+ \endgroup}}
+
+% {<characters>}
+\newrobustcmd*{\DeclareAutoPunctuation}[1]{%
+ \ifblank{#1}
+ {\let\blx@thecheckpunct\blx@nocheckpunct}
+ {\let\blx@thecheckpunct\blx@checkpunct
+ \def\blx@autopunct{#1}}}
+
+% {<command>}{<pos marker>}
+% pos markers are:
+% l: move punctuation before the command (i.e. left of it)
+% r: leave punctuation after the command (i.e. to the right)
+% f: like l in normal text, like r in footnotes
+% c: pass on to the cite command,
+% the punctuation will eventually end up as field 'postpunct'
+% d: discard the punctuation
+% o (or any other value): restores the old standard behaviour
+% r for wrapped citation commands,
+% c for unwrapped ones
+\newrobustcmd*{\DeclareCitePunctuationPosition}[2]{%
+ \begingroup
+ \escapechar\m@ne
+ \edef\blx@tempa{\endgroup
+ \noexpand\blx@defcitepunctpos@i{\string#1}{#2}}%
+ \blx@tempa}
+
+\def\blx@citepunctid@pos@l{l}
+\def\blx@citepunctid@pos@r{r}
+\def\blx@citepunctid@pos@f{f}
+\def\blx@citepunctid@pos@c{c}
+\def\blx@citepunctid@pos@d{d}
+
+\def\blx@defcitepunctpos@i#1#2{%
+ \ifcsundef{blx@citepunctid@pos@#2}
+ {\csundef{blx@citepunct@#1}}
+ {\csletcs{blx@citepunct@#1}{blx@citepunctid@pos@#2}}%
+ \blx@defcitecmd@iv{#1}}
+
+\AfterEndPreamble{% babel
+ \begingroup
+ \makeatletter
+ \endlinechar\m@ne
+ \scantokens\expandafter{%
+ \expandafter\gdef
+ \expandafter\blx@autopunct
+ \expandafter{\blx@autopunct}}%
+ \endgroup}
+
+% [<prenote>][<postnote>]{<entrykey>,...}[<format>]{<namelist>}<punct>
+\newrobustcmd*{\citename}{\blx@citexpunct{citename}}
+\long\csdef{blx@cite@citename}#1#2#3#4#5#6{%
+ \begingroup
+ \blx@citecmdinit
+ \blx@citeinit
+ \ifblank{#1}
+ {}
+ {\def\abx@field@prenote{#1}}%
+ \ifblank{#2}
+ {\let\blx@thenotecheck\relax}
+ {\def\abx@field@postnote{#2}}%
+ \def\blx@precode{\usebibmacro{prenote}}%
+ \def\blx@loopcode{%
+ \ifnameundef{#5}
+ {\blx@warning@entry{'#5' undefined or not a name list}%
+ \abx@missing{#5}}
+ {\printnames[#4]{#5}}}%
+ \def\blx@dlimcode{\multicitedelim}%
+ \def\blx@postpunct@saved{#6}%
+ \ifblank{#2}
+ {\let\blx@postcode\@empty}
+ {\def\blx@postcode{\usebibmacro{postnote}}}%
+ \boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \blx@citeloop{#3}%
+ \endgroup}
+
+% [<prenote>][<postnote>]{<entrykey>,...}[<format>]{<list>}<punct>
+\newrobustcmd*{\citelist}{\blx@citexpunct{citelist}}
+\long\csdef{blx@cite@citelist}#1#2#3#4#5#6{%
+ \begingroup
+ \blx@citecmdinit
+ \blx@citeinit
+ \ifblank{#1}
+ {}
+ {\def\abx@field@prenote{#1}}%
+ \ifblank{#2}
+ {\let\blx@thenotecheck\relax}
+ {\def\abx@field@postnote{#2}}%
+ \def\blx@precode{\usebibmacro{prenote}}%
+ \def\blx@loopcode{%
+ \iflistundef{#5}
+ {\blx@warning@entry{'#5' undefined or not a literal list}%
+ \abx@missing{#5}}
+ {\printlist[#4]{#5}}}%
+ \def\blx@dlimcode{\multicitedelim}%
+ \def\blx@postpunct@saved{#6}%
+ \ifblank{#2}
+ {\let\blx@postcode\@empty}
+ {\def\blx@postcode{\usebibmacro{postnote}}}%
+ \boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \blx@citeloop{#3}%
+ \endgroup}
+
+% [<prenote>][<postnote>]{<entrykey>,...}[<format>]{<field>}<punct>
+
+\newrobustcmd*{\citefield}{\blx@citexpunct{citefield}}
+\long\csdef{blx@cite@citefield}#1#2#3#4#5#6{%
+ \begingroup
+ \blx@citecmdinit
+ \blx@citeinit
+ \ifblank{#1}
+ {}
+ {\def\abx@field@prenote{#1}}%
+ \ifblank{#2}
+ {\let\blx@thenotecheck\relax}
+ {\def\abx@field@postnote{#2}}%
+ \def\blx@precode{\usebibmacro{prenote}}%
+ \def\blx@loopcode{%
+ \iffieldundef{#5}
+ {\blx@warning@entry{'#5' undefined or not a field}%
+ \abx@missing{#5}}
+ {\printfield[#4]{#5}}}%
+ \def\blx@dlimcode{\multicitedelim}%
+ \def\blx@postpunct@saved{#6}%
+ \ifblank{#2}
+ {\let\blx@postcode\@empty}
+ {\def\blx@postcode{\usebibmacro{postnote}}}%
+ \boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \blx@citeloop{#3}%
+ \endgroup}
+
+\renewrobustcmd*{\cite}{\blx@err@citecmd\cite}
+\let\blx@cite@cite\relax
+\newrobustcmd*{\parencite}{\blx@warn@citecmd\parencite\cite}
+\let\blx@cite@parencite\relax
+\newrobustcmd*{\footcite}{\blx@warn@citecmd\footcite\cite}
+\let\blx@cite@footcite\relax
+\newrobustcmd*{\footcitetext}{\blx@warn@citecmd\footcitetext\cite}
+\let\blx@cite@footcitetext\relax
+\newrobustcmd*{\smartcite}{\blx@warn@citecmd\smartcite\cite}
+\let\blx@cite@smartcite\relax
+\newrobustcmd*{\textcite}{\blx@warn@citecmd\textcite\cite}
+\let\blx@cite@textcite\relax
+\newrobustcmd*{\supercite}{\blx@warn@citecmd\supercite\cite}
+\let\blx@cite@supercite\relax
+
+%% ifthen interface
+
+\def\blx@TE#1#2{%
+ \TE@throw
+ \unexpanded{%
+ \iftrue\@nameuse{fi}%
+ #1{\@nameuse{iftrue}}{\@nameuse{iffalse}}}#2}
+
+\def\blx@xTE#1#2{%
+ \TE@throw
+ \unexpanded{\iftrue\@nameuse{fi}}%
+ #1\unexpanded{{\@nameuse{iftrue}}{\@nameuse{iffalse}}}#2}
+
+\let\blx@TE@hook\@empty
+
+\appto\blx@blxinit{%
+ \appto\blx@TE@hook{%
+ \def\ifhyperref{\blx@TE\blx@imc@ifhyperref}%
+ \def\ifmorenames{\blx@TE\blx@imc@ifmorenames}%
+ \def\ifmoreitems{\blx@TE\blx@imc@ifmoreitems}%
+ \def\iffirstcitekey{\blx@TE\blx@imc@iffirstcitekey}%
+ \def\iflastcitekey{\blx@TE\blx@imc@iflastcitekey}%
+ \def\ifciteseen{\blx@TE\blx@imc@ifciteseen}%
+ \def\ifentryseen{\blx@TE\blx@imc@ifentryseen}%
+ \def\ifentryinbib{\blx@TE\blx@imc@ifentryinbib}%
+ \def\ifciteibid{\blx@TE\blx@imc@ifciteibid}%
+ \def\ifciteidem{\blx@TE\blx@imc@ifciteidem}%
+ \def\ifopcit{\blx@TE\blx@imc@ifopcit}%
+ \def\ifloccit{\blx@TE\blx@imc@ifloccit}%
+ \def\ifsamepage{\blx@TE\blx@imc@ifsamepage}%
+ \def\iffirstonpage{\blx@TE\blx@imc@iffirstonpage}%
+ \def\ifcurrentfield#1{\blx@TE{\blx@imc@ifcurrentfield{#1}}}%
+ \def\ifcurrentlist#1{\blx@TE{\blx@imc@ifcurrentlist{#1}}}%
+ \def\ifcurrentname#1{\blx@TE{\blx@imc@ifcurrentname{#1}}}%
+ \def\ifentrytype#1{\blx@TE{\blx@imc@ifentrytype{#1}}}%
+ \def\iffieldequalcs#1#2{\blx@TE{\blx@imc@iffieldequalcs{#1}{#2}}}%
+ \def\iffieldequals#1#2{\blx@TE{\blx@imc@iffieldequals{#1}{#2}}}%
+ \def\iffieldequalstr#1#2{\blx@TE{\blx@imc@iffieldequalstr{#1}{#2}}}%
+ \def\iffieldsequal#1#2{\blx@TE{\blx@imc@iffieldsequal{#1}{#2}}}%
+ \def\ifbibmacroundef#1{\blx@TE{\blx@imc@ifbibmacroundef{#1}}}%
+ \def\iffieldundef#1{\blx@TE{\blx@imc@iffieldundef{#1}}}%
+ \def\ifnameequalcs#1#2{\blx@TE{\blx@imc@ifnameequalcs{#1}{#2}}}%
+ \def\ifnameequals#1#2{\blx@TE{\blx@imc@ifnameequals{#1}{#2}}}%
+ \def\ifnamesequal#1#2{\blx@TE{\blx@imc@ifnamesequal{#1}{#2}}}%
+ \def\ifnameundef#1{\blx@TE{\blx@imc@ifnameundef{#1}}}%
+ \def\ifcategory#1{\blx@TE{\blx@imc@ifcategory{#1}}}%
+ \def\ifkeyword#1{\blx@TE{\blx@imc@ifkeyword{#1}}}%
+ \def\ifentrycategory#1#2{\blx@TE{\blx@imc@ifentrycategory{#1}{#2}}}%
+ \def\ifentrykeyword#1#2{\blx@TE{\blx@imc@ifentrykeyword{#1}{#2}}}%
+ \def\ifcapital{\blx@TE\blx@imc@ifcapital}%
+ \def\ifinteger#1{\blx@TE{\blx@imc@ifinteger{#1}}}%
+ \def\iffieldint#1{\blx@TE{\blx@imc@iffieldint{#1}}}%
+ \def\ifnumeral#1{\blx@TE{\blx@imc@ifnumeral{#1}}}%
+ \def\ifnumerals#1{\blx@TE{\blx@imc@ifnumerals{#1}}}%
+ \def\ifpages#1{\blx@TE{\blx@imc@ifpages{#1}}}%
+ \def\iffieldnum#1{\blx@TE{\blx@imc@iffieldnum{#1}}}%
+ \def\iffieldnums#1{\blx@TE{\blx@imc@iffieldnums{#1}}}%
+ \def\iffieldpages#1{\blx@TE{\blx@imc@iffieldpages{#1}}}%
+ \def\ifbibstring#1{\blx@TE{\blx@imc@ifbibstring{#1}}}%
+ \def\iffieldbibstring#1{\blx@TE{\blx@imc@iffieldbibstring{#1}}}%
+ \def\ifnatbibmode{\blx@TE{\iftoggle{blx@natbib}}}%
+ \def\ifcitation{\blx@TE{\iftoggle{blx@citation}}}%
+ \def\ifvolcite{\blx@TE{\iftoggle{blx@volcite}}}%
+ \def\ifbibliography{\blx@TE{\iftoggle{blx@bibliography}}}%
+ \def\ifciteindex{\blx@TE{\iftoggle{blx@citeindex}}}%
+ \def\ifbibindex{\blx@TE{\iftoggle{blx@bibindex}}}%
+ \def\iffootnote{\blx@TE{\iftoggle{blx@footnote}}}%
+ \def\ifuseprefix{\blx@TE{\iftoggle{blx@useprefix}}}%
+ \def\ifterseinits{\blx@TE{\iftoggle{blx@terseinits}}}%
+ \def\ifsingletitle{\blx@TE{\iftoggle{abx@bool@singletitle}}}%
+ \def\ifnocite{\blx@TE{\iftoggle{abx@bool@nocite}}}%
+ \def\ifuniquetitle{\blx@TE{\iftoggle{abx@bool@uniquetitle}}}%
+ \def\ifuniquebaretitle{\blx@TE{\iftoggle{abx@bool@uniquebaretitle}}}%
+ \def\ifuniquework{\blx@TE{\iftoggle{abx@bool@uniquework}}}%
+ \def\ifuniqueprimaryauthor{\blx@TE{\iftoggle{abx@bool@uniqueprimaryauthor}}}%
+ \def\ifandothers#1{\blx@TE{\iftoggle{abx@bool@more#1}}}%
+ \def\iflabeldateisdate{\blx@TE\blx@imc@iflabeldateisdate}%
+ \def\ifdatehasyearonlyprecision#1{%
+ \blx@TE{\blx@imc@ifdatehasyearonlyprecision{#1}}}%
+ \def\ifdatehastime#1{\blx@TE{\blx@imc@ifdatehastime{#1}}}%
+ \def\ifdateshavedifferentprecision#1#2{%
+ \blx@TE{\blx@imc@ifdateshavedifferentprecision{#1}{#2}}}%
+ \def\ifdateyearsequal#1#2{%
+ \blx@TE{\blx@imc@ifdateyearsequal{#1}{#2}}}}}
+
+% {<listmacro>}{<filtercsname>} => matches in <listmacro>
+\protected\def\blx@bibfilter#1#2{%
+ \begingroup
+ \edef\blx@do##1{%
+ \def\noexpand\blx@flt@item{##1}%
+ \ifboolexpr{\csexpandonce{#2}}%
+ {\listadd\noexpand\blx@tempa{##1}}%
+ {}}%
+ \let\blx@done\relax
+ \edef\blx@tempa{%
+ \let\noexpand\blx@tempa\noexpand\@empty
+ \blx@listloop{#1}}%
+ \blx@tempa
+ \edef\blx@tempa{\endgroup
+ \def\noexpand#1{\blx@tempa}}%
+ \blx@tempa}
+
+%% Auxiliary macros
+\newrobustcmd*{\mkbibquote}{\blx@enquote}
+\protected\def\blx@imc@mkbibquote{%
+ \blx@ifuspunct\blx@usquote\blx@enquote}
+
+\def\blx@usquote{%
+ \ifnum\@quotelevel>\z@
+ \expandafter\blx@usiquote
+ \else
+ \expandafter\blx@usoquote
+ \fi}
+
+\long\def\blx@usoquote#1{%
+ \begingroup
+ \blx@initoquote
+ \blx@textooquote#1%
+ \futurelet\@let@token\blx@usoquote@i}
+
+\def\blx@usoquote@i{%
+ \blx@usqcheck
+ {\ifx\blx@postpunct\@empty\else\blx@dopostpunct\fi
+ \blx@textcoquote\endgroup}
+ {\blx@setpostpunct\blx@textcoquote\endgroup}}
+
+\long\def\blx@usiquote#1{%
+ \begingroup
+ \blx@initiquote
+ \blx@textoiquote#1%
+ \futurelet\@let@token\blx@usiquote@i}
+
+\def\blx@usiquote@i{%
+ \blx@usqcheck
+ {\blx@textciquote\endgroup}
+ {\blx@setpostpunct\blx@textciquote\endgroup}}
+
+\long\def\blx@usqcheck#1#2{%
+ \def\blx@tempa{#1}%
+ \def\blx@tempb{#2}%
+ \ifx\@let@token\space
+ \blx@usqcheck@i\blx@tempa
+ \fi
+ \ifx\@let@token\@sptoken
+ \blx@usqcheck@i\blx@tempa
+ \fi
+ \if\noexpand\@let@token\relax
+ \expandafter\blx@usqcheck@iv
+ \fi
+ \expandafter\blx@usqcheck@ii\blx@quotepunct\relax&}
+
+\long\def\blx@usqcheck@i#1#2&{\fi#1}
+
+\long\def\blx@usqcheck@ii#1{%
+ \if\noexpand#1\relax
+ \blx@usqcheck@i\blx@tempa
+ \fi
+ \if\noexpand#1\noexpand\@let@token
+ \blx@usqcheck@i{\blx@usqcheck@iii\blx@tempa}%
+ \fi
+ \blx@usqcheck@ii
+}
+
+\long\def\blx@usqcheck@iii#1#2{#2#1}
+
+\long\def\blx@usqcheck@iv#1&#2{%
+ \begingroup
+ \escapechar=-1 %
+ \edef\blx@tempa{\expandafter\@gobble\string#2}%
+ \expandafter\endgroup
+ \ifx\blx@tempa\@empty
+ \else
+ \blx@usqcheck@i\blx@tempb
+ \fi
+ #1&#2%
+}
+
+\newrobustcmd*{\mkbibemph}{\emph}
+\protected\long\def\blx@imc@mkbibemph#1{%
+ \emph{#1}\blx@imc@setpunctfont\emph}
+
+\newrobustcmd*{\mkbibbold}{\textbf}
+\protected\long\def\blx@imc@mkbibbold#1{%
+ \textbf{#1}\blx@imc@setpunctfont\textbf}
+
+\newrobustcmd*{\mkbibitalic}{\textit}
+\protected\long\def\blx@imc@mkbibitalic#1{%
+ \textit{#1}\blx@imc@setpunctfont\textit}
+
+\blx@regimcs{\mkbibquote \mkbibemph \mkbibbold \mkbibitalic}
+
+\newcommand*{\bibleftparen}{\blx@postpunct(}
+\newcommand*{\bibrightparen}{\blx@postpunct)\midsentence}
+\newcommand*{\bibleftbracket}{\blx@postpunct[}
+\newcommand*{\bibrightbracket}{\blx@postpunct]\midsentence}
+
+\def\blx@parenlevel{%
+ \iftoggle{blx@footnote}
+ {\blx@parenlevel@foot}
+ {\blx@parenlevel@text}}
+
+\newrobustcmd*{\blx@bibopenparen}{%
+ \blx@opencheck\bibopenparen
+ \blx@postpunct
+ \ifnum\blx@parenlevel=\z@
+ \global\blx@parenlevel\@ne
+ \global\c@parenlevel\@ne
+ \expandafter\bibleftparen
+ \else
+ \expandafter\blx@openparen
+ \fi}
+
+\newrobustcmd*{\blx@bibopenbracket}{%
+ \blx@opencheck\bibopenbracket
+ \blx@postpunct
+ \ifnum\blx@parenlevel=\z@
+ \global\blx@parenlevel1002
+ \global\c@parenlevel\@ne
+ \expandafter\bibleftbracket
+ \else
+ \expandafter\blx@openparen
+ \fi}
+
+\newrobustcmd*{\blx@bibcloseparen}{%
+ \blx@closecheck\bibcloseparen
+ \blx@postpunct\blx@closeparen}
+
+\newrobustcmd*{\blx@bibclosebracket}{%
+ \blx@closecheck\bibclosebracket
+ \blx@postpunct\blx@closeparen}
+
+\def\blx@openparen{%
+ \ifodd\blx@parenlevel
+ \global\advance\blx@parenlevel\@ne
+ \global\advance\c@parenlevel\@ne
+ \expandafter\bibleftbracket
+ \else
+ \global\advance\blx@parenlevel\@ne
+ \global\advance\c@parenlevel\@ne
+ \expandafter\bibleftparen
+ \fi}
+
+\def\blx@closeparen{%
+ \ifodd\blx@parenlevel
+ \blx@closeparen@i
+ \expandafter\bibrightparen
+ \else
+ \blx@closeparen@i
+ \expandafter\bibrightbracket
+ \fi}
+
+\def\blx@closeparen@i{%
+ \ifnum\blx@parenlevel=1002
+ \global\blx@parenlevel\z@
+ \global\c@parenlevel\z@
+ \else
+ \global\advance\blx@parenlevel\m@ne
+ \global\advance\c@parenlevel\m@ne
+ \fi}
+
+\def\blx@opencheck#1{%
+ \ifnum\numexpr\blx@parenlevel+\@ne
+ \ifnum\blx@parenlevel>\@m -1001\fi
+ >\c@maxparens
+ \blx@err@nestparen{\string#1}%
+ \blx@errormark
+ \fi}
+
+\def\blx@closecheck#1{%
+ \ifnum\numexpr\blx@parenlevel
+ \ifnum\blx@parenlevel>\@m -1001\fi
+ >\c@maxparens
+ \blx@err@nestparen{\string#1}%
+ \blx@errormark
+ \fi
+ \ifnum\blx@parenlevel<\@ne
+ \blx@err@matchparen{Unmatched \string#1}%
+ \blx@errormark
+ \fi}
+
+\protected\def\blx@errormark{%
+ \rule[0.25ex]{1.25ex}{1.25ex}}
+
+\AtEndDocument{%
+ \unless\ifnum\blx@parenlevel@text=\z@
+ \blx@err@matchparen{%
+ Unbalanced parentheses or brackets in the document body}%
+ \fi
+ \unless\ifnum\blx@parenlevel@foot=\z@
+ \blx@err@matchparen{%
+ Unbalanced parentheses or brackets in a foot or endnote}%
+ \fi}
+
+\newrobustcmd{\mkbibparens}[1]{%
+ \begingroup
+ \blx@blxinit
+ \blx@setsfcodes
+ \bibopenparen#1\bibcloseparen
+ \endgroup}
+
+\newrobustcmd{\mkbibbrackets}[1]{%
+ \begingroup
+ \blx@blxinit
+ \blx@setsfcodes
+ \bibopenbracket#1\bibclosebracket
+ \endgroup}
+
+\newrobustcmd*{\parentext}{\mkbibparens}
+\newrobustcmd*{\brackettext}{\mkbibbrackets}
+
+\newrobustcmd{\mkbibsuperscript}[1]{%
+ \unspace\allowhyphens\textsuperscript{%
+ \begingroup
+ \protected\long\def\mkbibsuperscript##1{%
+ \blx@warning{Nested superscript}%
+ \mkbibbrackets{##1}}%
+ #1\endgroup}}
+
+\newrobustcmd{\mkbibfootnote}{\blx@mkbibfootnote{}}
+\newrobustcmd{\mkbibfootnotetext}{\blx@mkbibfootnote{text}}
+\newrobustcmd{\blx@mkbibfootnote}[2]{%
+ \iftoggle{blx@footnote}
+ {\blx@warning{Nested notes}%
+ \addspace\mkbibparens{#2}}
+ {\unspace
+ \ifnum\blx@notetype=\tw@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}}
+ {\csuse{footnote#1}{\protecting{\blxmkbibnote{foot}{#2}}}}}}
+
+\newrobustcmd{\mkbibendnote}{\blx@mkbibendnote{}}
+\newrobustcmd{\mkbibendnotetext}{\blx@mkbibendnote{text}}
+\newrobustcmd{\blx@mkbibendnote}[2]{%
+ \iftoggle{blx@footnote}
+ {\blx@warning{Nested notes}%
+ \addspace\mkbibparens{#2}}
+ {\unspace
+ \ifnum\blx@notetype=\@ne
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {\csuse{footnote#1}{\protecting{\blxmkbibnote{foot}{#2}}}}
+ {\csuse{blx@theendnote#1}{\protecting{\blxmkbibnote{end}{#2}}}}}}
+
+\newrobustcmd{\blxmkbibnote}[2]{%
+ \begingroup
+ \blx@blxinit
+ \blx@setsfcodes
+ \blx@postpunct@agroup
+ \toggletrue{blx@footnote}%
+ \csuse{bib#1notewrapper}{#2}%
+ \endgroup}
+
+\newcommand{\bibfootnotewrapper}[1]{%
+ \bibsentence#1\addperiod}
+
+\newcommand{\bibendnotewrapper}[1]{%
+ \bibsentence#1\addperiod}
+
+\AtEndPreamble{%
+ \def\blx@theendnote{\blx@err@endnote\footnote}%
+ \def\blx@theendnotetext{\blx@err@endnote\footnotetext}%
+ \ifdef\endnote
+ {\def\blx@theendnote{\endnote}%
+ \ifdef\endnotetext
+ {\def\blx@theendnotetext{\endnotetext}}
+ {}}
+ {\ifdef\pagenote
+ {\def\blx@theendnote{\pagenote}%
+ \ifdef\pagenotetext
+ {\def\blx@theendnotetext{\pagenotetext}}
+ {}}
+ {}}}
+
+\newrobustcmd*{\mknumalph}[1]{%
+ \begingroup
+ \blx@tempcnta=#1\relax
+ \ifnum\blx@tempcnta>702 %
+ \else
+ \ifnum\blx@tempcnta>26 %
+ \advance\blx@tempcnta\m@ne
+ \divide\blx@tempcnta26\relax
+ \blx@numalph\blx@tempcnta
+ \multiply\blx@tempcnta26\relax
+ \blx@tempcnta=\numexpr#1-\blx@tempcnta\relax
+ \fi
+ \fi
+ \blx@numalph\blx@tempcnta
+ \endgroup}
+\def\blx@numalph#1{%
+ \ifcase#1\relax\blx@warning@entry{Value out of range}\number#1\or
+ a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or
+ n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else
+ \blx@warning@entry{Value out of range}\number#1\fi}
+
+% {<macro>}[<pre>]{<vol>}[<post>] => <macro>{<pre>}{{<vol>}{<post>}}
+
+\newrobustcmd*{\volcitecmd}{%
+ \AtNextCite{%
+ \toggletrue{blx@volcite}%
+ \csuse{blx@hook@volcite}}%
+ \begingroup\let\blx@citeargs\blx@volciteargs}
+
+\protected\def\blx@volciteargs#1{%
+ \endgroup
+ \@ifnextchar[%]
+ {\blx@volciteargs@i{#1}}
+ {\blx@volciteargs@i{#1}[]}}
+
+\long\def\blx@volciteargs@i#1[#2]#3{%
+ \@ifnextchar[%]
+ {\blx@volciteargs@ii{#1}{#2}{#3}}
+ {\blx@citeargs@iii{#1{#2}{{#3}{}}}}}
+
+\long\def\blx@volciteargs@ii#1#2#3[#4]{%
+ \blx@citeargs@iii{#1{#2}{{#3}{#4}}}}
+
+\newrobustcmd*{\multivolcitecmd}{%
+ \AtNextCite{%
+ \toggletrue{blx@volcite}%
+ \csuse{blx@hook@volcite}}%
+ \def\blx@hook@mcite@before{%
+ \global\undef\blx@hook@mcite@before
+ \let\blx@citeargs\blx@volmciteargs}}
+
+\protected\def\blx@volmciteargs#1{%
+ \@ifnextchar[%]
+ {\blx@volciteargs@i{#1}}
+ {\blx@volciteargs@i{#1}[]}}
+
+\long\def\blx@defvolcitepostnote#1#2{%
+ \def\abx@field@volcitevolume{#1}%
+ \ifblank{#2}
+ {}
+ {\def\abx@field@volcitepages{#2}}}
+
+\newrobustcmd*{\AtVolcite}{%
+ \@ifstar
+ {\global\undef\blx@hook@volcite
+ \gappto\blx@hook@volcite}
+ {\gappto\blx@hook@volcite}}
+\@onlypreamble\AtVolcite
+\def\blx@imc@UseVolciteHook{\csuse{blx@hook@volcite}}
+\blx@regimcs{\UseVolciteHook}
+
+\AtVolcite{%
+ \DeclareFieldAlias{postnote}{volcitenote}}
+
+%% Control file
+
+\begingroup
+\let~\space
+\@makeother\<
+\@makeother\>
+\@makeother\.
+\@makeother\:
+\@makeother\?
+\@makeother\"
+\@makeother\-
+\@makeother\=
+\@makeother\/
+\xdef\blx@xml@file{%
+ \blx@sig@bcf\blx@nl
+ \blx@ver@bcf\blx@nl}
+\xdef\blx@xml@endfile{%
+ </bcf:controlfile>}
+\xdef\blx@xml@comment#1{%
+ ~~<!-- #1 -->\blx@nl}
+\xdef\blx@xml@options#1#2#3{%
+ ~~<bcf:options%
+ \noexpand\ifblank{#1}{}{ component="#1"}%
+ \noexpand\ifblank{#2}{}{ type="#2"}%
+ >\blx@nl
+ #3%
+ ~~</bcf:options>\blx@nl}
+\xdef\blx@xml@option#1#2{%
+ ~~~~<bcf:option type="#1">\blx@nl
+ #2%
+ ~~~~</bcf:option>\blx@nl}
+\xdef\blx@xml@ordered#1#2#3{%
+ ~~~~~~<bcf:value order="#1"#2%
+ >#3</bcf:value>\blx@nl}
+
+\xdef\blx@xml@datafieldset#1#2{%
+ ~~<bcf:datafieldset name="#1">\blx@nl
+ #2%
+ ~~</bcf:datafieldset>\blx@nl}
+
+\xdef\blx@xml@datafieldsets@member#1{%
+ ~~~~<bcf:member#1/>\blx@nl}
+
+\xdef\blx@xml@transliteration#1#2{%
+ ~~<bcf:transliteration entrytype="#1">\blx@nl
+ #2%
+ ~~</bcf:transliteration>\blx@nl}
+\xdef\blx@xml@translit#1#2#3#4{%
+ ~~~~<bcf:translit #1target="#2" from="#3" to="#4"/>\blx@nl}
+
+\xdef\blx@xml@sourcemap#1{%
+ ~~<bcf:sourcemap>\blx@nl
+ #1%
+ ~~</bcf:sourcemap>\blx@nl}
+\xdef\blx@xml@sourcemap@maps#1#2{%
+ ~~~~<bcf:maps#1>\blx@nl
+ #2%
+ ~~~~</bcf:maps>\blx@nl}
+\xdef\blx@xml@sourcemap@map#1#2{%
+ ~~~~~~<bcf:map#1>\blx@nl
+ #2%
+ ~~~~~~</bcf:map>\blx@nl}
+\xdef\blx@xml@sourcemap@perdatasource#1{%
+ ~~~~~~~~<bcf:per\string_datasource>#1</bcf:per\string_datasource>\blx@nl}
+\xdef\blx@xml@sourcemap@pertype#1{%
+ ~~~~~~~~<bcf:per\string_type>#1</bcf:per\string_type>\blx@nl}
+\xdef\blx@xml@sourcemap@pernottype#1{%
+ ~~~~~~~~<bcf:per\string_nottype>#1</bcf:per\string_nottype>\blx@nl}
+\xdef\blx@xml@sourcemap@step#1{%
+ ~~~~~~~~<bcf:map\string_step#1/>\blx@nl}
+
+\xdef\blx@xml@labelalphanametemplate#1#2{%
+ ~~<bcf:labelalphanametemplate name="#1">\blx@nl
+ #2%
+ ~~</bcf:labelalphanametemplate>\blx@nl}
+\xdef\blx@xml@labelalphanametemplatenamepart#1#2#3{%
+ ~~~~<bcf:namepart #1#2>#3</bcf:namepart>\blx@nl}
+
+\xdef\blx@xml@labelalphatemplate#1#2{%
+ ~~<bcf:labelalphatemplate type="#1">\blx@nl
+ #2%
+ ~~</bcf:labelalphatemplate>\blx@nl}
+\xdef\blx@xml@labelalpha@element#1#2{%
+ ~~~~<bcf:labelelement order="#1">\blx@nl
+ #2%
+ ~~~~</bcf:labelelement>\blx@nl}
+\xdef\blx@xml@labelalpha@part#1#2{%
+ ~~~~~~<bcf:labelpart#1>#2</bcf:labelpart>\blx@nl}
+
+\xdef\blx@xml@extradate#1{%
+ ~~<bcf:extradatespec>\blx@nl
+ #1%
+ ~~</bcf:extradatespec>\blx@nl}
+\xdef\blx@xml@extradatescope#1{%
+ ~~~~<bcf:scope>\blx@nl
+ #1%
+ ~~~~</bcf:scope>\blx@nl}
+\xdef\blx@xml@edordered#1#2{%
+ ~~~~~~<bcf:field order="#1">#2</bcf:field>\blx@nl}
+
+\xdef\blx@xml@inheritance#1{%
+ ~~<bcf:inheritance>\blx@nl
+ #1%
+ ~~</bcf:inheritance>\blx@nl}
+\xdef\blx@xml@inherit@defaults#1#2{%
+ ~~~~<bcf:defaults#1>\blx@nl
+ #2%
+ ~~~~</bcf:defaults>\blx@nl}
+\xdef\blx@xml@inherit@data#1#2{%
+ ~~~~<bcf:inherit#1>\blx@nl
+ #2%
+ ~~~~</bcf:inherit>\blx@nl}
+\xdef\blx@xml@inherit@type#1#2#3{%
+ ~~~~~~<bcf:type\string_pair source="#1" target="#2"#3/>\blx@nl}
+\xdef\blx@xml@inherit@field#1#2#3{%
+ ~~~~~~<bcf:field source="#1" target="#2"#3/>\blx@nl}
+\xdef\blx@xml@inherit@block#1{%
+ ~~~~~~<bcf:field source="#1" skip="true"/>\blx@nl}
+
+\xdef\blx@xml@nosorts#1{%
+ ~~<bcf:nosorts>\blx@nl
+ #1%
+ ~~</bcf:nosorts>\blx@nl}
+\xdef\blx@xml@nosort#1#2{%
+ ~~~~<bcf:nosort field="#1" value="#2"/>\blx@nl}
+
+\xdef\blx@xml@noinits#1{%
+ ~~<bcf:noinits>\blx@nl
+ #1%
+ ~~</bcf:noinits>\blx@nl}
+\xdef\blx@xml@noinit#1{%
+ ~~~~<bcf:noinit value="#1"/>\blx@nl}
+
+\xdef\blx@xml@nolabels#1{%
+ ~~<bcf:nolabels>\blx@nl
+ #1%
+ ~~</bcf:nolabels>\blx@nl}
+\xdef\blx@xml@nolabel#1{%
+ ~~~~<bcf:nolabel value="#1"/>\blx@nl}
+
+\xdef\blx@xml@nolabelwidthcounts#1{%
+ ~~<bcf:nolabelwidthcounts>\blx@nl
+ #1%
+ ~~</bcf:nolabelwidthcounts>\blx@nl}
+\xdef\blx@xml@nolabelwidthcount#1{%
+ ~~~~<bcf:nolabelwidthcount value="#1"/>\blx@nl}
+
+\xdef\blx@xml@uniquenametemplate#1#2{%
+ ~~<bcf:uniquenametemplate name="#1">\blx@nl%
+ #2%
+ ~~</bcf:uniquenametemplate>\blx@nl}
+
+\xdef\blx@xml@uniquenametemplatenamepart#1#2#3{%
+ ~~~~<bcf:namepart #1#2>#3</bcf:namepart>\blx@nl}
+
+\xdef\blx@xml@sortingnamekeytemplate#1#2{%
+ ~~<bcf:sortingnamekeytemplate name="#1">\blx@nl%
+ #2%
+ ~~</bcf:sortingnamekeytemplate>\blx@nl}
+
+\xdef\blx@xml@sortingnamekeykeypart#1#2{%
+ ~~~~<bcf:keypart#1>\blx@nl
+ #2%
+ ~~~~</bcf:keypart>\blx@nl}
+
+\xdef\blx@xml@sortingnamekeynamepart#1#2#3{%
+ ~~~~~~<bcf:part type="namepart"#1#2>#3</bcf:part>\blx@nl}
+
+\xdef\blx@xml@sortingnamekeyliteral#1#2{%
+ ~~~~~~<bcf:part type="literal"#1>#2</bcf:part>\blx@nl}
+
+\xdef\blx@xml@sortingtemplate#1#2#3{%
+ ~~<bcf:sortingtemplate name="#1"#2>\blx@nl%
+ #3%
+ ~~</bcf:sortingtemplate>\blx@nl}
+\xdef\blx@xml@presort#1#2{%
+ ~~<bcf:presort\noexpand\ifblank{#1}{}{ type="#1"}>%
+ #2</bcf:presort>\blx@nl}
+
+\xdef\blx@xml@sortexclude#1#2{%
+ ~~<bcf:sortexclusion\noexpand\ifblank{#1}{}{ type="#1"}>\blx@nl
+ #2%
+ ~~</bcf:sortexclusion>\blx@nl}
+\xdef\blx@xml@exclude#1{%
+ ~~~~<bcf:exclusion>#1</bcf:exclusion>\blx@nl}
+\xdef\blx@xml@sortinclude#1#2{%
+ ~~<bcf:sortinclusion\noexpand\ifblank{#1}{}{ type="#1"}>\blx@nl
+ #2%
+ ~~</bcf:sortinclusion>\blx@nl}
+\xdef\blx@xml@include#1{%
+ ~~~~<bcf:inclusion>#1</bcf:inclusion>\blx@nl}
+\xdef\blx@xml@sort#1#2{%
+ ~~~~<bcf:sort #1>\blx@nl
+ #2%
+ ~~~~</bcf:sort>\blx@nl}
+\xdef\blx@xml@sortitem#1#2{%
+ ~~~~~~<bcf:sortitem #1>#2</bcf:sortitem>\blx@nl}
+\xdef\blx@xml@section#1{%
+ ~~<bcf:section number="#1">}
+\xdef\blx@xml@endsection{%
+ ~~</bcf:section>}
+
+\xdef\blx@xml@dlist@refcontext#1#2#3#4#5{%
+ ~~~~~~~~~~~~~~~~sortingtemplatename="#1"\blx@nl
+ ~~~~~~~~~~~~~~~~sortingnamekeytemplatename="#2"\blx@nl
+ ~~~~~~~~~~~~~~~~labelprefix="#3"\blx@nl
+ ~~~~~~~~~~~~~~~~uniquenametemplatename="#4"\blx@nl
+ ~~~~~~~~~~~~~~~~labelalphanametemplatename="#5"}
+\xdef\blx@xml@dlist#1#2#3#4#5{%
+ ~~<bcf:datalist section="#3"\blx@nl
+ ~~~~~~~~~~~~~~~~name="#1"\blx@nl
+ ~~~~~~~~~~~~~~~~type="#2"\blx@nl
+ #4>\blx@nl
+ #5%
+ ~~</bcf:datalist>\blx@nl}
+\xdef\blx@xml@dlistfilterorbegin{%
+ ~~~~<bcf:filteror>\blx@nl}
+\xdef\blx@xml@dlistfilterorend{%
+ ~~~~</bcf:filteror>\blx@nl}
+\xdef\blx@xml@dlistfilter#1#2{%
+ ~~~~<bcf:filter type="#1">#2</bcf:filter>\blx@nl}
+
+\xdef\blx@xml@bibdata#1#2{%
+ ~~<bcf:bibdata section="#1">\blx@nl
+ #2%
+ ~~</bcf:bibdata>\blx@nl}
+\xdef\blx@xml@datasource#1#2#3#4{%
+ ~~~~<bcf:datasource type="#1" datatype="#2"#3>#4</bcf:datasource>\blx@nl}
+\xdef\blx@xml@citekey#1#2#3{%
+ ~~~~<bcf:citekey order="#3"#2>#1</bcf:citekey>}
+\xdef\blx@xml@citeset#1#2{%
+ ~~~~<bcf:citekey type="set" members="#2">#1</bcf:citekey>}
+\xdef\blx@xml@svalue#1#2{%
+ \blx@xml@option{singlevalued}{%
+ ~~~~~~<bcf:key>#1</bcf:key>\blx@nl
+ ~~~~~~<bcf:value>#2</bcf:value>\blx@nl}}
+\xdef\blx@xml@mvalue#1#2{%
+ \blx@xml@option{multivalued}{%
+ ~~~~~~<bcf:key>#1</bcf:key>\blx@nl
+ #2}}
+\xdef\blx@xml@toggle#1{%
+ \blx@xml@svalue{#1}{\noexpand\iftoggle{blx@#1}{1}{0}}}
+\xdef\blx@xml@options@scope#1#2{%
+ ~~<bcf:optionscope type="#1">\blx@nl
+ #2%
+ ~~</bcf:optionscope>\blx@nl}
+\xdef\blx@xml@option@scope#1#2{% GLOBAL/TYPE scope
+ ~~~~<bcf:option datatype="#1">#2</bcf:option>\blx@nl}
+\xdef\blx@xml@option@entryscope#1#2{% ENTRY scope
+ ~~~~<bcf:option datatype="#1"\noexpand\ifcsdef{blx@bcf@backendout@entry@#2}{ backendout="1"}{}\noexpand\ifcsdef{blx@bcf@backendin@entry@#2}{ backendin="\noexpand\csuse{blx@bcf@backendin@entry@#2}"}{}>#2</bcf:option>\blx@nl}
+\xdef\blx@xml@option@namelistscope#1#2{% NAMELIST scope
+ ~~~~<bcf:option datatype="#1"\noexpand\ifcsdef{blx@bcf@backendout@namelist@#2}{ backendout="1"}{}\noexpand\ifcsdef{blx@bcf@backendin@namelist@#2}{ backendin="\noexpand\csuse{blx@bcf@backendin@namelist@#2}"}{}>#2</bcf:option>\blx@nl}
+\xdef\blx@xml@option@namescope#1#2{% NAME scope
+ ~~~~<bcf:option datatype="#1"\noexpand\ifcsdef{blx@bcf@backendout@name@#2}{ backendout="1"}{}\noexpand\ifcsdef{blx@bcf@backendin@name@#2}{ backendin="\noexpand\csuse{blx@bcf@backendin@name@#2}"}{}>#2</bcf:option>\blx@nl}
+\endgroup
+
+\def\blx@bcf@options@global{%
+ \blx@xml@comment{GLOBAL}%
+ \blx@xml@options{biblatex}{global}{%
+ \blx@xml@svalue{alphaothers}{\labelalphaothers}%
+ \blx@xml@toggle{labelalpha}%
+ \blx@xml@mvalue{labelnamespec}{\blx@bcf@labelnamespec}%
+ \blx@xml@toggle{labeltitle}%
+ \blx@xml@mvalue{labeltitlespec}{\blx@bcf@labeltitlespec}%
+ \blx@xml@toggle{labeltitleyear}%
+ \blx@xml@toggle{labeldateparts}%
+ \blx@xml@mvalue{labeldatespec}{\blx@bcf@labeldatespec}%
+ \blx@xml@toggle{julian}%
+ \blx@xml@svalue{gregorianstart}{\blx@gregorianstart}%
+ \blx@xml@svalue{maxalphanames}{\blx@maxalphanames}%
+ \blx@xml@svalue{maxbibnames}{\blx@maxbibnames}%
+ \blx@xml@svalue{maxcitenames}{\blx@maxcitenames}%
+ \blx@xml@svalue{maxsortnames}{\blx@maxsortnames}%
+ \blx@xml@svalue{maxitems}{\blx@maxitems}%
+ \blx@xml@svalue{minalphanames}{\blx@minalphanames}%
+ \blx@xml@svalue{minbibnames}{\blx@minbibnames}%
+ \blx@xml@svalue{mincitenames}{\blx@mincitenames}%
+ \blx@xml@svalue{minsortnames}{\blx@minsortnames}%
+ \blx@xml@svalue{minitems}{\blx@minitems}%
+ \blx@xml@toggle{nohashothers}%
+ \blx@xml@toggle{noroman}%
+ \blx@xml@toggle{nosortothers}%
+ \blx@xml@toggle{singletitle}%
+ \blx@xml@toggle{skipbib}%
+ \blx@xml@toggle{skipbiblist}%
+ \blx@xml@toggle{skiplab}%
+ \blx@xml@svalue{sortalphaothers}{\sortalphaothers}%
+ \blx@xml@svalue{sortlocale}{\blx@sortlocale}%
+ \blx@xml@svalue{sortingtemplatename}{\blx@sorting}%
+ \blx@xml@toggle{sortsets}%
+ \blx@xml@svalue{uniquelist}{\blx@uniquelist}%
+ \blx@xml@svalue{uniquename}{\blx@uniquename}%
+ \blx@xml@toggle{uniqueprimaryauthor}%
+ \blx@xml@toggle{uniquetitle}%
+ \blx@xml@toggle{uniquebaretitle}%
+ \blx@xml@toggle{uniquework}%
+ \blx@xml@toggle{useprefix}%
+ \blx@xml@nametoggles
+ }%
+}
+
+\def\blx@bcf@options@type#1{%
+ \blx@xml@comment{#1}%
+ \blx@xml@options{biblatex}{#1}{%
+ \blx@xml@toggle{labelalpha}%
+ \blx@xml@mvalue{labelnamespec}{%
+ \ifcsdef{blx@bcf@labelnamespec@#1}
+ {\csuse{blx@bcf@labelnamespec@#1}}
+ {\blx@bcf@labelnamespec}}%
+ \blx@xml@toggle{labeltitle}%
+ \blx@xml@mvalue{labeltitlespec}{%
+ \ifcsdef{blx@bcf@labeltitlespec@#1}
+ {\csuse{blx@bcf@labeltitlespec@#1}}
+ {\blx@bcf@labeltitlespec}}%
+ \blx@xml@toggle{labeltitleyear}%
+ \blx@xml@toggle{labeldateparts}%
+ \blx@xml@mvalue{labeldatespec}{%
+ \ifcsdef{blx@bcf@labeldatespec@#1}
+ {\csuse{blx@bcf@labeldatespec@#1}}
+ {\blx@bcf@labeldatespec}}%
+ \blx@xml@svalue{maxalphanames}{\blx@maxalphanames}%
+ \blx@xml@svalue{maxbibnames}{\blx@maxbibnames}%
+ \blx@xml@svalue{maxcitenames}{\blx@maxcitenames}%
+ \blx@xml@svalue{maxsortnames}{\blx@maxsortnames}%
+ \blx@xml@svalue{maxitems}{\blx@maxitems}%
+ \blx@xml@svalue{minalphanames}{\blx@minalphanames}%
+ \blx@xml@svalue{minbibnames}{\blx@minbibnames}%
+ \blx@xml@svalue{mincitenames}{\blx@mincitenames}%
+ \blx@xml@svalue{minsortnames}{\blx@minsortnames}%
+ \blx@xml@svalue{minitems}{\blx@minitems}%
+ \blx@xml@toggle{nohashothers}%
+ \blx@xml@toggle{noroman}%
+ \blx@xml@toggle{nosortothers}%
+ \blx@xml@toggle{singletitle}%
+ \blx@xml@toggle{skipbib}%
+ \blx@xml@toggle{skiplab}%
+ \blx@xml@toggle{skipbiblist}%
+ \blx@xml@svalue{uniquelist}{\blx@uniquelist}%
+ \blx@xml@svalue{uniquename}{\blx@uniquename}%
+ \blx@xml@toggle{uniqueprimaryauthor}%
+ \blx@xml@toggle{uniquetitle}%
+ \blx@xml@toggle{uniquebaretitle}%
+ \blx@xml@toggle{uniquework}%
+ \blx@xml@toggle{useprefix}%
+ \blx@xml@nametoggles
+ }%
+}
+
+\def\blx@ctrlwrite{%
+ \begingroup
+ \blx@safe@actives
+ \let\protect\string
+ % options
+ \edef\labelalphaothers{\labelalphaothers}%
+ \edef\sortalphaothers{\sortalphaothers}%
+ \blx@xmlsanitizeafter{\def\labelalphaothers}{\labelalphaothers}%
+ \blx@xmlsanitizeafter{\def\sortalphaothers}{\sortalphaothers}%
+ % Expand the global use* name toggles
+ \let\blx@xml@nametoggles\@empty
+ \def\do##1{\eappto\blx@xml@nametoggles{\blx@xml@toggle{use##1}}}%
+ \abx@donames
+ \edef\blx@tempa{%
+ \blx@xml@file
+ \blx@xml@comment{BIBER OPTIONS}%
+ \blx@xml@options{biber}{global}{%
+ \blx@xml@svalue{output_encoding}{\blx@texencoding}%
+ \blx@xml@svalue{input_encoding}{\blx@bibencoding}%
+ \blx@xml@toggle{debug}%
+ \blx@xml@svalue{mincrossrefs}{\blx@mincrossrefs}%
+ \blx@xml@svalue{minxrefs}{\blx@minxrefs}%
+ \blx@xml@toggle{sortcase}%
+ \blx@xml@toggle{sortupper}%
+ }%
+ \blx@xml@comment{BIBLATEX OPTIONS}%
+ \blx@bcf@options@global
+ }%
+ \ifdef\blx@opts@type
+ {\def\do##1{%
+ \begingroup
+ \let\protect\relax
+ \blx@setoptions@type{##1}%
+ % Expand the type use* name toggles
+ \let\blx@xml@nametoggles\@empty
+ \def\do####1{\eappto\blx@xml@nametoggles{\blx@xml@toggle{use####1}}}%
+ \abx@donames
+ \blx@checkoptions@type
+ \xappto\blx@tempa{\blx@bcf@options@type{##1}}%
+ \endgroup}%
+ \dolistloop\blx@opts@type}
+ {}%
+ % options scope
+ % GLOBAL
+ \def\do##1{%
+ \begingroup
+ \def\do####1{\xappto\blx@bcf@options@scope@global{\blx@xml@option@scope{##1}{####1}}}%
+ \dolistcsloop{blx@globalopts@##1}%
+ \endgroup}%
+ \dolistloop\blx@globalopts@datatypes
+ % ENTRYTYPE
+ \def\do##1{%
+ \begingroup
+ \def\do####1{\xappto\blx@bcf@options@scope@type{\blx@xml@option@scope{##1}{####1}}}%
+ \dolistcsloop{blx@typeopts@##1}%
+ \endgroup}%
+ \dolistloop\blx@typeopts@datatypes
+ % ENTRY
+ \def\do##1{%
+ \begingroup
+ \def\do####1{\xappto\blx@bcf@options@scope@entry{\blx@xml@option@entryscope{##1}{####1}}}%
+ \dolistcsloop{blx@entryopts@##1}%
+ \endgroup}%
+ \dolistloop\blx@entryopts@datatypes
+ % NAMELIST
+ \def\do##1{%
+ \begingroup
+ \def\do####1{\xappto\blx@bcf@options@scope@namelist{\blx@xml@option@namelistscope{##1}{####1}}}%
+ \dolistcsloop{blx@namelistopts@##1}%
+ \endgroup}%
+ \dolistloop\blx@entryopts@datatypes
+ % NAME
+ \def\do##1{%
+ \begingroup
+ \def\do####1{\xappto\blx@bcf@options@scope@name{\blx@xml@option@namescope{##1}{####1}}}%
+ \dolistcsloop{blx@nameopts@##1}%
+ \endgroup}%
+ \dolistloop\blx@entryopts@datatypes
+
+ \eappto\blx@tempa{%
+ \blx@xml@comment{BIBLATEX OPTION SCOPE}%
+ \blx@xml@options@scope{GLOBAL}{\blx@bcf@options@scope@global}%
+ \blx@xml@options@scope{ENTRYTYPE}{\blx@bcf@options@scope@type}%
+ \blx@xml@options@scope{ENTRY}{\blx@bcf@options@scope@entry}%
+ \blx@xml@options@scope{NAMELIST}{\blx@bcf@options@scope@namelist}%
+ \blx@xml@options@scope{NAME}{\blx@bcf@options@scope@name}}
+ % datafieldsets
+ \def\do##1{%
+ \xappto\blx@bcf@datafieldsets{\blx@xml@datafieldset{##1}{\csuse{blx@datafieldsetmembers@##1}}}}
+ \dolistloop\blx@datafieldsets
+
+ \eappto\blx@tempa{%
+ \blx@xml@comment{DATAFIELDSETS}%
+ \blx@bcf@datafieldsets}%
+ % sourcemap
+ \ifbool{sourcemap}
+ {\eappto\blx@tempa{%
+ \blx@xml@comment{SOURCEMAP}%
+ \blx@xml@sourcemap{%
+ \ifdef\blx@sourcemap@user
+ {\blx@sourcemap@user}
+ {}%
+ \ifdef\blx@sourcemap@style
+ {\blx@sourcemap@style}
+ {}%
+ \ifdef\blx@sourcemap@defaults@bibtex
+ {\blx@sourcemap@defaults@bibtex}
+ {}%
+ \ifdef\blx@sourcemap@defaults@biblatexml
+ {\blx@sourcemap@defaults@biblatexml}
+ {}}}}
+ {}%
+ % labelalpha name template
+ \eappto\blx@tempa{\blx@xml@comment{LABELALPHA NAME TEMPLATE}}%
+ \def\do##1{%
+ \eappto\blx@tempa{%
+ \blx@xml@labelalphanametemplate{##1}{\csuse{blx@labelalphanametemplate@##1}}}}%
+ \dolistloop\blx@lantemplatespecs
+ % labelalpha template
+ \eappto\blx@tempa{%
+ \blx@xml@comment{LABELALPHA TEMPLATE}}%
+ \def\do##1{%
+ \eappto\blx@tempa{%
+ \blx@xml@labelalphatemplate{##1}{%
+ \csuse{blx@labelalphatemplate@##1}}}}%
+ \dolistloop\blx@latem@type
+ % extradate specification
+ \eappto\blx@tempa{%
+ \blx@xml@comment{EXTRADATE}%
+ \blx@xml@extradate{\csuse{blx@bcf@extradatespec}}}%
+ % data inheritance
+ \eappto\blx@tempa{%
+ \blx@xml@comment{INHERITANCE}%
+ \blx@xml@inheritance{%
+ \csuse{blx@inherit@default}%
+ \csuse{blx@inherit@data}}}%
+ % noinit
+ \ifcsdef{blx@noinit}
+ {\eappto\blx@tempa{%
+ \blx@xml@comment{NOINIT}%
+ \blx@xml@noinits{%
+ \csuse{blx@noinit}}}}%
+ {}%
+ % nolabel
+ \ifcsdef{blx@nolabel}
+ {\eappto\blx@tempa{%
+ \blx@xml@comment{NOLABEL}%
+ \blx@xml@nolabels{%
+ \csuse{blx@nolabel}}}}%
+ {}%
+ % nolabel
+ \ifcsdef{blx@nolabelwidthcount}
+ {\eappto\blx@tempa{%
+ \blx@xml@comment{NOLABELWIDTHCOUNT}%
+ \blx@xml@nolabelwidthcounts{%
+ \csuse{blx@nolabelwidthcount}}}}%
+ {}%
+ % nosort
+ \ifcsdef{blx@nosort}
+ {\eappto\blx@tempa{%
+ \blx@xml@comment{NOSORT}%
+ \blx@xml@nosorts{%
+ \csuse{blx@nosort}}}}%
+ {}%
+ % transliteration
+ \ifdefempty\blx@translits
+ {}
+ {\eappto\blx@tempa{\blx@xml@comment{TRANSLITERATION}}%
+ \def\do##1{%
+ \eappto\blx@tempa{\blx@xml@transliteration{##1}{\csuse{blx@translit@##1}}}}%
+ \dolistloop\blx@translits}%
+ % uniquenametemplate
+ \eappto\blx@tempa{\blx@xml@comment{UNIQUENAME TEMPLATES}}%
+ \def\do##1{%
+ \eappto\blx@tempa{%
+ \blx@xml@uniquenametemplate{##1}{\csuse{blx@uniquenametemplate@##1}}}}%
+ \dolistloop\blx@untemplatespecs
+ % sortingnamekeytemplate
+ \eappto\blx@tempa{\blx@xml@comment{SORTING NAME KEY TEMPLATES}}%
+ \def\do##1{%
+ \eappto\blx@tempa{%
+ \blx@xml@sortingnamekeytemplate{##1}{\csuse{blx@sortingnamekeytemplate@##1}}}}%
+ \dolistloop\blx@sortingnamekeytemplates
+ % presort/sorting excludes/sorting includes
+ \def\do##1{%
+ \eappto\blx@bcf@presort{\csuse{blx@bcf@presort@##1}}%
+ \eappto\blx@bcf@exclude{\csuse{blx@bcf@exclude@##1}}%
+ \eappto\blx@bcf@include{\csuse{blx@bcf@include@##1}}}%
+ \abx@doentrytypes
+ \do{*}% entrytype wildcard
+ \eappto\blx@tempa{%
+ \blx@bcf@presort
+ \blx@bcf@exclude
+ \blx@bcf@include}%
+ % datamodel
+ \eappto\blx@tempa{%
+ \blx@xml@comment{DATA MODEL}%
+ \blx@xml@datamodel{%
+ \blx@xml@datamodel@constants{%
+ \blx@bcf@datamodel@constants
+ }%
+ \blx@xml@datamodel@entrytypes{%
+ \blx@bcf@datamodel@entrytypes
+ }%
+ \blx@xml@datamodel@fields{%
+ \blx@bcf@datamodel@fields
+ }%
+ \blx@bcf@datamodel@entryfields
+ \blx@bcf@datamodel@constraints
+ }%
+ }%
+ % files
+ \let\blx@tempb\@empty
+ \blx@bibdata\blx@tempb\blx@bibfiles
+ \eappto\blx@tempa{%
+ \blx@xml@comment{CITATION DATA}%
+ \blx@xml@comment{SECTION 0}%
+ \blx@xml@bibdata{0}{\blx@tempb}%
+ \blx@xml@section{0}%
+ }%
+ \immediate\openout\blx@bcfout\jobname.bcf\relax
+ \blx@auxwrite\blx@bcfout{}{\blx@tempa}%
+ \global\undef\blx@tempa
+ \endgroup
+ \AfterEndDocument{%
+ \def\do##1{%
+ \csxappto{blx@sortingtemplates}{%
+ \blx@xml@sortingtemplate{##1}
+ {\ifcsdef{blx@sortdef@locale@##1}{ locale="\csuse{blx@sortdef@locale@##1}"}{}}
+ {\csuse{blx@sortingtemplate@##1}}}}%
+ \dolistloop\blx@sortingtemplatenames
+ \blx@auxwrite\blx@bcfout{}{%
+ \blx@xml@endsection\blx@nl
+ \blx@xml@comment{SORTING TEMPLATES}%
+ \csuse{blx@sortingtemplates}%
+ \blx@xml@comment{DATALISTS}%
+ \csuse{blx@dlists}%
+ \blx@xml@endfile}%
+ \immediate\closeout\blx@bcfout}}
+
+%% Customisation
+
+% nolabel
+\newrobustcmd*{\DeclareNolabel}[1]{%
+ \begingroup
+ \let\nolabel\blx@nolabel@setup
+ \let\blx@tempa\@empty
+ #1%
+ \global\let\blx@nolabel\blx@tempa
+ \endgroup}
+\@onlypreamble\DeclareNolabel
+
+\newcommand*{\blx@nolabel@setup}[1]{%
+ \eappto\blx@tempa{%
+ \blx@xml@nolabel{#1}}}
+
+% nolabelwidthcount
+\newrobustcmd*{\DeclareNolabelwidthcount}[1]{%
+ \begingroup
+ \let\nolabel\blx@nolabelwidthcount@setup
+ \let\blx@tempa\@empty
+ #1%
+ \global\let\blx@nolabelwidthcount\blx@tempa
+ \endgroup}
+\@onlypreamble\DeclareNolabelwidthcount
+
+\newcommand*{\blx@nolabelwidthcount@setup}[1]{%
+ \eappto\blx@tempa{%
+ \blx@xml@nolabelwidthcount{#1}}}
+
+% nosort
+\newrobustcmd*{\DeclareNosort}[1]{%
+ \begingroup
+ \let\nosort\blx@nosort@setup
+ \let\blx@tempa\@empty
+ #1%
+ \global\let\blx@nosort\blx@tempa
+ \endgroup}
+\@onlypreamble\DeclareNosort
+
+\newcommand*{\blx@nosort@setup}[2]{%
+ \eappto\blx@tempa{%
+ \blx@xml@nosort{#1}{#2}}}
+
+% noinit
+\newrobustcmd*{\DeclareNoinit}[1]{%
+ \begingroup
+ \let\noinit\blx@noinit@setup
+ \let\blx@tempa\@empty
+ #1%
+ \global\let\blx@noinit\blx@tempa
+ \endgroup}
+\@onlypreamble\DeclareNoinit
+
+\newcommand*{\blx@noinit@setup}[1]{%
+ \eappto\blx@tempa{%
+ \blx@xml@noinit{#1}}}
+
+% datafieldsets
+\newrobustcmd*{\DeclareDatafieldSet}[2]{%
+ \begingroup
+ \let\member\blx@datafieldset@member
+ \let\blx@tempa\@empty
+ \def\blx@setname{#1}
+ \cslet{blx@datafieldset@#1}\@empty
+ #2%
+ \csxdef{blx@datafieldsetmembers@#1}{\blx@tempa}%
+ \listgadd\blx@datafieldsets{#1}%
+ \global\csletcs{datafieldset#1}{blx@datafieldset@#1}% expose user-facing macro
+ \endgroup}
+\@onlypreamble\DeclareDatafieldSet
+
+\newcommand*{\blx@datafieldset@member}[1][2]{%
+ \let\blx@dm@fieldtype\@empty
+ \let\blx@dm@datatype\@empty
+ \let\blx@member@field\@empty
+ \let\blx@tempb\@empty
+ \setkeys{blx@datafieldsets@member}{#1}%
+ \eappto\blx@tempa{%
+ \blx@xml@datafieldsets@member{\blx@tempb}}%
+ \ifdefempty\blx@member@field
+ {}
+ {\listcsxadd{blx@datafieldset@\blx@setname}{\blx@member@field}}%
+ % Set some internal macros in case biblatex needs to use the set
+ \ifboolexpr{%
+ not test {\ifdefempty{\blx@dm@fieldtype}}
+ and
+ not test {\ifdefempty{\blx@dm@datatype}}}
+ {\def\do##1{%
+ \listcsxadd{blx@datafieldset@\blx@setname}{##1}}
+ \dolistcsloop{blx@datamodelfields@types@\blx@dm@fieldtype @\blx@dm@datatype}}
+ {\ifdefempty{\blx@dm@fieldtype}
+ {}
+ {\def\do##1{%
+ \listcsxadd{blx@datafieldset@\blx@setname}{##1}}
+ \dolistcsloop{blx@datamodelfields@fieldtypes@\blx@dm@fieldtype}}%
+ \ifdefempty{\blx@dm@datatype}
+ {}
+ {\def\do##1{%
+ \listcsxadd{blx@datafieldset@\blx@setname}{##1}}
+ \dolistcsloop{blx@datamodelfields@datatypes@\blx@dm@datatype}}}}
+
+\define@key{blx@datafieldsets@member}{datatype}{% characters
+ \appto\blx@tempb{ datatype="#1"}%
+ \def\blx@dm@datatype{#1}}
+\define@key{blx@datafieldsets@member}{fieldtype}{% characters
+ \appto\blx@tempb{ fieldtype="#1"}%
+ \def\blx@dm@fieldtype{#1}}
+\define@key{blx@datafieldsets@member}{field}{% characters
+ \appto\blx@tempb{ field="#1"}%
+ \def\blx@member@field{#1}}
+
+% sourcemap
+\newrobustcmd*{\DeclareSourcemap}[1]{%
+ \booltrue{sourcemap}%
+ \begingroup
+ \let\maps\blx@usersourcemap@maps
+ \let\blx@tempa\@empty
+ #1%
+ \xappto\blx@sourcemap@user\blx@tempa%
+ \endgroup}
+\@onlypreamble\DeclareSourcemap
+
+\newrobustcmd*{\DeclareStyleSourcemap}[1]{%
+ \booltrue{sourcemap}%
+ \begingroup
+ \let\maps\blx@stylesourcemap@maps
+ \let\blx@tempa\@empty
+ #1%
+ \xappto\blx@sourcemap@style\blx@tempa%
+ \endgroup}
+
+\@onlypreamble\DeclareStyleSourcemap
+
+\newrobustcmd*{\DeclareDriverSourcemap}[2][]{%
+ \booltrue{sourcemap}%
+ \begingroup
+ \let\blx@tempa\@empty
+ \let\blx@tempb\@empty
+ \let\blx@tempc\@empty
+ \let\blx@tempd\@empty
+ \let\map\blx@sourcemap@map
+ #2%
+ \ifblank{#1}
+ {\setkeys{blx@sourcemap@maps}{datatype=bibtex, level=driver}}
+ {\setkeys{blx@sourcemap@maps}{#1, level=driver}}%
+ \eappto\blx@tempa{%
+ \blx@xml@sourcemap@maps{\blx@tempb}{\blx@tempc}}%
+ \csxdef{blx@sourcemap@defaults@\blx@tempd}{\blx@tempa}%
+ \endgroup}
+\@onlypreamble\DeclareDriverSourcemap
+
+\newcommand*{\blx@usersourcemap@maps}[2][]{%
+ \let\blx@tempb\@empty
+ \let\blx@tempc\@empty
+ \let\map\blx@sourcemap@map
+ \ifblank{#1}
+ {\setkeys{blx@sourcemap@maps}{datatype=bibtex, level=user}}
+ {\setkeys{blx@sourcemap@maps}{#1, level=user}}%
+ #2%
+ \eappto\blx@tempa{%
+ \blx@xml@sourcemap@maps{\blx@tempb}{\blx@tempc}}}
+
+\newcommand*{\blx@stylesourcemap@maps}[2][]{%
+ \let\blx@tempb\@empty
+ \let\blx@tempc\@empty
+ \let\map\blx@sourcemap@map
+ \ifblank{#1}
+ {\setkeys{blx@sourcemap@maps}{datatype=bibtex, level=style}}
+ {\setkeys{blx@sourcemap@maps}{#1, level=style}}%
+ #2%
+ \eappto\blx@tempa{%
+ \blx@xml@sourcemap@maps{\blx@tempb}{\blx@tempc}}}
+
+\define@key{blx@sourcemap@maps}{datatype}{% characters
+ \eappto\blx@tempb{ datatype="#1"}%
+ \eappto\blx@tempd{#1}}
+\define@key{blx@sourcemap@maps}{overwrite}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempb{ map\string_overwrite="1"}}
+ {}}
+\define@key{blx@sourcemap@maps}{level}{% user|style|driver
+ \appto\blx@tempb{ level="#1"}}
+
+\newcommand*{\blx@sourcemap@map}[2][]{%
+ \let\blx@tempm\@empty
+ \let\blx@tempe\@empty
+ \let\perdatasource\blx@sourcemap@perdatasource
+ \let\pertype\blx@sourcemap@pertype
+ \let\pernottype\blx@sourcemap@pernottype
+ \let\step\blx@sourcemap@step
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@sourcemap@map}{#1}}%
+ #2%
+ \eappto\blx@tempc{%
+ \blx@xml@sourcemap@map{\blx@tempm}{\blx@tempe}}}
+
+\define@key{blx@sourcemap@map}{overwrite}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempm{ map\string_overwrite="1"}}
+ {}}
+\define@key{blx@sourcemap@map}{foreach}{% characters
+ \eappto\blx@tempm{ map\string_foreach="#1"}}
+\define@key{blx@sourcemap@map}{refsection}{% integer
+ \eappto\blx@tempm{ refsection="#1"}}
+
+\newcommand*{\blx@sourcemap@perdatasource}[1]{%
+ \eappto\blx@tempe{%
+ \blx@xml@sourcemap@perdatasource{#1}}}
+
+\newcommand*{\blx@sourcemap@pertype}[1]{%
+ \eappto\blx@tempe{%
+ \blx@xml@sourcemap@pertype{#1}}}
+
+\newcommand*{\blx@sourcemap@pernottype}[1]{%
+ \eappto\blx@tempe{%
+ \blx@xml@sourcemap@pernottype{#1}}}
+
+\newcommand*{\blx@sourcemap@step}[1][2]{%
+ \let\blx@tempf\@empty
+ \setkeys{blx@sourcemap@step}{#1}%
+ \eappto\blx@tempe{%
+ \blx@xml@sourcemap@step{\blx@tempf}}}
+
+\define@key{blx@sourcemap@step}{typesource}{% characters
+ \eappto\blx@tempf{ map\string_type\string_source="#1"}}
+\define@key{blx@sourcemap@step}{typetarget}{% characters
+ \eappto\blx@tempf{ map\string_type\string_target="#1"}}
+\define@key{blx@sourcemap@step}{final}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_final="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{fieldsource}{% characters
+ \eappto\blx@tempf{ map\string_field\string_source="#1"}}
+\define@key{blx@sourcemap@step}{notfield}{% characters
+ \eappto\blx@tempf{ map\string_notfield="#1"}}
+\define@key{blx@sourcemap@step}{fieldtarget}{% characters
+ \eappto\blx@tempf{ map\string_field\string_target="#1"}}
+\define@key{blx@sourcemap@step}{fieldset}{% characters
+ \eappto\blx@tempf{ map\string_field\string_set="#1"}}
+% We are sanitising the XML here as it's the value of an attribute which
+% might contain quotes or ampersands (URLs, for example)
+\define@key{blx@sourcemap@step}{fieldvalue}{% characters
+ \blx@xmlsanitizeafter{\def\blx@temps}{#1}%
+ \eappto\blx@tempf{ map\string_field\string_value="\blx@temps"}}
+\define@key{blx@sourcemap@step}{append}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_append="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{appendstrict}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_appendstrict="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{null}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_null="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{entrynull}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_entry\string_null="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{entrynocite}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_entry\string_nocite="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{entrynew}{% characters
+ \appto\blx@tempf{ map\string_entry\string_new="#1"}}
+\define@key{blx@sourcemap@step}{entrynewtype}{% characters
+ \appto\blx@tempf{ map\string_entry\string_newtype="#1"}}
+\define@key{blx@sourcemap@step}{entrytarget}{% characters
+ \appto\blx@tempf{ map\string_entrytarget="#1"}}
+\define@key{blx@sourcemap@step}{entryclone}{% characters
+ \appto\blx@tempf{ map\string_entry\string_clone="#1"}}
+\define@key{blx@sourcemap@step}{origfield}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_origfield="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{origfieldval}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_origfieldval="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{origentrytype}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempf{ map\string_origentrytype="1"}}
+ {}}
+\define@key{blx@sourcemap@step}{match}{% characters
+ \appto\blx@tempf{ map\string_match="#1"}}
+\define@key{blx@sourcemap@step}{matchi}{% characters
+ \appto\blx@tempf{ map\string_matchi="#1"}}
+\define@key{blx@sourcemap@step}{notmatch}{% characters
+ \appto\blx@tempf{ map\string_notmatch="#1"}}
+\define@key{blx@sourcemap@step}{notmatchi}{% characters
+ \appto\blx@tempf{ map\string_notmatchi="#1"}}
+\define@key{blx@sourcemap@step}{replace}{% characters
+ \eappto\blx@tempf{ map\string_replace="#1"}}
+
+% [<specname>]{<spec>}
+\newrobustcmd*{\DeclareLabelalphaNameTemplate}[2][]{%
+ \begingroup
+ \ifblank{#1}
+ {\def\blx@lantname{global}}% default
+ {\def\blx@lantname{#1}}%
+ \let\namepart\blx@lantem@namepart
+ \let\blx@tempa\@empty
+ \blx@tempcnta\z@
+ #2%
+ \global\cslet{blx@labelalphanametemplate@\blx@lantname}\blx@tempa
+ \xifinlist\blx@lantname\blx@lantemplatespecs
+ {}
+ {\listxadd\blx@lantemplatespecs\blx@lantname}%
+ \endgroup}
+\@onlypreamble\DeclareLabelalphaNameTemplate
+\blx@DeclareBackendOption{global}[xml]{labelalphanametemplate}
+\DeclareBiblatexOption{entry,namelist,name}[string]{labelalphanametemplatename}{%
+ \def\blx@refcontext@labelalphanametemplatename{#1}}
+
+\newcommand*{\blx@lantem@namepart}[2][]{%
+ \advance\blx@tempcntb\@ne
+ \edef\blx@tempe{order="\the\blx@tempcntb"}%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@lantem@namepart}{#1}}%
+ \eappto\blx@tempa{%
+ \blx@xml@labelalphanametemplatenamepart{\blx@tempe}{\blx@tempc}{#2}}}
+
+\define@key{blx@lantem@namepart}{use}[true]{% use* option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ use="1"}}
+ {}}
+
+\define@key{blx@lantem@namepart}{pre}[true]{% pre option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ pre="1"}}
+ {}}
+
+\define@key{blx@lantem@namepart}{compound}[true]{% base option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ substring\string_compound="1"}}
+ {}}
+
+\define@key{blx@lantem@namepart}{strwidth}{% integer
+ \eappto\blx@tempc{ substring\string_width="#1"}}
+
+\define@key{blx@lantem@field}{strside}{% left|right
+ \ifstrequal{#1}{right}
+ {\eappto\blx@tempc{ substring\string_side="right"}}
+ {\eappto\blx@tempc{ substring\string_side="left"}}}
+
+% [<entrytype>]{<spec>}
+\newrobustcmd*{\DeclareLabelalphaTemplate}[2][]{%
+ \ifblank{#1}
+ {\blx@latem{#2}{global}}
+ {\forcsvlist{\blx@latem{#2}}{#1}}}
+\@onlypreamble\DeclareLabelalphaTemplate
+\blx@DeclareBackendOption{global,type}[xml]{labelalphatemplate}
+
+\def\blx@latem#1#2{%
+ \begingroup
+ \let\labelelement\blx@latem@element
+ \let\field\blx@latem@field
+ \let\literal\blx@latem@literal
+ \blx@tempcnta\z@
+ \let\blx@tempa\@empty
+ #1%
+ \ifdef\blx@latem@type
+ {\ifinlist{#2}\blx@latem@type
+ {\global\cslet{blx@labelalphatemplate@#2}\blx@tempa}
+ {\listgadd\blx@latem@type{#2}%
+ \global\cslet{blx@labelalphatemplate@#2}\blx@tempa}}
+ {\listgadd\blx@latem@type{#2}%
+ \global\cslet{blx@labelalphatemplate@#2}\blx@tempa}%
+ \endgroup}
+
+\newcommand*{\blx@latem@element}[1]{%
+ \advance\blx@tempcnta\@ne
+ \let\blx@tempb\@empty
+ #1%
+ \eappto\blx@tempa{%
+ \blx@xml@labelalpha@element{\the\blx@tempcnta}{\blx@tempb}}}
+
+\newcommand*{\blx@latem@literal}[1]{%
+ \blx@xmlsanitizeafter{\def\blx@temps}{#1}%
+ \eappto\blx@tempb{%
+ \blx@xml@labelalpha@part{}{\expandafter\regexp\expandafter{\blx@temps}}}}
+
+\newcommand*{\blx@latem@field}[2][]{%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@latem@field}{#1}}%
+ \eappto\blx@tempb{%
+ \blx@xml@labelalpha@part{\blx@tempc}{#2}}}
+
+\define@key{blx@latem@field}{uppercase}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ uppercase="1"}}
+ {}}
+\define@key{blx@latem@field}{lowercase}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ lowercase="1"}}
+ {}}
+\define@key{blx@latem@field}{final}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ final="1"}}
+ {}}
+\define@key{blx@latem@field}{strwidth}{% integer
+ \eappto\blx@tempc{ substring\string_width="#1"}}
+\define@key{blx@latem@field}{varwidth}[true]{% "v"
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ substring\string_width="v"}}
+ {}}
+\define@key{blx@latem@field}{varwidthnorm}[true]{% "vf"
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ substring\string_width="vf"}}
+ {}}
+\define@key{blx@latem@field}{varwidthlist}[true]{% "l"
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ substring\string_width="l"}}
+ {}}
+\define@key{blx@latem@field}{strfixedcount}{%
+ \eappto\blx@tempc{ substring\string_fixed\string_threshold="#1"}}
+\define@key{blx@latem@field}{strwidthmax}{%
+ \eappto\blx@tempc{ substring\string_width\string_max="#1"}}
+\define@key{blx@latem@field}{strside}{% left|right
+ \ifstrequal{#1}{right}
+ {\eappto\blx@tempc{ substring\string_side="right"}}
+ {\eappto\blx@tempc{ substring\string_side="left"}}}
+\define@key{blx@latem@field}{namessep}{%
+ \eappto\blx@tempc{ namessep="#1"}}
+\define@key{blx@latem@field}{ifnames}{%
+ \eappto\blx@tempc{ ifnames="#1"}}
+\define@key{blx@latem@field}{names}{%
+ \eappto\blx@tempc{ names="#1"}}
+\define@key{blx@latem@field}{noalphaothers}[true]{%
+ \eappto\blx@tempc{ noalphaothers="1"}}
+\define@key{blx@latem@field}{padchar}{%
+ \blx@xmlsanitizeafter{\def\blx@temps}{#1}%
+ \eappto\blx@tempc{ pad\string_char="\expandafter\regexp\expandafter{\blx@temps}"}}
+\define@key{blx@latem@field}{padside}{% left|right
+ \ifstrequal{#1}{left}
+ {\eappto\blx@tempc{ pad\string_side="left"}}
+ {\eappto\blx@tempc{ pad\string_side="right"}}}
+
+% [<exceptions>]{<options>}
+\newrobustcmd*{\DefaultInheritance}[2][]{%
+ \begingroup
+ \let\blx@tempf\@empty
+ \ifblank{#2}
+ {}
+ {\setkeys{blx@inherit@default}{#2}}%
+ \edef\blx@tempa{\space
+ inherit\string_all="\iftoggle{blx@inherit@all}{true}{false}"\space
+ override\string_target="\iftoggle{blx@inherit@override}{true}{false}"%
+ \blx@tempf}%
+ \let\blx@tempb\@empty
+ \let\except\blx@inherit@except
+ #1%
+ \xdef\blx@inherit@default{%
+ \blx@xml@inherit@defaults{\blx@tempa}{\blx@tempb}}%
+ \endgroup}
+\@onlypreamble\DefaultInheritance
+
+\newtoggle{blx@inherit@all}
+\newtoggle{blx@inherit@override}
+
+\define@key{blx@inherit@default}{all}[true]{% true|false
+ \settoggle{blx@inherit@all}{#1}}
+\define@key{blx@inherit@default}{override}[true]{% true|false
+ \settoggle{blx@inherit@override}{#1}}
+\define@key{blx@inherit@default}{ignore}{% csv list
+ \edef\blx@tempf{ ignore="#1"}}
+
+% {<source>}{<target>}{<options>}
+\newcommand*{\blx@inherit@except}[3]{%
+ \let\blx@tempc\@empty
+ \ifblank{#3}
+ {}
+ {\setkeys{blx@inherit@except}{#3}}%
+ \eappto\blx@tempb{%
+ \blx@xml@inherit@type{#1}{#2}{\blx@tempc}}}
+
+\define@key{blx@inherit@except}{all}[true]{% true|false
+ \eappto\blx@tempc{ inherit\string_all="#1"}}
+\define@key{blx@inherit@except}{override}[true]{% true|false
+ \eappto\blx@tempc{ override\string_target="#1"}}
+\define@key{blx@inherit@except}{ignore}{% csv list
+ \eappto\blx@tempc{ ignore="#1"}}
+
+% {<type,type,...>}{<type,type,...>}{<spec>}
+\newrobustcmd*{\DeclareDataInheritance}[4][]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \let\blx@tempf\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@inherit}{#1}}%
+ \forcsvlist{\blx@inherit@i{#3}}{#2}%
+ \let\blx@tempb\@empty
+ \let\inherit\blx@inherit@field
+ \let\noinherit\blx@inherit@block
+ #4%
+ \xappto\blx@inherit@data{%
+ \blx@xml@inherit@data{\blx@tempf}{%
+ \blx@tempa
+ \blx@tempb}}%
+ \endgroup}
+\@onlypreamble\DeclareDataInheritance
+
+\def\blx@inherit@i#1#2{%
+ \forcsvlist{\blx@inherit@ii{#2}}{#1}}
+
+\def\blx@inherit@ii#1#2{%
+ \eappto\blx@tempa{\blx@xml@inherit@type{#1}{#2}{}}}
+
+\blx@DeclareBackendOption{global}[xml]{inheritance}
+
+% [<options>]{<source>}{<target>}
+\newcommand*{\blx@inherit@field}[3][]{%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@inherit@field}{#1}}%
+ \eappto\blx@tempb{%
+ \blx@xml@inherit@field{#2}{#3}{\blx@tempc}}}
+
+\newcommand*{\blx@inherit@block}[1]{%
+ \eappto\blx@tempb{\blx@xml@inherit@block{#1}}}
+
+\define@key{blx@inherit}{ignore}{% csv list
+ \edef\blx@tempf{ ignore="#1"}}
+
+\define@key{blx@inherit@field}{override}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\edef\blx@tempc{ override\string_target="true"}}
+ {\edef\blx@tempc{ override\string_target="false"}}}
+
+\newrobustcmd*{\ResetDataInheritance}{%
+ \global\csundef{blx@inherit@data}}
+\@onlypreamble\ResetDataInheritance
+
+% {<name>}{<spec>}
+\newrobustcmd*{\DeclareBiblistFilter}[2]{%
+ \begingroup
+ \let\filteror\blx@biblistfilteror
+ \let\filter\blx@biblistfilter
+ \let\blx@tempa\@empty
+ #2%
+ \global\cslet{blx@biblistfilters@#1}\blx@tempa
+ \endgroup}
+\@onlypreamble\DeclareBiblistFilter
+
+\newcommand*{\blx@biblistfilteror}[1]{%
+ \eappto\blx@tempa{\blx@xml@dlistfilterorbegin}%
+ #1%
+ \eappto\blx@tempa{\blx@xml@dlistfilterorend}}
+
+\newcommand*{\blx@biblistfilter}[1][2]{%
+ \let\blx@tempc\@empty
+ \let\blx@tempd\@empty
+ \setkeys{blx@biblistfilter@filter}{#1}%
+ \eappto\blx@tempa{%
+ \blx@xml@dlistfilter{\blx@tempc}{\blx@tempd}}}
+
+\define@key{blx@biblistfilter@filter}{type}{%
+ \def\blx@tempc{#1}}
+\define@key{blx@biblistfilter@filter}{filter}{%
+ \def\blx@tempd{#1}}
+
+% Predefine filters for label fields
+\def\do#1{\DeclareBiblistFilter{#1}{\filter[type=field,filter=#1]}}
+\abx@dolabelfields
+
+\define@key{blx@biblist2}{biblistfilter}{\blx@key@biblistfilter{#1}}
+\define@key{blx@biblist1}{biblistfilter}{}
+
+\def\blx@key@biblistfilter#1{%
+ \ifcsundef{blx@biblistfilters@#1}
+ {\blx@error
+ {BiblistFilter '#1' not found}
+ {The BiblistFilter '#1' could not be found.\MessageBreak
+ Use '\string\DeclareBiblistFilter' to define it}}
+ {\def\blx@thebiblistfilter{#1}}}
+
+% [<langids>][<entrytype>]{translitsource}{translittarget}
+\newrobustcmd*{\DeclareSortTranslit}[2][]{%
+ \begingroup
+ \ifblank{#1}
+ {\def\blx@tempa{*}}
+ {\def\blx@tempa{#1}}%
+ \let\translit\blx@translit@setup
+ \let\blx@tempb\@empty
+ #2%
+ \global\cslet{blx@translit@\blx@tempa}\blx@tempb
+ \xifinlist\blx@tempa\blx@translits
+ {}
+ {\listxadd\blx@translits\blx@tempa}%
+ \endgroup}
+\@onlypreamble\DeclareSortTranslit
+\blx@DeclareBackendOption{global,type}[xml]{translit}
+
+\newcommand*{\blx@translit@setup}[4][]{%
+ \eappto\blx@tempb{%
+ \ifblank{#1}
+ {\blx@xml@translit{}{#2}{#3}{#4}}
+ {\blx@xml@translit{langids="#1" }{#2}{#3}{#4}}}}
+
+% [<specname>]{<spec>}
+\newrobustcmd*{\DeclareUniquenameTemplate}[2][]{%
+ \begingroup
+ \ifblank{#1}
+ {\def\blx@untname{global}}% default
+ {\def\blx@untname{#1}}%
+ \let\namepart\blx@untemp@namepart
+ \let\blx@tempa\@empty
+ \blx@tempcnta\z@
+ #2%
+ \global\cslet{blx@uniquenametemplate@\blx@untname}\blx@tempa
+ \xifinlist\blx@untname\blx@untemplatespecs
+ {}
+ {\listxadd\blx@untemplatespecs\blx@untname}%
+ \endgroup}
+\@onlypreamble\DeclareUniquenameTemplate
+\blx@DeclareBackendOption{global}[xml]{uniquenametemplate}
+\DeclareBiblatexOption{entry,namelist,name}[string]{uniquenametemplatename}{%
+ \def\blx@refcontext@uniquenametemplatename{#1}}
+
+\newcommand*{\blx@untemp@namepart}[2][]{%
+ \advance\blx@tempcntb\@ne
+ \edef\blx@tempe{order="\the\blx@tempcntb"}%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@untemp@namepart}{#1}}%
+ \eappto\blx@tempa{%
+ \blx@xml@uniquenametemplatenamepart{\blx@tempe}{\blx@tempc}{#2}}}
+
+\define@key{blx@untemp@namepart}{use}[true]{% use* option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ use="1"}}
+ {}}
+
+\define@key{blx@untemp@namepart}{base}[true]{% base option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ base="1"}}
+ {}}
+
+\define@key{blx@untemp@namepart}{disambiguation}{% disambiguation option for namepart none|inits|full|fullonly
+ \appto\blx@tempc{ disambiguation="#1"}}
+
+% [<templatename>]{<template>}
+\newrobustcmd*{\DeclareSortingNamekeyTemplate}[2][]{%
+ \begingroup
+ \ifblank{#1}
+ {\def\blx@snkname{global}}% default
+ {\def\blx@snkname{#1}}%
+ \let\namepart\blx@sortnk@namepart
+ \let\keypart\blx@sortnk@keypart
+ \let\literal\blx@sortnk@literal
+ \let\blx@tempa\@empty
+ \blx@tempcnta\z@
+ #2%
+ \global\cslet{blx@sortingnamekeytemplate@\blx@snkname}\blx@tempa
+ \xifinlist\blx@snkname\blx@sortingnamekeytemplates
+ {}
+ {\listxadd\blx@sortingnamekeytemplates\blx@snkname}%
+ \endgroup}
+\@onlypreamble\DeclareSortingNamekeyTemplate
+\blx@DeclareBackendOption{global}[xml]{sortingnamekeytemplate}
+\DeclareBiblatexOption{entry,namelist,name}[string]{sortingnamekeytemplatename}{%
+ \def\blx@refcontext@sortingnamekeytemplatename{#1}}
+
+% User-mode macro for checking sorting name template options
+\def\ifuniquenametemplatename#1{%
+ \expandafter\ifstrequal\expandafter{\blx@refcontext@uniquenametemplatename}{#1}}
+\def\iflabelalphanametemplatename#1{%
+ \expandafter\ifstrequal\expandafter{\blx@refcontext@labelalphanametemplatename}{#1}}
+\def\ifsortingnamekeytemplatename#1{%
+ \expandafter\ifstrequal\expandafter{\blx@refcontext@sortingnamekeytemplatename}{#1}}
+
+\newcommand*{\blx@sortnk@keypart}[1]{%
+ \advance\blx@tempcnta\@ne
+ \blx@tempcntb\z@
+ \edef\blx@tempd{ order="\the\blx@tempcnta"}%
+ \let\blx@tempb\@empty
+ #1%
+ \eappto\blx@tempa{%
+ \blx@xml@sortingnamekeykeypart{\blx@tempd}{\blx@tempb}}}
+
+\newcommand*{\blx@sortnk@literal}[1]{%
+ \advance\blx@tempcntb\@ne
+ \edef\blx@tempe{ order="\the\blx@tempcntb"}%
+ \let\blx@tempc\@empty
+ \eappto\blx@tempb{%
+ \blx@xml@sortingnamekeyliteral{\blx@tempe}{#1}}}
+
+\newcommand*{\blx@sortnk@namepart}[2][]{%
+ \advance\blx@tempcntb\@ne
+ \edef\blx@tempe{ order="\the\blx@tempcntb"}%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@sortnk@namepart}{#1}}%
+ \eappto\blx@tempb{%
+ \blx@xml@sortingnamekeynamepart{\blx@tempe}{\blx@tempc}{#2}}}
+
+\define@key{blx@sortnk@namepart}{use}[true]{% use* option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ use="1"}}
+ {\appto\blx@tempc{ use="0"}}}
+
+\define@key{blx@sortnk@namepart}{inits}[true]{% initials only option for namepart true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ inits="1"}}
+ {\appto\blx@tempc{ inits="0"}}}
+
+% [options]{<templatename>}{<template>}
+\newrobustcmd*{\DeclareSortingTemplate}[3][]{%
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@sortdef@sorting}{#1}%
+ \csxdef{blx@sortdef@locale@#2}{\blx@templ}}%
+ \begingroup
+ \def\name{%LEGACY(<2.0)
+ \blx@warning@noline{%
+ '\string\name' is deprecated in sorting specifications, please use '\string\field'}%
+ \blx@sortdef@field}%
+ \def\list{%LEGACY(<2.0)
+ \blx@warning@noline{%
+ '\string\list' is deprecated in sorting specifications, please use '\string\field'}%
+ \blx@sortdef@field}%
+ \let\sort\blx@sortdef@sort
+ \let\field\blx@sortdef@field
+ \let\literal\blx@sortdef@literal
+ \def\citeorder{\blx@sortdef@field{citeorder}}%
+ \blx@tempcnta\z@
+ \let\blx@tempa\@empty
+ #3%
+ \global\cslet{blx@sortingtemplate@#2}\blx@tempa
+ \endgroup}
+\@onlypreamble\DeclareSortingTemplate
+\blx@DeclareBackendOption{global}[xml]{sortingtemplate}
+
+\define@key{blx@sortdef@sorting}{locale}{% locale name
+ \def\blx@templ{#1}}
+
+\newcommand*{\blx@sortdef@sort}[2][]{%
+ \advance\blx@tempcnta\@ne
+ \blx@tempcntb\z@
+ \let\blx@tempb\@empty
+ \edef\blx@tempc{order="\the\blx@tempcnta"}%
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@sortdef@sort}{#1}}%
+ \let\do\@firstofone
+ #2%
+ \eappto\blx@tempa{%
+ \blx@xml@sort{\blx@tempc}{\blx@tempb}}}
+
+\define@key{blx@sortdef@sort}{locale}{% locale name
+ \eappto\blx@tempc{ locale="#1"}}
+\define@key{blx@sortdef@sort}{direction}{% ascending|descending
+ \ifstrequal{#1}{ascending}
+ {\eappto\blx@tempc{ sort\string_direction="ascending"}}
+ {\eappto\blx@tempc{ sort\string_direction="descending"}}}
+\define@key{blx@sortdef@sort}{final}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ final="1"}}
+ {}}
+\define@key{blx@sortdef@sort}{sortcase}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ sortcase="1"}}
+ {\appto\blx@tempc{ sortcase="0"}}}
+\define@key{blx@sortdef@sort}{sortupper}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempc{ sortupper="1"}}
+ {\appto\blx@tempc{ sortupper="0"}}}
+
+\newcommand*{\blx@sortdef@field}[2][]{%
+ \advance\blx@tempcntb\@ne
+ \edef\blx@tempd{order="\the\blx@tempcntb"}%
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@sortdef@field}{#1}}%
+ \eappto\blx@tempb{%
+ \blx@xml@sortitem{\blx@tempd}{#2}}}
+
+\define@key{blx@sortdef@field}{padside}{% left|right
+ \ifstrequal{#1}{right}
+ {\eappto\blx@tempd{ pad\string_side="right"}}
+ {\eappto\blx@tempd{ pad\string_side="left"}}}
+\define@key{blx@sortdef@field}{padwidth}{% integer
+ \eappto\blx@tempd{ pad\string_width="#1"}}
+\define@key{blx@sortdef@field}{padchar}{% character
+ \blx@xmlsanitizeafter{\def\blx@tempe}{#1}%
+ \eappto\blx@tempd{ pad\string_char="\blx@tempe"}}
+\define@key{blx@sortdef@field}{strside}{% left|right
+ \ifstrequal{#1}{right}
+ {\eappto\blx@tempd{ substring\string_side="right"}}
+ {\eappto\blx@tempd{ substring\string_side="left"}}}
+\define@key{blx@sortdef@field}{strwidth}{% integer
+ \eappto\blx@tempd{ substring\string_width="#1"}}
+
+\def\blx@sortdef@literal#1{%
+ \advance\blx@tempcntb\@ne
+ \blx@xmlsanitizeafter{\def\blx@tempe}{#1}%
+ \eappto\blx@tempb{%
+ \blx@xml@sortitem{literal="1" order="\the\blx@tempcntb"}{\blx@tempe}}}
+
+% [<type,type,...>]{<string>}
+\newrobustcmd*{\DeclarePresort}[2][]{%
+ \begingroup
+ \blx@xmlsanitizeafter{\def\blx@tempa}{#2}%
+ \ifblank{#1}
+ {\xdef\blx@bcf@presort{\blx@xml@presort{}{\blx@tempa}}}
+ {\notblank{#2}
+ {\forcsvlist{\blx@defpresort\blx@tempa}{#1}}
+ {\forcsvlist\blx@undefpresort{#1}}}%
+ \endgroup}
+\@onlypreamble\DeclarePresort
+\blx@DeclareBackendOption{global,type,entry}[string]{presort}
+
+\def\blx@defpresort#1#2{%
+ \csxdef{blx@bcf@presort@#2}{\blx@xml@presort{#2}{#1}}}
+\def\blx@undefpresort#1{%
+ \global\csundef{blx@bcf@presort@#1}}
+
+% {<entrytype,...>}{<field,...>}
+\newrobustcmd*{\DeclareSortExclusion}[2]{%
+ \forcsvlist{\blx@sortexclude{#2}}{#1}}
+\blx@DeclareBackendOption{type}[xml]{sortexclusion}
+
+% {<field>}{<entrytype>}
+\def\blx@sortexclude#1#2{%
+ \begingroup
+ \ifblank{#1}
+ {\global\csundef{blx@bcf@exclude@#2}}
+ {\let\blx@tempa\@empty
+ \forcsvlist\blx@sortexclude@i{#1}%
+ \csxdef{blx@bcf@exclude@#2}{%
+ \blx@xml@sortexclude{#2}{\blx@tempa}}}
+ \endgroup}
+
+\def\blx@sortexclude@i#1{%
+ \appto\blx@tempa{\blx@xml@exclude{#1}}}
+
+% {<entrytype,...>}{<field,...>}
+\newrobustcmd*{\DeclareSortInclusion}[2]{%
+ \forcsvlist{\blx@sortinclude{#2}}{#1}}
+\blx@DeclareBackendOption{type}[xml]{sortinclusion}
+
+% {<field>}{<entrytype>}
+\def\blx@sortinclude#1#2{%
+ \begingroup
+ \ifblank{#1}
+ {\global\csundef{blx@bcf@include@#2}}
+ {\let\blx@tempa\@empty
+ \forcsvlist\blx@sortinclude@i{#1}%
+ \csxdef{blx@bcf@include@#2}{%
+ \blx@xml@sortinclude{#2}{\blx@tempa}}}
+ \endgroup}
+
+\def\blx@sortinclude@i#1{%
+ \appto\blx@tempa{\blx@xml@include{#1}}}
+
+% {<field,field,...>}
+\newrobustcmd*{\DeclareExtradate}[1]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \let\scope\blx@extradate@scope
+ #1%
+ \global\let\blx@bcf@extradatespec\blx@tempa
+ \endgroup}
+\@onlypreamble\DeclareExtradate
+\blx@DeclareBackendOption{global}[xml]{extradatespec}
+
+\newrobustcmd*{\blx@extradate@scope}[1]{%
+ \let\blx@tempb\@empty
+ \let\field\blx@ordereded@field
+ #1%
+ \csxappto{blx@tempa}{%
+ \noexpand\blx@xml@extradatescope{\blx@tempb}}}
+
+\newcommand*{\blx@ordereded@field}[1]{%
+ \advance\blx@tempcnta\@ne
+ \csxappto{blx@tempb}{%
+ \noexpand\blx@xml@edordered{\the\blx@tempcnta}{#1}}}
+
+% [<type,type,...>]{<field,field,...>}
+\newrobustcmd*{\DeclareLabelname}[2][]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \def\blx@tempb{labelnamespec}%
+ \let\field\blx@ordered@field
+ \ifblank{#1}
+ {\global\cslet{blx@bcf@labelnamespec}\@empty}
+ {\def\blx@tempa{#1}%
+ \def\do##1{\global\cslet{blx@bcf@labelnamespec@##1}\@empty}%
+ \expandafter\docsvlist\expandafter{#1}}%
+ #2%
+ \endgroup}
+\@onlypreamble\DeclareLabelname
+\blx@DeclareBackendOption{global,type}[xml]{labelnamespec}
+
+\newrobustcmd*{\DeclareLabeltitle}[2][]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \def\blx@tempb{labeltitlespec}%
+ \let\field\blx@ordered@field
+ \ifblank{#1}
+ {\global\cslet{blx@bcf@labeltitlespec}\@empty}
+ {\def\blx@tempa{#1}%
+ \def\do##1{\global\cslet{blx@bcf@labeltitlespec@##1}\@empty}%
+ \expandafter\docsvlist\expandafter{#1}}%
+ #2%
+ \endgroup}
+\@onlypreamble\DeclareLabeltitle
+\blx@DeclareBackendOption{global,type}[xml]{labeltitlespec}
+
+\newrobustcmd*{\DeclareLabeldate}[2][]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \def\blx@tempb{labeldatespec}%
+ \let\field\blx@orderedld@field
+ \let\literal\blx@orderedld@literal
+ \ifblank{#1}
+ {\global\cslet{blx@bcf@labeldatespec}\@empty}
+ {\def\blx@tempa{#1}%
+ \def\do##1{\global\cslet{blx@bcf@labeldatespec@##1}\@empty}%
+ \expandafter\docsvlist\expandafter{#1}}%
+ #2%
+ \endgroup}
+\@onlypreamble\DeclareLabeldate
+\blx@DeclareBackendOption{global,type}[xml]{labeldatespec}
+
+\newcommand*{\blx@ordered@field}[2][]{%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@ordered@field}{#1}}%
+ \advance\blx@tempcnta\@ne
+ \ifdefempty{\blx@tempa}
+ {\csxappto{blx@bcf@\blx@tempb}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}
+ {\def\do##1{%
+ \blx@addtypeopt{##1}%
+ \csxappto{blx@bcf@\blx@tempb @##1}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{\blx@tempc}{#2}}}%
+ \expandafter\docsvlist\expandafter{\blx@tempa}}}
+
+\newcommand*{\blx@orderedld@field}[2][]{%
+ \let\blx@tempc\@empty
+ \ifblank{#1}
+ {}
+ {\setkeys{blx@ordered@field}{#1}}%
+ \advance\blx@tempcnta\@ne
+ \ifdefempty{\blx@tempa}
+ {\csxappto{blx@bcf@\blx@tempb}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="field"\blx@tempc}{#2}}}
+ {\def\do##1{%
+ \blx@addtypeopt{##1}%
+ \csxappto{blx@bcf@\blx@tempb @##1}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="field"\blx@tempc}{#2}}}%
+ \expandafter\docsvlist\expandafter{\blx@tempa}}}
+
+\newcommand*{\blx@orderedld@literal}[1]{%
+ \advance\blx@tempcnta\@ne
+ \ifdefempty{\blx@tempa}
+ {\csxappto{blx@bcf@\blx@tempb}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="string"}{#1}}}
+ {\def\do##1{%
+ \blx@addtypeopt{##1}%
+ \csxappto{blx@bcf@\blx@tempb @##1}{%
+ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="string"}{#1}}}%
+ \expandafter\docsvlist\expandafter{\blx@tempa}}}
+
+%% Package options
+
+% [<entrytype,entrytype,...>]{<options>}
+
+\newrobustcmd*{\ExecuteBibliographyOptions}[2][]{%
+ \ifblank{#1}
+ {\setkeys{blx@opt@pre}{#2}}
+ {\forcsvlist{\blx@typeoptions{#2}}{#1}}}
+\@onlypreamble\ExecuteBibliographyOptions
+
+\def\blx@typeoptions#1#2{%
+ \blx@addtypeopt{#2}%
+ \csappto{blx@opts@type@#2}{#1,}}
+
+\def\blx@addtypeopt#1{%
+ \notblank{#1}
+ {\ifdef\blx@opts@type
+ {\ifinlist{#1}\blx@opts@type
+ {}
+ {\listgadd\blx@opts@type{#1}}}
+ {\listgadd\blx@opts@type{#1}}}
+ {}}
+
+% load-time only
+
+% Have to have a dummy for this as it's set much earlier but is passed
+% through to here where we just ignore it
+\define@key{blx@opt@ldt}{datamodel}{}
+
+\define@key{blx@opt@ldt}{backend}{%
+ \ifstrequal{#1}{biber}
+ {}
+ {\ifboolexpr{
+ test {\ifstrequal{#1}{bibtex}}
+ or
+ test {\ifstrequal{#1}{bibtex8}}}
+ {\settoggle{blx@bibtex}{true}%
+ \newtoggle{blx@bibtex8}%
+ \ifstrequal{#1}{bibtex8}
+ {\settoggle{blx@bibtex8}{true}}
+ {}}%
+ {\blx@err@invopt{backend=#1}{}}}}
+
+\define@key{blx@opt@ldt}{style}{%
+ \def\blx@cbxfile{#1}%
+ \def\blx@bbxfile{#1}}
+
+\define@key{blx@opt@ldt}{bibstyle}{%
+ \def\blx@bbxfile{#1}}
+
+\define@key{blx@opt@ldt}{citestyle}{%
+ \def\blx@cbxfile{#1}}
+
+\define@key{blx@opt@ldt}{natbib}[true]{%
+ \settoggle{blx@natbib}{#1}}
+
+\define@key{blx@opt@ldt}{mcite}[true]{%
+ \settoggle{blx@mcite}{#1}}
+
+\define@key{blx@opt@ldt}{noerroretextools}[true]{%
+ \blx@warning@noline{%
+ The option 'noerroretextools' is deprecated.\MessageBreak
+ Define the control sequence '\string\blx@noerroretextools'\MessageBreak
+ before loading biblatex instead}%
+ \ifstrequal{#1}{true}
+ {\global\cslet{blx@noerroretextools}\@empty}
+ {\csgundef{blx@noerroretextools}}}
+
+% load-time and preamble
+
+\DeclareBibliographyOption[boolean]{debug}[true]{%
+ \settoggle{blx@debug}{#1}}
+
+\DeclareBibliographyOption[boolean]{loadfiles}[true]{%
+ \settoggle{blx@loadfiles}{#1}}
+
+\DeclareBibliographyOption[integer]{mincrossrefs}{%
+ \ifnum#1<\z@
+ \def\blx@mincrossrefs{1}%
+ \else
+ \def\blx@mincrossrefs{#1}%
+ \fi}
+
+\DeclareBibliographyOption[integer]{minxrefs}{%
+ \ifnum#1<\z@
+ \def\blx@minxrefs{1}%
+ \else
+ \def\blx@minxrefs{#1}%
+ \fi}
+\def\blx@minxrefs{2}
+
+\DeclareBibliographyOption[string]{texencoding}{%
+ \ifstrequal{#1}{auto}
+ {\undef\blx@texencoding}
+ {\def\blx@texencoding{#1}}}
+
+\DeclareBibliographyOption[string]{bibencoding}{%
+ \ifcsdef{blx@bibenc@#1}
+ {\letcs\blx@bibencoding{blx@bibenc@#1}}
+ {\def\blx@bibencoding{#1}}}
+
+\def\abx@mapbibenc#1#2{\csdef{blx@bibenc@#1}{#2}}
+\abx@mapbibenc{inputenc}{auto}
+\abx@mapbibenc{x-ascii}{ascii}
+
+\def\abx@mapinpenc#1#2{\csdef{blx@inpenc@#1}{#2}}
+\abx@mapinpenc{utf8x}{utf8}
+\abx@mapinpenc{lutf8}{utf8}
+\abx@mapinpenc{x-ascii}{ascii}
+
+\DeclareBibliographyOption[boolean]{safeinputenc}[true]{%
+ \settoggle{blx@safeinputenc}{#1}}
+\newtoggle{blx@safeinputenc}
+
+% global "sorting" option becomes "sortingtemplatename" in the .bcf and so
+% don't use \DeclareBibliographyOption. This is a legacy naming issue
+% unlikely to be corrected as "sorting" is an obvious name for biblatex users
+% "sorting" is used in the .bcf for the actual sorting template definitions and is
+% an XML format option
+\define@key{blx@opt@pre}{sorting}{%
+ \def\blx@sorting{#1}%
+ \def\blx@refcontext@sortingtemplatename{#1}}
+\blx@DeclareBackendOption{global}[string]{sortingtemplatename}
+
+\AtEndPreamble{%
+ \ifcsdef{blx@sortingtemplate@\blx@sorting}
+ {}
+ {\blx@err@invopt{sorting=\blx@sorting}{}%
+ \def\blx@sorting{nty}%
+ \def\blx@refcontext@sortingtemplatename{nty}}%
+ \listxadd\blx@sortingtemplatenames\blx@sorting
+ \def\blx@refcontext@sortingnamekeytemplatename{global}%
+ \let\blx@refcontext@labelprefix\@empty
+ \let\blx@refcontext@labelprefix@real\@empty
+ \def\blx@refcontext@uniquenametemplatename{global}%
+ \def\blx@refcontext@labelalphanametemplatename{global}%
+ \blx@xdef@refcontext{%
+ \blx@refcontext@sortingtemplatename/%
+ \blx@refcontext@sortingnamekeytemplatename/%
+ \blx@refcontext@labelprefix/%
+ \blx@refcontext@uniquenametemplatename/%
+ \blx@refcontext@labelalphanametemplatename}%
+ \listxadd\blx@refcontexts\blx@refcontext@context}
+
+\DeclareBibliographyOption[boolean]{sortcase}[true]{%
+ \settoggle{blx@sortcase}{#1}}
+
+\DeclareBibliographyOption[boolean]{sortupper}[true]{%
+ \settoggle{blx@sortupper}{#1}}
+
+\DeclareBiblatexOption{global,type}[integer]{maxnames}{%
+ \numdef\blx@maxcitenames{#1}%
+ \numdef\blx@maxbibnames{#1}%
+ \numdef\blx@maxsortnames{#1}%
+ \c@maxnames#1\relax}
+\DeclareBiblatexOption{global,type}[integer]{minnames}{%
+ \numdef\blx@mincitenames{#1}%
+ \numdef\blx@minbibnames{#1}%
+ \numdef\blx@minsortnames{#1}%
+ \c@minnames#1\relax}
+% the per-entry option is resolved by Biber directly
+\blx@DeclareBackendOption{entry}[integer]{maxnames}
+\blx@DeclareBackendOption{entry}[integer]{minnames}
+\gdef\blx@bcf@backendin@entry@maxnames{maxcitenames,maxbibnames,maxsortnames}%
+\gdef\blx@bcf@backendin@entry@minnames{mincitenames,minbibnames,minsortnames}%
+
+
+\DeclareBiblatexOption{global,type,entry}[integer]{maxbibnames}{%
+ \numdef\blx@maxbibnames{#1}%
+ \numdef\blx@maxsortnames{#1}%
+ \iftoggle{blx@bibliography}
+ {\c@maxnames#1\relax}
+ {}}
+\DeclareBiblatexOption{global,type,entry}[integer]{minbibnames}{%
+ \numdef\blx@minbibnames{#1}%
+ \numdef\blx@minsortnames{#1}%
+ \iftoggle{blx@bibliography}
+ {\c@minnames#1\relax}
+ {}}
+
+\DeclareBiblatexOption{global,type,entry}[integer]{maxcitenames}{%
+ \numdef\blx@maxcitenames{#1}%
+ \iftoggle{blx@bibliography}
+ {}
+ {\c@maxnames#1\relax}}
+\DeclareBiblatexOption{global,type,entry}[integer]{mincitenames}{%
+ \numdef\blx@mincitenames{#1}%
+ \iftoggle{blx@bibliography}
+ {}
+ {\c@minnames#1\relax}}
+
+\DeclareBiblatexOption{global,type,entry}[integer]{maxsortnames}{%
+ \numdef\blx@maxsortnames{#1}}
+\DeclareBiblatexOption{global,type,entry}[integer]{minsortnames}{%
+ \numdef\blx@minsortnames{#1}}
+
+\appto\blx@checkoptions@global{%
+ \blx@maxmin@num{maxbibnames}{minbibnames}\blx@maxbibnames\blx@minbibnames
+ \blx@maxmin@num{maxcitenames}{mincitenames}\blx@maxcitenames\blx@mincitenames
+ \blx@maxmin@num{maxsortnames}{minsortnames}\blx@maxsortnames\blx@minsortnames}
+\appto\blx@checkoptions@type{%
+ \blx@maxmin@num{maxbibnames}{minbibnames}\blx@maxbibnames\blx@minbibnames
+ \blx@maxmin@num{maxcitenames}{mincitenames}\blx@maxcitenames\blx@mincitenames
+ \blx@maxmin@num{maxsortnames}{minsortnames}\blx@maxsortnames\blx@minsortnames}
+\appto\blx@checkoptions@entry{%
+ \blx@maxmin@cnt{maxnames}{minnames}\c@maxnames\c@minnames}
+
+\DeclareBiblatexOption{global,type,entry}[integer]{maxitems}{%
+ \numdef\blx@maxitems{#1}%
+ \c@maxitems#1\relax}
+\DeclareBiblatexOption{global,type,entry}[integer]{minitems}{%
+ \numdef\blx@minitems{#1}%
+ \c@minitems#1\relax}
+
+\appto\blx@checkoptions@global{%
+ \blx@maxmin@num{maxitems}{minitems}\blx@maxitems\blx@minitems}
+\appto\blx@checkoptions@type{%
+ \blx@maxmin@num{maxitems}{minitems}\blx@maxitems\blx@minitems}
+\appto\blx@checkoptions@entry{%
+ \blx@maxmin@cnt{maxitems}{minitems}\c@maxitems\blx@minitems}
+
+\DeclareBiblatexOption{global,type,entry}[integer]{maxalphanames}{%
+ \numdef\blx@maxalphanames{#1}}
+\DeclareBiblatexOption{global,type,entry}[integer]{minalphanames}{%
+ \numdef\blx@minalphanames{#1}}
+
+\appto\blx@checkoptions@global{%
+ \blx@maxmin@num{maxalphanames}{minalphanames}\blx@maxalphanames\blx@minalphanames}
+\appto\blx@checkoptions@type{%
+ \blx@maxmin@num{maxalphanames}{minalphanames}\blx@maxalphanames\blx@minalphanames}
+
+\def\blx@maxmin@num#1#2#3#4{%
+ \ifnumless#3\@ne
+ {\blx@err@invopt{#1=#3}{'#1' must be greater than zero}%
+ \let#3\@ne}
+ {}%
+ \ifnumless#4\@ne
+ {\blx@err@invopt{#2=#4}{'#2' must be greater than zero}%
+ \let#4\@ne}
+ {}%
+ \ifnumless#3#4
+ {\blx@err@confopt{#1/#2}{'#1' must be greater than or equal to '#2'}%
+ \let#3#4}
+ {}}
+
+\def\blx@maxmin@cnt#1#2#3#4{%
+ \ifnumless#3\@ne
+ {\blx@err@invopt{#1=\number#3}{'#1' must be greater than zero}%
+ #3\@ne}
+ {}%
+ \ifnumless#4\@ne
+ {\blx@err@invopt{#2=\number#4}{'#2' must be greater than zero}%
+ #4\@ne}
+ {}%
+ \ifnumless#3#4
+ {\blx@err@confopt{#1/#2}{'#1' must be greater than or equal to '#2'}%
+ #3=#4}
+ {}}
+
+\DeclareBiblatexOption{global,type,entry,namelist,name}[boolean]{terseinits}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@terseinits}
+ \renewrobustcmd*{\bibinitperiod}{}
+ \renewrobustcmd*{\bibinitdelim}{}
+ \renewrobustcmd*{\bibinithyphendelim}{}}
+ {\togglefalse{blx@terseinits}
+ \renewrobustcmd*{\bibinitperiod}{\adddot}
+ \renewrobustcmd*{\bibinitdelim}{\addnbspace}
+ \renewrobustcmd*{\bibinithyphendelim}{\adddot\mbox{-}}}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{abbreviate}[true]{%
+ \ifstrequal{#1}{true}
+ {\def\abx@str{abx@sstr}}
+ {\def\abx@str{abx@lstr}}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{dateabbrev}[true]{%
+ \ifstrequal{#1}{true}
+ {\let\abx@bibmonth\blx@imc@bibsstring
+ \let\abx@bibseason\blx@imc@bibsstring}
+ {\let\abx@bibmonth\blx@imc@biblstring
+ \let\abx@bibseason\blx@imc@biblstring}}
+
+\DeclareBibliographyOption[string]{sortlocale}{%
+ \edef\blx@sortlocale{\detokenize{#1}}}
+
+\DeclareBibliographyOption[string]{language}{%
+ \togglefalse{blx@autolangbib}%
+ \togglefalse{blx@autolangcite}%
+ \undef\blx@languagename
+ \undef\blx@forcelanguagename
+ \ifboolexpr{
+ test {\ifstrequal{#1}{auto}}
+ or
+ test {\ifstrequal{#1}{autobib}}
+ or
+ test {\ifstrequal{#1}{autocite}}
+ }
+ {\def\blx@languagename{english}%
+ \ifstrequal{#1}{auto}
+ {\toggletrue{blx@autolangbib}%
+ \toggletrue{blx@autolangcite}}
+ {}%
+ \ifstrequal{#1}{autobib}
+ {\toggletrue{blx@autolangbib}}
+ {}%
+ \ifstrequal{#1}{autocite}
+ {\toggletrue{blx@autolangcite}}
+ {}}
+ % If language is explicit, we do want to auto-switch but only to the
+ % selected language
+ {\IfFileExists{#1.lbx}
+ {\toggletrue{blx@autolangbib}%
+ \toggletrue{blx@autolangcite}%
+ \edef\blx@languagename{#1}%
+ \edef\blx@forcelanguagename{#1}}
+ {\blx@error
+ {Language '#1' not supported}
+ {Failed to find a matching '#1.lbx' file}}}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{clearlang}[true]{%
+ \settoggle{blx@clearlang}{#1}}
+
+\DeclareBibliographyOption[string]{autolang}{%
+ \blx@autolang@i{#1}}
+
+\def\blx@autolang@i#1{%
+ \ifcsdef{blx@opt@autolang@#1}
+ {\csuse{blx@opt@autolang@#1}}
+ {\blx@err@invopt{autolang=#1}{}}}
+
+\def\blx@opt@autolang@none{%
+ \undef\blx@thelangenv
+ \let\blx@hook@initlang\@empty
+ \let\blx@hook@endlang\@empty}
+\def\blx@opt@autolang@hyphen{%
+ \def\blx@thelangenv{hyphenrules}%
+ \let\blx@hook@initlang\@empty
+ \let\blx@hook@endlang\@empty}
+\csdef{blx@opt@autolang@other*}{%
+ \def\blx@thelangenv{otherlanguage*}%
+ \def\blx@hook@initlang{\@quotereset\@ne}%
+ \def\blx@hook@endlang{\blx@postpunct}}
+\def\blx@opt@autolang@other{%
+ \def\blx@thelangenv{otherlanguage}%
+ \def\blx@hook@initlang{\@quotereset\@ne}%
+ \def\blx@hook@endlang{\blx@postpunct}}
+\def\blx@opt@autolang@langname{%
+ \@ifpackageloaded{polyglossia}
+ {\def\blx@thelangenv{langname}}
+ {\def\blx@thelangenv{otherlanguage}}%
+ \def\blx@hook@initlang{\@quotereset\@ne}%
+ \def\blx@hook@endlang{\blx@postpunct}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{indexing}[true]{%
+ \blx@opt@index{#1}}
+\def\blx@opt@index#1{%
+ \ifcsdef{blx@opt@index@#1}
+ {\csuse{blx@opt@index@#1}}
+ {\blx@err@invopt{indexing=#1}{}}}
+\def\blx@opt@index@true{%
+ \toggletrue{blx@citeindex}%
+ \toggletrue{blx@bibindex}}
+\def\blx@opt@index@false{%
+ \togglefalse{blx@citeindex}%
+ \togglefalse{blx@bibindex}}
+\def\blx@opt@index@cite{%
+ \toggletrue{blx@citeindex}%
+ \togglefalse{blx@bibindex}}
+\def\blx@opt@index@bib{%
+ \togglefalse{blx@citeindex}%
+ \toggletrue{blx@bibindex}}
+
+\DeclareBibliographyOption[boolean]{sortcites}[true]{%
+ \ifstrequal{#1}{true}
+ {\let\blx@thecitesort\blx@citesort
+ \let\blx@thenotecheck\blx@notecheck
+ \booltrue{sortcites}}
+ {\let\blx@thecitesort\blx@citenosort
+ \let\blx@thenotecheck\relax}}
+
+\DeclareBibliographyOption[boolean]{sortsets}[true]{%
+ \settoggle{blx@sortsets}{#1}}
+
+\DeclareBibliographyOption[string]{hyperref}[true]{%
+ \ifcsdef{blx@opt@hyperref@#1}
+ {\letcs\blx@hyperref{blx@opt@hyperref@#1}}
+ {\blx@err@invopt{hyperref=#1}{}}}
+\def\blx@opt@hyperref@false{0}
+\def\blx@opt@hyperref@true{1}
+\def\blx@opt@hyperref@auto{2}
+\def\blx@opt@hyperref@manual{3}
+
+\def\blx@warn@usedmanualhyperrefs#1{%
+ \blx@warning@noline{The command '\string#1' can\MessageBreak
+ only be used with 'hyperref=manual'}}
+\def\blx@warn@multiplemanualhyperrefs{%
+ \blx@warning@noline{You must call either '\string\BiblatexManualHyperrefOn'\MessageBreak
+ or '\string\BiblatexManualHyperrefOff' exactly once.\MessageBreak
+ Subsequent calls to either command will be ignored}}
+\def\BiblatexManualHyperrefOn{%
+ \ifnum\blx@hyperref=\thr@@
+ \blx@mkhyperref
+ \global\undef\blx@mkhyperref
+ \global\undef\blx@mknohyperref
+ \global\let\BiblatexManualHyperrefOn\blx@warn@multiplemanualhyperrefs
+ \global\let\BiblatexManualHyperrefOff\blx@warn@multiplemanualhyperrefs
+ \else
+ \blx@warn@usedmanualhyperrefs{\BiblatexManualHyperrefOn}%
+ \fi}
+\def\BiblatexManualHyperrefOff{%
+ \ifnum\blx@hyperref=\thr@@
+ \blx@mknohyperref
+ \global\undef\blx@mkhyperref
+ \global\undef\blx@mknohyperref
+ \global\let\BiblatexManualHyperrefOn\blx@warn@multiplemanualhyperrefs
+ \global\let\BiblatexManualHyperrefOff\blx@warn@multiplemanualhyperrefs
+ \else
+ \blx@warn@usedmanualhyperrefs{\BiblatexManualHyperrefOff}%
+ \fi}
+
+\DeclareBibliographyOption[boolean]{backref}[true]{%
+ \ifstrequal{#1}{true}
+ {\let\blx@backref\blx@addbackref
+ \let\abx@aux@backref\blx@aux@backref
+ \booltrue{backtracker}}
+ {\let\blx@backref\@gobble
+ \let\abx@aux@backref\@gobblefive
+ \boolfalse{backtracker}}}
+
+\DeclareBibliographyOption[string]{backrefsetstyle}{%
+ \ifcsdef{blx@opt@backrefsetstyle@#1}
+ {\letcs\blx@backrefsetstyle{blx@opt@backrefsetstyle@#1}}
+ {\blx@err@invopt{backrefsetstyle=#1}{}}}
+\def\blx@opt@backrefsetstyle@setonly{0}
+\def\blx@opt@backrefsetstyle@memonly{1}
+\def\blx@opt@backrefsetstyle@setormem{2}
+\def\blx@opt@backrefsetstyle@setandmem{3}
+\def\blx@opt@backrefsetstyle@memandset{4}
+\def\blx@opt@backrefsetstyle@setplusmem{5}
+
+\appto\blx@mkhyperref{%
+ \ifHy@plainpages
+ \blx@warning@noline{%
+ hyperref package option 'plainpages' enabled.\MessageBreak
+ This may cause problems with hyperlinked back\MessageBreak
+ references. 'plainpages=false' is recommended}%
+ \fi
+ \ifHy@pageanchor\else
+ \blx@warning@noline{%
+ hyperref package option 'pageanchor' disabled.\MessageBreak
+ This will cause problems with hyperlinked back\MessageBreak
+ references. 'pageanchor=true' is required}%
+ \fi}
+
+\DeclareBibliographyOption[string]{block}{%
+ \ifcsdef{blx@opt@block@#1}
+ {\csuse{blx@opt@block@#1}}
+ {\blx@err@invopt{block=#1}{}}}
+\def\blx@opt@block@none{%
+ \let\blx@bibsetup\@empty
+ \let\newblockpunct\@empty}
+\def\blx@opt@block@par{%
+ \let\blx@bibsetup\@empty
+ \def\newblockpunct{\par}}
+\def\blx@opt@block@nbpar{%
+ \def\blx@bibsetup{\interlinepenalty\@M}%
+ \def\newblockpunct{\par\nobreak}}
+\def\blx@opt@block@space{%
+ \let\blx@bibsetup\@empty
+ \def\newblockpunct{%
+ \unspace\space
+ \hskip 0.11em
+ \@plus 0.33em
+ \@minus 0.07em}}
+\def\blx@opt@block@ragged{%
+ \let\blx@bibsetup\raggedright
+ \def\newblockpunct{%
+ \unspace\penalty-9\relax\space}}
+
+\DeclareBibliographyOption[string]{pagetracker}[true]{%
+ \ifcsdef{blx@opt@pagetracker@#1}
+ {\csuse{blx@opt@pagetracker@#1}}
+ {\blx@err@invopt{pagetracker=#1}{}}}
+\def\blx@opt@pagetracker@true{%
+ \if@twoside
+ \blx@opt@pagetracker@spread
+ \else
+ \blx@opt@pagetracker@page
+ \fi}
+\def\blx@opt@pagetracker@false{%
+ \let\blx@pagetracker\relax
+ \let\abx@aux@page\@gobbletwo
+ \let\abx@aux@fnpage\@gobbletwo
+ \boolfalse{pagetracker}}
+\def\blx@opt@pagetracker@page{%
+ \let\blx@pagetracker\blx@pagetracker@context
+ \let\abx@aux@page\blx@aux@page
+ \let\abx@aux@fnpage\blx@aux@fnpage
+ \booltrue{pagetracker}}
+\def\blx@opt@pagetracker@spread{%
+ \if@twoside
+ \let\blx@pagetracker\blx@pagetracker@context
+ \let\abx@aux@page\blx@aux@spread
+ \let\abx@aux@fnpage\blx@aux@fnspread
+ \booltrue{pagetracker}%
+ \else
+ \blx@warning@noline{%
+ LaTeX not in twoside mode\MessageBreak
+ Falling back to 'pagetracker=page'}%
+ \blx@opt@pagetracker@page
+ \fi}
+
+\DeclareBibliographyOption[string]{citecounter}[true]{%
+ \ifcsdef{blx@opt@citecounter@#1}
+ {\csuse{blx@opt@citecounter@#1}}
+ {\blx@err@invopt{citecounter=#1}{}}}
+\def\blx@opt@citecounter@true{%
+ \let\blx@setcitecounter\blx@setcitecounter@global
+ \let\blx@citecounter\blx@citecounter@global
+ \let\abx@aux@count\blx@aux@count
+ \let\abx@aux@fncount\blx@aux@fncount
+ \booltrue{citetracker}}
+\def\blx@opt@citecounter@context{%
+ \let\blx@setcitecounter\blx@setcitecounter@context
+ \let\blx@citecounter\blx@citecounter@context
+ \let\abx@aux@count\blx@aux@count
+ \let\abx@aux@fncount\blx@aux@fncount
+ \booltrue{citetracker}}
+\def\blx@opt@citecounter@false{%
+ \let\blx@setcitecounter\relax
+ \let\blx@citecounter\relax
+ \let\abx@aux@count\@gobbletwo
+ \let\abx@aux@fncount\@gobbletwo}
+
+\DeclareBiblatexOption{global,type,entry}[string]{citetracker}[true]{%
+ \ifcsdef{blx@opt@citetracker@#1}
+ {\csuse{blx@opt@citetracker@#1}}
+ {\blx@err@invopt{citetracker=#1}{}}}
+\def\blx@opt@citetracker@true{%
+ \let\blx@imc@ifciteseen\blx@ifciteseen@global
+ \let\blx@imc@ifentryseen\blx@ifentryseen@global
+ \let\blx@citetracker\blx@citetracker@global
+ \booltrue{citetracker}}
+\def\blx@opt@citetracker@false{%
+ \let\blx@imc@ifciteseen\@secondoftwo
+ \protected\long\def\blx@imc@ifentryseen##1##2##3{##3}%
+ \let\blx@citetracker\relax}
+\def\blx@opt@citetracker@context{%
+ \let\blx@imc@ifciteseen\blx@ifciteseen@context
+ \let\blx@imc@ifentryseen\blx@ifentryseen@context
+ \let\blx@citetracker\blx@citetracker@context
+ \booltrue{citetracker}}
+\def\blx@opt@citetracker@strict{%
+ \let\blx@imc@ifciteseen\blx@ifciteseen@global
+ \let\blx@imc@ifentryseen\blx@ifentryseen@global
+ \def\blx@citetracker{%
+ \blx@ifcitesingle{\blx@citetracker@global}{}}%
+ \booltrue{citetracker}}
+\def\blx@opt@citetracker@constrict{%
+ \let\blx@imc@ifciteseen\blx@ifciteseen@context
+ \let\blx@imc@ifentryseen\blx@ifentryseen@context
+ \def\blx@citetracker{%
+ \blx@ifcitesingle{\blx@citetracker@context}{}}%
+ \booltrue{citetracker}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{ibidtracker}[true]{%
+ \ifcsdef{blx@opt@ibidtracker@#1}
+ {\csuse{blx@opt@ibidtracker@#1}}
+ {\blx@err@invopt{ibidtracker=#1}{}}}
+\def\blx@opt@ibidtracker@true{%
+ \let\blx@imc@ifciteibid\blx@ifciteibid@global
+ \let\blx@ibidtracker\blx@ibidtracker@global
+ \let\blx@ibidreset\blx@ibidreset@global
+ \booltrue{citetracker}}
+\def\blx@opt@ibidtracker@false{%
+ \let\blx@imc@ifciteibid\@secondoftwo
+ \let\blx@ibidtracker\relax
+ \let\blx@ibidreset\relax}
+\def\blx@opt@ibidtracker@context{%
+ \let\blx@imc@ifciteibid\blx@ifciteibid@context
+ \let\blx@ibidtracker\blx@ibidtracker@context
+ \let\blx@ibidreset\blx@ibidreset@context
+ \booltrue{citetracker}}
+\def\blx@opt@ibidtracker@strict{%
+ \let\blx@imc@ifciteibid\blx@ifciteibid@strict
+ \let\blx@ibidtracker\blx@ibidtracker@strict
+ \let\blx@ibidreset\blx@ibidreset@global
+ \booltrue{citetracker}}
+\def\blx@opt@ibidtracker@constrict{%
+ \let\blx@imc@ifciteibid\blx@ifciteibid@constrict
+ \let\blx@ibidtracker\blx@ibidtracker@constrict
+ \let\blx@ibidreset\blx@ibidreset@context
+ \booltrue{citetracker}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{idemtracker}[true]{%
+ \ifcsdef{blx@opt@idemtracker@#1}
+ {\csuse{blx@opt@idemtracker@#1}}
+ {\blx@err@invopt{idemtracker=#1}{}}}
+\def\blx@opt@idemtracker@true{%
+ \let\blx@imc@ifciteidem\blx@ifciteidem@global
+ \let\blx@idemtracker\blx@idemtracker@global
+ \let\blx@idemreset\blx@idemreset@global
+ \booltrue{citetracker}}
+\def\blx@opt@idemtracker@false{%
+ \let\blx@imc@ifciteidem\@secondoftwo
+ \let\blx@idemtracker\relax
+ \let\blx@idemreset\relax}
+\def\blx@opt@idemtracker@context{%
+ \let\blx@imc@ifciteidem\blx@ifciteidem@context
+ \let\blx@idemtracker\blx@idemtracker@context
+ \let\blx@idemreset\blx@idemreset@context
+ \booltrue{citetracker}}
+\def\blx@opt@idemtracker@strict{%
+ \let\blx@imc@ifciteidem\blx@ifciteidem@strict
+ \let\blx@idemtracker\blx@idemtracker@strict
+ \let\blx@idemreset\blx@idemreset@global
+ \booltrue{citetracker}}
+\def\blx@opt@idemtracker@constrict{%
+ \let\blx@imc@ifciteidem\blx@ifciteidem@constrict
+ \let\blx@idemtracker\blx@idemtracker@constrict
+ \let\blx@idemreset\blx@idemreset@context
+ \booltrue{citetracker}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{opcittracker}[true]{%
+ \ifcsdef{blx@opt@opcittracker@#1}
+ {\csuse{blx@opt@opcittracker@#1}}
+ {\blx@err@invopt{opcittracker=#1}{}}}
+\def\blx@opt@opcittracker@true{%
+ \let\blx@imc@ifopcit\blx@ifopcit@global
+ \let\blx@opcittracker\blx@opcittracker@global
+ \let\blx@opcitreset\blx@opcitreset@global
+ \booltrue{citetracker}}
+\def\blx@opt@opcittracker@false{%
+ \let\blx@imc@ifopcit\@secondoftwo
+ \let\blx@opcittracker\relax
+ \let\blx@opcitreset\relax}
+\def\blx@opt@opcittracker@context{%
+ \let\blx@imc@ifopcit\blx@ifopcit@context
+ \let\blx@opcittracker\blx@opcittracker@context
+ \let\blx@opcitreset\blx@opcitreset@context
+ \booltrue{citetracker}}
+\def\blx@opt@opcittracker@strict{%
+ \let\blx@imc@ifopcit\blx@ifopcit@strict
+ \let\blx@opcittracker\blx@opcittracker@strict
+ \let\blx@opcitreset\blx@opcitreset@global
+ \booltrue{citetracker}}
+\def\blx@opt@opcittracker@constrict{%
+ \let\blx@imc@ifopcit\blx@ifopcit@constrict
+ \let\blx@opcittracker\blx@opcittracker@constrict
+ \let\blx@opcitreset\blx@opcitreset@context
+ \booltrue{citetracker}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{loccittracker}[true]{%
+ \ifcsdef{blx@opt@loccittracker@#1}
+ {\csuse{blx@opt@loccittracker@#1}}
+ {\blx@err@invopt{loccittracker=#1}{}}}
+\def\blx@opt@loccittracker@true{%
+ \let\blx@imc@ifloccit\blx@ifloccit@global
+ \let\blx@loccittracker\blx@loccittracker@global
+ \let\blx@loccitreset\blx@loccitreset@global
+ \booltrue{citetracker}}
+\def\blx@opt@loccittracker@false{%
+ \let\blx@imc@ifloccit\@secondoftwo
+ \let\blx@loccittracker\relax
+ \let\blx@loccitreset\relax}
+\def\blx@opt@loccittracker@context{%
+ \let\blx@imc@ifloccit\blx@ifloccit@context
+ \let\blx@loccittracker\blx@loccittracker@context
+ \let\blx@loccitreset\blx@loccitreset@context
+ \booltrue{citetracker}}
+\def\blx@opt@loccittracker@strict{%
+ \let\blx@imc@ifloccit\blx@ifloccit@strict
+ \let\blx@loccittracker\blx@loccittracker@strict
+ \let\blx@loccitreset\blx@loccitreset@global
+ \booltrue{citetracker}}
+\def\blx@opt@loccittracker@constrict{%
+ \let\blx@imc@ifloccit\blx@ifloccit@constrict
+ \let\blx@loccittracker\blx@loccittracker@constrict
+ \let\blx@loccitreset\blx@loccitreset@context
+ \booltrue{citetracker}}
+
+\DeclareBibliographyOption[boolean]{parentracker}[true]{%
+ \ifstrequal{#1}{true}
+ {\let\bibopenparen\blx@bibopenparen
+ \let\bibcloseparen\blx@bibcloseparen
+ \let\bibopenbracket\blx@bibopenbracket
+ \let\bibclosebracket\blx@bibclosebracket}
+ {\protected\def\bibopenparen{\bibleftparen}%
+ \protected\def\bibcloseparen{\bibrightparen}%
+ \protected\def\bibopenbracket{\bibleftbracket}%
+ \protected\def\bibclosebracket{\bibrightbracket}}}
+
+\DeclareBibliographyOption[integer]{maxparens}{%
+ \ifnumless{#1}{1}
+ {\blx@err@invopt{maxparens=#1}{}}
+ {\setcounter{maxparens}{#1}}}
+
+\newtoggle{blx@labeldateusetime}
+\DeclareBibliographyOption[boolean]{labeldateusetime}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@labeldateusetime}}
+ {\togglefalse{blx@labeldateusetime}}}
+
+\DeclareBibliographyOption[string]{labeldate}{%
+ % 'true' or 'false' means that the user thinks that this is the old 'labeldate'
+ % option which is now 'labeldateparts' (which is a boolean).
+ \ifboolexpr{%
+ test {\ifstrequal{#1}{true}}
+ or
+ test {\ifstrequal{#1}{false}}}
+ {\blx@warning@noline{%
+ 'labeldate' option used to determine whether to provide label date fields and\MessageBreak
+ extradate field is renamed to 'labeldateparts', setting this instead. This option is
+ now used to set the format of the labeldate}%
+ \settoggle{blx@labeldateparts}{#1}}
+ {\ifstrequal{#1}{iso8601}
+ {\blx@warning@noline{%
+ 'iso8601' date format specifier is deprecated.\MessageBreak
+ Use 'iso' instead}%
+ \def\blx@dateformat@labeldate{iso}%
+ \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {\ifstrequal{#1}{edtf}
+ {\blx@warning@noline{%
+ 'edtf' date format specifier is deprecated.\MessageBreak
+ Use 'iso' instead}%
+ \def\blx@dateformat@labeldate{iso}%
+ \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {\def\blx@dateformat@labeldate{#1}}}%
+ \ifstrequal{#1}{ymd}
+ {\renewrobustcmd*{\bibdaterangesep}{\slash}%
+ \renewrobustcmd*{\bibtimerangesep}{\slash}%
+ \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {}%
+ \ifstrequal{#1}{iso}% bibdaterangesep hard-coded to slash, no extra space before prefices
+ {\renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {}%
+ \ifcsdef{mkdaterange#1}
+ {\protected\def\blx@imc@printlabeldate{\csuse{mkdaterange#1}{label}}
+ \protected\def\blx@imc@printlabeldateextra{\csuse{mkdaterange#1extra}{label}}}
+ {\ifcsdef{mkbibrange#1}%LEGACY(<3.5)
+ {\protected\def\blx@imc@printlabeldate{\csuse{mkbibrange#1}{label}}
+ \protected\def\blx@imc@printlabeldateextra{\csuse{mkbibrange#1extra}{label}}}
+ {\blx@err@invopt{labeldate=#1}{}}}}}
+
+\DeclareBibliographyOption[string]{labeltime}{%
+ \ifcsdef{mktimerange#1}
+ {\def\blx@timeformat@labeltime{#1}%
+ \protected\def\blx@imc@printlabeltime{\csuse{mktimerange#1}{label}}}
+ {\blx@err@invopt{labeltime=#1}{}}}
+
+% Date meta-information
+\DeclareBibliographyOption[string]{dateera}{%
+ \ifboolexpr{%
+ test {\ifstrequal{#1}{astronomical}}
+ or
+ test {\ifstrequal{#1}{secular}}
+ or
+ test {\ifstrequal{#1}{christian}}}
+ {\def\blx@dateera{#1}%
+ \ifstrequal{#1}{secular}
+ {\def\blx@dateera@bce{beforecommonera}%
+ \def\blx@dateera@ce{commonera}}
+ {}%
+ \ifstrequal{#1}{christian}
+ {\def\blx@dateera@bce{beforechrist}%
+ \def\blx@dateera@ce{annodomini}}
+ {}}
+ {\blx@err@invopt{dateera=#1}{}}}
+
+% Effectively turns off dateeraauto since it's only used on ce dates which
+% are never less than zero (as that would be a bce date)
+\numdef\blx@dateeraauto{0}
+\DeclareBibliographyOption[integer]{dateeraauto}{%
+ \numdef\blx@dateeraauto{#1}}
+
+\newtoggle{blx@datecirca}
+\DeclareBibliographyOption[boolean]{datecirca}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@datecirca}%
+ \protected\def\datecircaprint{%
+ \ifdatecirca{\bibstring{circa}\printdelim{datecircadelim}}{}}%
+ \protected\def\enddatecircaprint{%
+ \ifenddatecirca{\bibstring{circa}\printdelim{datecircadelim}}{}}%
+ \protected\def\datecircaprintedtf{%LEGACY(<3.9)
+ \blx@warning@noline{%
+ '\string\datecircaprintedtf' is deprecated.
+ Please use '\string\datecircaprintiso'}%
+ \datecircaprintiso}%
+ \protected\def\enddatecircaprintedtf{%LEGACY(<3.9)
+ \blx@warning@noline{%
+ '\string\enddatecircaprintedtf' is deprecated.
+ Please use '\string\enddatecircaprintiso'}%
+ \enddatecircaprintiso}%
+ \protected\def\datecircaprintiso{%
+ \ifdatecirca{\textasciitilde}{}}%
+ \protected\def\enddatecircaprintiso{%
+ \ifenddatecirca{\textasciitilde}{}}}
+ {\togglefalse{blx@datecirca}}}
+
+\newtoggle{blx@dateuncertain}
+\DeclareBibliographyOption[boolean]{dateuncertain}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@dateuncertain}%
+ \protected\def\dateuncertainprint{%
+ \ifdateuncertain{\bibdateuncertain}{}}%
+ \protected\def\enddateuncertainprint{%
+ \ifenddateuncertain{\bibdateuncertain}{}}}
+ {\togglefalse{blx@dateuncertain}}}
+
+% *time format options - auto-created for all datamodel date fields
+% *date format options - auto-created for all datamodel date fields
+% *dateusetime options - auto-created for all datamodel date fields
+% Date metadata toggles are defined in one of the \abx@dobooleans calls
+\def\do#1{%
+ \DeclareBibliographyOption[string]{#1date}{%
+ \ifstrequal{##1}{iso8601}
+ {\blx@warning@noline{'iso8601' date format specifier is deprecated.\MessageBreak
+ Use 'iso' instead}%
+ \csdef{blx@dateformat@#1date}{iso}}
+ {\ifstrequal{##1}{edtf}
+ {\blx@warning@noline{'edtf' date format specifier is deprecated.\MessageBreak
+ Use 'iso' instead}%
+ \csdef{blx@dateformat@#1date}{iso}}
+ {\csdef{blx@dateformat@#1date}{##1}}}%
+ \ifstrequal{##1}{ymd}
+ {\renewrobustcmd*{\bibdaterangesep}{\slash}%
+ \renewrobustcmd*{\bibtimerangesep}{\slash}%
+ \renewrobustcmd*{\bibdateeraendprefix}{\bibdateeraprefix}}
+ {}%
+ \ifcsdef{mkdaterange##1}
+ {\protected\csedef{blx@imc@print#1date}{\noexpand\csuse{mkdaterange##1}{#1}}%
+ \protected\csedef{blx@imc@print#1dateextra}{\noexpand\csuse{mkdaterange##1extra}{#1}}}
+ {\ifcsdef{mkbibrange##1}%LEGACY(<3.5)
+ {\blx@warning@noline{%
+ '\string\mkbibrange##1(extra)' date range macro in style is deprecated,\MessageBreak
+ please define '\string\mkdaterange##1(extra)' instead}%
+ \protected\csedef{blx@imc@print#1date}{\noexpand\csuse{mkbibrange##1}{#1}}%
+ \protected\csedef{blx@imc@print#1dateextra}{\noexpand\csuse{mkbibrange##1extra}{#1}}}
+ {\blx@err@invopt{#1date=##1}{}}}}%
+ % Default for new date fields is "comp" but this is overridden below by
+ % biblatex defaults
+ \setkeys{blx@opt@pre}{#1date=comp}%
+ % Time format options
+ \DeclareBibliographyOption[string]{#1time}{%
+ \csdef{blx@timeformat@#1time}{##1}%
+ \ifcsdef{mktimerange##1}
+ {\protected\csedef{blx@imc@print#1time}{\csuse{mktimerange##1}{#1}}}
+ {\blx@err@invopt{#1time=##1}{}}}%
+ % Default for new time fields is "24h"
+ \setkeys{blx@opt@pre}{#1time=24h}%
+ % Boolean to determine if times are printed with dates
+ \newtoggle{blx@#1dateusetime}%
+ \DeclareBibliographyOption[boolean]{#1dateusetime}{%
+ \ifstrequal{##1}{true}
+ {\toggletrue{blx@#1dateusetime}}
+ {\togglefalse{blx@#1dateusetime}}}}
+\abx@dodatetypes
+
+\DeclareBibliographyOption[string]{alldatesusetime}{%
+ \def\do##1{\ExecuteBibliographyOptions{##1usetime=#1}}%
+ \abx@dodates
+ \do{labeldate}}
+
+\DeclareBibliographyOption[string]{alldates}{%
+ \def\do##1{\ExecuteBibliographyOptions{##1=#1}}%
+ \abx@dodates
+ \do{labeldate}}
+
+\DeclareBibliographyOption[string]{alltimes}{%
+ \def\do##1{%
+ \ExecuteBibliographyOptions{##1time=#1}}%
+ \abx@dodatetypes
+ \do{label}}
+
+\newtoggle{blx@julian}
+\def\blx@gregorianstart{1582-10-15}
+\DeclareBibliographyOption[boolean]{julian}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@julian}}
+ {\togglefalse{blx@julian}}}
+
+\DeclareBibliographyOption[string]{gregorianstart}{%
+ \def\blx@gregorianstart{#1}}
+
+\newtoggle{blx@datezeros}\toggletrue{blx@datezeros}
+\DeclareBibliographyOption[boolean]{datezeros}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@datezeros}%
+ \let\blx@imc@mkyearzeros\blx@imc@forcezerosy
+ \let\blx@imc@mkmonthzeros\blx@imc@forcezerosmdt
+ \let\blx@imc@mkdayzeros\blx@imc@forcezerosmdt}
+ {\togglefalse{blx@datezeros}%
+ \let\blx@imc@mkyearzeros\blx@imc@stripzeros
+ \let\blx@imc@mkmonthzeros\blx@imc@stripzeros
+ \let\blx@imc@mkdayzeros\blx@imc@stripzeros}}
+
+\newtoggle{blx@timezeros}\toggletrue{blx@timezeros}
+\DeclareBibliographyOption[boolean]{timezeros}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@timezeros}%
+ \let\blx@imc@mktimezeros\blx@imc@forcezerosmdt}
+ {\togglefalse{blx@timezeros}%
+ \let\blx@imc@mktimezeros\blx@imc@stripzeros}}
+
+\newtoggle{blx@timezones}
+\DeclareBibliographyOption[boolean]{timezones}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@timezones}}
+ {\togglefalse{blx@timezones}}}
+
+\newtoggle{blx@seconds}
+\DeclareBibliographyOption[boolean]{seconds}[true]{%
+ \ifstrequal{#1}{true}
+ {\toggletrue{blx@seconds}}
+ {\togglefalse{blx@seconds}}}
+
+\DeclareBibliographyOption[string]{autocite}{%
+ \ifcsundef{blx@acite@#1}
+ {\blx@error
+ {Autocite command '#1' undefined}
+ {The autocite command '#1' has not been defined by
+ the\MessageBreak selected citation style}}
+ {\letcs\autocite{blx@acite@#1}%
+ \letcs\autocites{blx@macite@#1}}}
+
+\DeclareBibliographyOption[string]{notetype}{%
+ \ifcsdef{blx@opt@notetype@#1}
+ {\blx@notetype\csuse{blx@opt@notetype@#1}}
+ {\blx@err@invopt{notetype=#1}{}}}
+\cslet{blx@opt@notetype@foot+end}\z@
+\let\blx@opt@notetype@footonly\@ne
+\let\blx@opt@notetype@endonly\tw@
+
+\DeclareBibliographyOption[boolean]{autopunct}[true]{%
+ \ifstrequal{#1}{true}
+ {\DeclareAutoPunctuation{.,;:!?}}
+ {\DeclareAutoPunctuation{}}}
+
+\DeclareBibliographyOption[boolean]{punctfont}[true]{%
+ \ifstrequal{#1}{true}
+ {\let\blx@ifpuncthook\@firstoftwo}
+ {\let\blx@ifpuncthook\@secondoftwo}}
+
+\DeclareBibliographyOption[boolean]{labelnumber}[true]{%
+ \settoggle{blx@labelnumber}{#1}%
+ \iftoggle{blx@labelnumber}
+ {}
+ {\setkeys{blx@opt@pre}{defernumbers=false}}}
+\DeclareBiblatexOption{type,entry}[boolean]{labelnumber}[true]{%
+ \settoggle{blx@labelnumber}{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{labelalpha}[true]{%
+ \settoggle{blx@labelalpha}{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{labeltitle}[true]{%
+ \settoggle{blx@labeltitle}{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{labeltitleyear}[true]{%
+ \settoggle{blx@labeltitleyear}{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{labeldateparts}[true]{%
+ \settoggle{blx@labeldateparts}{#1}}
+
+\DeclareBiblatexOption{global,type}[string]{uniquelist}[true]{%
+ \ifcsdef{blx@opt@uniquelist@#1}
+ {\letcs\blx@uniquelist{blx@opt@uniquelist@#1}}
+ {\blx@err@invopt{uniquelist=#1}{}}}
+\def\blx@opt@uniquelist@false{false}
+\def\blx@opt@uniquelist@true{true}
+\def\blx@opt@uniquelist@minyear{minyear}
+
+\blx@DeclareBackendOption{entry,namelist}[string]{uniquelist}
+
+\DeclareBiblatexOption{global,type}[boolean]{nohashothers}[true]{%
+ \settoggle{blx@nohashothers}{#1}}
+\blx@DeclareBackendOption{entry,namelist}[boolean]{nohashothers}
+
+\DeclareBiblatexOption{global,type}[boolean]{nosortothers}[true]{%
+ \settoggle{blx@nosortothers}{#1}}
+\blx@DeclareBackendOption{entry,namelist}[boolean]{nosortothers}
+
+\DeclareBiblatexOption{global,type}[string]{uniquename}[true]{%
+ \ifcsdef{blx@opt@uniquename@#1}
+ {\letcs\blx@uniquename{blx@opt@uniquename@#1}}
+ {\blx@err@invopt{uniquename=#1}{}}}
+\def\blx@opt@uniquename@false{false}
+\def\blx@opt@uniquename@init{init}
+\def\blx@opt@uniquename@true{full}
+\def\blx@opt@uniquename@full{full}
+\def\blx@opt@uniquename@allinit{allinit}
+\def\blx@opt@uniquename@allfull{allfull}
+\def\blx@opt@uniquename@mininit{mininit}
+\def\blx@opt@uniquename@minfull{minfull}
+
+\blx@DeclareBackendOption{entry,namelist,name}[string]{uniquename}
+
+\DeclareBiblatexOption{global,type}[boolean]{noroman}[true]{%
+ \settoggle{blx@noroman}{#1}}
+\blx@DeclareBackendOption{entry}[boolean]{noroman}
+
+\DeclareBiblatexOption{global,type}[boolean]{singletitle}[true]{%
+ \settoggle{blx@singletitle}{#1}}
+\blx@DeclareBackendOption{entry}[boolean]{singletitle}
+
+\DeclareBiblatexOption{global,type}[boolean]{uniquetitle}[true]{%
+ \settoggle{blx@uniquetitle}{#1}}
+\blx@DeclareBackendOption{entry}[boolean]{uniquetitle}
+
+\DeclareBiblatexOption{global,type}[boolean]{uniquebaretitle}[true]{%
+ \settoggle{blx@uniquebaretitle}{#1}}
+\blx@DeclareBackendOption{entry}[boolean]{uniquebaretitle}
+
+\DeclareBiblatexOption{global,type}[boolean]{uniquework}[true]{%
+ \settoggle{blx@uniquework}{#1}}
+\blx@DeclareBackendOption{entry}[boolean]{uniquework}
+
+\DeclareBiblatexOption{global,type}[boolean]{uniqueprimaryauthor}[true]{%
+ \settoggle{blx@uniqueprimaryauthor}{#1}}
+\blx@DeclareBackendOption{entry}[boolean]{uniqueprimaryauthor}
+
+
+\DeclareBibliographyOption[boolean]{defernumbers}[true]{%
+ \settoggle{blx@defernumbers}{#1}%
+ \iftoggle{blx@defernumbers}
+ {\setkeys{blx@opt@pre}{labelnumber}%
+ \let\blx@thelabelnumber\blx@addlabelnumber
+ \let\abx@aux@number\blx@aux@number}
+ {\let\blx@thelabelnumber\relax
+ \let\abx@aux@number\@gobblefive}}
+
+\DeclareBibliographyOption[boolean]{locallabelwidth}[true]{%
+ \blx@key@locallabelwidth{\abx@locallabelwidth}{#1}}
+
+
+\DeclareBibliographyOption[string]{refsection}{%
+ \ifcsdef{blx@opt@refsection@#1}
+ {\letcs\blx@refsecreset@level{blx@opt@refsection@#1}}
+ {\blx@err@invopt{refsection=#1}{}}}
+\csdef{blx@opt@refsection@none}{0}
+\csdef{blx@opt@refsection@part}{1}
+\csdef{blx@opt@refsection@chapter}{2}
+\csdef{blx@opt@refsection@section}{3}
+\csdef{blx@opt@refsection@subsection}{4}
+\csdef{blx@opt@refsection@chapter+}{5}
+\csdef{blx@opt@refsection@section+}{6}
+\csdef{blx@opt@refsection@subsection+}{7}
+
+\blx@patchsection@switch{\blx@refsecreset@level}{\newrefsection}{}{}
+
+\DeclareBibliographyOption[string]{refsegment}{%
+ \ifcsdef{blx@opt@refsegment@#1}
+ {\letcs\blx@refsegreset@level{blx@opt@refsegment@#1}}
+ {\blx@err@invopt{refsegment=#1}{}}}
+\csdef{blx@opt@refsegment@none}{0}
+\csdef{blx@opt@refsegment@part}{1}
+\csdef{blx@opt@refsegment@chapter}{2}
+\csdef{blx@opt@refsegment@section}{3}
+\csdef{blx@opt@refsegment@subsection}{4}
+\csdef{blx@opt@refsegment@chapter+}{5}
+\csdef{blx@opt@refsegment@section+}{6}
+\csdef{blx@opt@refsegment@subsection+}{7}
+
+\blx@patchsection@switch{\blx@refsegreset@level}
+ {\newrefsegment}
+ {\ifnumgreater\blx@refsegreset@level\z@
+ {\ifnumgreater\blx@refsegreset@level\blx@refsecreset@level
+ {}
+ {\blx@err@confopt
+ {refsegment/refsection}
+ {The 'refsegment' option must point to a
+ lower-level\MessageBreak document division
+ than 'refsection'}%
+ \def\blx@refsegreset@level{0}}}
+ {}}
+ {}
+
+\DeclareBibliographyOption[string]{citereset}{%
+ \ifcsdef{blx@opt@citereset@#1}
+ {\letcs\blx@citereset@level{blx@opt@citereset@#1}}
+ {\blx@err@invopt{citereset=#1}{}}}
+\csdef{blx@opt@citereset@none}{0}
+\csdef{blx@opt@citereset@part}{1}
+\csdef{blx@opt@citereset@chapter}{2}
+\csdef{blx@opt@citereset@section}{3}
+\csdef{blx@opt@citereset@subsection}{4}
+\csdef{blx@opt@citereset@chapter+}{5}
+\csdef{blx@opt@citereset@section+}{6}
+\csdef{blx@opt@citereset@subsection+}{7}
+
+\blx@patchsection@switch{\blx@citereset@level}{\citereset\blx@inf@creset}{}{}
+
+\DeclareBibliographyOption[boolean]{bibwarn}[true]{%
+ \ifstrequal{#1}{true}
+ {\def\blx@bbl@thewarn{\blx@bbl@warn}}
+ {\let\blx@bbl@thewarn\@gobble}}
+
+% Name field options
+\def\do#1{%
+ \DeclareBiblatexOption{global,type,entry}[boolean]{use#1}[true]{%
+ \settoggle{blx@use#1}{##1}}}
+\abx@donames
+
+% Entry options
+\DeclareBiblatexOption{global,type,entry,namelist,name}[boolean]{useprefix}[true]{%
+ \settoggle{blx@useprefix}{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{skipbib}[true]{%
+ \settoggle{blx@skipbib}{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{skipbiblist}[true]{%
+ \settoggle{blx@skipbiblist}{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{skiplab}[true]{%
+ \settoggle{blx@skiplab}{#1}}
+
+\DeclareBiblatexOption{global,type}[boolean]{dataonly}[true]{%
+ \settoggle{blx@skipbib}{#1}%
+ \settoggle{blx@skipbiblist}{#1}%
+ \settoggle{blx@skiplab}{#1}}
+% the entry option is resolved by Biber
+\blx@DeclareBackendOption{entry}[boolean]{dataonly}
+% This is handled in a special way by by biber. It indicates what to set for various options
+% if the dataonly option is "true". If biber finds dataonly=false
+% in an entry, the booleans here will be reversed (skip*) and the unique* options (which are not
+% booleans) will be ignored, defaulting to higher scope values. biber assumes
+% that \blx@bcf@backendin@entry@* options are boolean options as otherwise, negating them
+% per-entry makes little sense and it is not clear what to do with such lower-scope overrides.
+\gdef\blx@bcf@backendin@entry@dataonly{uniquename=false,uniquelist=false,%
+ skipbib=true,skipbiblist=true,skiplab=true}
+
+% Option processor/scheduler
+\DeclareOption*{%
+ \begingroup
+ \def\blx@tempa#1=#2&{#1}%
+ \edef\blx@tempa{%
+ \expandafter\blx@tempa\CurrentOption=&}%
+ \ifcsundef{KV@blx@opt@ldt@\blx@tempa}
+ {\endgroup
+ \eappto\blx@theoptions{\CurrentOption,}}
+ {\edef\blx@tempa{\endgroup
+ \noexpand\setkeys{blx@opt@ldt}{\CurrentOption}}%
+ \blx@tempa}}
+
+\def\blx@processoptions{%
+ \ifundef\blx@theoptions
+ {}
+ {\begingroup
+ \edef\blx@tempa{\endgroup
+ \noexpand\setkeys{blx@opt@pre}{\blx@theoptions}}%
+ \blx@tempa}}
+
+%% Initial setup
+
+% Set defaults
+\setkeys{blx@opt@ldt}{style=numeric}
+\setkeys{blx@opt@pre}{%
+ sorting=nty,sortlocale=auto,sortcase,sortupper,sortcites=false,
+ maxnames=3,minnames=1,maxalphanames=3,minalphanames=1,
+ maxitems=3,minitems=1,mincrossrefs=2,minxrefs=2,useauthor=true,useeditor=true,
+ usetranslator=false,indexing=false,abbreviate=true,dateabbrev=true,dateera=astronomical,
+ backref=false,backrefsetstyle=setonly,pagetracker=false,ibidtracker=false,
+ idemtracker=false,opcittracker=false,loccittracker=false,citetracker=false,
+ citecounter=false,block=none,language=autobib,clearlang=true,autolang=none,
+ date=comp,labeldate=year,origdate=comp,eventdate=comp,urldate=short,
+ autopunct=true,punctfont=false,defernumbers=false,timezeros=true,
+ refsection=none,refsegment=none,citereset=none,hyperref=auto,
+ parentracker,maxparens=3,bibencoding=auto,bibwarn,timezones=false,
+ seconds=false,julian=false,labeltime=24h,locallabelwidth=false}
+
+% Load Unicode enhancements (only for LuaTeX and XeTeX)
+\ifboolexpr{
+ not test {\ifundef\XeTeXrevision}
+ or
+ not test {\ifundef\luatexversion}}
+ {\blx@inputonce{blx-unicode.def}{enhanced support for Unicode engines}{}{}{}{}}
+ {}
+
+% Load compatibility code
+\blx@inputonce{blx-compat.def}{compatibility code}{}{}{}{}
+
+% Restore catcodes
+\blx@catcodes
+\undef\blx@catcodes
+
+% Process load-time options
+\ProcessOptions*
+
+% Switch to BibTeX support if requested
+\iftoggle{blx@bibtex}
+ {\blx@inputonce{blx-bibtex.def}{BibTeX backend compatibility}{}{}{}{}}
+ {}
+
+% Load citation and bibliography styles, configuration file
+\blx@inputonce{biblatex.def}{generic definitions}{}{}{}{}
+\iftoggle{blx@natbib}
+ {\blx@inputonce{blx-natbib.def}{natbib compatibility}{}{}{}{}}
+ {}
+\iftoggle{blx@mcite}
+ {\blx@inputonce{blx-mcite.def}{mcite-like commands}{}{}{}{}}
+ {}
+\RequireBibliographyStyle{\blx@bbxfile}
+\RequireCitationStyle{\blx@cbxfile}
+\blx@secinit
+\citereset
+\blx@inputonce{biblatex.cfg}{configuration file}{}{}{}{}
+
+% Process preamble options
+\blx@processoptions
+
+% Deferred setup at end of preamble
+\AtEndPreamble{%
+ \blx@checkoptions@global
+ \c@maxnames\blx@maxcitenames\relax
+ \c@minnames\blx@mincitenames\relax
+ \c@maxitems\blx@maxitems\relax
+ \c@minitems\blx@minitems\relax
+ \togglefalse{abx@bool@xinits}
+ \def\do#1{\iftoggle{abx@bool@#1inits}{\toggletrue{abx@bool@xinits}}{}}
+ \abx@donameparts
+ \iftoggle{abx@bool@xinits}
+ {\ifdefstrequal\blx@uniquename\blx@opt@uniquename@full
+ {\blx@warn@conflopt{%
+ '<namepart>inits' conflicts with 'uniquename=full'.\MessageBreak
+ Setting 'uniquename=init'}%
+ \setkeys{blx@opt@pre}{uniquename=init}}
+ {}%
+ \ifdefstrequal\blx@uniquename\blx@opt@uniquename@allfull
+ {\blx@warn@conflopt{%
+ '<namepart>inits' conflicts with 'uniquename=allfull'.\MessageBreak
+ Setting 'uniquename=allinit}%
+ \setkeys{blx@opt@pre}{uniquename=allinit}}
+ {}%
+ \ifdefstrequal\blx@uniquename\blx@opt@uniquename@minfull
+ {\blx@warn@conflopt{%
+ '<namepart>inits' conflicts with 'uniquename=minfull'.\MessageBreak
+ Setting 'uniquename=mininit}%
+ \setkeys{blx@opt@pre}{uniquename=mininit}}
+ {}}
+ {}%
+ \nottoggle{blx@labeldateparts}
+ {\ifdefstrequal\blx@uniquelist\blx@opt@uniquelist@minyear
+ {\blx@warn@conflopt{%
+ 'uniquelist=minyear' requires 'labeldateparts'.\MessageBreak
+ Setting 'uniquelist=true'}%
+ \setkeys{blx@opt@pre}{uniquelist}}
+ {}}
+ {}%
+ \def\do#1{%
+ \ifcsstring{blx@dateformat@#1}{iso}
+ {\blx@stripfromendinto{#1}{date}\blx@datetype
+ \ifdefstring\blx@dateera{astronomical}{}
+ {\blx@warn@conflopt{%
+ '#1=iso' requires 'dateera=astronomical'.\MessageBreak
+ Setting 'dateera=astrononmical'}%
+ \setkeys{blx@opt@pre}{dateera=astronomical}}%
+ \ifcsstring{blx@timeformat@\blx@datetype time}{24h}%
+ {}
+ {\blx@warn@conflopt{%
+ '#1=iso' requires '\blx@datetype time=24h'.\MessageBreak
+ Setting '\blx@datetype time=24h'}%
+ \setkeys{blx@opt@pre}{\blx@datetype time=24h}}%
+ \iftoggle{blx@julian}
+ {\blx@warn@conflopt{%
+ '#1=iso' requires 'julian=false'.\MessageBreak
+ Setting 'julian=false'}%
+ \setkeys{blx@opt@pre}{julian=false}}
+ {}%
+ \nottoggle{blx@datezeros}
+ {\blx@warn@conflopt{%
+ '#1=iso' requires 'datezeros=true'.\MessageBreak
+ Setting 'datezeros=true'}%
+ \setkeys{blx@opt@pre}{datezeros=true}}
+ {}%
+ \nottoggle{blx@timezeros}
+ {\blx@warn@conflopt{%
+ '#1=iso' requires 'timezeros=true'.\MessageBreak
+ Setting 'timezeros=true'}%
+ \setkeys{blx@opt@pre}{timezeros=true}}
+ {}%
+ \nottoggle{blx@seconds}
+ {\blx@warn@conflopt{%
+ '#1=iso' requires 'seconds=true'.\MessageBreak
+ Setting 'seconds=true'}%
+ \setkeys{blx@opt@pre}{seconds=true}}
+ {}}
+ {}}%
+ \abx@dodates
+ \do{labeldate}}
+
+\def\blx@checkencoding{%
+ \ifdef\blx@texencoding
+ {\blx@info@noline{%
+ Input encoding '\blx@texencoding' specified}}
+ {\ifundef\inputencodingname
+ {\ifundef\XeTeXrevision
+ {\ifundef\luatexversion
+ {\def\blx@texencoding{ascii}%
+ \blx@info@noline{%
+ No input encoding detected.\MessageBreak
+ Assuming '\blx@texencoding'}}
+ {\def\blx@texencoding{utf8}%
+ \blx@info@noline{%
+ LuaTeX detected.\MessageBreak
+ Assuming input encoding '\blx@texencoding'}}}
+ {\def\blx@texencoding{utf8}%
+ \blx@info@noline{%
+ XeTeX detected.\MessageBreak
+ Assuming input encoding '\blx@texencoding'}}}
+ {\ifcsdef{blx@inpenc@\inputencodingname}
+ {\letcs\blx@texencoding{blx@inpenc@\inputencodingname}}
+ {\let\blx@texencoding\inputencodingname}%
+ \blx@info@noline{%
+ Input encoding '\blx@texencoding' detected}}}%
+ \ifdef\blx@bibencoding
+ {\ifdefstring\blx@bibencoding{ascii}
+ {\blx@info@noline{%
+ Data encoding '\blx@bibencoding' specified.\MessageBreak
+ No need to reencode data}}
+ {\ifdefstring\blx@bibencoding{auto}
+ {\let\blx@bibencoding\blx@texencoding
+ \blx@info@noline{%
+ Automatic encoding selection.\MessageBreak
+ Assuming data encoding '\blx@bibencoding'}}
+ {\ifdefstrequal\blx@bibencoding\blx@texencoding
+ {\blx@info@noline{%
+ Data encoding '\blx@bibencoding' specified.\MessageBreak
+ No need to reencode data}}
+ {\blx@info@noline{%
+ Data encoding '\blx@bibencoding' specified.\MessageBreak
+ Backend will reencode on the fly}}}}}
+ {\def\blx@bibencoding{ascii}%
+ \blx@info@noline{%
+ Data encoding not specified.\MessageBreak
+ Assuming '\blx@bibencoding'}}%
+ \ifboolexpr{%
+ togl {blx@safeinputenc}
+ and ( test {\@ifpackageloaded{inputenc}}
+ or
+ test {\@ifpackageloaded{inputenx}} )
+ }
+ {\def\blx@texencoding{ascii}%
+ \blx@info@noline{%
+ Input encoding '\blx@texencoding' forced by\MessageBreak
+ 'safeinputenc' option}}
+ {}%
+}
+
+% Deferred last minute setup
+\AtBeginDocument{%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@refcontext{\blx@refcontext@context}}
+ \blx@checkencoding
+ \if@filesw
+ \blx@ctrlwrite
+ \fi
+ \blx@bblinput
+ \blx@maxsection\z@
+ \csuse{abx@preamble}%
+ \blx@inf@refsec
+ \blx@inf@refseg}
+
+\AtEndOfPackage{%
+ % Data model macros are forbidden after package load is finished
+ \def\blx@warn@dm#1{\blx@warning@noline{Data model macro '#1' cannot be used in preamble}}
+ \def\ResetDatamodelEntrytypes{\blx@warn@dm{ResetDatamodelEntrytypes}}
+ \def\ResetDatamodelFields{\blx@warn@dm{ResetDatamodelFields}}
+ \def\ResetDatamodelEntryfields{\blx@warn@dm{ResetDatamodelEntryfields}}
+ \def\ResetDatamodelConstraints{\blx@warn@dm{ResetDatamodelConstraints}}
+ \renewcommand*{\DeclareDatamodelEntrytypes}[2][]{\blx@warn@dm{DeclareDatamodelEntrytypes}}
+ \renewcommand*{\DeclareDatamodelFields}[2][]{\blx@warn@dm{DeclareDatamodelFields}}
+ \renewcommand*{\DeclareDatamodelEntryfields}[2][]{\blx@warn@dm{DeclareDatamodelEntryfields}}
+ \renewcommand*{\DeclareDatamodelConstraints}[2][]{\blx@warn@dm{DeclareDatamodelConstraints}}
+ \renewcommand*{\DeclareDatamodelConstant}[3][]{\blx@warn@dm{DeclareDatamodelConstant}}
+ \AtBeginDocument{%
+ \let\do\undef
+ \blx@dopreamblecmds
+ \let\do\noexpand}}
+
+\def\BiblatexHungarianWarningOff{\global\let\lbx@hu@loadinfo\@empty}
+\def\BiblatexLatvianWarningOff{\global\let\lbx@lv@loadinfo\@empty}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/blx-bibtex.def b/macros/latex/contrib/biblatex/latex/blx-bibtex.def
new file mode 100644
index 0000000000..c333e5f17d
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/blx-bibtex.def
@@ -0,0 +1,562 @@
+\ProvidesFile{blx-bibtex.def}
+[\abx@cptid]
+
+\blx@warning@noline{%
+ Using fall-back BibTeX(8) backend:\MessageBreak
+ functionality may be reduced/unavailable%
+}
+
+% Initialisation of backend-related switches, variables, etc.
+\newtoggle{blx@runbtx}
+
+% No interface provided for this but can be set 'in emergency' by user
+\def\blx@maxline{79}
+
+% Rename write stream so use is clear
+\let\blx@write\blx@bcfout
+
+% Data file initialisation
+\edef\blx@auxfile{\jobname}
+\let\blx@aux\@mainaux
+\newcommand*{\blxauxsuffix}{-blx}
+
+\begingroup
+\def\blx@tempa#1"#2{%
+ #1\ifx#2\@empty\else
+ \expandafter\blx@tempa
+ \fi#2}
+\edef\blx@ctrlfile{%
+ \noexpand\blx@tempa
+ \expandafter\blx@tempa\jobname"\@empty
+ \space\noexpand\@empty}
+\def\blx@tempa#1 #2{%
+ #1\ifx#2\@empty\else
+ \string_\expandafter\blx@tempa
+ \fi#2}
+\xdef\blx@ctrlfile{\blx@ctrlfile}
+\endgroup
+
+\def\blx@auxinit#1{%
+ \blx@auxwrite\blx@aux
+ {\def\do##1{,\blx@stripbib{##1}}}
+ {\ifx\blx@aux\@mainaux
+ \else
+ \blx@msg@aux
+ \fi
+ \string\bibstyle{biblatex}\blx@nl
+ \string\bibdata{%
+ \blx@ctrlfile\blxauxsuffix
+ \ifx#1\@empty
+ \else
+ \dolistloop#1%
+ \fi}\blx@nl
+ \string\citation{biblatex-control}}}
+
+\def\blx@sig@bib{@Comment{$ biblatex control file $}}
+\edef\blx@ver@bib{%
+ @Comment{$ biblatex bcf format version \blx@bcfversion\space $}}
+
+\let\blx@sig@aux\blx@sig@bbl
+\let\blx@ver@aux\blx@ver@bbl
+
+\edef\blx@msg@text{%
+ \@percentchar\space Do not modify this file!\blx@nl
+ \@percentchar\blx@nl
+ \@percentchar\space This is an auxiliary file
+ used by the 'biblatex' package.\blx@nl
+ \@percentchar\space This file may safely be deleted.
+ It will be recreated as\blx@nl
+ \@percentchar\space required.\blx@nl}
+
+\edef\blx@msg@aux{%
+ \blx@sig@aux\blx@nl
+ \blx@ver@aux\blx@nl
+ \blx@msg@text
+ \@percentchar\blx@nl\string\relax\blx@nl}
+\edef\blx@msg@bib{%
+ \blx@sig@bib\blx@nl
+ \blx@ver@bib\blx@nl
+ \blx@msg@text\blx@nl}
+
+% User feedback
+
+\renewrobustcmd*{\RequireBiber}[1][2]{%
+ \ifnumgreater{#1}\blx@reqbiber
+ {\numgdef\blx@reqbiber{#1}}
+ {}%
+ \blx@checkbackend{style}}
+\@onlypreamble\RequireBiber
+\let\blx@reqbiber\z@
+
+\def\blx@checkbackend#1{%
+ \ifnum\blx@reqbiber>2 %
+ \blx@error
+ {Biber backend is required by #1}
+ {The selected style or one of the .bib files
+ requires Biber.\MessageBreak It will
+ not work at all with BibTeX.}%
+ \fi}
+
+\def\blx@check@logreq{%
+ \begingroup
+ \ltxrequest{biblatex}{{\iftoggle{blx@runltx}{1}{0}}}{%
+ \provides[type=dynamic]{
+ \def\do##1{\file{##1.aux}}
+ \dolistloop\blx@list@inactive
+ \file{\blx@ctrlfile\blxauxsuffix.bib}
+ }
+ \requires[type=dynamic]{
+ \def\do##1{\file{##1.bbl}}
+ \dolistloop\blx@list@inactive
+ }
+ \ifdef\blx@list@req@edit
+ {\requires[type=editable]{
+ \forlistloop\file\blx@list@req@edit
+ }}
+ {}
+ \ifdef\blx@list@req@stat
+ {\requires[type=static]{
+ \forlistloop\file\blx@list@req@stat
+ }}
+ {}
+ }%
+ \def\do##1{%
+ \ifinlist{##1}{\blx@list@active}
+ {\blx@logreq@bibtex{1}{##1}}
+ {\blx@logreq@bibtex{0}{##1}}}%
+ \dolistloop\blx@list@inactive
+ \endgroup}
+
+\def\blx@logreq@bibtex#1#2{%
+ \logrequest[package=biblatex,priority=5,active=#1]{%
+ \generic{bibtex}
+ \cmdline{%
+ \iftoggle{blx@bibtex8}
+ {\binary{bibtex8}
+ \option{--wolfgang}
+ \option{--min\string_crossrefs \blx@mincrossrefs}}
+ {\binary{bibtex}
+ \option{-min-crossrefs \blx@mincrossrefs}}%
+ \infile{#2}
+ }
+ \input{
+ \file{#2.aux}
+ }
+ \output{
+ \file{#2.bbl}
+ }
+ \provides[type=dynamic]{
+ \file{#2.bbl}
+ }
+ \requires[type=dynamic]{
+ \file{#2.aux}
+ \file{\blx@ctrlfile\blxauxsuffix.bib}
+ }
+ \requires[type=editable]{
+ \ifcsdef{blx@list@bibfiles@#2}
+ {\def\do{\file}
+ \dolistcsloop{blx@list@bibfiles@#2}}
+ {}
+ }
+ \requires[type=static]{
+ \file{biblatex.bst}}
+ }%
+}
+
+\def\blx@logreq@active#1{%
+ \xifinlist{\blx@auxfile}{\blx@list@active}
+ {}
+ {\listxadd\blx@list@active{\blx@auxfile}}%
+ \ifblank{#1}
+ {}
+ {\@latex@warning{#1}}%
+ \blx@rerun@latex
+ \blx@rerun@bibtex}
+
+\def\blx@logreq@inactive{%
+ \xifinlist{\blx@auxfile}{\blx@list@inactive}
+ {}
+ {\listxadd\blx@list@inactive{\blx@auxfile}}}
+
+\def\blx@rerun@bibtex{%
+ \global\toggletrue{blx@runbtx}%
+ \global\let\blx@rerun@bibtex\relax}
+
+% Only the toggle name changes here
+\patchcmd{\blx@check@rerun}{blx@runbiber}{blx@runbtx}{}{}
+
+\def\blx@warn@auxlist{%
+ \begingroup
+ \edef\blx@tempa{Please (re)run BibTeX on the file(s):}%
+ \def\do##1{\appto\blx@tempa{\MessageBreak##1}}%
+ \dolistloop\blx@list@active
+ \blx@warning@noline{%
+ \blx@tempa\MessageBreak
+ and rerun LaTeX afterwards}%
+ \endgroup}
+
+\protected\def\blx@bibreq#1{%
+ \blx@auxwrite\blx@aux{}{\string\citation{#1}}}
+
+% bibtex doesn't parse ISO8601 dates so these overrides do nothing
+\appto\blx@blxinit{%
+ \def\iflabeldateera#1{\@secondoftwo}%
+ \def\iflabelenddateera#1{\@secondoftwo}%
+ \let\iflabeldatecirca\@secondoftwo
+ \let\iflabelenddatecirca\@secondoftwo
+ \let\iflabeldateuncertain\@secondoftwo
+ \let\iflabelenddateuncertain\@secondoftwo}
+
+% {<string>}
+% This mustn't be robust as it's likely to be used mainly in tests and so
+% needs to be expandable
+\renewcommand*\rangelen[1]{%
+ \ifblank{#1}
+ {0}%
+ {\expandafter\blx@rangelen@range\romannumeral-`\q%
+ #1\bibrangedash\bibrangedash&%
+ }}
+
+\def\blx@rangelen@range#1\bibrangedash#2\bibrangedash#3&{%
+ \ifblank{#3}
+ {\blx@rangelen@hyphen#1--&}
+ {\blx@rangelen@check{#1}{#2}}%
+}
+\def\blx@rangelen@hyphen#1-#2-#3&{%
+ \ifblank{#3}
+ {1}% No range at all: assume one page
+ {\blx@rangelen@check{#1}{#2}}%
+}
+\def\blx@rangelen@check#1#2{%
+ \expandafter\blx@rangelen@check@aux
+ \number\numexpr
+ \blx@rangelen@check@int{#2}
+ -
+ \blx@rangelen@check@int{#1}
+ + 1
+ \relax
+ &\stop
+}
+\def\blx@rangelen@check@aux#1&#2\stop{%
+ \ifblank{#2}
+ {#1}
+ {-1}%
+}
+\def\blx@rangelen@check@int#1{%
+ \ifblank{#1}
+ {0&}
+ {%
+ \if\number\numexpr0#1-0#1\relax0
+ #1
+ \else
+ 0&
+ \fi
+ }%
+}
+
+% Alter message text
+\patchcmd{\blx@bbl@warn}{Biber}{BibTeX}{}{}
+
+%% Data input
+
+\patchcmd{\blx@bblinput}{\blx@bblfile}{\blx@bblfile\blx@bblsecs}{}{}
+
+\def\blx@bblfile{%
+ \blx@secinit
+ \begingroup
+ \blx@bblstart
+ \ifnum\c@refsection>\z@
+ \edef\blx@auxfile{\jobname\the\c@refsection\blxauxsuffix}%
+ \else
+ \edef\blx@auxfile{\jobname}%
+ \fi
+ \blx@ifsigned{\blx@auxfile}{bbl}
+ {\InputIfFileExists{\blx@auxfile.bbl}
+ {\blx@info@noline{... file '\blx@auxfile.bbl' found}%
+ \global\toggletrue{blx@bbldone}}
+ {\blx@info@noline{... file '\blx@auxfile.bbl' not found}%
+ \typeout{No file \blx@auxfile.bbl.}%
+ \global\togglefalse{blx@bbldone}}}
+ {}%
+ \blx@bblend
+ \endgroup
+ \csnumgdef{blx@labelnumber@\the\c@refsection}{0}}
+
+\def\blx@bblsecs{%
+ \advance\c@refsection\@ne
+ \ifnum\c@refsection>\blx@maxsection
+ \else
+ \blx@bblfile
+ \expandafter\blx@bblsecs
+ \fi}
+
+\def\blx@refsection@ii{%
+ \xdef\blx@auxfile{\jobname\the\c@refsection\blxauxsuffix}%
+ \blx@regbibfiles\blx@auxfile\blx@bibfiles
+ \blx@logreq@inactive
+ \blx@ifsigned{\blx@auxfile}{aux}
+ {\immediate\openout\blx@write\blx@auxfile.aux\relax
+ \global\let\blx@aux\blx@write
+ \blx@auxinit\blx@bibfiles}
+ {}}
+
+\def\blx@endrefsection{%
+ \blx@endrefsegment
+ \ifx\blx@aux\blx@write
+ \immediate\closeout\blx@write
+ \global\let\blx@aux\@mainaux
+ \xdef\blx@auxfile{\jobname}%
+ \fi
+ \global\c@refsection\z@}
+
+% xref support
+
+% {<entrykey>}
+\protected\def\blx@bbl@xref#1{%
+ \ifcsdef{blx@refp@\the\c@refsection @\detokenize{#1}}
+ {}
+ {\listcsxadd{blx@refs@\the\c@refsection}{\detokenize{#1}}}%
+ \listcsxadd{blx@refp@\the\c@refsection @\detokenize{#1}}{\abx@field@entrykey}%
+ \csxdef{blx@refc@\the\c@refsection @\abx@field@entrykey}{\detokenize{#1}}}
+
+\def\blx@addxref#1{%
+ \blx@ifdata{#1}
+ {\begingroup
+ \def\do##1{%
+ \csgappto{blx@data@\the\c@refsection @##1}{%
+ \def\abx@field@xref{#1}}}%
+ \dolistcsloop{blx@refp@\the\c@refsection @#1}%
+ \endgroup}
+ {}%
+ \global\csundef{blx@refp@\the\c@refsection @#1}}
+
+\def\blx@bblend{%
+ \ifcsdef{blx@refs@\the\c@refsection}%
+ {\begingroup
+ \let\do\blx@addxref
+ \dolistcsloop{blx@refs@\the\c@refsection}%
+ \endgroup
+ \global\csundef{blx@refs@\the\c@refsection}}
+ {}%
+ \iftoggle{blx@addset}
+ {\blx@addset
+ \global\togglefalse{blx@addset}}
+ {}}
+
+\def\blx@citation#1#2{%
+ \ifbool{citerequest}
+ {\ifcsdef{blx@setp@\the\c@refsection @#1}
+ {\blx@citation@set{#1}{#2}}
+ {\ifcsdef{blx@setc@\the\c@refsection @#1}
+ {\blx@citation@inset{#1}{#2}}
+ {\blx@citation@entry{#1}{#2}}}%
+ \ifcsdef{blx@refc@\the\c@refsection @#1}%
+ {\blx@citation@xref{#1}}
+ {}}
+ {}}
+
+\def\blx@citation@set#1#2{%
+ \blx@citation@entry{#1}{#2}%
+ \begingroup
+ \def\do##1{\blx@citation@entry{##1}\blx@msg@cundef}%
+ \expandafter\expandafter\expandafter\docsvlist
+ \expandafter\expandafter\expandafter{%
+ \csname blx@setp@\the\c@refsection @#1\endcsname}%
+ \endgroup}
+
+\def\blx@citation@inset#1#2{%
+ \blx@citation@entry{#1}{#2}%
+ \expandafter\expandafter\expandafter\blx@citation@inset@i
+ \expandafter\expandafter\expandafter{%
+ \csname blx@setc@\the\c@refsection @#1\endcsname}\blx@msg@cundef}
+
+\def\blx@citation@inset@i#1{%
+ \ifcsdef{blx@setp@\the\c@refsection @#1}
+ {\blx@citation@set{#1}}
+ {\blx@citation@entry{#1}}}
+
+\def\blx@citation@xref#1{%
+ \begingroup
+ \edef\blx@tempa{blx@refp@\the\c@refsection @%
+ \csname blx@refc@\the\c@refsection @#1\endcsname}%
+ \ifcsdef\blx@tempa
+ {\ifinlistcs{#1}\blx@tempa
+ {}
+ {\listcsxadd\blx@tempa{#1}}%
+ \blx@tempcnta\z@
+ \def\do##1{\advance\blx@tempcnta\@ne}%
+ \dolistcsloop\blx@tempa}
+ {\listcsxadd\blx@tempa{#1}%
+ \blx@tempcnta\@ne}%
+ \expandafter\endgroup\ifnum\blx@tempcnta<\blx@minxrefs\relax
+ \else
+ \expandafter\expandafter\expandafter\blx@citation@entry
+ \expandafter\expandafter\expandafter{%
+ \csname blx@refc@\the\c@refsection @#1\endcsname}\blx@msg@cundef
+ \fi}
+
+% refcontexts are out, but we can try to save labelprefix
+
+% Luckily all refcontext names use \blx@refcontext@labelprefix, so if we
+% don't modify that macro, we don't actually change the refcontext.
+% Remember that \blx@refcontext@labelprefix contains a hash of the labelprefix
+% and that \blx@refcontext@labelprefix@real contains the value.
+% Effectively we always stay in \blx@sorting/global/global//global/global,
+% and additionally carry around the labelprefix value
+% in \blx@refcontext@labelprefix@real and pass it to the aux file.
+% There are differences to the result obtained with Biber,
+% but it should be good enough for very simple applications.
+\define@key{blx@refcontext}{labelprefix}{%
+ \xdef\blx@refcontext@labelprefix@real{#1}%
+ \iftoggle{blx@defernumbers}
+ {}%
+ {\iftoggle{blx@labelnumber}
+ {\blx@warning{%
+ Option 'labelprefix' requires global\MessageBreak
+ 'defernumbers=true'}}
+ {}}%
+ \ifundef{\blx@bibtexwarn@labelprefix@used}
+ {\blx@warning@noline{%
+ The option 'labelprefix' is limited\MessageBreak
+ when used with BibTeX.\MessageBreak
+ Consider using Biber instead}%
+ \global\let\blx@bibtexwarn@labelprefix@used\@empty}
+ {}}
+
+\def\blx@warn@bibtexrefcontext#1{%
+ \blx@warning{%
+ The refcontext option\MessageBreak
+ '#1'\MessageBreak
+ is not supported by the BibTeX backend.\MessageBreak
+ Consider switching to Biber instead.\MessageBreak
+ The option will be ignored}}
+
+\def\blx@bibtexrefcontext@disable#1{%
+ \define@key{blx@refcontext}{#1}{%
+ \blx@warn@bibtexrefcontext{#1}}}
+
+\forcsvlist{\blx@bibtexrefcontext@disable}{%
+ nametemplates,sorting,sortingnamekeytemplatename,uniquenametemplatename,
+ labelalphanametemplatename}
+
+\def\blx@assignrefcontext@disable#1{%
+ \blx@warning{%
+ BibTeX does not support refcontext assignments with\MessageBreak
+ '\string\assignrefcontext#1'.\MessageBreak
+ Consider using Biber instead.\MessageBreak
+ Ignoring the refconext assignment}}
+
+\def\blx@assignrefcontextkeyws[#1][#2]#3{%
+ \blx@assignrefcontext@disable{keyws}}
+\def\blx@assignrefcontextcats[#1][#2]#3{%
+ \blx@assignrefcontext@disable{cats}}
+\def\blx@assignrefcontextentries[#1][#2]#3{%
+ \blx@assignrefcontext@disable{entries}}
+
+\apptocmd{\blx@setdefaultrefcontext}
+ {\csxdef{blx@assignedlabelprefix@\the\c@refsection @#1}{%
+ \blx@refcontext@labelprefix@real}}
+ {}
+ {\blx@error
+ {Failed to patch '\string\blx@setdefaultrefcontext'}
+ {Patching '\string\blx@setdefaultrefcontext' failed for some reason.
+ \MessageBreak
+ Please report this bug}}
+
+\def\abx@aux@defaultlabelprefix#1#2#3{%
+ \csgdef{blx@assignedlabelprefix@#1@#2}{#3}}
+
+\apptocmd{\blx@bbl@entry}
+ {\ifcsundef{blx@assignedlabelprefix@\the\c@refsection @\thefield{entrykey}}
+ {}
+ {\blx@bbl@addfield{labelprefix}{%
+ \csuse{blx@assignedlabelprefix@\the\c@refsection
+ @\thefield{entrykey}}}}}
+ {}
+ {\blx@error
+ {Failed to patch '\string\blx@bbl@entry'}
+ {Patching '\string\blx@bbl@entry' failed for some reason.
+ \MessageBreak
+ Please report this bug}}
+
+\AtEndDocument{%
+ % always add default labelprefix declarations to .aux
+ \iftoggle{blx@bbldone}
+ {\def\do#1{%
+ \begingroup
+ \def\do##1{%
+ \blx@auxwrite\@mainaux{}{\string\abx@aux@defaultlabelprefix{#1}{##1}{%
+ \csuse{blx@assignedlabelprefix@#1@##1}}}}%
+ \dolistcsloop{blx@defaultrefcontexts@#1}%
+ \endgroup}
+ \dolistloop\blx@allrefsections}
+ {}}
+
+
+% Translate sorting schemes to BibTeX form
+\def\blx@sorting@none{0}
+\def\blx@sorting@nty{1}
+\def\blx@sorting@nyt{2}
+\def\blx@sorting@nyvt{3}
+\def\blx@sorting@anyt{12}
+\def\blx@sorting@anyvt{13}
+\def\blx@sorting@ynt{21}
+\def\blx@sorting@ydnt{22}
+\def\blx@sorting@debug{99}
+
+% Control file
+
+\edef\blx@ctrl{%
+ \blx@msg@bib
+ @Control\string{biblatex-control,\blx@nl
+ \space\space options = \string{%
+ \blx@bcfversion:%
+ \noexpand\iftoggle{blx@debug}{1}{0}:%
+ \noexpand\iftoggle{blx@bibtex8}{1}{0}:%
+ \noexpand\iftoggle{blx@sortcase}{1}{0}:%
+ \noexpand\iftoggle{blx@useprefix}{1}{0}:%
+ \noexpand\iftoggle{blx@useauthor}{1}{0}:%
+ \noexpand\iftoggle{blx@useeditor}{1}{0}:%
+ \noexpand\iftoggle{blx@usetranslator}{1}{0}:%
+ \noexpand\iftoggle{blx@labelalpha}{1}{0}:%
+ \noexpand\iftoggle{blx@labeldateparts}{1}{0}:%
+ \noexpand\iftoggle{blx@singletitle}{1}{0}:%
+ \noexpand\csuse{blx@sorting@\noexpand\blx@sorting}:%
+ \noexpand\blx@maxcitenames:%
+ \noexpand\blx@mincitenames:%
+ \noexpand\blx@maxsortnames:%
+ \noexpand\blx@minsortnames:%
+ \noexpand\iftoggle{blx@nohashothers}{1}{0}:%
+ \noexpand\iftoggle{blx@nosortothers}{1}{0}:%
+ \noexpand\blx@maxalphanames:%
+ \noexpand\blx@minalphanames:%
+ \noexpand\blx@maxline:%
+ \noexpand\detokenize\noexpand\expandafter{\noexpand\labelalphaothers}:%
+ \noexpand\detokenize\noexpand\expandafter{\noexpand\blx@sortalphaothers}:%
+ \noexpand\detokenize\noexpand\expandafter{\noexpand\blx@sorting}%
+ \string},\blx@nl
+ \string}%
+}
+
+\def\blx@ctrlwrite{%
+ % \sortalphaothers should only contain safe characters,
+ % so we should be able to \edef it
+ \edef\blx@sortalphaothers{\sortalphaothers}%
+ \immediate\openout\blx@write\blx@ctrlfile\blxauxsuffix.bib\relax
+ \blx@auxwrite\blx@write{}{\blx@ctrl}%
+ \immediate\closeout\blx@write}
+
+% Disable some interfaces
+
+\renewrobustcmd*{\DeclareSortingScheme}[3][]{}
+\renewrobustcmd*{\DeclareExtradate}[1]{}
+
+\def\blx@checkencoding{}
+
+\AtBeginDocument{%
+ \blx@checkencoding
+ \if@filesw
+ \blx@auxinit\blx@bibfiles
+ \fi}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/blx-compat.def b/macros/latex/contrib/biblatex/latex/blx-compat.def
new file mode 100644
index 0000000000..e315c5cc88
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/blx-compat.def
@@ -0,0 +1,354 @@
+\ProvidesFile{blx-compat.def}
+[\abx@cptid]
+
+% LaTeX
+
+\AtBeginDocument{%
+ \renewrobustcmd*{\bibliography}[1]{%
+ \blx@error
+ {'\string\bibliography' invalid}
+ {Use '\string\addbibresource' instead.\MessageBreak
+ I'm ignoring this command}}}
+
+\renewrobustcmd*{\bibliographystyle}[1]{%
+ \blx@error
+ {'\string\bibliographystyle' invalid}
+ {Use the package option 'style' instead.\MessageBreak
+ I'm ignoring this command}}
+
+% standard classes
+
+\DeclareOption{openbib}{\ExecuteBibliographyOptions{block=par}}
+
+% biblatex <0.9b
+
+\DeclareBibliographyOption[boolean]{defernums}[true]{%
+ \ExecuteBibliographyOptions{defernumbers=#1}}
+
+\providecommand*{\lbx@fromlang}{%
+ \iffieldundef{origlanguage}
+ {\unspace}
+ {\bibstring{from\thefield{origlanguage}}}}
+
+% memoir
+
+\ifdef\ifnobibintoc
+ {\newcommand*{\ifmemoirbibintoc}{\notbool{nobibintoc}}}
+ {\newcommand{\ifmemoirbibintoc}[2]{#2}}
+
+% KOMA-Script
+
+\newcommand{\ifkomabibtotoc}[2]{#2}
+\newcommand{\ifkomabibtotocnumbered}[2]{#2}
+
+\ifdef\ds@bibtotoc
+ {% xkeyval breaks inheritance of key=value class options
+ \ifdef\XKV@classoptionslist
+ {\let\blx@classoptionslist\@classoptionslist
+ \let\@classoptionslist\XKV@classoptionslist
+ \AtEndOfPackage{\let\@classoptionslist\blx@classoptionslist}}
+ {}%
+ \DeclareOption{bibtotoc}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{bibtotocnumbered}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{bibliography=notoc}{%
+ \let\ifkomabibtotoc=\@secondoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{bibliography=nottotoc}{%
+ \let\ifkomabibtotoc=\@secondoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{bibliography=plainheading}{%
+ \let\ifkomabibtotoc=\@secondoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{bibliography=totoc}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{bibliography=toc}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{bibliography=notnumbered}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{bibliography=numbered}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{bibliography=totocnumbered}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{bibliography=tocnumbered}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{bibliography=numberedtotoc}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{bibliography=numberedtoc}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{bibliography=oldstyle}{%
+ \ExecuteBibliographyOptions{block=space}}%
+ \DeclareOption{bibliography=openstyle}{%
+ \ExecuteBibliographyOptions{block=par}}%
+ \DeclareOption{toc=bib}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{toc=bibliography}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{toc=nobib}{%
+ \let\ifkomabibtotoc=\@secondoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{toc=nobibliography}{%
+ \let\ifkomabibtotoc=\@secondoftwo
+ \let\ifkomabibtotocnumbered=\@secondoftwo}%
+ \DeclareOption{toc=bibnumbered}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{toc=numberedbib}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{toc=bibliographynumbered}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}%
+ \DeclareOption{toc=numberedbibliography}{%
+ \let\ifkomabibtotoc=\@firstoftwo
+ \let\ifkomabibtotocnumbered=\@firstoftwo}}
+ {}
+
+% biblatex <1.6
+
+\define@key{blx@bib}{maxnames}{\blx@warn@depropt{maxnames}}
+\define@key{blx@los}{maxnames}{\blx@warn@depropt{maxnames}}
+\define@key{blx@bbs}{maxnames}{\blx@warn@depropt{maxnames}}
+\define@key{blx@bbg}{maxnames}{\blx@warn@depropt{maxnames}}
+\define@key{blx@bbc}{maxnames}{\blx@warn@depropt{maxnames}}
+
+\define@key{blx@bib}{minnames}{\blx@warn@depropt{minnames}}
+\define@key{blx@los}{minnames}{\blx@warn@depropt{minnames}}
+\define@key{blx@bbs}{minnames}{\blx@warn@depropt{minnames}}
+\define@key{blx@bbg}{minnames}{\blx@warn@depropt{minnames}}
+\define@key{blx@bbc}{minnames}{\blx@warn@depropt{minnames}}
+
+\define@key{blx@bib}{maxitems}{\blx@warn@depropt{maxitems}}
+\define@key{blx@los}{maxitems}{\blx@warn@depropt{maxitems}}
+\define@key{blx@bbs}{maxitems}{\blx@warn@depropt{maxitems}}
+\define@key{blx@bbg}{maxitems}{\blx@warn@depropt{maxitems}}
+\define@key{blx@bbc}{maxitems}{\blx@warn@depropt{maxitems}}
+
+\define@key{blx@bib}{minitems}{\blx@warn@depropt{minitems}}
+\define@key{blx@los}{minitems}{\blx@warn@depropt{minitems}}
+\define@key{blx@bbs}{minitems}{\blx@warn@depropt{minitems}}
+\define@key{blx@bbg}{minitems}{\blx@warn@depropt{minitems}}
+\define@key{blx@bbc}{minitems}{\blx@warn@depropt{minitems}}
+
+% Legacy alias for \printshorthands
+\def\printshorthands{%
+ \@ifnextchar[%]
+ {\blx@printshorthands}
+ {\blx@printshorthands[]}}
+
+\def\blx@printshorthands[#1]{\printbiblist[#1]{shorthand}}
+
+% Legacy aliases
+\def\AtBeginShorthands{\AtBeginBiblist{shorthand}}
+\def\AtEveryLositem{\AtEveryBiblistitem{shorthand}}
+\@onlypreamble\AtBeginShorthands
+\@onlypreamble\AtEveryLositem
+
+\let\frangelen\rangelen % Legacy name for \rangelen
+
+\DeclareBibliographyOption[string]{sortlos}{%
+ \blx@warning@noline{%
+ 'sortlos' option is deprecated.\MessageBreak
+ Please use 'sorting' option to '\string\printbiblist'}}
+
+\define@key{blx@bib1}{sorting}{%
+ \blx@warning@noline{%
+ 'sorting' option to '\string\printbibliography' is no longer supported.\MessageBreak
+ Please use 'sorting' option to '\string\newrefcontext'}}
+
+\define@key{blx@biblist1}{sorting}{%
+ \blx@warning@noline{%
+ 'sorting' option to '\string\printbiblist' is no longer supported.\MessageBreak
+ Please use 'sorting' option to '\string\newrefcontext'}}
+
+\define@key{blx@bib2}{prefixnumbers}{%
+ \blx@warning@noline{%
+ 'prefixnumbers' option to '\string\printbibliography' is no longer supported.\MessageBreak
+ Please use 'labelprefix' option to '\string\newrefcontext'}}
+
+
+\DeclareBibliographyOption[string]{babel}{%
+ \blx@warning@noline{%
+ 'babel' option is deprecated.\MessageBreak
+ Please use 'autolang' instead}%
+ \blx@autolang@i{#1}}
+
+\DeclareTypeOption[boolean]{skiplos}{%
+ \blx@warning@noline{%
+ skiplos option is deprecated.\MessageBreak
+ Please use 'skipbiblist' instead}%
+ \settoggle{blx@skipbiblist}{#1}}
+\DeclareEntryOption[boolean]{skiplos}{%
+ \blx@warning@noline{%
+ skiplos option is deprecated.\MessageBreak
+ Please use 'skipbiblist' instead}%
+ \settoggle{blx@skipbiblist}{#1}}
+
+% Legacy options moved to \namepart in \DeclareLabelalphaNameTemplate
+\define@key{blx@latem@field}{compound}{% deprecated
+ \blx@warning@noline{%
+ Ignored 'compound' option to '\string\field' in '\string\DeclareLabelalphaNameTemplate'\MessageBreak
+ This is now the 'compound' option of '\string\namepart\space' in\MessageBreak
+ '\string\DeclareLabelalphaNameTemplate'}}
+\define@key{blx@latem@field}{pcompound}{% deprecated
+ \blx@warning@noline{%
+ Ignored 'pcompound' option to '\string\field' in '\string\DeclareLabelalphaNameTemplate'\MessageBreak
+ This is now the 'compound' option of '\string\namepart' in\MessageBreak
+ '\string\DeclareLabelalphaNameTemplate'}}
+\define@key{blx@latem@field}{pstrwidth}{% deprecated
+ \blx@warning@noline{%
+ Ignored 'pstrwidth' option to '\string\field' in '\string\DeclareLabelalphaNameTemplate'\MessageBreak
+ This is now the 'strwidth' option of '\string\namepart' in\MessageBreak
+ '\string\DeclareLabelalphaNameTemplate'}}
+
+%LEGACY(<3.3) legacy name for \ifgiveninits which is autogenerated now
+\def\iffirstinits{
+ \blx@warning@noline{%
+ '\string\iffirstinits' is deprecated.\MessageBreak
+ Please use '\string\ifgiveninits'}%
+ \iftoggle{abx@bool@giveninits}}
+
+% Legacy for giveninits
+\DeclareBibliographyOption[boolean]{firstinits}[true]{%
+ \blx@warning@noline{%
+ 'firstinits' option is deprecated.\MessageBreak
+ Please use 'giveninits' instead}%
+ \settoggle{abx@bool@giveninits}{#1}}
+
+% Legacy for sortfirstinits/sortgiveninits
+\DeclareBibliographyOption[boolean]{sortfirstinits}[true]{%
+ \blx@warning@noline{%
+ 'sortfirstinits' option is deprecated.\MessageBreak
+ Please use 'inits' option to '\string\namepart\space'\MessageBreak
+ in '\string\DeclareSortingNamekeyTemplate'}}
+\DeclareBibliographyOption[boolean]{sortgiveninits}{%
+ \blx@warning@noline{%
+ 'sortgiveninits' option is deprecated.\MessageBreak
+ Please use 'inits' option to '\string\namepart'\MessageBreak
+ in '\string\DeclareSortingNamekeyTemplate' instead}}
+
+\define@key{blx@refcontext}{prefixnumbers}{%LEGACY(<3.3)
+ \blx@warning@noline{%
+ prefixnumbers option to '\string\newrefcontext' has been renamed.\MessageBreak
+ Please use 'labelprefix' option instead}%
+ \setkeys{blx@refcontext}{labelprefix=#1}}
+
+% biblatex < 3.4
+\define@key{blx@bib1}{prefixnumbers}{}%LEGACY(<3.4) legacy name for labelprefix
+\DeprecateFieldWithReplacement{prefixnumber}{labelprefix}
+\DeclareFieldAlias{prefixnumber}{labelprefix}
+
+% biblatex < 3.5
+\DeclareBibliographyOption[string]{datelabel}{%
+ \blx@warning@noline{%
+ 'datelabel' option is deprecated.\MessageBreak
+ Please use 'labeldate' instead}%
+ \setkeys{blx@opt@pre}{labeldate=#1}}
+
+\DeclareBibliographyOption[boolean]{labelyear}[true]{%
+ \blx@warning@noline{%
+ 'labelyear' option is deprecated.\MessageBreak
+ Please use 'labeldateparts' instead}%
+ \settoggle{blx@labeldateparts}{#1}}
+\DeclareTypeOption[boolean]{labelyear}[true]{%
+ \blx@warning@noline{%
+ 'labelyear' option is deprecated.\MessageBreak
+ Please use 'labeldateparts' instead}%
+ \settoggle{blx@labeldateparts}{#1}}
+
+\protected\def\mkdatezeros{%
+ \blx@warning@noline{%
+ '\string\mkdatezeros' is deprecated.\MessageBreak
+ Please use '\string\mkyearzeros', '\string\mkmonthzeros' or\MessageBreak
+ '\string\mkdayzeros' as appropriate. \MessageBreak
+ Falling back to '\string\mkmonthzeros'}%
+ \mkmonthzeros}
+
+\protected\def\printdatelabel{%
+ \blx@warning@noline{%
+ '\string\printdatelabel' is deprecated.\MessageBreak
+ Please use '\string\printlabeldate'}%
+ \blx@imc@printlabeldate}
+
+\protected\def\printdatelabelextra{%
+ \blx@warning@noline{%
+ '\string\printdatelabelextra' is deprecated.\MessageBreak
+ Please use '\string\printlabeldateextra'}%
+ \blx@imc@printlabeldateextra}
+
+\newrobustcmd*{\DeclareLabelyear}[2][]{%
+ \blx@warning@noline{%
+ 'DeclareLabelyear' is deprecated.\MessageBreak
+ Please use 'DeclareLabeldate'}}
+
+\csdef{mkdaterangeiso8601}{%
+ \blx@warning@noline{%
+ '\string\mkdaterangeiso8601' is deprecated.\MessageBreak
+ Please use '\string\mkdaterangeiso'}%
+ \mkdaterangeiso}
+
+\csdef{mkdaterangeiso8601extra}{%
+ \blx@warning@noline{%
+ '\string\mkdaterangeiso8601extra' is deprecated.\MessageBreak
+ Please use '\string\mkdaterangeisoextra'}%
+ \mkdaterangeisoextra}
+
+% biblatex < 3.8
+\define@key{blx@refcontext}{sortingnamekeyscheme}{%
+ \blx@warning@noline{'sortingnamekeyscheme' is deprecated.\MessageBreak
+ Please use 'sortingnamekeytemplatename' instead}%
+ \gdef\blx@refcontext@sortingnamekeytemplatename{#1}}
+
+\define@key{blx@assignrefcontext}{sortingnamekeyscheme}{%
+ \blx@warning@noline{'sortingnamekeyscheme' is deprecated.\MessageBreak
+ Please use 'sortingnamekeytemplatename' instead}%
+ \def\blx@tempb{#1}}
+
+\def\DeclareSortingScheme{%
+ \blx@warning@noline{%
+ '\string\DeclareSortingScheme' is deprecated.\MessageBreak
+ Please use '\string\DeclareSortingTemplate'}%
+ \DeclareSortingTemplate}
+
+\def\DeclareSortingNamekeyScheme{%
+ \blx@warning@noline{%
+ '\string\DeclareSortingNamekeyScheme' is deprecated.\MessageBreak
+ Please use '\string\DeclareSortingNamekeyTemplate'}%
+ \DeclareSortingNamekeyTemplate}
+
+\def\ifsortnamekeyscheme#1{%
+ \blx@warning@noline{%
+ '\string\ifsortnamekeyscheme' is deprecated in sorting specifications.\MessageBreak
+ Please use '\string\ifsortingnamekeytemplate'}%
+ \expandafter\ifstrequal\expandafter{\blx@refcontext@sortingnamekeytemplatename}{#1}}
+
+\DeprecateFieldWithReplacement{extrayear}{extradate}
+\DeclareFieldAlias{extrayear}{extradate}
+
+% EDTF -> ISO
+\def\mkdaterangeedtf{%
+ \blx@warning@noline{%
+ '\string\mkdaterangeedtf' is deprecated.\MessageBreak
+ Please use '\string\mkdaterangeiso'}%
+ \mkdaterangeiso}
+
+\def\mkdaterangeedtfextra{%
+ \blx@warning@noline{%
+ '\string\mkdaterangeedtfextra' is deprecated.\MessageBreak
+ Please use '\string\mkdaterangeisoextra'}%
+ \mkdaterangeisoextra}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/blx-dm.def b/macros/latex/contrib/biblatex/latex/blx-dm.def
new file mode 100644
index 0000000000..c9097281b1
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/blx-dm.def
@@ -0,0 +1,1586 @@
+\ProvidesFile{blx-dm.def}
+[\abx@lbxid]
+
+% -*- mode: LaTeX -*-
+\newbool{dmskipout}%
+\newbool{dmlabelfield}%
+
+% Data model .bcf output macros
+\xdef\blx@xml@datamodel#1{%
+ ~~<bcf:datamodel>\blx@nl
+ #1%
+ ~~</bcf:datamodel>\blx@nl}
+\xdef\blx@xml@datamodel@constants#1{%
+ ~~~~<bcf:constants>\blx@nl
+ #1%
+ ~~~~</bcf:constants>\blx@nl}
+\xdef\blx@xml@datamodel@constant#1#2#3{%
+ ~~~~~~<bcf:constant type="#1" name="#2">#3</bcf:constant>\blx@nl}
+\xdef\blx@xml@datamodel@entrytypes#1{%
+ ~~~~<bcf:entrytypes>\blx@nl
+ #1%
+ ~~~~</bcf:entrytypes>\blx@nl}
+\xdef\blx@xml@datamodel@entrytype#1#2{%
+ ~~~~~~<bcf:entrytype#1>#2</bcf:entrytype>\blx@nl}
+\xdef\blx@xml@datamodel@fields#1{%
+ ~~~~<bcf:fields>\blx@nl
+ #1%
+ ~~~~</bcf:fields>\blx@nl}
+\xdef\blx@xml@datamodel@field#1#2{%
+ ~~~~~~<bcf:field#1>#2</bcf:field>\blx@nl}
+\xdef\blx@xml@datamodel@entryfields#1{%
+ ~~~~<bcf:entryfields>\blx@nl
+ #1%
+ ~~~~</bcf:entryfields>\blx@nl}
+\xdef\blx@xml@datamodel@entryfield@type#1{%
+ ~~~~~~<bcf:entrytype>#1</bcf:entrytype>\blx@nl}
+\xdef\blx@xml@datamodel@entryfield@field#1{%
+ ~~~~~~<bcf:field>#1</bcf:field>\blx@nl}
+\xdef\blx@xml@datamodel@constraints#1{%
+ ~~~~<bcf:constraints>\blx@nl
+ #1%
+ ~~~~</bcf:constraints>\blx@nl}
+\xdef\blx@xml@datamodel@constraints@type#1{%
+ ~~~~~~<bcf:entrytype>#1</bcf:entrytype>\blx@nl}
+\xdef\blx@xml@datamodel@constraint#1#2{%
+ ~~~~~~<bcf:constraint#1>\blx@nl
+ #2%
+ ~~~~~~</bcf:constraint>\blx@nl}
+\xdef\blx@xml@datamodel@constraintfieldsxor#1{%
+ ~~~~~~~~<bcf:fieldxor>\blx@nl
+ #1%
+ ~~~~~~~~</bcf:fieldxor>\blx@nl}
+\xdef\blx@xml@datamodel@constraintfieldsor#1{%
+ ~~~~~~~~<bcf:fieldor>\blx@nl
+ #1%
+ ~~~~~~~~</bcf:fieldor>\blx@nl}
+\xdef\blx@xml@datamodel@constraint@antecedent#1#2{%
+ ~~~~~~~~<bcf:antecedent#1>\blx@nl
+ #2%
+ ~~~~~~~~</bcf:antecedent>\blx@nl}
+\xdef\blx@xml@datamodel@constraint@consequent#1#2{%
+ ~~~~~~~~<bcf:consequent#1>\blx@nl
+ #2%
+ ~~~~~~~~</bcf:consequent>\blx@nl}
+\xdef\blx@xml@datamodel@constraintfield#1{%
+ ~~~~~~~~<bcf:field>#1</bcf:field>\blx@nl}
+\xdef\blx@xml@datamodel@constraintfieldsub#1{%
+ ~~~~~~~~~~<bcf:field>#1</bcf:field>\blx@nl}
+
+% Data model specification macros
+\newrobustcmd*{\ResetDatamodelEntrytypes}{%
+ \global\let\blx@bcf@datamodel@entrytypes\@empty
+ \global\let\blx@datamodel@entrytypes\@empty}
+
+\newrobustcmd*{\ResetDatamodelFields}{%
+ \global\let\blx@datamodel@labelfields\@empty
+ \global\let\blx@bcf@datamodel@fields\@empty
+ \global\let\blx@datamodel@fields\@empty
+ \global\let\blx@datamodel@names\@empty
+ \global\let\blx@datamodel@dates\@empty
+ \global\let\blx@datamodel@lists\@empty}
+
+\newrobustcmd*{\ResetDatamodelEntryfields}{%
+ \global\let\blx@bcf@datamodel@entryfields\@empty}
+
+\newrobustcmd*{\ResetDatamodelConstraints}{%
+ \global\let\blx@bcf@datamodel@constraints\@empty}
+
+\newrobustcmd*{\DeclareDatamodelEntrytypes}[2][]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \def\do##1{%
+ \ifinlistcs{##1}{blx@datamodel@entrytypes}
+ {}
+ {\listcsgadd{blx@datamodel@entrytypes}{##1}}%
+ \xappto\blx@bcf@datamodel@entrytypes{%
+ \blx@xml@datamodel@entrytype{\blx@tempa}{##1}}}%
+ \ifblank{#1}
+ {\docsvlist{#2}}
+ {\setkeys{blx@datamodel@entrytypes}{#1}
+ \docsvlist{#2}}%
+ \endgroup}
+
+\define@key{blx@datamodel@entrytypes}{skipout}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempa{ skip\string_output="true"}}
+ {}}
+
+% Valid dateparts
+\def\blx@notnulldateparts{month,day,hour,minute,second,timezone,season,endmonth,endday,endhour,endminute,endsecond,endtimezone,endseason}
+\def\blx@nullokdateparts{endyear,year}
+\edef\blx@dateparts{\blx@notnulldateparts,\blx@nullokdateparts}
+
+\newrobustcmd*{\DeclareDatamodelFields}[2][]{%
+ \begingroup
+ \let\blx@dm@fieldtype\@empty
+ \let\blx@dm@datatype\@empty
+ \let\blx@dm@format\@empty
+ \boolfalse{dmskipout}%
+ \boolfalse{dmlabelfield}%
+ \let\blx@tempa\@empty
+ \setkeys{blx@datamodel@field}{#1}%
+ \def\do##1{%
+ % Generic lists of field/datatypes for testing bib fields
+ \ifinlistcs{##1}{blx@datamodelfields@fieldtypes@\blx@dm@fieldtype}
+ {}
+ {\listcsgadd{blx@datamodelfields@fieldtypes@\blx@dm@fieldtype}{##1}}%
+ \ifinlistcs{##1}{blx@datamodelfields@datatypes@\blx@dm@datatype}
+ {}
+ {\listcsgadd{blx@datamodelfields@datatypes@\blx@dm@datatype}{##1}}%
+ \ifinlistcs{##1}{blx@datamodelfields@types@\blx@dm@fieldtype @\blx@dm@datatype}
+ {}
+ {\listcsgadd{blx@datamodelfields@types@\blx@dm@fieldtype @\blx@dm@datatype}{##1}}%
+
+ % Processed convenience lists of various datamodel fields
+
+ % add to list of dates. These are skipout in the default datamodel but
+ % we want to auto-create some internals/options for all date fields in
+ % biblatex
+ \ifboolexpr{%
+ test {\ifcsstring{blx@dm@datatype}{date}}
+ and
+ not test {\ifinlistcs{##1}{blx@datamodel@dates}}}
+ {\listcsgadd{blx@datamodel@dates}{##1}}
+ {}%
+ \ifboolexpr{% add to list of label fields
+ not bool {dmskipout}
+ and
+ bool {dmlabelfield}
+ and
+ not test {\ifinlistcs{##1}{blx@datamodel@labelfields}}}
+ {\listcsgadd{blx@datamodel@labelfields}{##1}}
+ {}%
+ \ifboolexpr{% add to list of names if it is a name which appears in .bbl
+ not bool {dmskipout}
+ and
+ test {\ifcsstring{blx@dm@datatype}{name}}
+ and
+ not test {\ifinlistcs{##1}{blx@datamodel@names}}}
+ {\listcsgadd{blx@datamodel@names}{##1}}
+ {}%
+ \ifboolexpr{% add to list of lists if it is a list which appears in .bbl
+ not bool {dmskipout}
+ test {\ifcsstring{blx@dm@fieldtype}{list}}
+ and
+ ( test {\ifcsstring{blx@dm@datatype}{literal}}
+ or
+ test {\ifcsstring{blx@dm@datatype}{key}}
+ or
+ test {\ifcsstring{blx@dm@datatype}{uri}}
+ or
+ test {\ifcsstring{blx@dm@datatype}{verbatim}}
+ )
+ and
+ not test {\ifinlistcs{##1}{blx@datamodel@lists}}}
+ {\listcsgadd{blx@datamodel@lists}{##1}}
+ {}%
+ \ifboolexpr{% add to list of fields unless certain type/datatype etc.
+ bool {dmskipout}
+ or
+ test {\ifcsstring{blx@dm@datatype}{name}}
+ or
+ ( test {\ifcsstring{blx@dm@fieldtype}{list}}
+ and
+ test {\ifcsstring{blx@dm@datatype}{literal}}
+ )
+ or
+ ( test {\ifcsstring{blx@dm@fieldtype}{list}}
+ and
+ test {\ifcsstring{blx@dm@datatype}{key}}
+ )
+ or
+ ( test {\ifcsstring{blx@dm@fieldtype}{list}}
+ and
+ test {\ifcsstring{blx@dm@datatype}{uri}}
+ )
+ or
+ ( test {\ifcsstring{blx@dm@fieldtype}{list}}
+ and
+ test {\ifcsstring{blx@dm@datatype}{verbatim}}
+ )
+ or
+ ( test {\ifcsstring{blx@dm@fieldtype}{field}}
+ and
+ test {\ifcsstring{blx@dm@datatype}{code}}
+ )
+ or
+ test {\ifinlistcs{##1}{blx@datamodel@fields}}}
+ {}
+ {\listcsgadd{blx@datamodel@fields}{##1}}%
+ \xappto\blx@bcf@datamodel@fields{%
+ \blx@xml@datamodel@field{\blx@tempa}{##1}}%
+
+ % Dateparts are special - auto-create for all date fields
+ \ifcsstring{blx@dm@datatype}{date}
+ {\begingroup
+ \let\blx@tempa\@empty% reset setkeys buffer due to manual calls below
+ % add to list of dates. These are skipout in the default datamodel but
+ % we want to auto-create some internals/options for all date fields in
+ % biblatex
+ \ifinlistcs{##1}{blx@datamodel@dates}
+ {}
+ {\listcsgadd{blx@datamodel@dates}{##1}}%
+ \ifinlistcs{##1}{blx@datamodel@fields}
+ {}
+ {\listcsgadd{blx@datamodel@fields}{##1}}%
+ \blx@stripfromendinto{##1}{date}\blx@datetype
+ % dateparts which are ok to be null (by default *endyear)
+ \def\do####1{%
+ \let\blx@tempa\@empty% reset setkeys buffer due to loop calls
+ \xifinlistcs{\blx@datetype ####1}{blx@datamodel@fields}
+ {}
+ {\listcsxadd{blx@datamodel@fields}{\blx@datetype ####1}}%
+ \setkeys{blx@datamodel@field}{type=field,datatype=datepart,nullok}%
+ \xappto\blx@bcf@datamodel@fields{%
+ \blx@xml@datamodel@field{\blx@tempa}{\blx@datetype ####1}}}%
+ \expandafter\docsvlist\expandafter{\blx@nullokdateparts}%
+ % dateparts which are not ok to be null by default:
+ % *year, *(end)month, *(end)day, *(end)hour, *(end)minute, *(end)second, *(end)timezone
+ % *(end)season
+ \def\do####1{%
+ \let\blx@tempa\@empty% reset setkeys buffer due to loop calls
+ \xifinlistcs{\blx@datetype ####1}{blx@datamodel@fields}
+ {}
+ {\listcsxadd{blx@datamodel@fields}{\blx@datetype ####1}}%
+ \setkeys{blx@datamodel@field}{type=field,datatype=datepart}%
+ \xappto\blx@bcf@datamodel@fields{%
+ \blx@xml@datamodel@field{\blx@tempa}{\blx@datetype ####1}}}%
+ \expandafter\docsvlist\expandafter{\blx@notnulldateparts}%
+ \endgroup}
+ {}}%
+ \docsvlist{#2}
+ \endgroup}
+
+\define@key{blx@datamodel@field}{type}{% characters
+ \eappto\blx@tempa{ fieldtype="#1"}%
+ \def\blx@dm@fieldtype{#1}}
+\define@key{blx@datamodel@field}{datatype}{% characters
+ \eappto\blx@tempa{ datatype="#1"}%
+ \def\blx@dm@datatype{#1}}
+\define@key{blx@datamodel@field}{format}{% characters
+ \eappto\blx@tempa{ format="#1"}%
+ \def\blx@dm@format{#1}}
+\define@key{blx@datamodel@field}{nullok}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempa{ nullok="true"}}
+ {}}
+\define@key{blx@datamodel@field}{skipout}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempa{ skip\string_output="true"}%
+ \booltrue{dmskipout}}
+ {}}
+\define@key{blx@datamodel@field}{label}[true]{% true|false
+ \ifstrequal{#1}{true}
+ {\appto\blx@tempa{ label="true"}%
+ \booltrue{dmlabelfield}}
+ {}}
+
+\newrobustcmd*{\DeclareDatamodelConstant}[3][]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \ifblank{#1}
+ {\def\blx@tempa{string}}
+ {\setkeys{blx@datamodel@constant}{#1}}%
+ \xappto\blx@bcf@datamodel@constants{\blx@xml@datamodel@constant{\blx@tempa}{#2}{#3}}%
+ \csxdef{blx@datamodel@constant@#2}{#3}%
+ \csxdef{blx@datamodel@constanttype@#2}{\blx@tempa}%
+ \endgroup}
+
+\define@key{blx@datamodel@constant}{type}{%
+ \def\blx@tempa{#1}}
+
+\newrobustcmd*{\DeclareDatamodelEntryfields}[2][]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \let\blx@tempb\@empty
+ \ifblank{#1}
+ {}
+ {\def\do##1{%
+ \eappto\blx@tempa{\blx@xml@datamodel@entryfield@type{##1}}}%
+ \docsvlist{#1}}%
+ \def\do##1{%
+ \eappto\blx@tempb{\blx@xml@datamodel@entryfield@field{##1}}}%
+ \docsvlist{#2}%
+ \xappto\blx@bcf@datamodel@entryfields{\blx@xml@datamodel@entryfields{\blx@tempa\blx@tempb}}%
+ \endgroup}
+
+\newrobustcmd*{\DeclareDatamodelConstraints}[2][]{%
+ \begingroup
+ \let\blx@tempa\@empty
+ \let\blx@tempb\@empty
+ \let\constraint\blx@datamodel@constraint
+ \ifblank{#1}
+ {}
+ {\def\do##1{%
+ \eappto\blx@tempa{\blx@xml@datamodel@constraints@type{##1}}}%
+ \docsvlist{#1}}%
+ #2%
+ \xappto\blx@bcf@datamodel@constraints{\blx@xml@datamodel@constraints{\blx@tempa\blx@tempb}}%
+ \endgroup}
+
+\newcommand*{\blx@datamodel@constraint}[2][]{%
+ \let\blx@tempc\@empty
+ \let\blx@tempd\@empty
+ \setkeys{blx@datamodel@constraint}{#1}%
+ \let\constraintfieldsxor\blx@datamodel@constraintfieldsxor
+ \let\constraintfieldsor\blx@datamodel@constraintfieldsor
+ \let\constraintfield\blx@datamodel@constraintfield
+ \let\antecedent\blx@datamodel@constraint@antecedent
+ \let\consequent\blx@datamodel@constraint@consequent
+ #2%
+ \eappto\blx@tempb{\blx@xml@datamodel@constraint{\blx@tempc}{\blx@tempd}}}
+
+\define@key{blx@datamodel@constraint}{type}{% characters
+ \eappto\blx@tempc{ type="#1"}}
+\define@key{blx@datamodel@constraint}{datatype}{% characters
+ \eappto\blx@tempc{ datatype="#1"}}
+\define@key{blx@datamodel@constraint}{rangemin}{% integer
+ \eappto\blx@tempc{ rangemin="#1"}}
+\define@key{blx@datamodel@constraint}{rangemax}{% integer
+ \eappto\blx@tempc{ rangemax="#1"}}
+\define@key{blx@datamodel@constraint}{pattern}{% regexp
+ \eappto\blx@tempc{ pattern="#1"}}
+
+\newcommand*{\blx@datamodel@constraint@antecedent}[2][]{%
+ \let\blx@tempe\@empty
+ \let\blx@temph\@empty
+ \let\constraintfield\blx@datamodel@constraintfieldsub
+ \setkeys{blx@datamodel@constraint@quant}{#1}%
+ #2%
+ \let\constraintfield\blx@datamodel@constraintfield% back to default
+ \eappto\blx@tempd{\blx@xml@datamodel@constraint@antecedent{\blx@tempe}{\blx@temph}}}
+
+\newcommand*{\blx@datamodel@constraint@consequent}[2][]{%
+ \let\blx@tempe\@empty
+ \let\blx@temph\@empty
+ \let\constraintfield\blx@datamodel@constraintfieldsub
+ \setkeys{blx@datamodel@constraint@quant}{#1}%
+ #2%
+ \let\constraintfield\blx@datamodel@constraintfield% back to default
+ \eappto\blx@tempd{\blx@xml@datamodel@constraint@consequent{\blx@tempe}{\blx@temph}}}
+
+\define@key{blx@datamodel@constraint@quant}{quantifier}{% characters
+ \eappto\blx@tempe{ quant="#1"}}
+
+\newcommand*{\blx@datamodel@constraintfieldsxor}[1]{%
+ \let\blx@temph\@empty
+ \let\constraintfield\blx@datamodel@constraintfieldsub
+ #1%
+ \let\constraintfield\blx@datamodel@constraintfield% back to default
+ \eappto\blx@tempd{\blx@xml@datamodel@constraintfieldsxor{\blx@temph}}}
+
+\newcommand*{\blx@datamodel@constraintfieldsor}[1]{%
+ \let\blx@temph\@empty
+ \let\constraintfield\blx@datamodel@constraintfieldsub
+ #1%
+ \let\constraintfield\blx@datamodel@constraintfield% back to default
+ \eappto\blx@tempd{\blx@xml@datamodel@constraintfieldsor{\blx@temph}}}
+
+\newcommand*{\blx@datamodel@constraintfield}[1]{%
+ \eappto\blx@tempd{\blx@xml@datamodel@constraintfield{#1}}}
+
+\newcommand*{\blx@datamodel@constraintfieldsub}[1]{%
+ \eappto\blx@temph{\blx@xml@datamodel@constraintfieldsub{#1}}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Data model specification
+
+\DeclareDatamodelConstant[type=list]{gender}{sf,sm,sn,pf,pm,pn,pp}
+\DeclareDatamodelConstant[type=list]{nameparts}{family,given,prefix,suffix}
+\DeclareDatamodelConstant[type=list]{optiondatatypes}{boolean,integer,string,xml}
+
+\DeclareDatamodelEntrytypes{
+ article,
+ artwork,
+ audio,
+ bibnote,
+ book,
+ bookinbook,
+ booklet,
+ collection,
+ commentary,
+ customa,
+ customb,
+ customc,
+ customd,
+ custome,
+ customf,
+ dataset,
+ inbook,
+ incollection,
+ inproceedings,
+ inreference,
+ image,
+ jurisdiction,
+ legal,
+ legislation,
+ letter,
+ manual,
+ misc,
+ movie,
+ music,
+ mvcollection,
+ mvreference,
+ mvproceedings,
+ mvbook,
+ online,
+ patent,
+ performance,
+ periodical,
+ proceedings,
+ reference,
+ report,
+ review,
+ set,
+ software,
+ standard,
+ suppbook,
+ suppcollection,
+ suppperiodical,
+ thesis,
+ unpublished,
+ video}
+
+\DeclareDatamodelEntrytypes[skipout]{xdata}
+
+\DeclareDatamodelFields[type=field, datatype=integer]{
+ sortyear,
+ volume,
+ volumes}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{
+ abstract,
+ addendum,
+ annotation,
+ booksubtitle,
+ booktitle,
+ booktitleaddon,
+ chapter,
+ edition,
+ eid,
+ entrysubtype,
+ eprintclass,
+ eprinttype,
+ eventtitle,
+ eventtitleaddon,
+ gender,
+ howpublished,
+ indexsorttitle,
+ indextitle,
+ isan,
+ isbn,
+ ismn,
+ isrn,
+ issn,
+ issue,
+ issuesubtitle,
+ issuetitle,
+ iswc,
+ journalsubtitle,
+ journaltitle,
+ label,
+ langid,
+ langidopts,
+ library,
+ mainsubtitle,
+ maintitle,
+ maintitleaddon,
+ nameaddon,
+ note,
+ number,
+ origtitle,
+ pagetotal,
+ part,
+ relatedstring,
+ relatedtype,
+ reprinttitle,
+ series,
+ shorthandintro,
+ subtitle,
+ title,
+ titleaddon,
+ usera,
+ userb,
+ userc,
+ userd,
+ usere,
+ userf,
+ venue,
+ version}
+
+\DeclareDatamodelFields[type=field, datatype=literal, label=true]{
+ shorthand,
+ shortjournal,
+ shortseries,
+ shorttitle}
+
+\DeclareDatamodelFields[type=field, datatype=literal, skipout]{
+ sorttitle,
+ sortshorthand,
+ sortkey,
+ presort}
+
+\DeclareDatamodelFields[type=list, datatype=literal]{
+ institution,
+ lista,
+ listb,
+ listc,
+ listd,
+ liste,
+ listf,
+ location,
+ organization,
+ origlocation,
+ origpublisher,
+ publisher}
+
+\DeclareDatamodelFields[type=list, datatype=name]{
+ afterword,
+ annotator,
+ author,
+ bookauthor,
+ commentator,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ foreword,
+ holder,
+ introduction,
+ namea,
+ nameb,
+ namec,
+ translator}
+
+\DeclareDatamodelFields[type=list, datatype=name, label=true]{
+ shortauthor,
+ shorteditor}
+
+\DeclareDatamodelFields[type=list, datatype=name, skipout]{sortname}
+
+\DeclareDatamodelFields[type=field, datatype=key]{
+ authortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ editortype,
+ bookpagination,
+ nameatype,
+ namebtype,
+ namectype,
+ pagination,
+ pubstate,
+ type}
+
+\DeclareDatamodelFields[type=list, datatype=key]{language,origlanguage}
+
+\DeclareDatamodelFields[type=field, datatype=entrykey]{
+ crossref,
+ xref}
+
+\DeclareDatamodelFields[type=field, datatype=date, skipout]{
+ date,
+ eventdate,
+ origdate,
+ urldate}
+
+\DeclareDatamodelFields[type=field, datatype=verbatim]{
+ doi,
+ eprint,
+ file,
+ verba,
+ verbb,
+ verbc}
+
+\DeclareDatamodelFields[type=field, datatype=uri]{url}
+
+\DeclareDatamodelFields[type=field, format=xsv, datatype=entrykey, skipout]{xdata, ids, entryset}
+\DeclareDatamodelFields[type=field, format=xsv, datatype=entrykey]{related}
+
+\DeclareDatamodelFields[type=field, format=xsv, datatype=keyword]{keywords}
+
+\DeclareDatamodelFields[type=field, format=xsv, datatype=option, skipout]{options, relatedoptions}
+\DeclareDatamodelFields[type=field, datatype=range]{pages}
+
+\DeclareDatamodelFields[type=field, datatype=code]{execute}
+
+\DeclareDatamodelEntryfields{
+ abstract,
+ annotation,
+ authortype,
+ bookpagination,
+ crossref,
+ day,
+ endday,
+ endhour,
+ endminute,
+ endmonth,
+ endseason,
+ endsecond,
+ endtimezone,
+ endyear,
+ entryset,
+ entrysubtype,
+ execute,
+ file,
+ gender,
+ hour,
+ ids,
+ indextitle,
+ indexsorttitle,
+ isan,
+ ismn,
+ iswc,
+ keywords,
+ label,
+ langid,
+ langidopts,
+ library,
+ lista,
+ listb,
+ listc,
+ listd,
+ liste,
+ listf,
+ minute,
+ month,
+ nameaddon,
+ options,
+ origday,
+ origendday,
+ origendhour,
+ origendminute,
+ origendmonth,
+ origendseason,
+ origendsecond,
+ origendtimezone,
+ origendyear,
+ orighour,
+ origminute,
+ origmonth,
+ origseason,
+ origsecond,
+ origtimezone,
+ origyear,
+ origlocation,
+ origpublisher,
+ origtitle,
+ pagination,
+ presort,
+ related,
+ relatedoptions,
+ relatedstring,
+ relatedtype,
+ season,
+ second,
+ shortauthor,
+ shorteditor,
+ shorthand,
+ shorthandintro,
+ shortjournal,
+ shortseries,
+ shorttitle,
+ sortkey,
+ sortname,
+ sortshorthand,
+ sorttitle,
+ sortyear,
+ timezone,
+ url,
+ urlday,
+ urlendday,
+ urlendhour,
+ urlendminute,
+ urlendmonth,
+ urlendsecond,
+ urlendtimezone,
+ urlendyear,
+ urlhour,
+ urlminute,
+ urlmonth,
+ urlsecond,
+ urltimezone,
+ urlyear,
+ usera,
+ userb,
+ userc,
+ userd,
+ usere,
+ userf,
+ verba,
+ verbb,
+ verbc,
+ xdata,
+ xref,
+ year}
+
+\DeclareDatamodelEntryfields[set]{
+ entryset}
+
+\DeclareDatamodelEntryfields[article]{
+ addendum,
+ annotator,
+ author,
+ commentator,
+ doi,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ editortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ eid,
+ eprint,
+ eprintclass,
+ eprinttype,
+ issn,
+ issue,
+ issuetitle,
+ issuesubtitle,
+ journalsubtitle,
+ journaltitle,
+ language,
+ note,
+ number,
+ origlanguage,
+ pages,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ translator,
+ version,
+ volume}
+
+\DeclareDatamodelEntryfields[bibnote]{note}
+
+\DeclareDatamodelEntryfields[book]{
+ author,
+ addendum,
+ afterword,
+ annotator,
+ chapter,
+ commentator,
+ doi,
+ edition,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ editortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ foreword,
+ introduction,
+ isbn,
+ language,
+ location,
+ maintitle,
+ maintitleaddon,
+ mainsubtitle,
+ note,
+ number,
+ origlanguage,
+ pages,
+ pagetotal,
+ part,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ translator,
+ volume,
+ volumes}
+
+\DeclareDatamodelEntryfields[mvbook]{
+ addendum,
+ afterword,
+ annotator,
+ author,
+ commentator,
+ doi,
+ edition,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ editortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ foreword,
+ introduction,
+ isbn,
+ language,
+ location,
+ note,
+ number,
+ origlanguage,
+ pagetotal,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ translator,
+ volume,
+ volumes}
+
+\DeclareDatamodelEntryfields[inbook,bookinbook,suppbook]{
+ addendum,
+ afterword,
+ annotator,
+ author,
+ booktitle,
+ bookauthor,
+ booksubtitle,
+ booktitleaddon,
+ chapter,
+ commentator,
+ doi,
+ edition,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ editortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ foreword,
+ introduction,
+ isbn,
+ language,
+ location,
+ mainsubtitle,
+ maintitle,
+ maintitleaddon,
+ note,
+ number,
+ origlanguage,
+ part,
+ publisher,
+ pages,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ translator,
+ volume,
+ volumes}
+
+\DeclareDatamodelEntryfields[booklet]{
+ addendum,
+ author,
+ chapter,
+ doi,
+ editor,
+ editortype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ howpublished,
+ language,
+ location,
+ note,
+ pages,
+ pagetotal,
+ pubstate,
+ subtitle,
+ title,
+ titleaddon,
+ type}
+
+\DeclareDatamodelEntryfields[collection,reference]{
+ addendum,
+ afterword,
+ annotator,
+ chapter,
+ commentator,
+ doi,
+ edition,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ editortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ foreword,
+ introduction,
+ isbn,
+ language,
+ location,
+ mainsubtitle,
+ maintitle,
+ maintitleaddon,
+ note,
+ number,
+ origlanguage,
+ pages,
+ pagetotal,
+ part,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ translator,
+ volume,
+ volumes}
+
+\DeclareDatamodelEntryfields[mvcollection,mvreference]{
+ addendum,
+ afterword,
+ annotator,
+ author,
+ commentator,
+ doi,
+ edition,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ editortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ foreword,
+ introduction,
+ isbn,
+ language,
+ location,
+ note,
+ number,
+ origlanguage,
+ publisher,
+ pubstate,
+ subtitle,
+ title,
+ titleaddon,
+ translator,
+ volume,
+ volumes}
+
+\DeclareDatamodelEntryfields[incollection,suppcollection,inreference]{
+ addendum,
+ afterword,
+ annotator,
+ author,
+ booksubtitle,
+ booktitle,
+ booktitleaddon,
+ chapter,
+ commentator,
+ doi,
+ edition,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ editortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ foreword,
+ introduction,
+ isbn,
+ language,
+ location,
+ mainsubtitle,
+ maintitle,
+ maintitleaddon,
+ note,
+ number,
+ origlanguage,
+ pages,
+ part,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ translator,
+ volume,
+ volumes}
+
+\DeclareDatamodelEntryfields[dataset]{
+ addendum,
+ author,
+ doi,
+ edition,
+ editor,
+ editortype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ language,
+ location,
+ note,
+ number,
+ organization,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ type,
+ version}
+
+\DeclareDatamodelEntryfields[manual]{
+ addendum,
+ author,
+ chapter,
+ doi,
+ edition,
+ editor,
+ editortype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ isbn,
+ language,
+ location,
+ note,
+ number,
+ organization,
+ pages,
+ pagetotal,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ type,
+ version}
+
+\DeclareDatamodelEntryfields[misc,software]{
+ addendum,
+ author,
+ doi,
+ editor,
+ editortype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ howpublished,
+ language,
+ location,
+ note,
+ organization,
+ pubstate,
+ subtitle,
+ title,
+ titleaddon,
+ type,
+ version}
+
+\DeclareDatamodelEntryfields[online]{
+ addendum,
+ author,
+ doi,
+ editor,
+ editortype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ language,
+ note,
+ organization,
+ pubstate,
+ subtitle,
+ title,
+ titleaddon,
+ version}
+
+\DeclareDatamodelEntryfields[patent]{
+ addendum,
+ author,
+ doi,
+ eprint,
+ eprintclass,
+ eprinttype,
+ holder,
+ location,
+ note,
+ number,
+ pubstate,
+ subtitle,
+ title,
+ titleaddon,
+ type,
+ version}
+
+\DeclareDatamodelEntryfields[periodical]{
+ addendum,
+ doi,
+ editor,
+ editora,
+ editorb,
+ editorc,
+ editortype,
+ editoratype,
+ editorbtype,
+ editorctype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ issn,
+ issue,
+ issuesubtitle,
+ issuetitle,
+ language,
+ note,
+ number,
+ pubstate,
+ season,
+ series,
+ subtitle,
+ title,
+ volume}
+
+\DeclareDatamodelEntryfields[mvproceedings]{
+ addendum,
+ doi,
+ editor,
+ editortype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ eventday,
+ eventendday,
+ eventendhour,
+ eventendminute,
+ eventendmonth,
+ eventendseason,
+ eventendsecond,
+ eventendtimezone,
+ eventendyear,
+ eventhour,
+ eventminute,
+ eventmonth,
+ eventseason,
+ eventsecond,
+ eventtimezone,
+ eventyear,
+ eventtitle,
+ eventtitleaddon,
+ isbn,
+ language,
+ location,
+ note,
+ number,
+ organization,
+ pagetotal,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ venue,
+ volumes}
+
+\DeclareDatamodelEntryfields[proceedings]{
+ addendum,
+ chapter,
+ doi,
+ editor,
+ editortype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ eventday,
+ eventendday,
+ eventendhour,
+ eventendminute,
+ eventendmonth,
+ eventendseason,
+ eventendsecond,
+ eventendtimezone,
+ eventendyear,
+ eventhour,
+ eventminute,
+ eventmonth,
+ eventseason,
+ eventsecond,
+ eventtimezone,
+ eventyear,
+ eventtitle,
+ eventtitleaddon,
+ isbn,
+ language,
+ location,
+ mainsubtitle,
+ maintitle,
+ maintitleaddon,
+ note,
+ number,
+ organization,
+ pages,
+ pagetotal,
+ part,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ venue,
+ volume,
+ volumes}
+
+\DeclareDatamodelEntryfields[inproceedings]{
+ addendum,
+ author,
+ booksubtitle,
+ booktitle,
+ booktitleaddon,
+ chapter,
+ doi,
+ editor,
+ editortype,
+ eprint,
+ eprintclass,
+ eprinttype,
+ eventday,
+ eventendday,
+ eventendhour,
+ eventendminute,
+ eventendmonth,
+ eventendseason,
+ eventendsecond,
+ eventendtimezone,
+ eventendyear,
+ eventhour,
+ eventminute,
+ eventmonth,
+ eventseason,
+ eventsecond,
+ eventtimezone,
+ eventyear,
+ eventtitle,
+ eventtitleaddon,
+ isbn,
+ language,
+ location,
+ mainsubtitle,
+ maintitle,
+ maintitleaddon,
+ note,
+ number,
+ organization,
+ pages,
+ part,
+ publisher,
+ pubstate,
+ series,
+ subtitle,
+ title,
+ titleaddon,
+ venue,
+ volume,
+ volumes}
+
+\DeclareDatamodelEntryfields[report]{
+ addendum,
+ author,
+ chapter,
+ doi,
+ eprint,
+ eprintclass,
+ eprinttype,
+ institution,
+ isrn,
+ language,
+ location,
+ note,
+ number,
+ pages,
+ pagetotal,
+ pubstate,
+ subtitle,
+ title,
+ titleaddon,
+ type,
+ version}
+
+\DeclareDatamodelEntryfields[thesis]{
+ addendum,
+ author,
+ chapter,
+ doi,
+ eprint,
+ eprintclass,
+ eprinttype,
+ institution,
+ language,
+ location,
+ note,
+ pages,
+ pagetotal,
+ pubstate,
+ subtitle,
+ title,
+ titleaddon,
+ type}
+
+\DeclareDatamodelEntryfields[unpublished]{
+ addendum,
+ author,
+ eventday,
+ eventendday,
+ eventendhour,
+ eventendminute,
+ eventendmonth,
+ eventendseason,
+ eventendsecond,
+ eventendtimezone,
+ eventendyear,
+ eventhour,
+ eventminute,
+ eventmonth,
+ eventseason,
+ eventsecond,
+ eventtimezone,
+ eventyear,
+ eventtitle,
+ eventtitleaddon,
+ howpublished,
+ language,
+ location,
+ note,
+ pubstate,
+ subtitle,
+ title,
+ titleaddon,
+ type,
+ venue}
+
+\DeclareDatamodelConstraints[
+ article,
+ book,
+ inbook,
+ bookinbook,
+ suppbook,
+ booklet,
+ collection,
+ incollection,
+ suppcollection,
+ manual,
+ misc,
+ mvbook,
+ mvcollection,
+ online,
+ patent,
+ periodical,
+ suppperiodical,
+ proceedings,
+ inproceedings,
+ reference,
+ inreference,
+ report,
+ set,
+ thesis,
+ unpublished]{
+ \constraint[type=mandatory]{
+ \constraintfieldsxor{
+ \constraintfield{date}
+ \constraintfield{year}
+ }
+ }
+ }
+
+\DeclareDatamodelConstraints[set]{
+ \constraint[type=mandatory]{
+ \constraintfield{entryset}
+ }
+}
+
+\DeclareDatamodelConstraints[article]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{journaltitle}
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[book,mvbook,mvcollection,mvreference]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[inbook,bookinbook,suppbook]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{title}
+ \constraintfield{booktitle}
+ }
+}
+
+\DeclareDatamodelConstraints[booklet]{
+ \constraint[type=mandatory]{
+ \constraintfieldsor{
+ \constraintfield{author}
+ \constraintfield{editor}
+ }
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[collection,reference]{
+ \constraint[type=mandatory]{
+ \constraintfield{editor}
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[incollection,suppcollection,inreference]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{editor}
+ \constraintfield{title}
+ \constraintfield{booktitle}
+ }
+}
+
+\DeclareDatamodelConstraints[dataset]{
+ \constraint[type=mandatory]{
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[manual]{
+ \constraint[type=mandatory]{
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[misc,software]{
+ \constraint[type=mandatory]{
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[online]{
+ \constraint[type=mandatory]{
+ \constraintfield{title}
+ \constraintfieldsor{
+ \constraintfield{url}
+ \constraintfield{doi}
+ \constraintfield{eprint}
+ }
+ }
+}
+
+\DeclareDatamodelConstraints[patent]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{title}
+ \constraintfield{number}
+ }
+}
+
+\DeclareDatamodelConstraints[periodical]{
+ \constraint[type=mandatory]{
+ \constraintfield{editor}
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[proceedings,mvproceedings]{
+ \constraint[type=mandatory]{
+ \constraintfield{editor}
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints[inproceedings]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{title}
+ \constraintfield{booktitle}
+ }
+}
+
+\DeclareDatamodelConstraints[report]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{title}
+ \constraintfield{type}
+ \constraintfield{institution}
+ }
+}
+
+\DeclareDatamodelConstraints[thesis]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{title}
+ \constraintfield{type}
+ \constraintfield{institution}
+ }
+}
+
+\DeclareDatamodelConstraints[unpublished]{
+ \constraint[type=mandatory]{
+ \constraintfield{author}
+ \constraintfield{title}
+ }
+}
+
+\DeclareDatamodelConstraints{
+ \constraint[type=data, datatype=isbn]{
+ \constraintfield{isbn}
+ }
+ \constraint[type=data, datatype=issn]{
+ \constraintfield{issn}
+ }
+ \constraint[type=data, datatype=ismn]{
+ \constraintfield{ismn}
+ }
+ \constraint[type=data, datatype=date]{
+ \constraintfield{date}
+ \constraintfield{eventdate}
+ \constraintfield{origdate}
+ \constraintfield{urldate}
+ }
+ \constraint[type=data, datatype=pattern, pattern=\regexp{(?:sf|sm|sn|pf|pm|pn|pp)}]{
+ \constraintfield{gender}
+ }
+}
+
diff --git a/macros/latex/contrib/biblatex/latex/blx-mcite.def b/macros/latex/contrib/biblatex/latex/blx-mcite.def
new file mode 100644
index 0000000000..b4a8976e50
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/blx-mcite.def
@@ -0,0 +1,75 @@
+\ProvidesFile{blx-mcite.def}
+[\abx@cptid]
+
+\newrobustcmd*{\mcite}{\mcitelike\cite}
+\newrobustcmd*{\Mcite}{\mcitelike\Cite}
+\newrobustcmd*{\mparencite}{\mcitelike\parencite}
+\newrobustcmd*{\Mparencite}{\mcitelike\Parencite}
+\newrobustcmd*{\mfootcite}{\mcitelike\footcite}
+\newrobustcmd*{\mfootcitetext}{\mcitelike\footcitetext}
+\newrobustcmd*{\mtextcite}{\mcitelike\textcite}
+\newrobustcmd*{\Mtextcite}{\mcitelike\Textcite}
+\newrobustcmd*{\msupercite}{\mcitelike\supercite}
+
+% \mcite{key1,setA,*keyA1,*keyA2,*keyA3,key2,setB,*keyB1,*keyB2,*keyB3}
+% => \mcitelike\cite{key1,setA,*keyA1,*keyA2,*keyA3,key2,setB,*keyB1,*keyB2,*keyB3}
+% => \defbibentryset{setA}{keyA1,keyA2,keyA3}
+% \defbibentryset{setB}{keyB1,keyB2,keyB3}
+% \cite{key1,setA,key2,setB}
+
+\newrobustcmd*{\mcitelike}[1]{%
+ \@ifstar
+ {\blx@citeargs{\blx@mclike{#1*}}}
+ {\blx@citeargs{\blx@mclike{#1}}}}
+
+\long\def\blx@mclike#1#2#3#4{%
+ \begingroup
+ \let\blx@mclike@tempa\@empty
+ \let\blx@mclike@tempb\@empty
+ \let\blx@mclike@tempc\@empty
+ \blx@xsanitizeafter\blx@mclike@i{#4}%
+ \edef\blx@mclike@tempa{\endgroup\unexpanded{#1[#2][#3]}{\blx@mclike@tempa}}%
+ \blx@mclike@tempa}
+
+\def\blx@mclike@i#1{%
+ \forcsvlist\blx@mclike@ii{#1}%
+ \blx@mclike@iv}
+
+\def\blx@mclike@ii#1{\blx@mclike@iii#1&}
+
+\def\blx@mclike@iii#1#2&{%
+ \if*#1%
+ \blx@mclike@tail{#2}%
+ \else
+ \blx@mclike@head{#1#2}%
+ \fi}
+
+\def\blx@mclike@iv{%
+ \ifx\blx@mclike@tempb\@empty
+ \else
+ \ifx\blx@mclike@tempc\@empty
+ \else
+ \defbibentryset{\blx@mclike@tempb}{\blx@mclike@tempc}%
+ \let\blx@mclike@tempc\@empty
+ \fi
+ \nocite{\blx@mclike@tempb}% preserve citation order for sorting=none
+ \let\blx@mclike@tempb\@empty
+ \fi}
+
+\def\blx@mclike@head#1{%
+ \blx@mclike@iv
+ \edef\blx@mclike@tempa{%
+ \ifx\blx@mclike@tempa\@empty
+ \else
+ \blx@mclike@tempa,%
+ \fi#1}%
+ \def\blx@mclike@tempb{#1}}
+
+\def\blx@mclike@tail#1{%
+ \edef\blx@mclike@tempc{%
+ \ifx\blx@mclike@tempc\@empty
+ \else
+ \blx@mclike@tempc,%
+ \fi#1}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/blx-natbib.def b/macros/latex/contrib/biblatex/latex/blx-natbib.def
new file mode 100644
index 0000000000..4817f72e16
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/blx-natbib.def
@@ -0,0 +1,84 @@
+\ProvidesFile{blx-natbib.def}
+[\abx@cptid]
+
+\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
+
+\newrobustcmd*{\citet}{%
+ \@ifstar
+ {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}%
+ \textcite}
+ {\textcite}}
+
+\newrobustcmd*{\citep}{%
+ \@ifstar
+ {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}%
+ \parencite}
+ {\parencite}}
+
+\newrobustcmd*{\citealt}{%
+ \AtNextCite{\DeclareDelimFormat{nameyeardelim}{\addspace}}%
+ \@ifstar
+ {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}%
+ \cite}
+ {\cite}}
+
+\newrobustcmd*{\citealp}{%
+ \@ifstar
+ {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}%
+ \cite}
+ {\cite}}
+
+\DeclareCiteCommand*{\citeauthor}
+ {\defcounter{maxnames}{999}%
+ \boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \printnames{labelname}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeyearpar}[\mkbibparens]
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\printfield{year}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\newrobustcmd*{\Citet}{\bibsentence\citet}
+\newrobustcmd*{\Citep}{\bibsentence\citep}
+\newrobustcmd*{\Citealt}{\bibsentence\citealt}
+\newrobustcmd*{\Citealp}{\bibsentence\citealp}
+\newrobustcmd*{\citefullauthor}{\citeauthor*}
+\newrobustcmd*{\Citefullauthor}{\bibsentence\citeauthor*}
+\newrobustcmd*{\citetext}{\parentext}
+
+\newrobustcmd*{\defcitealias}[2]{%
+ \ifcsdef{abx@alias@\detokenize{#1}}
+ {\PackageWarning{biblatex}{%
+ Overwriting alias for entry '\detokenize{#1}'}}
+ {}%
+ \csgdef{abx@alias@\detokenize{#1}}{#2}}
+
+\newcommand*{\@citealias}[1]{%
+ \ifcsdef{abx@alias@#1}
+ {\csuse{abx@alias@#1}}
+ {\PackageWarning{biblatex}{No alias for entry '#1'}%
+ \textbf{#1}}}
+
+\DeclareCiteCommand{\citetalias}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \@citealias{\thefield{entrykey}}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citepalias}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \@citealias{\thefield{entrykey}}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/blx-unicode.def b/macros/latex/contrib/biblatex/latex/blx-unicode.def
new file mode 100644
index 0000000000..79e003c190
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/blx-unicode.def
@@ -0,0 +1,115 @@
+% This test should not be needed since biblatex.sty already checks
+% if LuaTeX or XeTeX is used.
+% Currently Unicode-aware engines are only XeTeX and LuaTeX,
+% both of which define \Umathcode.
+\ifx\Umathcode\undefined
+ \expandafter\endinput
+\fi
+
+\begingroup
+\openin\blx@bcfin=UnicodeData.txt %
+\ifeof\blx@bcfin
+\else
+ \let\blx@setazcodes\@empty
+ \def\Lu{Lu}
+ \def\storedpar{\par}
+ \def\blx@tempa#1;#2;#3;#4\relax{%
+ \def\temp{#3}%
+ \ifx\temp\Lu
+ \xdef\blx@setazcodes{%
+ \blx@setazcodes
+ \sfcode"#1=\@m
+ }
+ \fi
+ }
+ \loop\unless\ifeof\blx@bcfin
+ \read\blx@bcfin to \blx@tempb
+ \unless\ifx\blx@tempb\storedpar
+ \expandafter\blx@tempa\blx@tempb\relax
+ \fi
+ \repeat
+\fi
+\closein\blx@bcfin
+\endgroup
+
+\appto\blx@setfrcodes{%
+ % … should probably have dot spacefactor, but pdfLaTeX
+ % makes it a period, so we have this here for consistency
+ \sfcode`\…=\blx@sf@period
+}
+
+\DeclarePrefChars*{’}
+\DeclareRangeChars*{–—}
+
+\def\blx@normrange@range#1\bibrangedash#2\bibrangedash#3&{%
+ \ifblank{#3}
+ {\blx@normrange@endash#1––&}
+ {\ifblank{#2}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}%
+ \noexpand\bibrangedash}}%
+ \blx@tempc}
+ {\ifblank{#1}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{%
+ \unexpanded{#2}}}}%
+ \blx@tempc}
+ {\blx@range@process{#1}{#2}}}}}
+
+\def\blx@normrange@endash#1–#2–#3&{%
+ \ifblank{#3}
+ {\blx@normrange@hyphen#1--&}
+ {\ifblank{#2}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}%
+ \noexpand\bibrangedash}}%
+ \blx@tempc}
+ {\ifblank{#1}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}%
+ \blx@tempc}
+ {\blx@range@process{#1}{#2}}}}}
+
+\def\blx@firstpage@range#1\bibrangedash#2\bibrangedash#3&{%
+ \ifblank{#3}
+ {\blx@firstpage@endash#1––&}
+ {\ifblank{#1}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}%
+ \blx@tempc}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}%
+ \blx@tempc}}}
+
+\def\blx@firstpage@endash#1–#2–#3&{%
+ \ifblank{#3}
+ {\blx@firstpage@hyphen#1--&}
+ {\ifblank{#1}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \noexpand\bibrangedash
+ \expandonce\blx@range@out@item@process{\unexpanded{#2}}}}%
+ \blx@tempc}
+ {\begingroup
+ \edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \expandonce\blx@range@out@item@process{\unexpanded{#1}}}}%
+ \blx@tempc}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/alphabetic-verb.cbx b/macros/latex/contrib/biblatex/latex/cbx/alphabetic-verb.cbx
new file mode 100644
index 0000000000..efcc901a71
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/alphabetic-verb.cbx
@@ -0,0 +1,88 @@
+\ProvidesFile{alphabetic-verb.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labelalpha,autocite=inline}
+
+\renewcommand*{\iffinalcitedelim}{\iflastcitekey}
+
+\providebool{bbx:subentry}
+
+\DeclareFieldFormat{entrysetcount}{\mkbibparens{\mknumalph{#1}}}
+
+\newbibmacro*{cite}{%
+ \printtext[bibhyperref]{%
+ \printfield{labelprefix}%
+ \printfield{labelalpha}%
+ \printfield{extraalpha}%
+ \ifbool{bbx:subentry}
+ {\printfield{entrysetcount}}
+ {}}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}%
+ \printdelim{namelabeldelim}\bibopenbracket
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite}}
+
+\DeclareCiteCommand{\cite}
+ {\bibopenbracket
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \ifnumgreater{\value{citecount}}{1}
+ {\bibopenbracket}
+ {}%
+ \usebibmacro{cite}}
+ {\bibclosebracket\multicitedelim}
+ {\usebibmacro{postnote}%
+ \bibclosebracket}
+
+\DeclareCiteCommand{\parencite}[\mkbibbrackets]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\textcite}
+ {}
+ {\usebibmacro{citeindex}%
+ \iffirstcitekey
+ {\setcounter{textcitetotal}{1}}
+ {\stepcounter{textcitetotal}%
+ \textcitedelim}%
+ \usebibmacro{textcite}}
+ {\bibclosebracket}
+ {\usebibmacro{postnote}%
+ \bibclosebracket}
+
+\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\smartcite}{\multicitedelim}
+\DeclareMultiCiteCommand{\textcites}{\textcite}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/alphabetic.cbx b/macros/latex/contrib/biblatex/latex/cbx/alphabetic.cbx
new file mode 100644
index 0000000000..e6f4d7d425
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/alphabetic.cbx
@@ -0,0 +1,145 @@
+\ProvidesFile{alphabetic.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labelalpha,autocite=inline}
+
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\providebool{bbx:subentry}
+\newbool{cbx:parens}
+
+\DeclareFieldFormat{entrysetcount}{\mkbibparens{\mknumalph{#1}}}
+
+\newbibmacro*{cite}{%
+ \printtext[bibhyperref]{%
+ \printfield{labelprefix}%
+ \printfield{labelalpha}%
+ \printfield{extraalpha}%
+ \ifbool{bbx:subentry}
+ {\printfield{entrysetcount}}
+ {}}}
+
+\newbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\multicitedelim}}
+ {\ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{namelabeldelim}\bibopenbracket}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\newbibmacro*{textcite:init}{%
+ \ifnumless{\value{multicitecount}}{2}
+ {\global\boolfalse{cbx:parens}%
+ \global\undef\cbx@lasthash}
+ {\global\undef\cbx@lasthash}}
+
+\newbibmacro*{textcite:postnote}{%
+ \usebibmacro{postnote}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+\DeclareCiteCommand{\cite}[\mkbibbrackets]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibbrackets]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{textcite}}
+ {}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{textcite:init}}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[2]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}
+
+\DeclareMultiCiteCommand{\cites}[\mkbibbrackets]{\cite}{\multicitedelim}
+\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\smartcite}{\multicitedelim}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-comp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-comp.cbx
new file mode 100644
index 0000000000..f27955b113
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-comp.cbx
@@ -0,0 +1,195 @@
+\ProvidesFile{authortitle-comp.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{uniquename,uniquelist,sortcites,autocite=footnote}
+
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnameundef{labelname}
+ {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}}}
+ {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}}
+
+\newbool{cbx:parens}
+
+\newbibmacro*{cite:init}{%
+ \ifnumless{\value{multicitecount}}{2}
+ {\global\boolfalse{cbx:parens}%
+ \global\undef\cbx@lasthash}
+ {\iffieldundef{prenote}
+ {}
+ {\global\undef\cbx@lasthash}}}
+
+\newbibmacro*{cite:reinit}{%
+ \global\undef\cbx@lasthash}
+
+\newbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}}
+ {\printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \usebibmacro{cite:title}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{citetitle}{%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}
+ {\usebibmacro{cite:shorthand}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}}
+ {\printnames{labelname}%
+ \setunit*{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nametitledelim}\bibopenparen}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\newbibmacro*{cite:title}{%
+ \printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{textcite:postnote}{%
+ \ifnameundef{labelname}
+ {\setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{extpostnotedelim}\bibopenparen}}
+ {\setunit{\printdelim{postnotedelim}}}%
+ \printfield{postnote}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitle}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibparens]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitle}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{cite:init}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{textcite}}
+ {}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{cite:init}}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[2]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}
+
+\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\parencites}[\mkbibparens]
+ {\parencite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]
+ {\footcite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]
+ {\footcitetext}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\smartcite}{\setunit{\multicitedelim}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-ibid.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-ibid.cbx
new file mode 100644
index 0000000000..4ccfc33cab
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-ibid.cbx
@@ -0,0 +1,143 @@
+\ProvidesFile{authortitle-ibid.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{uniquename,uniquelist,ibidtracker=constrict,
+ pagetracker,autocite=footnote}
+
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{\iflastcitekey}
+
+\newbool{cbx:parens}
+\newbool{cbx:loccit}
+
+\DeclareBibliographyOption[boolean]{ibidpage}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{loccittracker=false}}}
+
+\newbibmacro*{cite}{%
+ \global\boolfalse{cbx:loccit}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{citetitle}{%
+ \global\boolfalse{cbx:loccit}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{textcite}{%
+ \global\boolfalse{cbx:loccit}%
+ \printnames{labelname}%
+ \setunit*{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nametitledelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{cite:title}{%
+ \printtext[bibhyperref]{%
+ \printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
+ \ifloccit
+ {\global\booltrue{cbx:loccit}}
+ {}}
+
+\newbibmacro*{cite:postnote}{%
+ \ifbool{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\newbibmacro*{textcite:postnote}{%
+ \ifthenelse{\iffieldundef{postnote}\OR\boolean{cbx:loccit}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen}
+ {}}
+ {\ifbool{cbx:parens}
+ {\printdelim{postnotedelim}}
+ {\printdelim{extpostnotedelim}\bibopenparen}%
+ \printfield{postnote}\bibcloseparen}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitle}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitle}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\textcite}
+ {\boolfalse{cbx:parens}}
+ {\usebibmacro{citeindex}%
+ \iffirstcitekey
+ {\setcounter{textcitetotal}{1}}
+ {\stepcounter{textcitetotal}%
+ \textcitedelim}%
+ \usebibmacro{textcite}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen\boolfalse{cbx:parens}}
+ {}}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareMultiCiteCommand{\textcites}{\textcite}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-icomp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-icomp.cbx
new file mode 100644
index 0000000000..8109110103
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-icomp.cbx
@@ -0,0 +1,224 @@
+\ProvidesFile{authortitle-icomp.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{uniquename,uniquelist,ibidtracker=constrict,
+ pagetracker,sortcites,autocite=footnote}
+
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnameundef{labelname}
+ {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}}}
+ {\ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}}
+
+\newbool{cbx:parens}
+\newbool{cbx:loccit}
+
+\DeclareBibliographyOption[boolean]{ibidpage}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{loccittracker=false}}}
+
+\newbibmacro*{cite:init}{%
+ \global\boolfalse{cbx:loccit}%
+ \ifnumless{\value{multicitecount}}{2}
+ {\global\boolfalse{cbx:parens}%
+ \global\undef\cbx@lasthash}
+ {\iffieldundef{prenote}
+ {}
+ {\global\undef\cbx@lasthash}}}
+
+\newbibmacro*{cite:reinit}{%
+ \global\undef\cbx@lasthash}
+
+\newbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}}
+ {\printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{citetitle}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}}
+ {\printnames{labelname}%
+ \setunit*{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nametitledelim}\bibopenparen}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\newbibmacro*{cite:title}{%
+ \printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
+ \ifloccit
+ {\global\booltrue{cbx:loccit}}
+ {}}
+
+\newbibmacro*{cite:postnote}{%
+ \ifbool{cbx:loccit}
+ {}
+ {\setunit{\printdelim{postnotedelim}}%
+ \printfield{postnote}}}
+
+\newbibmacro*{textcite:postnote}{%
+ \ifbool{cbx:loccit}
+ {}
+ {\ifnameundef{labelname}
+ {\setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{extpostnotedelim}\bibopenparen}}
+ {\setunit{\printdelim{postnotedelim}}}%
+ \printfield{postnote}}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitle}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibparens]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitle}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{cite:init}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{textcite}}
+ {}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{cite:init}}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[2]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}
+
+\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\parencites}[\mkbibparens]
+ {\parencite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]
+ {\footcite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]
+ {\footcitetext}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\smartcite}{\setunit{\multicitedelim}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-tcomp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-tcomp.cbx
new file mode 100644
index 0000000000..33ef145614
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-tcomp.cbx
@@ -0,0 +1,90 @@
+\ProvidesFile{authortitle-tcomp.cbx}
+[\abx@cbxid]
+
+\RequireCitationStyle{authortitle-comp}
+\ExecuteBibliographyOptions{singletitle,uniquename,uniquelist,autocite=inline}
+
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\renewbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:title}}
+ {\ifnameundef{labelname}
+ {\usebibmacro{cite:title}}
+ {\ifsingletitle
+ {\printtext[bibhyperref]{\printnames{labelname}}}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nametitledelim}}%
+ \usebibmacro{cite:title}}}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\renewbibmacro*{citetitle}{%
+ \iffieldundef{shorthand}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}}
+ {\savefield{namehash}{\cbx@lasthash}}%
+ \usebibmacro{cite:title}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\renewbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}}
+ {\ifnameundef{labelname}
+ {\ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}}
+ {\ifthenelse{\ifsingletitle\AND
+ \(\iffieldundef{prenote}\OR\value{citecount}>1\)}
+ {\printtext[bibhyperref]{\printnames{labelname}}}
+ {\printnames{labelname}
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nametitledelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}}}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\renewbibmacro*{textcite:postnote}{%
+ \ifbool{cbx:parens}
+ {\setunit{\printdelim{postnotedelim}}}
+ {\setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{extpostnotedelim}\bibopenparen}}%
+ \printfield{postnote}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-terse.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-terse.cbx
new file mode 100644
index 0000000000..1ffd3ba454
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-terse.cbx
@@ -0,0 +1,40 @@
+\ProvidesFile{authortitle-terse.cbx}
+[\abx@cbxid]
+
+\RequireCitationStyle{authortitle}
+\ExecuteBibliographyOptions{singletitle,uniquename,uniquelist,autocite=inline}
+
+\renewbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\ifnameundef{labelname}
+ {\usebibmacro{cite:title}}
+ {\ifsingletitle
+ {\printtext[bibhyperref]{\printnames{labelname}}}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nametitledelim}}%
+ \usebibmacro{cite:title}}}}%
+ {\usebibmacro{cite:shorthand}}}
+
+\renewbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}}
+ {\ifthenelse{\ifsingletitle\AND
+ \(\iffieldundef{prenote}\OR\value{citecount}>1\)}
+ {\printtext[bibhyperref]{\printnames{labelname}}}
+ {\printnames{labelname}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nametitledelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle-ticomp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle-ticomp.cbx
new file mode 100644
index 0000000000..7dd3d8a528
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle-ticomp.cbx
@@ -0,0 +1,100 @@
+\ProvidesFile{authortitle-ticomp.cbx}
+[\abx@cbxid]
+
+\RequireCitationStyle{authortitle-icomp}
+\ExecuteBibliographyOptions{singletitle,uniquename,uniquelist,autocite=inline}
+
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\renewbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:title}}
+ {\ifnameundef{labelname}
+ {\usebibmacro{cite:title}}
+ {\ifsingletitle
+ {\printtext[bibhyperref]{\printnames{labelname}}}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nametitledelim}}%
+ \usebibmacro{cite:title}}}%
+ \savefield{namehash}{\cbx@lasthash}}}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\renewbibmacro*{citetitle}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}}
+ {\savefield{namehash}{\cbx@lasthash}}%
+ \usebibmacro{cite:title}}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\renewbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\compcitedelim}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}}}
+ {\ifnameundef{labelname}
+ {\ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}}}
+ {\ifthenelse{\ifsingletitle\AND
+ \(\iffieldundef{prenote}\OR\value{citecount}>1\)}
+ {\printtext[bibhyperref]{\printnames{labelname}}}
+ {\printnames{labelname}
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nametitledelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:title}}}%
+ {\usebibmacro{cite:shorthand}}}}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\renewbibmacro*{textcite:postnote}{%
+ \ifbool{cbx:parens}
+ {\setunit{\printdelim{postnotedelim}}}
+ {\setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{extpostnotedelim}\bibopenparen}}%
+ \printfield{postnote}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authortitle.cbx b/macros/latex/contrib/biblatex/latex/cbx/authortitle.cbx
new file mode 100644
index 0000000000..985ead9286
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authortitle.cbx
@@ -0,0 +1,115 @@
+\ProvidesFile{authortitle.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{uniquename,uniquelist,autocite=footnote}
+
+\renewcommand*{\iffinalcitedelim}{\iflastcitekey}
+
+\newbool{cbx:parens}
+
+\newbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{citetitle}{%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{textcite}{%
+ \printnames{labelname}%
+ \setunit*{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nametitledelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\usebibmacro{cite:title}}%
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{cite:title}{%
+ \printtext[bibhyperref]{%
+ \printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{textcite:postnote}{%
+ \iffieldundef{postnote}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen}
+ {}}
+ {\ifbool{cbx:parens}
+ {\printdelim{postnotedelim}}
+ {\printdelim{extpostnotedelim}\bibopenparen}%
+ \printfield{postnote}\bibcloseparen}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitle}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citetitle}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\textcite}
+ {\boolfalse{cbx:parens}}
+ {\usebibmacro{citeindex}%
+ \iffirstcitekey
+ {\setcounter{textcitetotal}{1}}
+ {\stepcounter{textcitetotal}%
+ \textcitedelim}%
+ \usebibmacro{textcite}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareMultiCiteCommand{\textcites}{\textcite}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authoryear-comp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authoryear-comp.cbx
new file mode 100644
index 0000000000..11d91b054e
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authoryear-comp.cbx
@@ -0,0 +1,267 @@
+\ProvidesFile{authoryear-comp.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,sortcites,
+ autocite=inline}
+
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newbool{cbx:parens}
+
+\newbibmacro*{cite:init}{%
+ \ifnumless{\value{multicitecount}}{2}
+ {\global\boolfalse{cbx:parens}%
+ \global\undef\cbx@lasthash
+ \global\undef\cbx@lastyear}
+ {\iffieldundef{prenote}
+ {}
+ {\global\undef\cbx@lasthash
+ \global\undef\cbx@lastyear}}}
+
+\newbibmacro*{cite:reinit}{%
+ \global\undef\cbx@lasthash
+ \global\undef\cbx@lastyear}
+
+\newbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
+ {\usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \usebibmacro{cite:reinit}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{namehash}{\cbx@lasthash}%
+ \savefield{labelyear}{\cbx@lastyear}}}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{citeyear}{%
+ \iffieldundef{shorthand}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}%
+ \usebibmacro{cite:reinit}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\usebibmacro{cite:labeldate+extradate}%
+ \savefield{namehash}{\cbx@lasthash}%
+ \savefield{labelyear}{\cbx@lastyear}}}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\iffieldundef{shorthand}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}
+ {\ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:label}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nonameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\usebibmacro{cite:shorthand}}}
+ {\printnames{labelname}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}}
+ {\usebibmacro{cite:labeldate+extradate}}%
+ \savefield{labelyear}{\cbx@lastyear}}
+ {\usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:label}{%
+ \iffieldundef{label}
+ {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
+ {\printtext[bibhyperref]{\printfield{label}}}}
+
+\newbibmacro*{cite:labeldate+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[bibhyperref]{\printlabeldateextra}}}
+
+\newbibmacro{cite:labelyear+extrayear}{%
+ \blx@warning{bibmacro 'cite:labelyear+extrayear' is deprecated.\MessageBreak
+ Please use 'cite:labeldate+extradate'.\MessageBreak
+ Using 'cite:labeldate+extradate' instead}%
+ \usebibmacro{cite:labeldate+extradate}}
+
+\newbibmacro*{cite:extradate}{%
+ \iffieldundef{extradate}
+ {}
+ {\printtext[bibhyperref]{\printfield{extradate}}}}
+
+\newbibmacro{cite:extrayear}{%
+ \blx@warning{bibmacro 'cite:extrayear' is deprecated.\MessageBreak
+ Please use 'cite:extradate'.\MessageBreak
+ Using 'cite:extradate' instead}%
+ \usebibmacro{cite:extradate}}
+
+\newbibmacro*{textcite:postnote}{%
+ \usebibmacro{postnote}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibparens]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{cite:init}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{textcite}}
+ {}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{cite:init}}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[2]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}
+
+\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite}
+ {\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite}
+ {\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]
+ {\footcitetext}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\smartcite}{\setunit{\multicitedelim}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authoryear-ibid.cbx b/macros/latex/contrib/biblatex/latex/cbx/authoryear-ibid.cbx
new file mode 100644
index 0000000000..2f361a0033
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authoryear-ibid.cbx
@@ -0,0 +1,173 @@
+\ProvidesFile{authoryear-ibid.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,pagetracker,
+ ibidtracker=constrict,autocite=inline}
+
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{\iflastcitekey}
+
+\newbool{cbx:parens}
+\newbool{cbx:loccit}
+
+\DeclareBibliographyOption[boolean]{ibidpage}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{loccittracker=false}}}
+
+\newbibmacro*{cite}{%
+ \global\boolfalse{cbx:loccit}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
+ {\usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nameyeardelim}}}%
+ \usebibmacro{cite:labeldate+extradate}}}
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{citeyear}{%
+ \global\boolfalse{cbx:loccit}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}}
+ {\usebibmacro{cite:labeldate+extradate}}}}
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{textcite}{%
+ \global\boolfalse{cbx:loccit}%
+ \ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:label}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nonameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\usebibmacro{cite:shorthand}}}
+ {\printnames{labelname}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}}
+ {\usebibmacro{cite:labeldate+extradate}}}}
+ {\usebibmacro{cite:shorthand}}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
+ \ifloccit
+ {\global\booltrue{cbx:loccit}}
+ {}}
+
+\newbibmacro*{cite:label}{%
+ \iffieldundef{label}
+ {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
+ {\printtext[bibhyperref]{\printfield{label}}}}
+
+\newbibmacro*{cite:labeldate+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[bibhyperref]{\printlabeldateextra}}}
+
+\newbibmacro{cite:labelyear+extrayear}{%
+ \blx@warning{bibmacro 'cite:labelyear+extrayear' is deprecated.\MessageBreak
+ Please use 'cite:labeldate+extradate'.\MessageBreak
+ Using 'cite:labeldate+extradate' instead}%
+ \usebibmacro{cite:labeldate+extradate}}
+
+\newbibmacro*{cite:postnote}{%
+ \ifbool{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\newbibmacro*{textcite:postnote}{%
+ \ifthenelse{\iffieldundef{postnote}\OR\boolean{cbx:loccit}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen}
+ {}}
+ {\ifbool{cbx:parens}
+ {\printdelim{postnotedelim}}
+ {\printdelim{extpostnotedelim}\bibopenparen}%
+ \printfield{postnote}\bibcloseparen}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\textcite}
+ {\boolfalse{cbx:parens}}
+ {\usebibmacro{citeindex}%
+ \iffirstcitekey
+ {\setcounter{textcitetotal}{1}}
+ {\stepcounter{textcitetotal}%
+ \textcitedelim}%
+ \usebibmacro{textcite}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareMultiCiteCommand{\textcites}{\textcite}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authoryear-icomp.cbx b/macros/latex/contrib/biblatex/latex/cbx/authoryear-icomp.cbx
new file mode 100644
index 0000000000..a194473bea
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authoryear-icomp.cbx
@@ -0,0 +1,296 @@
+\ProvidesFile{authoryear-icomp.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,ibidtracker=constrict,
+ pagetracker,sortcites,autocite=inline}
+
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newbool{cbx:parens}
+\newbool{cbx:loccit}
+
+\DeclareBibliographyOption[boolean]{ibidpage}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{loccittracker=false}}}
+
+\newbibmacro*{cite:init}{%
+ \global\boolfalse{cbx:loccit}%
+ \ifnumless{\value{multicitecount}}{2}
+ {\global\boolfalse{cbx:parens}%
+ \global\undef\cbx@lasthash
+ \global\undef\cbx@lastyear}
+ {\iffieldundef{prenote}
+ {}
+ {\global\undef\cbx@lasthash
+ \global\undef\cbx@lastyear}}}
+
+\newbibmacro*{cite:reinit}{%
+ \global\undef\cbx@lasthash
+ \global\undef\cbx@lastyear}
+
+\newbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
+ {\usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \usebibmacro{cite:reinit}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{namehash}{\cbx@lasthash}%
+ \savefield{labelyear}{\cbx@lastyear}}}}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{citeyear}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}%
+ \usebibmacro{cite:reinit}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\usebibmacro{cite:labeldate+extradate}%
+ \savefield{namehash}{\cbx@lasthash}%
+ \savefield{labelyear}{\cbx@lastyear}}}}}
+ {\usebibmacro{cite:shorthand}%
+ \usebibmacro{cite:reinit}}%
+ \setunit{\multicitedelim}}
+
+\newbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\iffieldundef{shorthand}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}
+ {\ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:label}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nonameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:labeldate+extradate}}}
+ {\usebibmacro{cite:shorthand}}}
+ {\printnames{labelname}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:labeldate+extradate}}}%
+ \savefield{labelyear}{\cbx@lastyear}}
+ {\usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:label}{%
+ \iffieldundef{label}
+ {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
+ {\printtext[bibhyperref]{\printfield{label}}}}
+
+\newbibmacro*{cite:labeldate+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[bibhyperref]{\printlabeldateextra}}}
+
+\newbibmacro{cite:labelyear+extrayear}{%
+ \blx@warning{bibmacro 'cite:labelyear+extrayear' is deprecated.\MessageBreak
+ Please use 'cite:labeldate+extradate'.\MessageBreak
+ Using 'cite:labeldate+extradate' instead}%
+ \usebibmacro{cite:labeldate+extradate}}
+
+\newbibmacro*{cite:extradate}{%
+ \iffieldundef{extradate}
+ {}
+ {\printtext[bibhyperref]{\printfield{extradate}}}}
+
+\newbibmacro{cite:extrayear}{%
+ \blx@warning{bibmacro 'cite:extrayear' is deprecated.\MessageBreak
+ Please use 'cite:extradate'.\MessageBreak
+ Using 'cite:extradate' instead}%
+ \usebibmacro{cite:extradate}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
+ \ifloccit
+ {\global\booltrue{cbx:loccit}}
+ {}}
+
+\newbibmacro*{cite:postnote}{%
+ \ifbool{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\newbibmacro*{textcite:postnote}{%
+ \ifbool{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibparens]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{cite:init}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{textcite}}
+ {}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{cite:init}}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[2]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}
+
+\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\parencites}[\mkbibparens]
+ {\parencite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]
+ {\footcite}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]
+ {\footcitetext}{\setunit{\multicitedelim}}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\smartcite}{\setunit{\multicitedelim}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/authoryear.cbx b/macros/latex/contrib/biblatex/latex/cbx/authoryear.cbx
new file mode 100644
index 0000000000..49c8d9d03a
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/authoryear.cbx
@@ -0,0 +1,141 @@
+\ProvidesFile{authoryear.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,autocite=inline}
+
+\renewcommand*{\iffinalcitedelim}{\iflastcitekey}
+
+\newbool{cbx:parens}
+
+\newbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
+ {\usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nameyeardelim}}}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{citeyear}{%
+ \iffieldundef{shorthand}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}}
+ {\usebibmacro{cite:labeldate+extradate}}}
+ {\usebibmacro{cite:shorthand}}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:label}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nonameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\usebibmacro{cite:shorthand}}}
+ {\printnames{labelname}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{citeyear}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperref]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:label}{%
+ \iffieldundef{label}
+ {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
+ {\printtext[bibhyperref]{\printfield{label}}}}
+
+\newbibmacro*{cite:labeldate+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[bibhyperref]{\printlabeldateextra}}}
+
+\newbibmacro{cite:labelyear+extrayear}{%
+ \blx@warning{bibmacro 'cite:labelyear+extrayear' is deprecated.\MessageBreak
+ Please use 'cite:labeldate+extradate'.\MessageBreak
+ Using 'cite:labeldate+extradate' instead}%
+ \usebibmacro{cite:labeldate+extradate}}
+
+\newbibmacro*{textcite:postnote}{%
+ \iffieldundef{postnote}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen}
+ {}}
+ {\ifbool{cbx:parens}
+ {\setunit{\printdelim{postnotedelim}}}
+ {\setunit{\printdelim{extpostnotedelim}\bibopenparen}}%
+ \printfield{postnote}\bibcloseparen}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}%
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\cite}
+ {\usebibmacro{prenote}}%
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}%
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\textcite}
+ {\boolfalse{cbx:parens}}
+ {\usebibmacro{citeindex}%
+ \iffirstcitekey
+ {\setcounter{textcitetotal}{1}}
+ {\stepcounter{textcitetotal}%
+ \textcitedelim}%
+ \usebibmacro{textcite}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareMultiCiteCommand{\textcites}{\textcite}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/debug.cbx b/macros/latex/contrib/biblatex/latex/cbx/debug.cbx
new file mode 100644
index 0000000000..dc3405dd7f
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/debug.cbx
@@ -0,0 +1,93 @@
+\ProvidesFile{debug.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{autocite=plain}
+
+\DeclareUrlCommand{\cbx@citekey}{\urlstyle{citekey}}
+\def\url@citekeystyle{\def\UrlFont{\ttfamily}}
+
+\DeclareFieldFormat{key}{\cbx@citekey{#1}}
+\DeclareFieldFormat{pre}{\texttt{pre=\detokenize{#1}}}
+\DeclareFieldFormat{post}{\texttt{post=\detokenize{#1}}}
+\DeclareFieldFormat{meta}{\texttt{#1}}
+
+\renewbibmacro*{multiprenote}{%
+ \printtext[meta]{[multi}%
+ \setunit{\addspace}%
+ \printfield[pre]{multiprenote}%
+ \setunit{\addspace}%
+ \printfield[post]{multipostnote}%
+ \setunit{\addspace}}
+
+\renewbibmacro*{multipostnote}{%
+ \printtext[meta]{]}}
+
+\newbibmacro*{begin}[1]{%
+ \printtext[meta]{[#1}%
+ \setunit{\addspace}%
+ \printfield[pre]{prenote}%
+ \setunit{\addspace}%
+ \printfield[post]{postnote}%
+ \setunit{\addspace}%
+ \printtext[meta]{key=}}
+
+\newbibmacro*{end}{%
+ \printtext[meta]{]}}
+
+\newbibmacro*{key}{%
+ \printtext[bibhyperref]{\printfield[key]{entrykey}}}
+
+\newbibmacro*{next}{%
+ \printtext[meta]{\addcomma}%
+ \setunit{\addspace}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{begin}{cite}}
+ {\usebibmacro{key}}
+ {\usebibmacro{next}}
+ {\usebibmacro{end}}
+
+\DeclareCiteCommand{\parencite}
+ {\usebibmacro{begin}{parencite}}
+ {\usebibmacro{key}}
+ {\usebibmacro{next}}
+ {\usebibmacro{end}}
+
+\DeclareCiteCommand{\footcite}
+ {\usebibmacro{begin}{footcite}}
+ {\usebibmacro{key}}
+ {\usebibmacro{next}}
+ {\usebibmacro{end}}
+
+\DeclareCiteCommand{\footcitetext}
+ {\usebibmacro{begin}{footcitetext}}
+ {\usebibmacro{key}}
+ {\usebibmacro{next}}
+ {\usebibmacro{end}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{begin}{smartcite}}
+ {\usebibmacro{key}}
+ {\usebibmacro{next}}
+ {\usebibmacro{end}}
+
+\DeclareCiteCommand{\textcite}
+ {\usebibmacro{begin}{textcite}}
+ {\usebibmacro{key}}
+ {\usebibmacro{next}}
+ {\usebibmacro{end}}
+
+\DeclareCiteCommand{\supercite}
+ {\usebibmacro{begin}{supercite}}
+ {\usebibmacro{key}}
+ {\usebibmacro{next}}
+ {\usebibmacro{end}}
+
+\DeclareMultiCiteCommand{\cites}{\cite}{\addspace}
+\DeclareMultiCiteCommand{\parencites}{\parencite}{\addspace}
+\DeclareMultiCiteCommand{\footcites}{\footcite}{\addspace}
+\DeclareMultiCiteCommand{\footcitetexts}{\footcitetext}{\addspace}
+\DeclareMultiCiteCommand{\supercites}{\supercite}{\addspace}
+\DeclareMultiCiteCommand{\textcites}{\textcite}{\addspace}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/draft.cbx b/macros/latex/contrib/biblatex/latex/cbx/draft.cbx
new file mode 100644
index 0000000000..9823820769
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/draft.cbx
@@ -0,0 +1,73 @@
+\ProvidesFile{draft.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{autocite=plain}
+
+\DeclareFieldFormat{citekey}{\cbx@mkcitekey{#1}}
+\DeclareUrlCommand{\cbx@mkcitekey}{\urlstyle{citekey}}
+\def\url@citekeystyle{\def\UrlFont{\bfseries}}
+\newbool{cbx:parens}
+
+\newbibmacro*{cite}{%
+ \printtext[bibhyperref]{\printfield[citekey]{entrykey}}}
+
+\newbibmacro*{textcite}{%
+ \printnames{labelname}%
+ \setunit*{%
+ \global\booltrue{cbx:parens}%
+ \addspace\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite}}
+
+\newbibmacro*{textcite:postnote}{%
+ \iffieldundef{postnote}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen}
+ {}}
+ {\ifbool{cbx:parens}
+ {\setunit{\printdelim{postnotedelim}}}
+ {\setunit{\addspace\bibopenparen}}%
+ \printfield{postnote}\bibcloseparen}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\textcite}
+ {\boolfalse{cbx:parens}}
+ {\usebibmacro{textcite}}
+ {\ifbool{cbx:parens}
+ {\bibcloseparen\global\boolfalse{cbx:parens}}
+ {}%
+ \multicitedelim}
+ {\usebibmacro{textcite:postnote}}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/numeric-comp.cbx b/macros/latex/contrib/biblatex/latex/cbx/numeric-comp.cbx
new file mode 100644
index 0000000000..b649cbeaee
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/numeric-comp.cbx
@@ -0,0 +1,233 @@
+\ProvidesFile{numeric-comp.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labelnumber,sortcites,autocite=inline}
+
+\renewcommand*{\multicitedelim}{\addcomma\space}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\providebool{bbx:subentry}
+\newbool{cbx:parens}
+
+\newcounter{cbx@tempcnta}
+\newcounter{cbx@tempcntb}
+
+\DeclareFieldFormat{entrysetcount}{\mknumalph{#1}}
+
+\newbibmacro*{cite:init}{%
+ \global\boolfalse{cbx:parens}%
+ \global\undef\cbx@lasthash
+ \global\undef\cbx@lastnumber
+ \global\undef\cbx@lastprefix
+ \setcounter{cbx@tempcnta}{0}%
+ \setcounter{cbx@tempcntb}{-2}}
+
+\newbibmacro*{cite:comp}{%
+ \addtocounter{cbx@tempcntb}{1}%
+ \iffieldundef{shorthand}
+ {\ifbool{bbx:subentry}
+ {\iffieldundef{entrysetcount}
+ {\usebibmacro{cite:comp:comp}}
+ {\usebibmacro{cite:comp:inset}}}
+ {\usebibmacro{cite:comp:comp}}}
+ {\usebibmacro{cite:comp:shand}}}
+
+\newbibmacro*{cite:comp:comp}{%
+ \ifboolexpr{
+ ( test {\iffieldundef{labelprefix}} and test {\ifundef\cbx@lastprefix} )
+ or
+ test {\iffieldequals{labelprefix}{\cbx@lastprefix}}
+ }
+ {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}}
+ {\savefield{entrykey}{\cbx@lastkey}%
+ \savefield{labelnumber}{\cbx@lastnumber}%
+ \addtocounter{cbx@tempcnta}{1}}
+ {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}-1}
+ {}
+ {\usebibmacro{cite:dump}%
+ \ifnumgreater{\value{cbx@tempcntb}}{-1}
+ {\multicitedelim}
+ {}%
+ \printtext[bibhyperref]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}}}
+ {\usebibmacro{cite:comp:end}}%
+ \setcounter{cbx@tempcntb}{\thefield{labelnumber}}%
+ \savefield{labelprefix}{\cbx@lastprefix}}
+
+\newbibmacro*{cite:comp:end}{%
+ \usebibmacro{cite:dump}%
+ \ifnumgreater{\value{cbx@tempcntb}}{-1}
+ {\multicitedelim}
+ {}%
+ \printtext[bibhyperref]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}
+
+\newbibmacro*{cite:comp:inset}{%
+ \usebibmacro{cite:dump}%
+ \ifnumgreater{\value{cbx@tempcntb}}{-1}
+ {\multicitedelim}
+ {}%
+ \printtext[bibhyperref]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}%
+ \printfield{entrysetcount}}%
+ \setcounter{cbx@tempcntb}{-1}}
+
+\newbibmacro*{cite:comp:shand}{%
+ \usebibmacro{cite:dump}%
+ \ifnumgreater{\value{cbx@tempcntb}}{-1}
+ {\multicitedelim}
+ {}%
+ \printtext[bibhyperref]{\printfield{shorthand}}%
+ \setcounter{cbx@tempcntb}{-1}}
+
+\newbibmacro*{cite:dump}{%
+ \ifnumgreater{\value{cbx@tempcnta}}{0}
+ {\ifnumgreater{\value{cbx@tempcnta}}{1}
+ {\bibrangedash}
+ {\multicitedelim}%
+ \bibhyperref[\cbx@lastkey]{%
+ \ifdef\cbx@lastprefix
+ {\printtext[labelprefix]{\cbx@lastprefix}}
+ {}%
+ \printtext[labelnumber]{\cbx@lastnumber}}}
+ {}%
+ \setcounter{cbx@tempcnta}{0}%
+ \global\undef\cbx@lastprefix}
+
+\newbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\usebibmacro{cite:comp}}
+ {\usebibmacro{cite:dump}%
+ \ifbool{cbx:parens}
+ {\printtext{\bibclosebracket}\global\boolfalse{cbx:parens}}
+ {}%
+ \iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \usebibmacro{cite:init}%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}%
+ \setunit*{\printdelim{namelabeldelim}}%
+ \printtext{\bibopenbracket}\global\booltrue{cbx:parens}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite:comp}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}}
+
+\DeclareCiteCommand{\cite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite:comp}}
+ {}
+ {\usebibmacro{cite:dump}%
+ \usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite:comp}}
+ {}
+ {\usebibmacro{cite:dump}%
+ \usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite:comp}}
+ {}
+ {\usebibmacro{cite:dump}%
+ \usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite:comp}}
+ {}
+ {\usebibmacro{cite:dump}%
+ \usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite:comp}}
+ {}
+ {\usebibmacro{cite:dump}%
+ \usebibmacro{postnote}}
+
+\DeclareCiteCommand{\supercite}[\mkbibsuperscript]
+ {\usebibmacro{cite:init}%
+ \let\multicitedelim=\supercitedelim
+ \iffieldundef{prenote}
+ {}
+ {\BibliographyWarning{Ignoring prenote argument}}%
+ \iffieldundef{postnote}
+ {}
+ {\BibliographyWarning{Ignoring postnote argument}}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite:comp}}
+ {}
+ {\usebibmacro{cite:dump}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{cite:init}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{textcite}}
+ {}
+ {\usebibmacro{cite:dump}%
+ \usebibmacro{postnote}%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{cite:init}}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[2]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}
+
+\DeclareMultiCiteCommand{\cites}[\mkbibbrackets]{\cite}{\multicitedelim}
+\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\smartcite}{\multicitedelim}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/numeric-verb.cbx b/macros/latex/contrib/biblatex/latex/cbx/numeric-verb.cbx
new file mode 100644
index 0000000000..e64e19e810
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/numeric-verb.cbx
@@ -0,0 +1,100 @@
+\ProvidesFile{numeric-verb.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labelnumber,autocite=inline}
+
+\renewcommand*{\multicitedelim}{\addcomma\space}
+\renewcommand*{\iffinalcitedelim}{\iflastcitekey}
+
+\providebool{bbx:subentry}
+
+\DeclareFieldFormat{entrysetcount}{\mknumalph{#1}}
+
+\newbibmacro*{cite}{%
+ \printtext[bibhyperref]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}%
+ \ifbool{bbx:subentry}
+ {\printfield{entrysetcount}}
+ {}}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}%
+ \printdelim{namelabeldelim}\bibopenbracket
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite}}
+
+\DeclareCiteCommand{\cite}
+ {\bibopenbracket
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \ifnumgreater{\value{citecount}}{1}
+ {\bibopenbracket}
+ {}%
+ \usebibmacro{cite}}
+ {\bibclosebracket\multicitedelim}
+ {\usebibmacro{postnote}%
+ \bibclosebracket}
+
+\DeclareCiteCommand{\parencite}[\mkbibbrackets]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\textcite}
+ {}
+ {\usebibmacro{citeindex}%
+ \iffirstcitekey
+ {\setcounter{textcitetotal}{1}}
+ {\stepcounter{textcitetotal}%
+ \textcitedelim}%
+ \usebibmacro{textcite}}
+ {\bibclosebracket}
+ {\usebibmacro{postnote}%
+ \bibclosebracket}
+
+\DeclareCiteCommand{\supercite}[\mkbibsuperscript]
+ {\iffieldundef{prenote}
+ {}
+ {\BibliographyWarning{Ignoring prenote argument}}%
+ \iffieldundef{postnote}
+ {}
+ {\BibliographyWarning{Ignoring postnote argument}}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\supercitedelim}
+ {}
+
+\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\smartcite}{\multicitedelim}
+\DeclareMultiCiteCommand{\textcites}{\textcite}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/numeric.cbx b/macros/latex/contrib/biblatex/latex/cbx/numeric.cbx
new file mode 100644
index 0000000000..8ea47d1338
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/numeric.cbx
@@ -0,0 +1,156 @@
+\ProvidesFile{numeric.cbx}
+[\abx@cbxid]
+
+\ExecuteBibliographyOptions{labelnumber,autocite=inline}
+
+\renewcommand*{\multicitedelim}{\addcomma\space}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\providebool{bbx:subentry}
+\newbool{cbx:parens}
+
+\DeclareFieldFormat{entrysetcount}{\mknumalph{#1}}
+
+\newbibmacro*{cite}{%
+ \printtext[bibhyperref]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}%
+ \ifbool{bbx:subentry}
+ {\printfield{entrysetcount}}
+ {}}}
+
+\newbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\setunit{\multicitedelim}}
+ {\ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}%
+ \setunit*{\printdelim{namelabeldelim}}%
+ \printtext{\bibopenbracket}\global\booltrue{cbx:parens}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\newbibmacro*{textcite:init}{%
+ \ifnumless{\value{multicitecount}}{2}
+ {\global\boolfalse{cbx:parens}%
+ \global\undef\cbx@lasthash}
+ {\global\undef\cbx@lasthash}}
+
+\newbibmacro*{textcite:postnote}{%
+ \usebibmacro{postnote}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+\DeclareCiteCommand{\cite}[\mkbibbrackets]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibbrackets]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\supercite}[\mkbibsuperscript]
+ {\iffieldundef{prenote}
+ {}
+ {\BibliographyWarning{Ignoring prenote argument}}%
+ \iffieldundef{postnote}
+ {}
+ {\BibliographyWarning{Ignoring postnote argument}}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\supercitedelim}
+ {}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{textcite}}
+ {}
+ {\usebibmacro{textcite:postnote}}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]
+ {\gdef\cbx@savedkeys{}%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \DeferNextCitekeyHook%
+ \usebibmacro{textcite:init}}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}%
+ \global\clearfield{multipostnote}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\stepcounter{textcitetotal}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {\protected@xappto\cbx@savedcites{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[2]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}
+
+\DeclareMultiCiteCommand{\cites}[\mkbibbrackets]{\cite}{\multicitedelim}
+\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\multicitedelim}
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\smartcite}{\multicitedelim}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/reading.cbx b/macros/latex/contrib/biblatex/latex/cbx/reading.cbx
new file mode 100644
index 0000000000..b9c47701d2
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/reading.cbx
@@ -0,0 +1,6 @@
+\ProvidesFile{reading.cbx}
+[\abx@cbxid]
+
+\RequireCitationStyle{authortitle}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-ibid.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-ibid.cbx
new file mode 100644
index 0000000000..7d9457779c
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-ibid.cbx
@@ -0,0 +1,262 @@
+\ProvidesFile{verbose-ibid.cbx}
+[\abx@cbxid]
+
+\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}}
+
+\DeclareFieldFormat{bibhyperlink}{%
+ \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+\DeclareFieldFormat{bibhypertarget}{%
+ \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+
+\newcommand*{\cbx@resetcount}{0}
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newtoggle{cbx:loccit}
+
+\newbibmacro*{cite:citepages}{}
+\newbibmacro*{cite:full:citepages}{}
+\newbibmacro*{cite:postnote}{}
+
+\DeclareBibliographyOption[boolean]{ibidpage}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{loccittracker=false}}}
+
+\DeclareBibliographyOption[string]{citepages}[permit]{%
+ \ifcsdef{cbx@opt@citepages@#1}
+ {\csuse{cbx@opt@citepages@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'citepages=#1'}
+ {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}}
+
+\providebibmacro*{cite:citepages}{}
+\providebibmacro*{cite:full:citepages}{}
+\providebibmacro*{cite:postnote}{}
+
+\def\cbx@opt@citepages@permit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@suppress{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \clearfield{pages}%
+ \clearfield{pagetotal}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@omit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ test {\iffieldpages{postnote}}
+ }
+ {\clearfield{pages}%
+ \clearfield{pagetotal}}
+ {}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@separate{%
+ \providetoggle{cbx:fullcite}%
+ \renewbibmacro*{cite:citepages}{%
+ \global\togglefalse{cbx:fullcite}}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \global\toggletrue{cbx:fullcite}}%
+ \renewbibmacro*{cite:postnote}{%
+ \ifboolexpr{
+ togl {cbx:fullcite}
+ and
+ test {\iffieldpages{postnote}}
+ and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ (
+ not test {\iffieldundef{pages}}
+ or
+ not test {\iffieldundef{pagetotal}}
+ )
+ }
+ {\usebibmacro{cite:postnote:pages}}
+ {\usebibmacro{cite:postnote:ibidpage}}}
+ \providebibmacro*{cite:postnote:pages}{%
+ \setunit{\printdelim{postnotedelim}}%
+ \bibstring{thiscite}%
+ \setunit{\addspace}%
+ \printfield{postnote}}}
+
+\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict,
+ pagetracker,autocite=footnote,citepages=permit}
+
+\newbibmacro*{cite}{%
+ \usebibmacro{cite:citepages}%
+ \global\togglefalse{cbx:loccit}%
+ \ifciteseen
+ {\iffieldundef{shorthand}
+ {\ifboolexpr{
+ test {\ifciteibid}
+ and
+ not test {\iffirstonpage}
+ }
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:short}}}
+ {\usebibmacro{cite:shorthand}}}
+ {\usebibmacro{cite:full}}}
+
+\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{cite:short}{%
+ \printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \printtext[bibhyperlink]{%
+ \printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
+ \ifloccit
+ {\global\toggletrue{cbx:loccit}}
+ {}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperlink]{%
+ \printfield{shorthand}}}
+
+\newbibmacro*{cite:postnote:ibidpage}{%
+ \iftoggle{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}}
+
+\newbibmacro*{textcite:init}{%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \iffirstcitekey
+ {\global\undef\cbx@lasthash}
+ {}}
+
+\newbibmacro*{textcite:count}{%
+ \stepcounter{textcitetotal}%
+ \ifnumgreater{\value{uniquelist}}{\value{maxnames}}
+ {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{uniquelist}}}
+ {}}
+ {\ifnumless{\value{labelname}}{\value{maxnames}}
+ {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{labelname}}}
+ {}}
+ {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{maxnames}}}
+ {}}}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \stepcounter{textcitecount}%
+ \usebibmacro{textcite}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
+ {\usebibmacro{textcite:init}%
+ \gdef\cbx@savedkeys{}%
+ \DeferNextCitekeyHook}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@footcite@args{%
+ (\thefield{multiprenote})(\thefield{multipostnote})}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\usebibmacro{textcite:count}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{\value{citetotal}}
+ {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
+ \protected@xappto\cbx@footcite@args{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
+ \iflastcitekey
+ {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
+ \protected@xappto\cbx@footcite@args{\nopunct}}
+ {}}
+ {}}
+ {}
+ {}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[3]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \setcounter{textcitemaxnames}{0}%
+ \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
+ \cbx@textcite@args\@empty\cbx@footcite@args\@empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}
+ [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{%
+ \UseNextMultiCiteHook%
+ \AtNextMultiCite{%
+ \renewbibmacro{multiprenote}{}%
+ \renewbibmacro{multipostnote}{}}}{}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-inote.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-inote.cbx
new file mode 100644
index 0000000000..bb0b045754
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-inote.cbx
@@ -0,0 +1,321 @@
+\ProvidesFile{verbose-inote.cbx}
+[\abx@cbxid]
+
+\DeclareFieldFormat{bibhyperlink}{%
+ \bibhyperlink{%
+ \thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}}
+\DeclareFieldFormat{bibhypertarget}{%
+ \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}}
+
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newtoggle{cbx:loccit}
+\newtoggle{cbx:pageref}
+
+\newbibmacro*{cite:citepages}{}
+\newbibmacro*{cite:full:citepages}{}
+\newbibmacro*{cite:postnote}{}
+
+\DeclareBibliographyOption[boolean]{ibidpage}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{loccittracker=false}}}
+\DeclareBibliographyOption[boolean]{pageref}[true]{%
+ \settoggle{cbx:pageref}{#1}}
+
+\DeclareBibliographyOption[string]{citepages}[permit]{%
+ \ifcsdef{cbx@opt@citepages@#1}
+ {\csuse{cbx@opt@citepages@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'citepages=#1'}
+ {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}}
+
+\providebibmacro*{cite:citepages}{}
+\providebibmacro*{cite:full:citepages}{}
+\providebibmacro*{cite:postnote}{}
+
+\def\cbx@opt@citepages@permit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@suppress{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \clearfield{pages}%
+ \clearfield{pagetotal}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@omit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ test {\iffieldpages{postnote}}
+ }
+ {\clearfield{pages}%
+ \clearfield{pagetotal}}
+ {}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@separate{%
+ \providetoggle{cbx:fullcite}%
+ \renewbibmacro*{cite:citepages}{%
+ \global\togglefalse{cbx:fullcite}}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \global\toggletrue{cbx:fullcite}}%
+ \renewbibmacro*{cite:postnote}{%
+ \ifboolexpr{
+ togl {cbx:fullcite}
+ and
+ test {\iffieldpages{postnote}}
+ and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ (
+ not test {\iffieldundef{pages}}
+ or
+ not test {\iffieldundef{pagetotal}}
+ )
+ }
+ {\usebibmacro{cite:postnote:pages}}
+ {\usebibmacro{cite:postnote:ibidpage}}}
+ \providebibmacro*{cite:postnote:pages}{%
+ \setunit{\printdelim{postnotedelim}}%
+ \bibstring{thiscite}%
+ \setunit{\addspace}%
+ \printfield{postnote}}}
+
+\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict,
+ singletitle,pagetracker,autocite=footnote,citepages=permit}
+
+\newbibmacro*{cite}{%
+ \usebibmacro{cite:citepages}%
+ \global\togglefalse{cbx:loccit}%
+ \ifciteseen
+ {\iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{cite:ibid}}
+ {\usebibmacro{cite:short}}}
+ {\usebibmacro{cite:shorthand}}}
+ {\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}}}
+
+\newbibmacro*{cite:save}{%
+ \csxdef{cbx@t@\thefield{entrykey}}{\the\value{instcount}}}
+
+\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{cite:short}{%
+ \printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \printtext[bibhyperlink]{%
+ \printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperlink]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
+ \ifloccit
+ {\global\toggletrue{cbx:loccit}}
+ {}}
+
+\newbibmacro*{cite:postnote:ibidpage}{%
+ \iftoggle{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\newbibmacro*{footcite}{%
+ \usebibmacro{cite:citepages}%
+ \global\togglefalse{cbx:loccit}%
+ \ifciteseen
+ {\iffieldundef{shorthand}
+ {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
+ {\usebibmacro{footcite:ibid}}
+ {\usebibmacro{footcite:note}}}
+ {\usebibmacro{footcite:shorthand}}}
+ {\usebibmacro{footcite:full}%
+ \usebibmacro{footcite:save}}}
+
+\newbibmacro*{footcite:save}{%
+ \csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
+ \label{cbx@\the\value{instcount}}}
+
+\newbibmacro*{footcite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{footcite:note}{%
+ \ifnameundef{labelname}
+ {\printfield{label}}
+ {\printnames{labelname}}%
+ \ifsingletitle
+ {}
+ {\setunit*{\printdelim{nametitledelim}}%
+ \printfield[title]{labeltitle}}%
+ \setunit*{\addcomma\space}%
+ \printtext{%
+ \bibstring{seenote}\addnbspace
+ \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}%
+ \iftoggle{cbx:pageref}
+ {\ifsamepage{\the\value{instcount}}
+ {\csuse{cbx@f@\thefield{entrykey}}}
+ {}
+ {\addcomma\space\bibstring{page}\addnbspace
+ \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
+ {}}}
+
+\newbibmacro*{footcite:shorthand}{%
+ \printtext[bibhyperlink]{\printfield{shorthand}}}
+
+\newbibmacro*{footcite:ibid}{%
+ \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
+ \ifloccit
+ {\global\toggletrue{cbx:loccit}}
+ {}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{footcite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{footcite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}}
+
+\newbibmacro*{textcite:init}{%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \iffirstcitekey
+ {\global\undef\cbx@lasthash}
+ {}}
+
+\newbibmacro*{textcite:count}{%
+ \stepcounter{textcitetotal}%
+ \ifnumgreater{\value{uniquelist}}{\value{maxnames}}
+ {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{uniquelist}}}
+ {}}
+ {\ifnumless{\value{labelname}}{\value{maxnames}}
+ {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{labelname}}}
+ {}}
+ {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{maxnames}}}
+ {}}}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \stepcounter{textcitecount}%
+ \usebibmacro{textcite}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
+ {\usebibmacro{textcite:init}%
+ \gdef\cbx@savedkeys{}%
+ \DeferNextCitekeyHook}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@footcite@args{%
+ (\thefield{multiprenote})(\thefield{multipostnote})}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\usebibmacro{textcite:count}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{\value{citetotal}}
+ {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
+ \protected@xappto\cbx@footcite@args{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
+ \iflastcitekey
+ {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
+ \protected@xappto\cbx@footcite@args{\nopunct}}
+ {}}
+ {}}
+ {}
+ {}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[3]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \setcounter{textcitemaxnames}{0}%
+ \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
+ \cbx@textcite@args\empty\cbx@footcite@args\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}
+ [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{%
+ \UseNextMultiCiteHook%
+ \AtNextMultiCite{%
+ \renewbibmacro{multiprenote}{}%
+ \renewbibmacro{multipostnote}{}}}{}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-note.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-note.cbx
new file mode 100644
index 0000000000..b1c8f0683a
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-note.cbx
@@ -0,0 +1,292 @@
+\ProvidesFile{verbose-note.cbx}
+[\abx@cbxid]
+
+\DeclareFieldFormat{bibhyperlink}{%
+ \bibhyperlink{%
+ \thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}}
+\DeclareFieldFormat{bibhypertarget}{%
+ \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}}
+
+\newtoggle{cbx:pageref}
+
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newbibmacro*{cite:citepages}{}
+\newbibmacro*{cite:full:citepages}{}
+\newbibmacro*{cite:postnote}{}
+
+\DeclareBibliographyOption[boolean]{pageref}[true]{%
+ \settoggle{cbx:pageref}{#1}%
+ \iftoggle{cbx:pageref}
+ {\ExecuteBibliographyOptions{pagetracker}}
+ {}}
+
+\DeclareBibliographyOption[string]{citepages}[permit]{%
+ \ifcsdef{cbx@opt@citepages@#1}
+ {\csuse{cbx@opt@citepages@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'citepages=#1'}
+ {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}}
+
+\providebibmacro*{cite:citepages}{}
+\providebibmacro*{cite:full:citepages}{}
+\providebibmacro*{cite:postnote}{}
+
+\def\cbx@opt@citepages@permit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{}%
+ \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}}
+
+\def\cbx@opt@citepages@suppress{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \clearfield{pages}%
+ \clearfield{pagetotal}}%
+ \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}}
+
+\def\cbx@opt@citepages@omit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ test {\iffieldpages{postnote}}
+ }
+ {\clearfield{pages}%
+ \clearfield{pagetotal}}
+ {}}%
+ \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}}
+
+\def\cbx@opt@citepages@separate{%
+ \providetoggle{cbx:fullcite}%
+ \renewbibmacro*{cite:citepages}{%
+ \global\togglefalse{cbx:fullcite}}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \global\toggletrue{cbx:fullcite}}%
+ \renewbibmacro*{cite:postnote}{%
+ \ifboolexpr{
+ togl {cbx:fullcite}
+ and
+ test {\iffieldpages{postnote}}
+ and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ (
+ not test {\iffieldundef{pages}}
+ or
+ not test {\iffieldundef{pagetotal}}
+ )
+ }
+ {\usebibmacro{cite:postnote:pages}}
+ {\usebibmacro{postnote}}}
+ \providebibmacro*{cite:postnote:pages}{%
+ \setunit{\printdelim{postnotedelim}}%
+ \bibstring{thiscite}%
+ \setunit{\addspace}%
+ \printfield{postnote}}}
+
+\ExecuteBibliographyOptions{citetracker=context,singletitle,autocite=footnote,
+ citepages=permit}
+
+\newbibmacro*{cite}{%
+ \usebibmacro{cite:citepages}%
+ \ifciteseen
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:short}}
+ {\usebibmacro{cite:shorthand}}}
+ {\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}}}
+
+\newbibmacro*{cite:save}{%
+ \csxdef{cbx@t@\thefield{entrykey}}{\the\value{instcount}}}
+
+\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{cite:short}{%
+ \printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \printtext[bibhyperlink]{%
+ \printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperlink]{\printfield{shorthand}}}
+
+\newbibmacro*{footcite}{%
+ \usebibmacro{cite:citepages}%
+ \ifciteseen
+ {\iffieldundef{shorthand}
+ {\usebibmacro{footcite:note}}
+ {\usebibmacro{footcite:shorthand}}}
+ {\usebibmacro{footcite:full}%
+ \usebibmacro{footcite:save}}}
+
+\newbibmacro*{footcite:save}{%
+ \csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
+ \label{cbx@\the\value{instcount}}}
+
+\newbibmacro*{footcite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{footcite:note}{%
+ \ifnameundef{labelname}
+ {\printfield{label}}
+ {\printnames{labelname}}%
+ \ifsingletitle
+ {}
+ {\setunit*{\printdelim{nametitledelim}}%
+ \printfield[title]{labeltitle}}%
+ \setunit*{\addcomma\space}%
+ \printtext{%
+ \bibstring{seenote}\addnbspace
+ \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}%
+ \iftoggle{cbx:pageref}
+ {\ifsamepage{\the\value{instcount}}
+ {\csuse{cbx@f@\thefield{entrykey}}}
+ {}
+ {\addcomma\space\bibstring{page}\addnbspace
+ \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
+ {}}}
+
+\newbibmacro*{footcite:shorthand}{%
+ \printtext[bibhyperlink]{\printfield{shorthand}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{footcite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{footcite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \iffootnote
+ {\usebibmacro{footcite}}
+ {\usebibmacro{cite}}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}}
+
+\newbibmacro*{textcite:init}{%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \iffirstcitekey
+ {\global\undef\cbx@lasthash}
+ {}}
+
+\newbibmacro*{textcite:count}{%
+ \stepcounter{textcitetotal}%
+ \ifnumgreater{\value{uniquelist}}{\value{maxnames}}
+ {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{uniquelist}}}
+ {}}
+ {\ifnumless{\value{labelname}}{\value{maxnames}}
+ {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{labelname}}}
+ {}}
+ {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{maxnames}}}
+ {}}}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \stepcounter{textcitecount}%
+ \usebibmacro{textcite}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
+ {\usebibmacro{textcite:init}%
+ \gdef\cbx@savedkeys{}%
+ \DeferNextCitekeyHook}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@footcite@args{%
+ (\thefield{multiprenote})(\thefield{multipostnote})}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\usebibmacro{textcite:count}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{\value{citetotal}}
+ {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
+ \protected@xappto\cbx@footcite@args{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
+ \iflastcitekey
+ {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
+ \protected@xappto\cbx@footcite@args{\nopunct}}
+ {}}
+ {}}
+ {}
+ {}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[3]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \setcounter{textcitemaxnames}{0}%
+ \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
+ \cbx@textcite@args\empty\cbx@footcite@args\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}
+ [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{%
+ \UseNextMultiCiteHook%
+ \AtNextMultiCite{%
+ \renewbibmacro{multiprenote}{}%
+ \renewbibmacro{multipostnote}{}}}{}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-trad1.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad1.cbx
new file mode 100644
index 0000000000..1f24a4dac9
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad1.cbx
@@ -0,0 +1,294 @@
+\ProvidesFile{verbose-trad1.cbx}
+[\abx@cbxid]
+
+\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}}
+
+\DeclareFieldFormat{bibhyperlink}{%
+ \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+\DeclareFieldFormat{bibhypertarget}{%
+ \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+
+\newcommand*{\cbx@resetcount}{0}
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newtoggle{cbx:ibidpage}
+\newtoggle{cbx:loccit}
+\newbool{cbx:noidem}
+
+\DeclareBibliographyOption[boolean]{ibidpage}[true]{%
+ \settoggle{cbx:ibidpage}{#1}}
+
+\DeclareBibliographyOption[boolean]{strict}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{ibidtracker=constrict,idemtracker=constrict}}
+ {\ExecuteBibliographyOptions{ibidtracker=context,idemtracker=context}}}
+
+\DeclareBibliographyOption[string]{citepages}[permit]{%
+ \ifcsdef{cbx@opt@citepages@#1}
+ {\csuse{cbx@opt@citepages@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'citepages=#1'}
+ {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}}
+
+\providebibmacro*{cite:citepages}{}
+\providebibmacro*{cite:full:citepages}{}
+\providebibmacro*{cite:postnote}{}
+
+\def\cbx@opt@citepages@permit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@suppress{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \clearfield{pages}%
+ \clearfield{pagetotal}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@omit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ test {\iffieldpages{postnote}}
+ }
+ {\clearfield{pages}%
+ \clearfield{pagetotal}}
+ {}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@separate{%
+ \providetoggle{cbx:fullcite}%
+ \renewbibmacro*{cite:citepages}{%
+ \global\togglefalse{cbx:fullcite}}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \global\toggletrue{cbx:fullcite}}%
+ \renewbibmacro*{cite:postnote}{%
+ \ifboolexpr{
+ togl {cbx:fullcite}
+ and
+ test {\iffieldpages{postnote}}
+ and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ (
+ not test {\iffieldundef{pages}}
+ or
+ not test {\iffieldundef{pagetotal}}
+ )
+ }
+ {\usebibmacro{cite:postnote:pages}}
+ {\usebibmacro{cite:postnote:ibidpage}}}
+ \providebibmacro*{cite:postnote:pages}{%
+ \setunit{\printdelim{postnotedelim}}%
+ \bibstring{thiscite}%
+ \setunit{\addspace}%
+ \printfield{postnote}}}
+
+\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict,
+ idemtracker=constrict,opcittracker=context,loccittracker=context,
+ autocite=footnote,citepages=permit}
+
+\newbibmacro*{cite:save}{%
+ \csxdef{cbx@lastcite@\thefield{entrykey}}{\the\value{instcount}}%
+ \global\boolfalse{cbx:noidem}}
+
+\newbibmacro*{cite}{%
+ \usebibmacro{cite:citepages}%
+ \global\togglefalse{cbx:loccit}%
+ \bibhypertarget{cite\the\value{instcount}}{%
+ \ifciteseen
+ {\iffieldundef{shorthand}
+ {\ifciteibid
+ {\usebibmacro{cite:ibid}}
+ {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
+ {\usebibmacro{cite:idem}%
+ \usebibmacro{cite:title}}
+ {\ifnameundef{labelname}
+ {\usebibmacro{cite:title}}
+ {\usebibmacro{cite:name}%
+ \ifopcit
+ {\ifloccit
+ {\usebibmacro{cite:loccit}}
+ {\usebibmacro{cite:opcit}}}
+ {\usebibmacro{cite:title}}}}}%
+ \usebibmacro{cite:save}}
+ {\usebibmacro{cite:shorthand}}}
+ {\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}}}}
+
+\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{cite:name}{%
+ \printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}}
+
+\newbibmacro*{cite:idem}{%
+ \bibstring[\mkibid]{idem\thefield{gender}}%
+ \setunit{\printdelim{nametitledelim}}}
+
+\newbibmacro*{cite:title}{%
+ \printtext[bibhyperlink]{%
+ \printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:opcit}{%
+ \printtext[bibhyperlink]{\bibstring[\mkibid]{opcit}}}
+
+\newbibmacro*{cite:loccit}{%
+ \printtext{%
+ \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
+ \bibstring[\mkibid]{loccit}}}%
+ \global\toggletrue{cbx:loccit}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext{%
+ \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
+ \bibstring[\mkibid]{ibidem}}}%
+ \ifboolexpr{ test {\ifloccit} and togl {cbx:ibidpage} }
+ {\global\toggletrue{cbx:loccit}}
+ {}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperlink]{\printfield{shorthand}}%
+ \global\booltrue{cbx:noidem}}
+
+\newbibmacro*{cite:postnote:ibidpage}{%
+ \iftoggle{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}}
+
+\newbibmacro*{textcite:init}{%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \iffirstcitekey
+ {\global\undef\cbx@lasthash}
+ {}}
+
+\newbibmacro*{textcite:count}{%
+ \stepcounter{textcitetotal}%
+ \ifnumgreater{\value{uniquelist}}{\value{maxnames}}
+ {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{uniquelist}}}
+ {}}
+ {\ifnumless{\value{labelname}}{\value{maxnames}}
+ {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{labelname}}}
+ {}}
+ {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{maxnames}}}
+ {}}}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \stepcounter{textcitecount}%
+ \usebibmacro{textcite}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
+ {\usebibmacro{textcite:init}%
+ \gdef\cbx@savedkeys{}%
+ \DeferNextCitekeyHook}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@footcite@args{%
+ (\thefield{multiprenote})(\thefield{multipostnote})}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\usebibmacro{textcite:count}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{\value{citetotal}}
+ {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
+ \protected@xappto\cbx@footcite@args{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
+ \iflastcitekey
+ {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
+ \protected@xappto\cbx@footcite@args{\nopunct}}
+ {}}
+ {}}
+ {}
+ {}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[3]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \setcounter{textcitemaxnames}{0}%
+ \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
+ \cbx@textcite@args\empty\cbx@footcite@args\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}
+ [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{%
+ \UseNextMultiCiteHook%
+ \AtNextMultiCite{%
+ \renewbibmacro{multiprenote}{}%
+ \renewbibmacro{multipostnote}{}}}{}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-trad2.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad2.cbx
new file mode 100644
index 0000000000..60e5dfc802
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad2.cbx
@@ -0,0 +1,288 @@
+\ProvidesFile{verbose-trad2.cbx}
+[\abx@cbxid]
+
+\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}}
+
+\DeclareFieldFormat{bibhyperlink}{%
+ \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+
+\DeclareFieldFormat{bibhypertarget}{%
+ \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+
+\newcommand*{\cbx@resetcount}{0}
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newtoggle{cbx:fullcite}
+\newtoggle{cbx:loccit}
+\newbool{cbx:noidem}
+
+\newbibmacro*{cite:citepages}{}
+\newbibmacro*{cite:full:citepages}{}
+\newbibmacro*{cite:postnote}{}
+
+\DeclareBibliographyOption[boolean]{ibidpage}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{loccittracker=false}}}
+
+\DeclareBibliographyOption[boolean]{strict}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{ibidtracker=constrict,idemtracker=constrict}}
+ {\ExecuteBibliographyOptions{ibidtracker=context,idemtracker=context}}}
+
+\DeclareBibliographyOption[string]{citepages}[permit]{%
+ \ifcsdef{cbx@opt@citepages@#1}
+ {\csuse{cbx@opt@citepages@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'citepages=#1'}
+ {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}}
+
+\providebibmacro*{cite:citepages}{}
+\providebibmacro*{cite:full:citepages}{}
+\providebibmacro*{cite:postnote}{}
+
+\def\cbx@opt@citepages@permit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@suppress{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \clearfield{pages}%
+ \clearfield{pagetotal}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@omit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ test {\iffieldpages{postnote}}
+ }
+ {\clearfield{pages}%
+ \clearfield{pagetotal}}
+ {}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@separate{%
+ \providetoggle{cbx:fullcite}%
+ \renewbibmacro*{cite:citepages}{%
+ \global\togglefalse{cbx:fullcite}}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \global\toggletrue{cbx:fullcite}}%
+ \renewbibmacro*{cite:postnote}{%
+ \ifboolexpr{
+ togl {cbx:fullcite}
+ and
+ test {\iffieldpages{postnote}}
+ and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ (
+ not test {\iffieldundef{pages}}
+ or
+ not test {\iffieldundef{pagetotal}}
+ )
+ }
+ {\usebibmacro{cite:postnote:pages}}
+ {\usebibmacro{cite:postnote:ibidpage}}}
+ \providebibmacro*{cite:postnote:pages}{%
+ \setunit{\printdelim{postnotedelim}}%
+ \bibstring{thiscite}%
+ \setunit{\addspace}%
+ \printfield{postnote}}}
+
+\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict,
+ idemtracker=constrict,autocite=footnote,citepages=permit}
+
+\newbibmacro*{cite:save}{%
+ \csxdef{cbx@lastcite@\thefield{entrykey}}{\the\value{instcount}}%
+ \global\boolfalse{cbx:noidem}}
+
+\newbibmacro*{cite}{%
+ \usebibmacro{cite:citepages}%
+ \global\togglefalse{cbx:fullcite}%
+ \global\togglefalse{cbx:loccit}%
+ \bibhypertarget{cite\the\value{instcount}}{%
+ \ifciteseen
+ {\iffieldundef{shorthand}
+ {\ifciteibid
+ {\usebibmacro{cite:ibid}}
+ {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}
+ {\usebibmacro{cite:idem}}
+ {\usebibmacro{cite:name}}%
+ \usebibmacro{cite:title}}%
+ \usebibmacro{cite:save}}
+ {\usebibmacro{cite:shorthand}}}
+ {\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}}}}
+
+\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \global\toggletrue{cbx:fullcite}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{cite:name}{%
+ \printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}}
+
+\newbibmacro*{cite:idem}{%
+ \bibstring[\mkibid]{idem\thefield{gender}}%
+ \setunit{\printdelim{nametitledelim}}}
+
+\newbibmacro*{cite:title}{%
+ \printtext[bibhyperlink]{%
+ \printfield[citetitle]{labeltitle}%
+ \setunit{\printdelim{nametitledelim}}%
+ \bibstring[\mkibid]{opcit}}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext{%
+ \bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
+ \bibstring[\mkibid]{ibidem}}}%
+ \ifloccit
+ {\global\toggletrue{cbx:loccit}}
+ {}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperlink]{\printfield{shorthand}}%
+ \global\booltrue{cbx:noidem}}
+
+\newbibmacro*{cite:postnote:ibidpage}{%
+ \iftoggle{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}}
+
+\newbibmacro*{textcite:init}{%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \iffirstcitekey
+ {\global\undef\cbx@lasthash}
+ {}}
+
+\newbibmacro*{textcite:count}{%
+ \stepcounter{textcitetotal}%
+ \ifnumgreater{\value{uniquelist}}{\value{maxnames}}
+ {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{uniquelist}}}
+ {}}
+ {\ifnumless{\value{labelname}}{\value{maxnames}}
+ {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{labelname}}}
+ {}}
+ {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{maxnames}}}
+ {}}}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \stepcounter{textcitecount}%
+ \usebibmacro{textcite}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
+ {\usebibmacro{textcite:init}%
+ \gdef\cbx@savedkeys{}%
+ \DeferNextCitekeyHook}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@footcite@args{%
+ (\thefield{multiprenote})(\thefield{multipostnote})}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\usebibmacro{textcite:count}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{\value{citetotal}}
+ {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
+ \protected@xappto\cbx@footcite@args{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
+ \iflastcitekey
+ {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
+ \protected@xappto\cbx@footcite@args{\nopunct}}
+ {}}
+ {}}
+ {}
+ {}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[3]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \setcounter{textcitemaxnames}{0}%
+ \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
+ \cbx@textcite@args\empty\cbx@footcite@args\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}
+ [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{%
+ \UseNextMultiCiteHook%
+ \AtNextMultiCite{%
+ \renewbibmacro{multiprenote}{}%
+ \renewbibmacro{multipostnote}{}}}{}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose-trad3.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad3.cbx
new file mode 100644
index 0000000000..c410692b60
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/verbose-trad3.cbx
@@ -0,0 +1,261 @@
+\ProvidesFile{verbose-trad3.cbx}
+[\abx@cbxid]
+
+\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}}
+
+\DeclareFieldFormat{bibhyperlink}{%
+ \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+\DeclareFieldFormat{bibhypertarget}{%
+ \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+
+\newcommand*{\cbx@resetcount}{0}
+\providecommand*{\mkibid}[1]{#1}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newtoggle{cbx:loccit}
+
+\DeclareBibliographyOption[boolean]{strict}[true]{%
+ \ifstrequal{#1}{true}
+ {\ExecuteBibliographyOptions{ibidtracker=constrict,loccittracker=constrict}}
+ {\ExecuteBibliographyOptions{ibidtracker=context,loccittracker=context}}}
+
+\DeclareBibliographyOption[string]{citepages}[permit]{%
+ \ifcsdef{cbx@opt@citepages@#1}
+ {\csuse{cbx@opt@citepages@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'citepages=#1'}
+ {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}}
+
+\providebibmacro*{cite:citepages}{}
+\providebibmacro*{cite:full:citepages}{}
+\providebibmacro*{cite:postnote}{}
+
+\def\cbx@opt@citepages@permit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@suppress{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \clearfield{pages}%
+ \clearfield{pagetotal}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@omit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ test {\iffieldpages{postnote}}
+ }
+ {\clearfield{pages}%
+ \clearfield{pagetotal}}
+ {}}%
+ \renewbibmacro*{cite:postnote}{%
+ \usebibmacro{cite:postnote:ibidpage}}}
+
+\def\cbx@opt@citepages@separate{%
+ \providetoggle{cbx:fullcite}%
+ \renewbibmacro*{cite:citepages}{%
+ \global\togglefalse{cbx:fullcite}}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \global\toggletrue{cbx:fullcite}}%
+ \renewbibmacro*{cite:postnote}{%
+ \ifboolexpr{
+ togl {cbx:fullcite}
+ and
+ test {\iffieldpages{postnote}}
+ and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ (
+ not test {\iffieldundef{pages}}
+ or
+ not test {\iffieldundef{pagetotal}}
+ )
+ }
+ {\usebibmacro{cite:postnote:pages}}
+ {\usebibmacro{cite:postnote:ibidpage}}}
+ \providebibmacro*{cite:postnote:pages}{%
+ \setunit{\printdelim{postnotedelim}}%
+ \bibstring{thiscite}%
+ \setunit{\addspace}%
+ \printfield{postnote}}}
+
+\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict,
+ loccittracker=constrict,autocite=footnote,citepages=permit}
+
+\newbibmacro*{cite}{%
+ \usebibmacro{cite:citepages}%
+ \global\togglefalse{cbx:loccit}%
+ \ifciteseen
+ {\ifciteibid
+ {\ifloccit
+ {\usebibmacro{cite:ibid}}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:opcit}}
+ {\usebibmacro{cite:shorthand}}}}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:short}}
+ {\usebibmacro{cite:shorthand}}}}
+ {\usebibmacro{cite:full}}}
+
+\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{cite:short}{%
+ \printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \printtext[bibhyperlink]{%
+ \printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:opcit}{%
+ \printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \printtext[bibhyperlink]{%
+ \bibstring[\mkibid]{opcit}}}
+
+\newbibmacro*{cite:ibid}{%
+ \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
+ \global\toggletrue{cbx:loccit}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperlink]{\printfield{shorthand}}}
+
+\newbibmacro*{cite:postnote:ibidpage}{%
+ \iftoggle{cbx:loccit}
+ {}
+ {\usebibmacro{postnote}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}}
+
+\newbibmacro*{textcite:init}{%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \iffirstcitekey
+ {\global\undef\cbx@lasthash}
+ {}}
+
+\newbibmacro*{textcite:count}{%
+ \stepcounter{textcitetotal}%
+ \ifnumgreater{\value{uniquelist}}{\value{maxnames}}
+ {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{uniquelist}}}
+ {}}
+ {\ifnumless{\value{labelname}}{\value{maxnames}}
+ {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{labelname}}}
+ {}}
+ {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{maxnames}}}
+ {}}}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \stepcounter{textcitecount}%
+ \usebibmacro{textcite}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
+ {\usebibmacro{textcite:init}%
+ \gdef\cbx@savedkeys{}%
+ \DeferNextCitekeyHook}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@footcite@args{%
+ (\thefield{multiprenote})(\thefield{multipostnote})}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\usebibmacro{textcite:count}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{\value{citetotal}}
+ {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
+ \protected@xappto\cbx@footcite@args{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
+ \iflastcitekey
+ {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
+ \protected@xappto\cbx@footcite@args{\nopunct}}
+ {}}
+ {}}
+ {}
+ {}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[3]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \setcounter{textcitemaxnames}{0}%
+ \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
+ \cbx@textcite@args\empty\cbx@footcite@args\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}
+ [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{%
+ \UseNextMultiCiteHook%
+ \AtNextMultiCite{%
+ \renewbibmacro{multiprenote}{}%
+ \renewbibmacro{multipostnote}{}}}{}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/cbx/verbose.cbx b/macros/latex/contrib/biblatex/latex/cbx/verbose.cbx
new file mode 100644
index 0000000000..1291f0dfce
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/cbx/verbose.cbx
@@ -0,0 +1,231 @@
+\ProvidesFile{verbose.cbx}
+[\abx@cbxid]
+
+\InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}}
+
+\DeclareFieldFormat{bibhyperlink}{%
+ \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+\DeclareFieldFormat{bibhypertarget}{%
+ \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}}
+
+\newcommand*{\cbx@resetcount}{0}
+\renewcommand*{\iffinalcitedelim}{%
+ \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}
+
+\newbibmacro*{cite:citepages}{}
+\newbibmacro*{cite:full:citepages}{}
+\newbibmacro*{cite:postnote}{}
+
+\DeclareBibliographyOption[string]{citepages}[permit]{%
+ \ifcsdef{cbx@opt@citepages@#1}
+ {\csuse{cbx@opt@citepages@#1}}
+ {\PackageError{biblatex}
+ {Invalid option 'citepages=#1'}
+ {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}}
+
+\providebibmacro*{cite:citepages}{}
+\providebibmacro*{cite:full:citepages}{}
+\providebibmacro*{cite:postnote}{}
+
+\def\cbx@opt@citepages@permit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{}%
+ \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}}
+
+\def\cbx@opt@citepages@suppress{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \clearfield{pages}%
+ \clearfield{pagetotal}}%
+ \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}}
+
+\def\cbx@opt@citepages@omit{%
+ \renewbibmacro*{cite:citepages}{}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \ifboolexpr{
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ test {\iffieldpages{postnote}}
+ }
+ {\clearfield{pages}%
+ \clearfield{pagetotal}}
+ {}}%
+ \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}}
+
+\def\cbx@opt@citepages@separate{%
+ \providetoggle{cbx:fullcite}%
+ \renewbibmacro*{cite:citepages}{%
+ \global\togglefalse{cbx:fullcite}}%
+ \renewbibmacro*{cite:full:citepages}{%
+ \global\toggletrue{cbx:fullcite}}%
+ \renewbibmacro*{cite:postnote}{%
+ \ifboolexpr{
+ togl {cbx:fullcite}
+ and
+ test {\iffieldpages{postnote}}
+ and
+ test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
+ and
+ (
+ not test {\iffieldundef{pages}}
+ or
+ not test {\iffieldundef{pagetotal}}
+ )
+ }
+ {\usebibmacro{cite:postnote:pages}}
+ {\usebibmacro{postnote}}}
+ \providebibmacro*{cite:postnote:pages}{%
+ \setunit{\printdelim{postnotedelim}}%
+ \bibstring{thiscite}%
+ \setunit{\addspace}%
+ \printfield{postnote}}}
+
+\ExecuteBibliographyOptions{citetracker=context,autocite=footnote,citepages=permit}
+
+\newbibmacro*{cite}{%
+ \usebibmacro{cite:citepages}%
+ \ifciteseen
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:short}}
+ {\usebibmacro{cite:shorthand}}}
+ {\usebibmacro{cite:full}}}
+
+\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{%
+ \usedriver
+ {\DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}%
+ \usebibmacro{shorthandintro}}
+
+\newbibmacro*{cite:short}{%
+ \printnames{labelname}%
+ \setunit*{\printdelim{nametitledelim}}%
+ \printtext[bibhyperlink]{%
+ \printfield[citetitle]{labeltitle}}}
+
+\newbibmacro*{cite:shorthand}{%
+ \printtext[bibhyperlink]{\printfield{shorthand}}}
+
+\DeclareCiteCommand{\cite}
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibparens]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{cite:postnote}}
+
+\newbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\printfield[citetitle]{labeltitle}}
+ {\printnames{labelname}}}
+
+\newbibmacro*{textcite:init}{%
+ \citetrackerfalse%
+ \pagetrackerfalse%
+ \iffirstcitekey
+ {\global\undef\cbx@lasthash}
+ {}}
+
+\newbibmacro*{textcite:count}{%
+ \stepcounter{textcitetotal}%
+ \ifnumgreater{\value{uniquelist}}{\value{maxnames}}
+ {\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{uniquelist}}}
+ {}}
+ {\ifnumless{\value{labelname}}{\value{maxnames}}
+ {\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{labelname}}}
+ {}}
+ {\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
+ {\setcounter{textcitemaxnames}{\value{maxnames}}}
+ {}}}}
+
+\DeclareCiteCommand{\cbx@textcite}
+ {\usebibmacro{textcite:init}}
+ {\iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\iffirstcitekey
+ {}
+ {\textcitedelim}%
+ \stepcounter{textcitecount}%
+ \usebibmacro{textcite}%
+ \savefield{namehash}{\cbx@lasthash}}}
+ {}
+ {}
+
+\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
+ {\usebibmacro{textcite:init}%
+ \gdef\cbx@savedkeys{}%
+ \DeferNextCitekeyHook}
+ {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
+ {\protected@xappto\cbx@footcite@args{%
+ (\thefield{multiprenote})(\thefield{multipostnote})}}
+ {}%
+ \xappto\cbx@savedkeys{\thefield{entrykey},}%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {}
+ {\usebibmacro{textcite:count}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \ifnumequal{\value{citecount}}{\value{citetotal}}
+ {\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
+ \protected@xappto\cbx@footcite@args{%
+ [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
+ \iflastcitekey
+ {\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
+ \protected@xappto\cbx@footcite@args{\nopunct}}
+ {}}
+ {}}
+ {}
+ {}
+
+% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
+% the normal textcite context
+\DeclareDelimcontextAlias{cbx@textcite}{textcite}
+
+\newrobustcmd{\cbx@textcite@init}[3]{%
+ \setcounter{textcitetotal}{0}%
+ \setcounter{textcitecount}{0}%
+ \setcounter{textcitemaxnames}{0}%
+ \def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
+ \cbx@textcite@args\empty\cbx@footcite@args\empty}
+
+\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
+\DeclareMultiCiteCommand{\textcites}
+ [\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
+
+\let\cbx@textcites@init\cbx@textcite@init
+\pretocmd{\cbx@textcites@init}{%
+ \UseNextMultiCiteHook%
+ \AtNextMultiCite{%
+ \renewbibmacro{multiprenote}{}%
+ \renewbibmacro{multipostnote}{}}}{}{}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/UKenglish.lbx b/macros/latex/contrib/biblatex/latex/lbx/UKenglish.lbx
new file mode 100644
index 0000000000..87b20b85e0
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/UKenglish.lbx
@@ -0,0 +1,7 @@
+\ProvidesFile{UKenglish.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{british}
+\InheritBibliographyStrings{british}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/USenglish.lbx b/macros/latex/contrib/biblatex/latex/lbx/USenglish.lbx
new file mode 100644
index 0000000000..62f02a3a9d
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/USenglish.lbx
@@ -0,0 +1,7 @@
+\ProvidesFile{USenglish.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{american}
+\InheritBibliographyStrings{american}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/american.lbx b/macros/latex/contrib/biblatex/latex/lbx/american.lbx
new file mode 100644
index 0000000000..91ebe2f449
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/american.lbx
@@ -0,0 +1,8 @@
+\ProvidesFile{american.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{english}
+\DeclareBibliographyExtras{\uspunctuation}
+\InheritBibliographyStrings{english}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/australian.lbx b/macros/latex/contrib/biblatex/latex/lbx/australian.lbx
new file mode 100644
index 0000000000..675089ddd8
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/australian.lbx
@@ -0,0 +1,28 @@
+\ProvidesFile{australian.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{british}
+\DeclareBibliographyExtras{%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \mkyearzeros{\thefield{#1}}}%
+}
+
+\InheritBibliographyStrings{english}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/austrian.lbx b/macros/latex/contrib/biblatex/latex/lbx/austrian.lbx
new file mode 100644
index 0000000000..39ee155aa6
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/austrian.lbx
@@ -0,0 +1,16 @@
+\ProvidesFile{austrian.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{german}
+
+\DeclareBibliographyStrings{%
+ inherit = {german},
+ january = {{J\"anner}{J\"an\adddot}},
+}
+
+\DeclareHyphenationExceptions{%
+ Pa-tent-an-mel-dung
+ Pa-tent-an-meld
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/brazil.lbx b/macros/latex/contrib/biblatex/latex/lbx/brazil.lbx
new file mode 100644
index 0000000000..5da4cbe39d
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/brazil.lbx
@@ -0,0 +1,7 @@
+\ProvidesFile{brazil.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{brazilian}
+\InheritBibliographyStrings{brazilian}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/brazilian.lbx b/macros/latex/contrib/biblatex/latex/lbx/brazilian.lbx
new file mode 100644
index 0000000000..43fb19712c
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/brazilian.lbx
@@ -0,0 +1,539 @@
+\ProvidesFile{brazilian.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{brazilian}{brazil,portuges}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \def\mkbibordinal{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{%
+ \stripzeros{#1}\textordmasculine}% \textordmasculine -> textcomp.sty
+ \protected\def\mkbibfemord#1{%
+ \stripzeros{#1}\textordfeminine}% \textordfeminine -> textcomp.sty
+ \protected\def\mkbibneutord{\mkbibmascord}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace de\space}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\nobreakspace de\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{/}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibfemord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografia}{Bibliografia}},
+ references = {{Refer\^encias}{Refer\^encias}},
+ shorthands = {{Lista de abreviaturas}{Abreviaturas}},
+ editor = {{editor}{ed\adddot}},
+ editors = {{editores}{ed\adddot}},
+ compiler = {{compilador}{comp\adddot}},
+ compilers = {{compiladores}{comp\adddot}},
+ redactor = {{redator}{red\adddot}},
+ redactors = {{redatores}{red\adddot}},
+ reviser = {{revisor}{rev\adddot}},
+ revisers = {{revisores}{rev\adddot}},
+ founder = {{fundador}{fund\adddot}},
+ founders = {{fundadores}{fund\adddot}},
+ continuator = {{continuador}{cont\adddot}},
+ continuators = {{continuadores}{cont\adddot}},
+ collaborator = {{colaborador}{colab\adddot}},
+ collaborators = {{colaboradores}{colab\adddot}},
+ translator = {{tradutor}{trad\adddot}},
+ translators = {{tradutores}{trad\adddot}},
+ commentator = {{coment\'ario}{coment\adddot}},
+ commentators = {{coment\'ario}{coment\adddot}},
+ annotator = {{notas}{notas}},
+ annotators = {{notas}{notas}},
+ commentary = {{coment\'ario}{coment\adddot}},
+ annotations = {{notas}{notas}},
+ introduction = {{introdu\c{c}\~ao}{introd\adddot}},
+ foreword = {{pref\'acio}{pref\adddot}},
+ afterword = {{posf\'acio}{posf\adddot}},
+ editortr = {{editor e tradutor}%
+ {ed\adddotspace e trad\adddot}},
+ editorstr = {{editores e tradutores}%
+ {ed\adddotspace e trad\adddot}},
+ editorco = {{editor e coment\'ario}%
+ {ed\adddotspace e coment\adddot}},
+ editorsco = {{editores e coment\'ario}%
+ {ed\adddotspace e coment\adddot}},
+ editoran = {{editor e notas}%
+ {ed\adddotspace e notas}},
+ editorsan = {{editores e notas}%
+ {ed\adddotspace e notas}},
+ editorin = {{editor e introdu\c{c}\~ao}%
+ {ed\adddotspace e introd\adddot}},
+ editorsin = {{editores e introdu\c{c}\~ao}%
+ {ed\adddotspace e introd\adddot}},
+ editorfo = {{editor e pref\'acio}%
+ {ed\adddotspace e pref\adddot}},
+ editorsfo = {{editores e pref\'acio}%
+ {ed\adddotspace e pref\adddot}},
+ editoraf = {{editor e posf\'acio}%
+ {ed\adddotspace e posf\adddot}},
+ editorsaf = {{editores e posf\'acio}%
+ {ed\adddotspace e posf\adddot}},
+ editortrco = {{editor, tradutor e coment\'ario}%
+ {ed., trad\adddot\ e coment\adddot}},
+ editorstrco = {{editores, tradutores e coment\'ario}%
+ {ed., trad\adddot\ e coment\adddot}},
+ editortran = {{editor, tradutor e notas}%
+ {ed., trad\adddot\ e notas}},
+ editorstran = {{editores, tradutores e notas}%
+ {ed., trad\adddot\ e notas}},
+ editortrin = {{editor, tradutor e introdu\c{c}\~ao}%
+ {ed., trad\adddot\ e introd\adddot}},
+ editorstrin = {{editores, tradutores e introdu\c{c}\~ao}%
+ {ed., trad\adddot\ e introd\adddot}},
+ editortrfo = {{editor, tradutor e pref\'acio}%
+ {ed., trad\adddot\ e pref\adddot}},
+ editorstrfo = {{editores, tradutores e pref\'acio}%
+ {ed., trad\adddot\ e pref\adddot}},
+ editortraf = {{editor, tradutor e posf\'acio}%
+ {ed., trad\adddot\ e posf\adddot}},
+ editorstraf = {{editores, tradutores e posf\'acio}%
+ {ed., trad\adddot\ e posf\adddot}},
+ editorcoin = {{editor, coment\'ario e introdu\c{c}\~ao}%
+ {ed., coment\adddot\ e introd\adddot}},
+ editorscoin = {{editores, coment\'ario e introdu\c{c}\~ao}%
+ {ed., coment\adddot\ e introd\adddot}},
+ editorcofo = {{editor, coment\'ario e pref\'acio}%
+ {ed., coment\adddot\ e pref\adddot}},
+ editorscofo = {{editores, coment\'ario e pref\'acio}%
+ {ed., coment\adddot\ e pref\adddot}},
+ editorcoaf = {{editor, coment\'ario e posf\'acio}%
+ {ed., coment\adddot\ e posf\adddot}},
+ editorscoaf = {{editores, coment\'ario e posf\'acio}%
+ {ed., coment\adddot\ e posf\adddot}},
+ editoranin = {{editor, notas e introdu\c{c}\~ao}%
+ {ed., notas e introd\adddot}},
+ editorsanin = {{editores, notas e introdu\c{c}\~ao}%
+ {ed., notas e introd\adddot}},
+ editoranfo = {{editor, notas e pref\'acio}%
+ {ed., notas e pref\adddot}},
+ editorsanfo = {{editores, notas e pref\'acio}%
+ {ed., notas e pref\adddot}},
+ editoranaf = {{editor, notas e posf\'acio}%
+ {ed., notas e posf\adddot}},
+ editorsanaf = {{editores, notas e posf\'acio}%
+ {ed., notas e posf\adddot}},
+ editortrcoin = {{editor, tradutor, coment\'ario e introdu\c{c}\~ao}%
+ {ed., trad., coment\adddot\ e introd\adddot}},
+ editorstrcoin = {{editores, tradutores, coment\'ario e introdu\c{c}\~ao}%
+ {ed., trad., coment\adddot\ e introd\adddot}},
+ editortrcofo = {{editor, tradutor, coment\'ario e pref\'acio}%
+ {ed., trad., coment\adddot\ e pref\adddot}},
+ editorstrcofo = {{editores, tradutores, coment\'ario e pref\'acio}%
+ {ed., trad., coment\adddot\ e pref\adddot}},
+ editortrcoaf = {{editor, tradutor, coment\'ario e posf\'acio}%
+ {ed., trad., coment\adddot\ e posf\adddot}},
+ editorstrcoaf = {{editores, tradutores, coment\'ario e posf\'acio}%
+ {ed., trad., coment\adddot\ e posf\adddot}},
+ editortranin = {{editor, tradutor, notas e introdu\c{c}\~ao}%
+ {ed., trad., notas e introd\adddot}},
+ editorstranin = {{editores, tradutores, notas e introdu\c{c}\~ao}%
+ {ed., trad., notas e introd\adddot}},
+ editortranfo = {{editor, tradutor, notas e pref\'acio}%
+ {ed., trad., notas e pref\adddot}},
+ editorstranfo = {{editores, tradutores, notas e pref\'acio}%
+ {ed., trad., notas e pref\adddot}},
+ editortranaf = {{editor, tradutor, notas e posf\'acio}%
+ {ed., trad., notas e posf\adddot}},
+ editorstranaf = {{editores, tradutores, notas e posf\'acio}%
+ {ed., trad., notas e posf\adddot}},
+ translatorco = {{tradu\c{c}\~ao e coment\'ario}%
+ {trad\adddot\ e coment\adddot}},
+ translatorsco = {{tradu\c{c}\~ao e coment\'ario}%
+ {trad\adddot\ e coment\adddot}},
+ translatoran = {{tradu\c{c}\~ao e notas}%
+ {trad\adddot\ e notas}},
+ translatorsan = {{tradu\c{c}\~ao e notas}%
+ {trad\adddot\ e notas}},
+ translatorin = {{tradu\c{c}\~ao e introdu\c{c}\~ao}%
+ {trad\adddot\ e introd\adddot}},
+ translatorsin = {{tradu\c{c}\~ao e introdu\c{c}\~ao}%
+ {trad\adddot\ e introd\adddot}},
+ translatorfo = {{tradu\c{c}\~ao e pref\'acio}%
+ {trad\adddot\ e pref\adddot}},
+ translatorsfo = {{tradu\c{c}\~ao e pref\'acio}%
+ {trad\adddot\ e pref\adddot}},
+ translatoraf = {{tradu\c{c}\~ao e posf\'acio}%
+ {trad\adddot\ e posf\adddot}},
+ translatorsaf = {{tradu\c{c}\~ao e posf\'acio}%
+ {trad\adddot\ e posf\adddot}},
+ translatorcoin = {{tradu\c{c}\~ao, coment\'ario e introdu\c{c}\~ao}%
+ {trad., coment\adddot\ e introd\adddot}},
+ translatorscoin = {{tradu\c{c}\~ao, coment\'ario e introdu\c{c}\~ao}%
+ {trad., coment\adddot\ e introd\adddot}},
+ translatorcofo = {{tradu\c{c}\~ao, coment\'ario e pref\'acio}%
+ {trad., coment\adddot\ e pref\adddot}},
+ translatorscofo = {{tradu\c{c}\~ao, coment\'ario e pref\'acio}%
+ {trad., coment\adddot\ e pref\adddot}},
+ translatorcoaf = {{tradu\c{c}\~ao, coment\'ario e posf\'acio}%
+ {trad., coment\adddot\ e posf\adddot}},
+ translatorscoaf = {{tradu\c{c}\~ao, coment\'ario e posf\'acio}%
+ {trad., coment\adddot\ e posf\adddot}},
+ translatoranin = {{tradu\c{c}\~ao, notas e introdu\c{c}\~ao}%
+ {trad., notas e introd\adddot}},
+ translatorsanin = {{tradu\c{c}\~ao, notas e introdu\c{c}\~ao}%
+ {trad., notas e introd\adddot}},
+ translatoranfo = {{tradu\c{c}\~ao, notas e pref\'acio}%
+ {trad., notas e pref\adddot}},
+ translatorsanfo = {{tradu\c{c}\~ao, notas e pref\'acio}%
+ {trad., notas e pref\adddot}},
+ translatoranaf = {{tradu\c{c}\~ao, notas e posf\'acio}%
+ {trad., notas e posf\adddot}},
+ translatorsanaf = {{tradu\c{c}\~ao, notas e posf\'acio}%
+ {trad., notas e posf\adddot}},
+ organizer = {{organizador}{org\adddot}},
+ organizers = {{organizadores}{org\adddot}},
+ byauthor = {{por}{por}},
+ byeditor = {{editado por}{ed\adddotspace por}},
+ bycompiler = {{compilado por}{comp\adddotspace por}},
+ byredactor = {{redigido por}{red\adddotspace por}},
+ byreviser = {{revisado por}{rev\adddotspace por}},
+ byreviewer = {{resenhado por}{res\adddotspace por}},
+ byfounder = {{fundado por}{fund\adddotspace por}},
+ bycontinuator = {{continuado por}{cont\adddotspace por}},
+ bycollaborator = {{em colabora\c{c}\~ao com}{em colab\adddotspace com}},
+ bytranslator = {{traduzido \lbx@lfromlang\ por}{trad\adddot\ \lbx@sfromlang\ por}},
+ bycommentator = {{comentado por}{coment\adddot\ por}},
+ byannotator = {{anotado por}{anot\adddot\ por}},
+ byorganizer = {{organizado por}{org\adddotspace por}},
+ withcommentator = {{com coment\'ario de}{com coment\adddot\ de}},
+ withannotator = {{com notas de}{com notas de}},
+ withintroduction = {{com introdu\c{c}\~ao de}{com introd\adddot\ de}},
+ withforeword = {{com pref\'acio de}{com pref\adddot\ de}},
+ withafterword = {{com posf\'acio de}{com posf\adddot\ de}},
+ byeditortr = {{editado e traduzido \lbx@lfromlang\ por}%
+ {ed\adddotspace e trad\adddot\ \lbx@sfromlang\ por}},
+ byeditorco = {{editado e comentado por}%
+ {ed\adddotspace e coment\adddot\ por}},
+ byeditoran = {{editado e anotado por}%
+ {ed\adddotspace e anot\adddot\ por}},
+ byeditorin = {{editado e introduzido por}%
+ {ed\adddotspace e introd\adddot\ por}},
+ byeditorfo = {{editado e prefaciado por}%
+ {ed\adddotspace e pref\adddot\ por}},
+ byeditoraf = {{editado e posfaciado por}%
+ {ed\adddotspace e posf\adddot\ por}},
+ byeditortrco = {{editado, traduzido \lbx@lfromlang\ e comentado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e coment\adddot\ por}},
+ byeditortran = {{editado, traduzido \lbx@lfromlang\ e anotado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}},
+ byeditortrin = {{editado, traduzido \lbx@lfromlang\ e introduzido por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e introd\adddot\ por}},
+ byeditortrfo = {{editado, traduzido \lbx@lfromlang\ e prefaciado por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e pref\adddot\ por}},
+ byeditortraf = {{editado, traduzido \lbx@lfromlang\ e posfaciado por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e posf\adddot\ por}},
+ byeditorcoin = {{editado, comentado e introduzido por}%
+ {ed.,\addabbrvspace coment\adddot\ e introd\adddot\ por}},
+ byeditorcofo = {{editado, comentado e prefaciado por}%
+ {ed.,\addabbrvspace coment\adddot\ e pref\adddot\ por}},
+ byeditorcoaf = {{editado, comentado e posfaciado por}%
+ {ed.,\addabbrvspace coment\adddot\ e posf\adddot\ por}},
+ byeditoranin = {{editado, anotado e introduzido por}%
+ {ed.,\addabbrvspace anot\adddot\ e introd\adddot\ por}},
+ byeditoranfo = {{editado, anotado e prefaciado por}%
+ {ed.,\addabbrvspace anot\adddot\ e pref\adddot\ por}},
+ byeditoranaf = {{editado, anotado e posfaciado por}%
+ {ed.,\addabbrvspace anot\adddot\ e posf\adddot\ por}},
+ byeditortrcoin = {{editado, traduzido \lbx@lfromlang, comentado e introduzido por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e introd\adddot\ por}},
+ byeditortrcofo = {{editado, traduzido \lbx@lfromlang, comentado e prefaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e pref\adddot\ por}},
+ byeditortrcoaf = {{editado, traduzido \lbx@lfromlang, comentado e posfaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e posf\adddot\ por}},
+ byeditortranin = {{editado, traduzido \lbx@lfromlang, anotado e introduzido por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}},
+ byeditortranfo = {{editado, traduzido \lbx@lfromlang, anotado e prefaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}},
+ byeditortranaf = {{editado, traduzido \lbx@lfromlang, anotado e posfaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}},
+ bytranslatorco = {{traduzido \lbx@lfromlang\ e comentado por}%
+ {trad\adddot\ \lbx@sfromlang\ e coment\adddot\ por}},
+ bytranslatoran = {{traduzido \lbx@lfromlang\ e anotado por}%
+ {trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}},
+ bytranslatorin = {{traduzido \lbx@lfromlang\ e introduzido por}%
+ {trad\adddot\ \lbx@sfromlang\ e introd\adddot\ por}},
+ bytranslatorfo = {{traduzido \lbx@lfromlang\ e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang\ e pref\adddot\ por}},
+ bytranslatoraf = {{traduzido \lbx@lfromlang\ e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang\ e posf\adddot\ por}},
+ bytranslatorcoin = {{traduzido \lbx@lfromlang, comentado e introduzido por}%
+ {trad\adddot\ \lbx@sfromlang, coment\adddot\ e introd\adddot\ por}},
+ bytranslatorcofo = {{traduzido \lbx@lfromlang, comentado e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang, coment\adddot\ e pref\adddot\ por}},
+ bytranslatorcoaf = {{traduzido \lbx@lfromlang, comentado e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang, coment\adddot\ e posf\adddot\ por}},
+ bytranslatoranin = {{traduzido \lbx@lfromlang, anotado e introduzido por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}},
+ bytranslatoranfo = {{traduzido \lbx@lfromlang, anotado e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}},
+ bytranslatoranaf = {{traduzido \lbx@lfromlang, anotado e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}},
+ and = {{e}{e}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{volume}{vol\adddot}},
+ volumes = {{volumes}{vol\adddot}},
+ involumes = {{em}{em}},
+ jourvol = {{volume}{v\adddot}},
+ jourser = {{s\'erie}{s\'er\adddot}},
+ book = {{livro}{livro}},
+ part = {{parte}{parte}},
+ issue = {{n\'umero}{n\'um\adddot}},
+ newseries = {{nova s\'erie}{nova s\'er\adddot}},
+ oldseries = {{s\'erie antiga}{s\'er\adddot\ antiga}},
+ edition = {{edi\c{c}\~ao}{ed\adddot}},
+ reprint = {{reimpress\~ao}{reimpr\adddot}},
+ reprintof = {{reimpress\~ao de}{reimpr\adddotspace de}},
+ reprintas = {{reimpresso como}{reimpr\adddotspace como}},
+ reprintfrom = {{reimpresso de}{reimpr\adddotspace de}},
+ translationof = {{tradu\c{c}\~ao de}{trad\adddotspace de}},
+ translationas = {{traduzido como}{trad\adddotspace como}},
+ translationfrom = {{traduzido do}{trad\adddotspace do}},
+ reviewof = {{resenha de}{res\adddotspace de}},
+ origpubas = {{originalmente publicado como}{orig\adddotspace pub\adddotspace como}},
+ origpubin = {{originalmente publicado em}{orig\adddotspace pub\adddotspace em}},
+ astitle = {{como}{como}},
+ bypublisher = {{por}{por}},
+ nodate = {{sem\space data}{s\adddot d\adddot}},
+ page = {{p\'agina}{p\adddot}},
+ pages = {{p\'aginas}{pp\adddot}},
+ column = {{coluna}{col\adddot}},
+ columns = {{colunas}{col\adddot}},
+ line = {{linha}{l\adddot}},
+ lines = {{linhas}{ll\adddot}},
+ verse = {{verso}{v\adddot}},
+ verses = {{versos}{vv\adddot}},
+ section = {{se\c{c}\~ao}{\S}},
+ sections = {{se\c{c}\~oes}{\S\S}},
+ paragraph = {{par\'agrafo}{par\adddot}},
+ paragraphs = {{par\'agrafos}{par\adddot}},
+ pagetotal = {{p\'agina}{p\adddot}},
+ pagetotals = {{p\'aginas}{pp\adddot}},
+ columntotal = {{coluna}{col\adddot}},
+ columntotals = {{colunas}{col\adddot}},
+ linetotal = {{linha}{l\adddot}},
+ linetotals = {{linhas}{ll\adddot}},
+ versetotal = {{verso}{v\adddot}},
+ versetotals = {{versos}{vv\adddot}},
+ sectiontotal = {{se\c{c}\~ao}{\S}},
+ sectiontotals = {{se\c{c}\~oes}{\S\S}},
+ paragraphtotal = {{par\'agrafo}{par\adddot}},
+ paragraphtotals = {{par\'agrafos}{par\adddot}},
+ in = {{em}{em}},
+ inseries = {{em}{em}},
+ ofseries = {{de}{de}},
+ number = {{n\'umero}{n\adddot}},
+ chapter = {{cap\'\i tulo}{cap\adddot}},
+ bathesis = {{trabalho de conclus\~ao}{trab\adddotspace de conc\adddot}},
+ mathesis = {{disserta\c{c}\~ao de mestrado}{diss\adddot\ de mestr\adddot}},
+ phdthesis = {{tese de doutorado}{tese de dout\adddot}},
+ candthesis = {{}{}},% FIXME: missing
+ resreport = {{relat\'orio de pesquisa}{rel\adddotspace de pesq\adddot}},
+ techreport = {{relat\'orio t\'ecnico}{rel\adddotspace t\'ecn\adddot}},
+ software = {{software}{software}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{CD de \'audio}{CD de \'audio}},
+ version = {{vers\~ao}{vers\~ao}},
+ url = {{endere\c{c}o}{endere\c{c}o}},
+ urlfrom = {{dispon\'ivel em}{disp\adddotspace em}},
+ urlseen = {{acesso em}{acesso em}},
+ inpreparation = {{em prepara\c{c}\~ao}{em prepara\c{c}\~ao}},
+ submitted = {{submetido}{submetido}},
+ forthcoming = {{aceito para publica\c{c}\~ao}{aceito para publica\c{c}\~ao}},
+ inpress = {{no prelo}{no prelo}},
+ prepublished = {{pr\'e-publicado}{pr\'e-publicado}},
+ citedas = {{doravante citado como}{doravante citado como}},
+ thiscite = {{especialmente}{esp\adddot}},
+ seenote = {{ver nota}{ver nota}},
+ quotedin = {{apud}{apud}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{passim}},
+ see = {{ver}{ver}},
+ seealso = {{ver tamb\'em}{ver tamb\'em}},
+ backrefpage = {{ver p\'agina}{ver p\adddot}},
+ backrefpages = {{ver p\'aginas}{ver pp\adddot}},
+ january = {{janeiro}{jan\adddot}},
+ february = {{fevereiro}{fev\adddot}},
+ march = {{mar\c{c}o}{mar\adddot}},
+ april = {{abril}{abr\adddot}},
+ may = {{maio}{mai\adddot}},
+ june = {{junho}{jun\adddot}},
+ july = {{julho}{jul\adddot}},
+ august = {{agosto}{ago\adddot}},
+ september = {{setembro}{set\adddot}},
+ october = {{outubro}{out\adddot}},
+ november = {{novembro}{nov\adddot}},
+ december = {{dezembro}{dez\adddot}},
+ langamerican = {{ingl\^es}{ingl\^es}},
+ langbrazilian = {{portugu{\^e}s}{portugu{\^e}s}},
+ langbulgarian = {{b\'ulgaro}{b\'ulgaro}},
+ langcatalan = {{catal\~ao}{catal\~ao}},
+ langcroatian = {{croata}{croata}},
+ langczech = {{tcheco}{tcheco}},
+ langdanish = {{dinamarqu\^es}{dinamarqu\^es}},
+ langdutch = {{holand{\^e}s}{holand{\^e}s}},
+ langenglish = {{ingl\^es}{ingl\^es}},
+ langfinnish = {{finland\^es}{finland\^es}},
+ langestonian = {{estoniano}{estoniano}},
+ langfrench = {{franc\^es}{franc\^es}},
+ langgalician = {{galego}{galego}},
+ langgerman = {{alem\~ao}{alem\~ao}},
+ langgreek = {{grego}{grego}},
+ langhungarian = {{h\'ungaro}{h\'ungaro}},
+ langitalian = {{italiano}{italiano}},
+ langjapanese = {{japon\^es}{japon\^es}},
+ langlatin = {{latim}{latim}},
+ langlatvian = {{let\~ao}{let\~ao}},
+ langnorwegian = {{noruegu\^es}{noruegu\^es}},
+ langpolish = {{polon\^es}{polon\^es}},
+ langportuguese = {{portugu{\^e}s}{portugu{\^e}s}},
+ langrussian = {{russo}{russo}},
+ langslovak = {{eslovaco}{eslovaco}},
+ langslovene = {{esloveno}{esloveno}},
+ langspanish = {{espanhol}{espanhol}},
+ langswedish = {{sueco}{sueco}},
+ langukrainian = {{ucraniano}{ucraniano}},
+ fromamerican = {{do ingl\^es}{do ingl\^es}},
+ frombrazilian = {{do portugu{\^e}s}{do portugu{\^e}s}},
+ frombulgarian = {{do b\'ulgaro}{do b\'ulgaro}},
+ fromcatalan = {{do catal\~ao}{do catal\~ao}},
+ fromcroatian = {{do croata}{do croata}},
+ fromczech = {{do tcheco}{do tcheco}},
+ fromdanish = {{do dinamarqu\^es}{do dinamarqu\^es}},
+ fromdutch = {{do holand{\^e}s}{do holand{\^e}s}},
+ fromenglish = {{do ingl\^es}{do ingl\^es}},
+ fromestonian = {{do estoniano}{do estoniano}},
+ fromfinnish = {{do finland\^es}{do finland\^es}},
+ fromfrench = {{do franc\^es}{do franc\^es}},
+ fromgalician = {{do galego}{do galego}},
+ fromgerman = {{do alem\~ao}{do alem\~ao}},
+ fromgreek = {{do grego}{do grego}},
+ fromhungarian = {{do h\'ungaro}{do h\'ungaro}},
+ fromitalian = {{do italiano}{do italiano}},
+ fromjapanese = {{do japon\^es}{do japon\^es}},
+ fromlatin = {{do latim}{do latim}},
+ fromlatvian = {{do let\~ao}{do let\~ao}},
+ fromnorwegian = {{do noruegu\^es}{do noruegu\^es}},
+ frompolish = {{do polon\^es}{do polon\^es}},
+ fromportuguese = {{do portugu{\^e}s}{do portugu{\^e}s}},
+ fromrussian = {{do russo}{do russo}},
+ fromslovak = {{do eslovaco}{do eslovaco}},
+ fromslovene = {{do esloveno}{do esloveno}},
+ fromspanish = {{do espanhol}{do espanhol}},
+ fromswedish = {{do sueco}{do sueco}},
+ fromukrainian = {{do ucraniano}{do ucraniano}},
+ countryde = {{Alemanha}{DE}},
+ countryeu = {{Uni\~ao Europeia}{EU}},
+ countryep = {{Uni\~ao Europeia}{EP}},
+ countryfr = {{Fran\c{c}a}{FR}},
+ countryuk = {{Reino Unido}{GB}},
+ countryus = {{Estados Unidos}{US}},
+ patent = {{patente}{pat\adddot}},
+ patentde = {{patente alem\~a}{pat\adddot\ alem\~a}},
+ patenteu = {{patente europeia}{pat\adddot\ europeia}},
+ patentfr = {{patente francesa}{pat\adddot\ francesa}},
+ patentuk = {{patente brit\^anica}{pat\adddot\ brit\^anica}},
+ patentus = {{patente americana}{pat\adddot\ americana}},
+ patreq = {{pedido de patente}{ped\adddot\ de pat\adddot}},
+ patreqde = {{pedido de patente alem\~a}{ped\adddot\ de pat\adddot\ alem\~a}},
+ patreqeu = {{pedido de patente europeia}{ped\adddot\ de pat\adddot\ europeia}},
+ patreqfr = {{pedido de patente francesa}{ped\adddot\ de pat\adddot\ francesa}},
+ patrequk = {{pedido de patente brit\^anica}{ped\adddot\ de pat\adddot\ brit\^anica}},
+ patrequs = {{pedido de patente americana}{ped\adddot\ de pat\adddot\ americana}},
+ file = {{arquivo}{arquivo}},
+ library = {{biblioteca}{biblioteca}},
+ abstract = {{resumo}{resumo}},
+ annotation = {{notas}{notas}},
+ commonera = {{Era Comum}{EC}},
+ beforecommonera = {{antes da Era Comum}{AEC}},
+ annodomini = {{depois de Cristo}{d\adddot C\adddot}},
+ beforechrist = {{antes de Cristo}{a\adddot C\adddot}},
+ circa = {{circa}{ca\adddot}},
+ spring = {{primavera}{primavera}},
+ summer = {{ver\~ao}{ver\~ao}},
+ autumn = {{outono}{outono}},
+ winter = {{inverno}{inverno}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/british.lbx b/macros/latex/contrib/biblatex/latex/lbx/british.lbx
new file mode 100644
index 0000000000..87411636e9
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/british.lbx
@@ -0,0 +1,86 @@
+\ProvidesFile{british.lbx}
+[\abx@lbxid]
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \protected\def\mkbibordinal#1{%
+ \begingroup
+ \@tempcnta0#1\relax\number\@tempcnta
+ \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}%
+ \ifnum\@tempcnta>20
+ \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}%
+ \fi
+ \ifcase\@tempcnta th\or st\or nd\or rd\else th\fi
+ \endgroup}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{/}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}%
+ \bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\DeclareBibliographyStrings{%
+ inherit = {english},
+ organizer = {{organiser}{org\adddot}},
+ organizers = {{organisers}{orgs\adddot}},
+ byorganizer = {{organised by}{org\adddotspace by}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/bulgarian.lbx b/macros/latex/contrib/biblatex/latex/lbx/bulgarian.lbx
new file mode 100644
index 0000000000..dcc8c695c1
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/bulgarian.lbx
@@ -0,0 +1,600 @@
+\ProvidesFile{bulgarian.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{bulgarian}{bulgarian}
+
+% This file requires UTF-8 support!
+
+\lbx@ifutfinput
+ {}
+ {\PackageError{biblatex}
+ {Bulgarian requires UTF-8 support}
+ {The 'bulgarian.lbx' file requires UTF-8 encoding but you
+ seem\MessageBreak to be using a different encoding.
+ This is a fatal error. I will\MessageBreak abort loading
+ bulgarian.lbx now.}%
+ \endinput}
+
+\NewBibliographyString{% Used only Bulgarian for month checks
+ datejanuary,
+ datefebruary,
+ datemarch,
+ dateapril,
+ datemay,
+ datejune,
+ datejuly,
+ dateaugust,
+ dateseptember,
+ dateoctober,
+ datenovember,
+ datedecember%
+}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textemdash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{#1-й}%
+ \protected\def\mkbibfemord#1{#1-я}%
+ \protected\def\mkbibneutord#1{#1-е}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\iffieldundef{#3}
+ {\mkbibmonth{\thefield{#2}}}
+ {\lbx@bg@mkbibdatemonth{\thefield{#2}}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\adddot}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\adddot}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibneutord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Библиография}{Библиография}},%book-like (chapter)
+ references = {{Литература}{Литература}},%article-like (section)
+ shorthands = {{Списък на съкращенията}{Съкращения}},
+ editor = {{редактор}{ред\adddot}},
+ editors = {{редактори}{ред\adddot}},
+ compiler = {{съставител}{съст\adddot}},
+ compilers = {{съставители}{съст\adddot}},
+ redactor = {{редактор}{ред\adddot}},% FIXME: unsure
+ redactors = {{редактори}{ред\adddot}},% FIXME: unsure
+ reviser = {{коректор}{кор\adddotspace кор\adddot}},
+ revisers = {{коректор}{кор\adddotspace кор\adddot}},
+ founder = {{основател}{осн\adddot}},
+ founders = {{основатели}{осн\adddot}},
+ continuator = {{продължител}{прод\adddot}},% FIXME: unsure
+ continuators = {{продължител}{прод\adddot}},% FIXME: unsure
+ collaborator = {{участник}{участ\adddot}},% FIXME: unsure
+ collaborators = {{участници}{участ\adddot}},% FIXME: unsure
+ translator = {{преводач}{прев\adddot}},
+ translators = {{преводачи}{прев\adddot}},
+ commentator = {{коментатор}{комент\adddot}},
+ commentators = {{коментатори}{комент\adddot}},
+ annotator = {{бележки}{бел\adddot}},
+ annotators = {{бележки}{бел\adddot}},
+ commentary = {{комментар}{комент\adddot}},
+ annotations = {{бележки}{бел\adddot}},
+ introduction = {{уводна статия}{ув\adddotspace ст\adddot}},
+ foreword = {{предговор}{предг\adddot}},
+ afterword = {{послеслов}{послесл\adddot}},
+ editortr = {{редактор и преводач}%
+ {ред\adddotspace и прев\adddot}},
+ editorstr = {{редактори и преводачи}%
+ {ред\adddotspace и прев\adddot}},
+ editorco = {{редактор и коментатор}%
+ {ред\adddotspace и комент\adddot}},
+ editorsco = {{редактори и коментатори}%
+ {ред\adddotspace и комент\adddot}},
+ editoran = {{редактор и съставител на бележките}%
+ {ред\adddotspace и съст\adddotspace на бел\adddot}},
+ editorsan = {{редактори и съставители на бележките}%
+ {ред\adddotspace и съст\adddotspace на бел\adddot}},
+ editorin = {{редактор и автор на уводната статия}%
+ {ред\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}},
+ editorsin = {{редактори и автори на уводната статия}%
+ {ред\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}},
+ editorfo = {{редактор и автор на предговора}%
+ {ред\adddotspace и авт\adddotspace на предг\adddot}},
+ editorsfo = {{редактори и автори на предговора}%
+ {ред\adddotspace и авт\adddotspace на предговора\adddot}},
+ editoraf = {{редактор и автор на послеслова}%
+ {ред\adddotspace и авт\adddotspace на послесл\adddot}},
+ editorsaf = {{редактори и автори на послеслова}%
+ {ред\adddotspace и авт\adddotspace на послесл\adddot}},
+ editortrco = {{редактор, преводач и автор на коментарите}%
+ {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на комент\adddot}},
+ editorstrco = {{редактори, преводачи и автори коментарите}%
+ {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на комент\adddot}},
+ editortran = {{редактор, преводач и съставител на бележките}%
+ {ред.,\addabbrvspace прев.\adddotspace и съст\adddotspace на бел\adddot}},
+ editorstran = {{редактори, преводачи и съставители на бележките}%
+ {ред.,\addabbrvspace прев.\adddotspace и съст\adddotspace на бел\adddot}},
+ editortrin = {{редактор, преводач и автор на уводната статия}%
+ {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}},
+ editorstrin = {{редактори, преводачи и автори на уводната статия}%
+ {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}},
+ editortrfo = {{редактор, преводач и автор на предговора}%
+ {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на предг\adddot}},
+ editorstrfo = {{редактори, преводачи и автори на предговора}%
+ {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на предг\adddot}},
+ editortraf = {{редактор, преводач и автор на послеслова}%
+ {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на послеслова\adddot}},
+ editorstraf = {{редактори, преводачи и автори на послеслова}%
+ {ред.,\addabbrvspace прев\adddotspace и авт\adddotspace на послеслова\adddot}},
+ editorcoin = {{редактор, автор на коментарите и уводната статия}%
+ {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и ун\adddotspace ст\adddot}},
+ editorscoin = {{редактори, автори на коментарите и уводната статия}%
+ {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и ун\adddotspace ст\adddot}},
+ editorcofo = {{редактор, автор на комментарите и предговора}%
+ {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}},
+ editorscofo = {{редактори, автори на комментарите и предговора}%
+ {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}},
+ editorcoaf = {{редактор, автор на комментарите и послеслова}%
+ {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}},
+ editorscoaf = {{редактори, автори на комментарите и послеслова}%
+ {ред.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}},
+ editoranin = {{редактор, съставител на бележките и автор на уводната статия}%
+ {ред.,\addabbrvspace съст\adddotspace на бел.\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}},
+ editorsanin = {{редактори, съставители на бележките и автори на уводната статия}%
+ {ред.,\addabbrvspace съст\adddotspace на бел.\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}},
+ editoranfo = {{редактор, съставител на бележките и автор на предговора}%
+ {ред.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на предг\adddot}},
+ editorsanfo = {{редактори, съставители на бележките и автори на предговора}%
+ {ред.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на предг\adddot}},
+ editoranaf = {{редактор, съставител на бележките и автор на послеслова}%
+ {ред.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на послесл\adddot}},
+ editorsanaf = {{редактори, съставители на бележките и автори на послеслова}%
+ {ред.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на послесл\adddot}},
+ editortrcoin = {{редактор, преводач, автор на коментарите и уводната статия}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}},
+ editorstrcoin = {{редактори, преводачи, автори на коментарите и уводната статия}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}},
+ editortrcofo = {{редактор, преводач, автор на коментарите и предговора}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}},
+ editorstrcofo = {{редактори, преводачи, автори на коментарите и предговора}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}},
+ editortrcoaf = {{редактор, преводач, автор на комментарите и послеслова}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}},
+ editorstrcoaf = {{редактори, преводачи, автори на комментарите и послеслова}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}},
+ editortranin = {{редактор, переводач, съставител на бележките и автор на уводната статия}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на ув.\adddotspace ст\adddot}},
+ editorstranin = {{редактори, переводачи, съставители на бележките и автори на уводната статия}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на ув.\adddotspace ст\adddot}},
+ editortranfo = {{редактор, преводач, съставител на бележките и автор на предговора}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на предг\adddot}},
+ editorstranfo = {{редактор, преводач, съставител на бележките и автор на предговора}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на предг\adddot}},
+ editortranaf = {{редактор, преводач, съставител на бележките и автор на послеслова}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на послесл\adddot}},
+ editorstranaf = {{редактори, преводачи, съставители на бележките и автори на послеслова}%
+ {ред.,\addabbrvspace прев.,\addabbrvspace съст\adddotspace на бел\adddotspace и авт\adddotspace на послесл\adddot}},
+ translatorco = {{преводач и автор на коментарите}%
+ {прев\adddotspace и авт\adddotspace на комент\adddot}},
+ translatorsco = {{преводачи и автори на коментарите}%
+ {прев\adddotspace и авт\adddotspace на комент\adddot}},
+ translatoran = {{преводач и съставител на бележките}%
+ {прев\adddotspace и съст\adddotspace на бел\adddot}},
+ translatorsan = {{преводачи и съставители на бележките}%
+ {прев\adddotspace и съст\adddotspace на бел\adddot}},
+ translatorin = {{преводач и автор на уводната статия}%
+ {прев\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}},
+ translatorsin = {{преводач и автор на уводната статия}%
+ {прев\adddotspace и авт\adddotspace на ув\adddotspace ст\adddot}},
+ translatorfo = {{преводач и автор на предговора}%
+ {прев\adddotspace и авт\adddotspace на предг\adddot}},
+ translatorsfo = {{преводачи и автори на предговора}%
+ {прев\adddotspace и авт\adddotspace на предг\adddot}},
+ translatoraf = {{преводач и автор на послеслова}%
+ {прев\adddotspace и авт\adddotspace на послесл\adddot}},
+ translatorsaf = {{преводачи и автори на послеслова}%
+ {прев\adddotspace и авт\adddotspace на послесл\adddot}},
+ translatorcoin = {{преводач, автор ва коментарите и уводната статия}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}},
+ translatorscoin = {{преводач, автор ва коментарите и уводната статия}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}},
+ translatorcofo = {{преводач, автор на коментарите и предговора}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}},
+ translatorscofo = {{преводачи, автори на коментарите и предговора}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}},
+ translatorcoaf = {{преводач, автор на комментарите и послеслова}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}},
+ translatorscoaf = {{преводачи, автори на комментарите и послеслова}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}},
+ translatoranin = {{преводач, автор на комментарите и уводната статия}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}},
+ translatorsanin = {{преводачи, автори на комментарите и уводната статия}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и ув\adddotspace ст\adddot}},
+ translatoranfo = {{преводач, автор на коментарите и предговора}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}},
+ translatorsanfo = {{преводачи, автори на коментарите и предговора}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и предг\adddot}},
+ translatoranaf = {{преводач, автор на коментарите и послеслова}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}},
+ translatorsanaf = {{преводачи, автори на коментарите и послеслова}%
+ {прев.,\addabbrvspace авт\adddotspace на комент\adddotspace и послесл\adddot}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+% byauthor = {{}{}},% FIXME: missing
+ byeditor = {{под редакцията на}{под\addabbrvspace ред\adddotspace на}},
+ bycompiler = {{съставител}{съст\adddot}},
+ byredactor = {{под редакцията на }{под\addabbrvspace ред\adddotspace на}},
+ byreviser = {{коригирано от}{кор\adddotspace от}},
+ byreviewer = {{рецензия от}{рец\adddotspace от}},
+ byfounder = {{основател}{осн\adddot}},
+ bycontinuator = {{продължител}{продълж\adddot}},
+ bycollaborator = {{сътрудник}{сътр\adddot}},
+ bytranslator = {{превод \lbx@lfromlang}{прев\adddot\ \lbx@sfromlang}},
+ bycommentator = {{коментари}{комент\adddot}},
+ byannotator = {{бележки}{бел\adddot}},
+ withcommentator = {{коментари}{комент\adddot}},
+ withannotator = {{бележки}{бел\adddot}},
+ withintroduction = {{уводна статия}{ув\adddotspace ст\adddot}},
+ withforeword = {{предговор}{предг\adddot}},
+ withafterword = {{послеслов}{послесл\adddot}},
+ byeditortr = {{превод \lbx@lfromlang, под редакцията на}%
+ {прев\adddot\ \lbx@sfromlang, под\addabbrvspace ред\adddot}},
+ byeditorco = {{под редакцията на, коментари}%
+ {под ред.,\addabbrvspace коммент\adddot}},
+ byeditoran = {{под редакцията на, бележки}%
+ {под ред.,\addabbrvspace бел\adddot}},
+ byeditorin = {{под редакцията на, уводна статия}%
+ {под ред.,\addabbrvspace ув\adddotspace ст\adddot}},
+ byeditorfo = {{под редакцията на, предговор}%
+ {под ред.,\addabbrvspace предг\adddot}},
+ byeditoraf = {{под редакцията на, послеслов}%
+ {под ред.,\addabbrvspace послесл\adddot}},
+ byeditortrco = {{под редакцията на, превод \lbx@lfromlang\ и комментари}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang\ и коммент\adddot}},
+ byeditortran = {{под редакцията на, превод \lbx@lfromlang\ и бележки}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang\ и бел\adddot}},
+ byeditortrin = {{под редакцията на, превод \lbx@lfromlang, уводна статия}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, ув\adddotspace ст\adddot}},
+ byeditortrfo = {{под редакцията на, превод \lbx@lfromlang, предговор}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, предг\adddot}},
+ byeditortraf = {{под редакцията на, превод \lbx@lfromlang, послеслов}%
+ {под ред\adddotspace и прев\adddot\ \lbx@sfromlang, послесл\adddot}},
+ byeditorcoin = {{под редакцията на, коментари и уводна статия}%
+ {под ред.,\addabbrvspace комент\adddotspace и ув\adddotspace ст\adddot}},
+ byeditorcofo = {{под редакцията на, коментари и предговор}%
+ {под ред.,\addabbrvspace комент\adddotspace и предг\adddot}},
+ byeditorcoaf = {{под редакцията на, коментари и послеслов}%
+ {под ред.,\addabbrvspace комент\adddotspace и послесл\adddot}},
+ byeditoranin = {{под редакцията на, бележки и уводна статия}%
+ {под ред.,\addabbrvspace бел\adddotspace и ув\adddotspace ст\adddot}},
+ byeditoranfo = {{под редакцията на, бележки и предговор}%
+ {под ред.,\addabbrvspace бел\adddotspace и предг\adddot}},
+ byeditoranaf = {{под редакцията на, бележки и послеслов}%
+ {под ред.,\addabbrvspace бел\adddotspace и послесл\adddot}},
+ byeditortrcoin = {{под редакцията на, превод \lbx@lfromlang, коментари и уводна статия}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, комент\adddotspace и ув\adddotspace ст\adddot}},
+ byeditortrcofo = {{под редакцията на, превод \lbx@lfromlang, коментари и предгово}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, комент\adddotspace и предг\adddot}},
+ byeditortrcoaf = {{под редакцията на, превод \lbx@lfromlang, коментари и послеслов}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, комент\adddotspace и послесл\adddot}},
+ byeditortranin = {{под редакцията на, превод \lbx@lfromlang, бележки и уводна статия}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, бел\adddotspace и ув\adddotspace ст\adddot}},
+ byeditortranfo = {{под редакцията на, превод \lbx@lfromlang, бележки и предговор}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, бел\adddotspace и предг\adddot}},
+ byeditortranaf = {{под редакцията на, превод \lbx@lfromlang, бележки и послеслов}%
+ {под ред.,\addabbrvspace прев\adddot\ \lbx@sfromlang, бел\adddotspace и послесл\adddot}},
+ bytranslatorco = {{превод \lbx@lfromlang\ и коментари}%
+ {прев\adddot\ \lbx@sfromlang\ и коммент\adddot}},
+ bytranslatoran = {{превод \lbx@lfromlang\ и бележки}%
+ {прев\adddot\ \lbx@sfromlang\ и бел\adddot}},
+ bytranslatorin = {{превод \lbx@lfromlang\ и уводна статия}%
+ {прев\adddot\ \lbx@sfromlang\ и ув\adddotspace ст\adddot}},
+ bytranslatorfo = {{превод \lbx@lfromlang\ и предговор}%
+ {прев\adddot\ \lbx@sfromlang\ и предг\adddot}},
+ bytranslatoraf = {{превод \lbx@lfromlang\ и послеслов}%
+ {прев\adddot\ \lbx@sfromlang\ и и послесл\adddot}},
+ bytranslatorcoin = {{превод \lbx@lfromlang, коментари и уводна статия}%
+ {прев\adddot\ \lbx@sfromlang, комент\adddotspace и ув\adddotspace ст\adddot}},
+ bytranslatorcofo = {{превод \lbx@lfromlang, коментари и предговор}%
+ {прев\adddot\ \lbx@sfromlang, комент\adddotspace и предг\adddot}},
+ bytranslatorcoaf = {{превод \lbx@lfromlang, коментари и послеслов}%
+ {прев\adddot\ \lbx@sfromlang, комент\adddotspace и послесл\adddot}},
+ bytranslatoranin = {{превод \lbx@lfromlang, бележки и уводна статия}%
+ {прев\adddot\ \lbx@sfromlang, бел\adddotspace и ув\adddotspace ст\adddot}},
+ bytranslatoranfo = {{превод \lbx@lfromlang, бележки и предговор}%
+ {прев\adddot\ \lbx@sfromlang, бел\adddotspace и предг\adddot}},
+ bytranslatoranaf = {{превод \lbx@lfromlang, бележки и послеслов}%
+ {прев\adddot\ \lbx@sfromlang, бел\adddotspace и послесл\adddot}},
+ and = {{и}{и}},
+ andothers = {{и\addabbrvspace др\adddot}{и\addabbrvspace др\adddot}},
+ andmore = {{и\addabbrvspace др\adddot}{и\addabbrvspace др\adddot}},
+ volume = {{том}{т\adddot}},
+ volumes = {{тома}{т\adddot}},
+ involumes = {{в}{в}},
+ jourvol = {{том}{т\adddot}},
+ jourser = {{поредица}{пор\adddot}},
+ book = {{книга}{кн\adddot}},
+ part = {{част}{ч\adddot}},
+ issue = {{брой}{бр\adddot}},
+ newseries = {{нова поредица}{нова пор\adddot}},
+ oldseries = {{стара поредица}{стара пор\adddot}},
+ edition = {{издание}{изд\adddot}},
+ reprint = {{преиздание}{преизд\adddot}},
+ reprintof = {{преиздание на}{преизд\adddotspace на}},
+ reprintas = {{переиздадено като}{преизд\adddotspace като}},
+ reprintfrom = {{преиздадено с}{преизд\adddotspace с}},
+ translationof = {{превод по изданието\addcolon}{прев\adddotspace по изд\adddot\addcolon}},
+ translationas = {{превод\addcolon}{прев\adddot\addcolon}},
+ translationfrom = {{превод от}{прев\adddotspace от}},
+ reviewof = {{рецензия на\addcolon}{рец\adddotspace на\addcolon}},
+ origpubas = {{първо публикуване\addcolon}%
+ {първо публ\adddot\addcolon}},
+ origpubin = {{първо публикувано в}%
+ {първо публ\adddotspace в}},
+ astitle = {{под заглавие\addcolon}{под загл\adddot\addcolon}},
+ bypublisher = {{издател\addcomma}{изд\addcomma}},% FIXME: unsure
+ nodate = {{б\adddot г\adddot}{б\adddot г\adddot}},
+ page = {{страница}{с\adddot}},
+ pages = {{страници}{с\adddot}},
+ column = {{колона}{кол\adddot}},
+ columns = {{колони}{кол\adddot}},
+ line = {{ред}{ред}},
+ lines = {{редове}{редове}},
+ verse = {{стих}{стих}},
+ verses = {{стихове}{стихове}},
+ section = {{параграф}{\S}},
+ sections = {{параграфи}{\S\S}},
+ paragraph = {{абзац}{абз\adddot}},
+ paragraphs = {{абзаци}{абз\adddot}},
+% pagetotal = {{}{}},% FIXME: missing
+% pagetotals = {{}{}},% FIXME: missing
+% columntotal = {{}{}},% FIXME: missing
+% columntotals = {{}{}},% FIXME: missing
+% linetotal = {{}{}},% FIXME: missing
+% linetotals = {{}{}},% FIXME: missing
+% versetotal = {{}{}},% FIXME: missing
+% versetotals = {{}{}},% FIXME: missing
+% sectiontotal = {{}{}},% FIXME: missing
+% sectiontotals = {{}{}},% FIXME: missing
+% paragraphtotal = {{}{}},% FIXME: missing
+% paragraphtotals = {{}{}},% FIXME: missing
+ in = {{в}{в}},
+ inseries = {{в}{в}},
+ ofseries = {{от}{от}},
+ number = {{номер}{№}},
+ chapter = {{глава}{гл\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{маг\adddotspace\textellipsis\ дис\adddot}
+ {маг\adddotspace\textellipsis\ дис\adddot}},
+ phdthesis = {{докт\adddotspace\textellipsis\ дис\adddot}
+ {докт\adddotspace\textellipsis\ дис\adddot}},
+ candthesis = {{канд\adddotspace\textellipsis\ дис\adddot}
+ {канд\adddotspace\textellipsis\ дис\adddot}},
+ resreport = {{научен доклад}{научен докл\adddot}},
+ techreport = {{технически доклад}{техн\adddotspace докл\adddot}},
+ software = {{програмно обезпечение}{прогр\adddotspace обезп\adddot}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{версия}{вер\adddot}},
+ url = {{url}{url}},
+ urlfrom = {{режим на достъп}{режим на достъп}},
+ urlseen = {{дата на посещение}{дата\addabbrvspace на посещ\adddot}},
+ inpreparation = {{в\addabbrvspace подготовка на}{в подг\adddotspace на}},
+ submitted = {{изпратено}{изпр\adddot}},
+ forthcoming = {{предстоящо публикуване}{предст\adddotspace публ\adddot}},
+ inpress = {{под\addabbrvspace печат}{под печ\adddot}},
+ prepublished = {{предварителна публикация}{предв\adddotspace публ\adddot}},% FIXME: unsure
+ citedas = {{по-нататък цитирано като}{по-нататък цит\addabbrvspace като}},
+ thiscite = {{тук}{тук}},
+ seenote = {{виж бележката под линия}{вж\adddotspace бел\adddotspace под линия}},
+ quotedin = {{цитирано в}{цит\adddotspace в}},
+ idem = {{същия\addabbrvspace автор}{същ\adddotspace авт\adddot}},
+ idemsm = {{същия\addabbrvspace автор}{същ\adddotspace авт\adddot}},
+ idemsf = {{същия\addabbrvspace автор}{същ\adddotspace авт\adddot}},
+ idemsn = {{същия\addabbrvspace автор}{същ\adddotspace авт\adddot}},
+ idempm = {{същите\addabbrvspace автори}{същ\adddotspace авт\adddot}},
+ idempf = {{същите\addabbrvspace автори}{същ\adddotspace авт\adddot}},
+ idempn = {{същите\addabbrvspace автори}{същ\adddotspace авт\adddot}},
+ idempp = {{същите\addabbrvspace автори}{същ\adddotspace авт\adddot}},
+ ibidem = {{пак\addabbrvspace там}{пак\addabbrvspace там}},
+ opcit = {{цит\adddotspace съч\adddot}{цит\adddotspace съч\adddot}},
+ loccit = {{цит\adddotspace място}{цит\adddotspace място}},
+ confer = {{сравни}{срв\adddot}},
+ sequens = {{и следващата}{и\addabbrvspace следв\adddot}},
+ sequentes = {{и следващите}{и\addabbrvspace следв\adddot}},
+ passim = {{навсякъде}{навс\adddot}},
+ see = {{виж}{вж\adddot}},
+ seealso = {{виж също}{вж\adddotspace също}},
+ backrefpage = {{цитирано на страница}{цит\adddotspace на\addabbrvspace с\adddot}},
+ backrefpages = {{цитирано на страници}{цит\adddotspace на\addabbrvspace с\adddot}},
+ january = {{януари}{ян\adddot}},
+ february = {{февруари}{февр\adddot}},
+ march = {{март}{март}},
+ april = {{април}{апр\adddot}},
+ may = {{май}{май}},
+ june = {{юни}{юни}},
+ july = {{юли}{юли}},
+ august = {{август}{авг\adddot}},
+ september = {{септември}{септ\adddot}},
+ october = {{октомври}{окт\adddot}},
+ november = {{ноември}{ноем\adddot}},
+ december = {{декември}{дек\adddot}},
+ datejanuary = {{януари}{ян\adddot}},
+ datefebruary = {{февруари}{февр\adddot}},
+ datemarch = {{март}{март}},
+ dateapril = {{април}{апр\adddot}},
+ datemay = {{май}{май}},
+ datejune = {{юни}{юни}},
+ datejuly = {{юли}{юли}},
+ dateaugust = {{август}{авг\adddot}},
+ dateseptember = {{септември}{септ\adddot}},
+ dateoctober = {{октомври}{окт\adddot}},
+ datenovember = {{ноември}{ноем\adddot}},
+ datedecember = {{декември}{дек\adddot}},
+ langamerican = {{американски}{амер\adddot}},
+ langbrazilian = {{бразилски}{браз\adddot}},
+ langbulgarian = {{български}{бълг\adddot}},
+ langcatalan = {{каталунски}{катал\adddot}},
+ langcroatian = {{хърватски}{хърв\adddot}},
+ langczech = {{чешки}{чеш\adddot}},
+ langdanish = {{датски}{дат\adddot}},
+ langdutch = {{нидерландски}{нидерл\adddot}},
+ langenglish = {{английски}{англ\adddot}},
+ langestonian = {{естонски}{ест\adddot}},
+ langfinnish = {{фински}{фин\adddot}},
+ langfrench = {{френски}{фр\adddot}},
+ langgalician = {{галисийски}{гал\adddot}},
+ langgerman = {{немски}{нем\adddot}},
+ langgreek = {{гръцки}{гр\adddot}},
+ langhungarian = {{унгарски}{унг\adddot}},
+ langitalian = {{италиански}{итал\adddot}},
+ langjapanese = {{японски}{яп\adddot}},
+ langlatin = {{латински}{лат\adddot}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{норвежки}{норв\adddot}},
+ langpolish = {{полски}{пол\adddot}},
+ langportuguese = {{португалски}{порт\adddot}},
+ langrussian = {{русски}{рус\adddot}},
+% langslovak = {{}{}},% FIXME: missing
+ langslovene = {{словенски}{слов\adddot}},
+ langspanish = {{испански}{исп\adddot}},
+ langswedish = {{шведски}{швед\adddot}},
+ fromamerican = {{от американски}{от\addabbrvspace амер\adddot}},
+ frombrazilian = {{от бразилски}{от\addabbrvspace браз\adddot}},
+ frombulgarian = {{от български}{от\addabbrvspace бълг\adddot}},
+ fromcatalan = {{от каталунски}{от\addabbrvspace катал\adddot}},
+ fromcroatian = {{от хърватски}{от\addabbrvspace хърв\adddot}},
+ fromczech = {{от чешки}{от\addabbrvspace чеш\adddot}},
+ fromdanish = {{от датски}{от\addabbrvspace дат\adddot}},
+ fromdutch = {{от нидерландски}{от\addabbrvspace нидерл\adddot}},
+ fromenglish = {{от английски}{от\addabbrvspace англ\adddot}},
+ fromestonian = {{от естонски}{от\addabbrvspace эст\adddot}},
+ fromfinnish = {{от фински}{от\addabbrvspace фин\adddot}},
+ fromfrench = {{от френски}{от\addabbrvspace фр\adddot}},
+ fromgalician = {{от галисийски}{от\addabbrvspace гал\adddot}},
+ fromgerman = {{от немски}{от\addabbrvspace нем\adddot}},
+ fromgreek = {{от гръцки}{от\addabbrvspace гр\adddot}},
+ fromhungarian = {{от унгарски}{от\addabbrvspace унг\adddot}},
+ fromitalian = {{от италиански}{от\addabbrvspace итал\adddot}},
+ fromjapanese = {{от японски}{от\addabbrvspace яп\adddot}},
+ fromlatin = {{от латински}{от\addabbrvspace лат\adddot}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{от норвежки}{от\addabbrvspace норв\adddot}},
+ frompolish = {{от полски}{от пол\adddot}},
+ fromportuguese = {{от португалски}{от\addabbrvspace порт\adddot}},
+ fromrussian = {{от руски}{от\addabbrvspace рус\adddot}},
+% fromslovak = {{}{}},% FIXME: missing
+ fromslovene = {{от словенски}{от\addabbrvspace слов\adddot}},
+ fromspanish = {{от испански}{от\addabbrvspace исп\adddot}},
+ fromswedish = {{от шведски}{от\addabbrvspace швед\adddot}},
+ countryde = {{Германия}{Германия}},
+ countryeu = {{Европейски съюз}{ЕС}},
+ countryep = {{Европейски съюз}{ЕС}},
+ countryfr = {{Франция}{Франция}},
+ countryuk = {{Великобритания}{Великобритания}},
+ countryus = {{Съединени американски щати}{САЩ}},
+ patent = {{патент}{пат\adddot}},
+ patentde = {{патент на Германия}{пат\adddotspace на Германия}},
+ patenteu = {{патент на Европа}{пат\adddotspace на Европа}},
+ patentfr = {{патент на Франция}{пат\adddotspace на Франции}},
+ patentuk = {{патент на Великобритания}{пат\adddotspace на Великобритания}},
+ patentus = {{патент на САЩ}{пат\adddotspace на САЩ}},
+ patreq = {{заявка}{заявка}},
+ patreqde = {{заявка за патент на Германии}{заявка за пат\adddotspace на Германия}},
+ patreqeu = {{заявка за патент на Европа}{заявка за пат\adddotspace на Европа}},
+ patreqfr = {{заявка за патент на Франция}{заявка за пат\adddotspace на Франция}},
+ patrequk = {{заявка за патент на Великобритания}{заявка за пат\adddotspace на Великобритания}},
+ patrequs = {{заявка за патент на САЩ}{заявка за пат\adddotspace на САЩ}},
+ file = {{файл}{файл}},
+ library = {{библиотека}{б-ка}},
+ abstract = {{резюме}{рез\adddot}},
+ annotation = {{анотация}{анот\adddot}},
+ commonera = {{новата ера}{н\adddotspace е\adddot}},
+ beforecommonera = {{до новата ера}{до н\adddotspace е\adddot}},
+ annodomini = {{след Христа}{сл\adddotspace Хр\adddot}},
+ beforechrist = {{до Христа}{до Хр\adddot}},
+ circa = {{около}{ок\adddot}},
+ spring = {{пролет}{пролет}},
+ summer = {{лято}{лято}},
+ autumn = {{есен}{есен}},
+ winter = {{зима}{зима}},
+ am = {{преди обяд}{преди обяд}},
+ pm = {{след обяд}{сдед обяд}},
+}
+
+\protected\gdef\lbx@bg@mkbibdatemonth#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{datejanuary}%
+ \or\abx@bibmonth{datefebruary}%
+ \or\abx@bibmonth{datemarch}%
+ \or\abx@bibmonth{dateapril}%
+ \or\abx@bibmonth{datemay}%
+ \or\abx@bibmonth{datejune}%
+ \or\abx@bibmonth{datejuly}%
+ \or\abx@bibmonth{dateaugust}%
+ \or\abx@bibmonth{dateseptember}%
+ \or\abx@bibmonth{dateoctober}%
+ \or\abx@bibmonth{datenovember}%
+ \or\abx@bibmonth{datedecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/canadian.lbx b/macros/latex/contrib/biblatex/latex/lbx/canadian.lbx
new file mode 100644
index 0000000000..67b2dfc2cd
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/canadian.lbx
@@ -0,0 +1,7 @@
+\ProvidesFile{canadian.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{english}% correct? these are the US standards
+\InheritBibliographyStrings{english}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx b/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx
new file mode 100644
index 0000000000..973b91b597
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/catalan.lbx
@@ -0,0 +1,630 @@
+\ProvidesFile{catalan.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{catalan}{catalan}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{\addnbthinspace -\addnbthinspace}%
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \def\mkbibordinal{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{%
+ \begingroup
+ \@tempcnta0#1\relax\number\@tempcnta
+ \ifcase\@tempcnta\or r\or n\or r\or t\else\`e\fi
+ \endgroup}%
+ \protected\def\mkbibfemord#1{\stripzeros{#1}a}%
+ \protected\def\mkbibdatelong#1#2#3{% maintainers: check me
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}
+ {}
+ {\space%
+ \ifthenelse{\thefield{#2}=4}
+ {d'}
+ {\ifthenelse{\thefield{#2}=8}
+ {d'}
+ {\ifthenelse{\thefield{#2}=10}
+ {d'}
+ {de\nobreakspace}}}}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}
+ {}
+ {\space de\nobreakspace}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{% maintainers: check me
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\mbox{-}}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\mbox{-}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\thefield{#1}}}%
+ \savecommand\lbx@initnamehook
+ \savecommand\lbx@inittitlehook
+ \savecommand\mkdaterangeterse
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \let\lbx@initnamehook=\lbx@ca@smartof
+ \let\lbx@inittitlehook=\lbx@ca@smartof
+ \protected\def\mkdaterangeterse{%
+ \BibliographyWarning{%
+ Date format 'terse' not applicable to\MessageBreak
+ Catalan dates. Using format 'short' instead}%
+ \mkdaterangefull{short}}%
+ \def\mkbibordedition{\mkbibfemord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\lbx@initnamehook
+ \restorecommand\lbx@inittitlehook
+ \restorecommand\mkdaterangeterse
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografia}{Bibliografia}},
+ references = {{Refer\`encies}{Refer\`encies}},
+ shorthands = {{Llista d'abreviatures}{Abreviatures}},
+ editor = {{editor}{ed\adddot}},
+ editors = {{editors}{ed\adddot}},
+ compiler = {{compilador}{comp\adddot}},% Revisar
+ compilers = {{compiladors}{comp\adddot}},% Revisar
+ redactor = {{redactor}{red\adddot}},
+ redactors = {{redactors}{red\adddot}},
+ reviser = {{revisor}{rev\adddot}},
+ revisers = {{revisors}{rev\adddot}},
+ founder = {{fundador}{fund\adddot}},
+ founders = {{fundadors}{fund\adddot}},
+ continuator = {{continuador}{cont\adddot}},
+ continuators = {{continuadors}{cont\adddot}},
+ collaborator = {{co\l.laborador}{co\l.l\adddot}},% \l* -> catalan.ldf (babel)
+ collaborators = {{co\l.laboradors}{co\l.l\adddot}},
+ translator = {{traductor}{trad\adddot}},
+ translators = {{traductors}{trad\adddot}},
+ commentator = {{comentarista}{com\adddot}},
+ commentators = {{comentaristes}{com\adddot}},
+ annotator = {{anotador}{anot\adddot}},
+ annotators = {{anotadors}{anot\adddot}},
+ commentary = {{comentari}{com\adddot}},
+ annotations = {{notes}{n\adddot}},
+ introduction = {{introducci\'o}{intr\adddot}},
+ foreword = {{pr\`oleg}{pr\`ol\adddot}},
+ afterword = {{ep\'{\i}leg}{ep\adddot}},
+ editortr = {{editor i traductor}{ed\adddotspace i trad\adddot}},
+ editorstr = {{editors i traductors}{ed\adddotspace i trad\adddot}},
+ editorco = {{editor i comentarista}{ed\adddotspace i com\adddot}},
+ editorsco = {{editors i comentaristes}{ed\adddotspace i com\adddot}},
+ editoran = {{editor i anotador}{ed\adddotspace i anot\adddot}},
+ editorsan = {{editors i anotadors}{ed\adddotspace i anot\adddot}},
+ editorin = {{editor i autor de la introducci\'o}
+ {ed\adddotspace i aut\adddotspace de la intr\adddot}},
+ editorsin = {{editors i autors de la introducci\'o}
+ {ed\adddotspace i aut\adddotspace de la intr\adddot}},
+ editorfo = {{editor i autor del pr\`oleg}
+ {ed\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ editorsfo = {{editors i autors del pr\`oleg}
+ {ed\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ editoraf = {{editor i autor de l'ep\'{\i}leg}
+ {ed\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editorsaf = {{editors i autors de l'ep\'{\i}leg}
+ {ed\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editortrco = {{editor, traductor i comentarista}
+ {ed.,\addabbrvspace trad\adddotspace i com\adddot}},
+ editorstrco = {{editors, traductors i comentaristes}
+ {ed.,\addabbrvspace trad\adddotspace i com\adddot}},
+ editortran = {{editor, traductor i anotador}
+ {ed.,\addabbrvspace trad\adddotspace i anot\adddot}},
+ editorstran = {{editors, traductors i anotadors}
+ {ed.,\addabbrvspace trad\adddotspace i anot\adddot}},
+ editortrin = {{editor, traductor i autor de la introducci\'o}
+ {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de la intr\adddot}},
+ editorstrin = {{editors, traductors i autors de la introducci\'o}
+ {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de la intr\adddot}},
+ editortrfo = {{editor, traductor i autor del pr\`oleg}
+ {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ editorstrfo = {{editors, traductors i autors del pr\`oleg}
+ {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ editortraf = {{editor, traductor i autor de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editorstraf = {{editors, traductors i autors de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace trad\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editorcoin = {{editor, comentarista i autor de la introducci\'o}
+ {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}},
+ editorscoin = {{editors, comentaristes i autors de la introducci\'o}
+ {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}},
+ editorcofo = {{editor, comentarista i autor del pr\`oleg}
+ {ed.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ editorscofo = {{editors, comentaristes i autors del pr\`oleg}
+ {ed.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ editorcoaf = {{editor, comentarista i autor de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editorscoaf = {{editors, comentaristes i autors de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editoranin = {{editor, anotador i autor de la introducci\'o}
+ {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
+ editorsanin = {{editors, anotadors i autors de la introducci\'o}
+ {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
+ editoranfo = {{editor, anotador i autor del pr\`oleg}
+ {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ editorsanfo = {{editors, anotadors i autors del pr\`oleg}
+ {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ editoranaf = {{editor, anotador i autor de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editorsanaf = {{editors, anotadors i autors de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editortrcoin = {{editor, traductor, comentarista i autor de la introducci\'o}
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}},
+ editorstrcoin = {{editors, traductors, comentaristes i autors de la introducci\'o}
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddot}},
+ editortrcofo = {{editor, traductor, comentarista i autor del pr\`oleg}
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot }},
+ editorstrcofo = {{editors, traductors, comentaristes i autors del pr\`oleg}
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot }},
+ editortrcoaf = {{editor, traductor, comentarista i autor de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editorstrcoaf = {{editors, traductors, comentaristes i autors de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editortranin = {{editor, traductor, anotador i autor de la introducci\'o}
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
+ editorstranin = {{editors, traductors, anotadors i autors de la introducci\'o}
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
+ editortranfo = {{editor, traductor, anotador i autor del pr\`oleg}
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de pr\`ol\adddot}},
+ editorstranfo = {{editors, traductors, anotadors i autors del pr\`oleg}
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de pr\`ol\adddot}},
+ editortranaf = {{editor, traductor, anotador i autor de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
+ editorstranaf = {{editors, traductors, anotadors i autors de l'ep\'{\i}leg}
+ {ed.,\addabbrvspace trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
+ translatorco = {{traductor i comentarista}
+ {trad\adddotspace i com\adddot}},
+ translatorsco = {{traductors i comentaristes}
+ {trad\adddotspace i com\adddot}},
+ translatoran = {{traductor i anotador}
+ {trad\adddotspace i anot\adddot}},
+ translatorsan = {{traductors i anotadors}
+ {trad\adddotspace i anot\adddot}},
+ translatorin = {{traductor i autor de la introducci\'o}
+ {trad\adddotspace i aut\adddotspace de la intr\adddot}},
+ translatorsin = {{traductors i autors de la introducci\'o}
+ {trad\adddotspace i aut\adddotspace de la intr\adddot}},
+ translatorfo = {{traductor i autor del pr\`oleg}
+ {trad\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ translatorsfo = {{traductors i autors del pr\`oleg}
+ {trad\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ translatoraf = {{traductor i autor de l'ep\'{\i}leg}
+ {trad\adddotspace i aut\adddotspace de l'ep\adddot}},
+ translatorsaf = {{traductors i autors de l'ep\'{\i}leg}
+ {trad\adddotspace i aut\adddotspace de l'ep\adddot}},
+ translatorcoin = {{traductor, comentarista i autor de la introducci\'o}
+ {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddotspace}},
+ translatorscoin = {{traductors, comentaristes i autors de la introducci\'o}
+ {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de la intr\adddotspace}},
+ translatorcofo = {{traductor, comentarista i autor del pr\`oleg}
+ {trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ translatorscofo = {{traductors, comentaristes i autors del pr\`oleg}
+ {trad.,\addabbrvspace com\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ translatorcoaf = {{traductor, comentarista i autor de l'ep\'{\i}leg}
+ {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
+ translatorscoaf = {{traductors, comentaristes i autors de l'ep\'{\i}leg}
+ {trad.,\addabbrvspace com\adddotspace i aut\adddotspace de l'ep\adddot}},
+ translatoranin = {{traductor, anotador i autor de la introducci\'o}
+ {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
+ translatorsanin = {{traductors, anotadors i autors de la introducci\'o}
+ {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de la intr\adddot}},
+ translatoranfo = {{traductor, anotador i autor del pr\`oleg}
+ {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ translatorsanfo = {{traductors, anotadors i autors del pr\`oleg}
+ {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace del pr\`ol\adddot}},
+ translatoranaf = {{traductor, anotador i autor de l'ep\'{\i}leg}
+ {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
+ translatorsanaf = {{traductors, anotadors i autors de l'ep\'{\i}leg}
+ {trad.,\addabbrvspace anot\adddotspace i aut\adddotspace de l'ep\adddot}},
+ organizer = {{organitzador}{org\adddot}},
+ organizers = {{organitzadors}{org\adddot}},
+ byorganizer = {{organitzat per}{org\adddotspace per}},
+ byauthor = {{per}{per}},
+ byeditor = {{edici\'o a cura \smartof}{ed\adddotspace\smartof}},
+ bycompiler = {{compilaci\'o a cura \smartof}{comp\adddotspace\smartof}},
+ byredactor = {{redacci\'o a cura \smartof}{red\adddotspace\smartof}},
+ byreviser = {{revisi\'o a cura \smartof}{rev\adddotspace\smartof}},
+ byreviewer = {{ressenya a cura \smartof}{ress\adddotspace\smartof}},
+ byfounder = {{fundat per}{fund\adddotspace per}},
+ bycontinuator = {{continuat per}{cont\adddotspace per}},
+ bycollaborator = {{amb la co\l.laboraci\'o \smartof}{amb la co\l.l\adddotspace\smartof}},
+ bytranslator = {{traducci\'o \lbx@fromlang\ a cura \smartof}{trad\adddotspace\lbx@fromlang\ \smartof}},
+ bycommentator = {{comentari a cura \smartof}{com\adddotspace\smartof}},
+ byannotator = {{notes a cura \smartof}{n\adddotspace\smartof}},
+ withcommentator = {{amb un comentari a cura \smartof}{amb un com\adddotspace\smartof}},
+ withannotator = {{amb notes a cura \smartof}{amb n\adddotspace\smartof}},
+ withintroduction = {{amb una introducci\'o a cura \smartof}{amb una intr\adddotspace\smartof}},
+ withforeword = {{amb un pr\`oleg a cura \smartof}{amb un pr\`ol\adddotspace\smartof}},
+ withafterword = {{amb un ep\'{\i}leg a cura \smartof}{amb un ep\adddotspace\smartof}},
+ byeditortr = {{edici\'o i traducci\'o \lbx@fromlang\ a cura \smartof}%
+ {ed\adddotspace i trad\adddotspace\lbx@fromlang\ \smartof}},
+ byeditorco = {{edici\'o i comentari a cura \smartof}%
+ {ed\adddotspace i com\adddotspace\smartof}},
+ byeditoran = {{edici\'o i notes a cura \smartof}%
+ {ed\adddotspace i n\adddotspace\smartof}},
+ byeditorin = {{edici\'o i introducci\'o a cura \smartof}%
+ {ed\adddotspace i intr\adddotspace\smartof}},
+ byeditorfo = {{edici\'o i pr\`oleg a cura \smartof}%
+ {ed\adddotspace i pr\`ol\adddotspace\smartof}},
+ byeditoraf = {{edici\'o i ep\'{\i}leg a cura \smartof}%
+ {ed\adddotspace i ep\adddotspace\smartof}},
+ byeditortrco = {{edici\'o, traducci\'o \lbx@fromlang\ i comentari a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i com\adddotspace\smartof}},
+ byeditortran = {{edici\'o, traducci\'o \lbx@fromlang\ i notes a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i n\adddotspace\smartof}},
+ byeditortrin = {{edici\'o, traducci\'o \lbx@fromlang\ i introducci\'o a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i intr\adddotspace\smartof}},
+ byeditortrfo = {{edici\'o, traducci\'o \lbx@fromlang\ i pr\`oleg a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i pr\`ol\adddotspace\smartof}},
+ byeditortraf = {{edici\'o, traducci\'o \lbx@fromlang\ i ep\'{\i}leg a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddotspace\lbx@fromlang\ i ep\adddotspace\smartof}},
+ byeditorcoin = {{edici\'o, comentari i introducci\'o a cura \smartof}
+ {ed.,\addabbrvspace com\adddotspace i intr\adddotspace\smartof}},
+ byeditorcofo = {{edici\'o, comentari i pr\`oleg a cura \smartof}
+ {ed.,\addabbrvspace com\adddotspace i pr\`ol\adddotspace\smartof}},
+ byeditorcoaf = {{edici\'o, comentari i ep\'{\i}leg a cura \smartof}%
+ {ed.,\addabbrvspace com\adddotspace i ep\adddotspace\smartof}},
+ byeditoranin = {{edici\'o, notes i introducci\'o a cura \smartof}%
+ {ed.,\addabbrvspace n\adddotspace i intr\adddotspace\smartof}},
+ byeditoranfo = {{edici\'o, notes i pr\`oleg a cura \smartof}%
+ {ed.,\addabbrvspace n\adddotspace i pr\`ol\adddotspace\smartof}},
+ byeditoranaf = {{edici\'o, notes i ep\'{\i}leg a cura \smartof}%
+ {ed.,\addabbrvspace n\adddotspace i ep\adddotspace\smartof}},
+ byeditortrcoin = {{edici\'o, traducci\'o \lbx@fromlang, comentari i introducci\'o a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@fromlang, com\adddotspace i intr\adddotspace\smartof}},
+ byeditortrcofo = {{edici\'o, traducci\'o \lbx@fromlang, comentari i pr\`oleg a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@fromlang, com\adddotspace i pr\`ol\adddotspace\smartof}},
+ byeditortrcoaf = {{edici\'o, traducci\'o \lbx@fromlang, comentari i ep\'{\i}leg a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@fromlang, com\adddot\ i ep\adddot\ \smartof}},
+ byeditortranin = {{edici\'o, traducci\'o \lbx@fromlang, notes i introducci\'o a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@fromlang, n\adddot\ i intr\adddot\ \smartof}},
+ byeditortranfo = {{edici\'o, traducci\'o \lbx@fromlang, notes i pr\`oleg a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@fromlang, n\adddot\ i pr\`ol\adddot\ \smartof}},
+ byeditortranaf = {{edici\'o, traducci\'o \lbx@fromlang, notes i ep\'{\i}leg a cura \smartof}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@fromlang, n\adddot\ i ep\adddot\ \smartof}},
+ bytranslatorco = {{traducci\'o \lbx@fromlang\ i comentari a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang\ i com\adddot\ \smartof}},
+ bytranslatoran = {{traducci\'o \lbx@fromlang\ i notes a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang\ i n\adddot\ \smartof}},
+ bytranslatorin = {{traducci\'o \lbx@fromlang\ i introducci\'o a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang\ i intr\adddot\ \smartof}},
+ bytranslatorfo = {{traducci\'o \lbx@fromlang\ i pr\`oleg a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang\ i pr\`ol\adddot\ \smartof}},
+ bytranslatoraf = {{traducci\'o \lbx@fromlang\ i ep\'{\i}leg a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang\ i ep\adddot\ \smartof}},
+ bytranslatorcoin = {{traducci\'o \lbx@fromlang, comentari i introducci\'o a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang, com\adddot\ i intr\adddot\ \smartof}},
+ bytranslatorcofo = {{traducci\'o \lbx@fromlang, comentari i pr\`oleg a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang, com\adddot\ i pr\`ol\adddot\ \smartof}},
+ bytranslatorcoaf = {{traducci\'o \lbx@fromlang, comentari i ep\'{\i}leg a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang, com\adddot\ i ep\adddot\ \smartof}},
+ bytranslatoranin = {{traducci\'o \lbx@fromlang, notes i introducci\'o a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang, n\adddot\ i intr\adddot\ \smartof}},
+ bytranslatoranfo = {{traducci\'o \lbx@fromlang, notes i pr\`oleg a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang, n\adddot\ i pr\`ol\adddot\ \smartof}},
+ bytranslatoranaf = {{traducci\'o \lbx@fromlang, notes i ep\'{\i}leg a cura \smartof}%
+ {trad\adddot\ \lbx@fromlang, n\adddot\ i ep\adddot\ \smartof}},
+ and = {{i}{i}},
+ andothers = {{et al\adddot}{et al\adddot}},
+ andmore = {{i m\'es}{i m\'es}},
+ volume = {{volum}{vol\adddot}},
+ volumes = {{volums}{vol\adddot}},
+ involumes = {{en}{en}},
+ jourvol = {{volum}{vol\adddot}},
+ jourser = {{s\`erie}{s\`er\adddot}},
+ book = {{llibre}{llib\adddot}},
+ part = {{part}{part}},
+ issue = {{n\'umero}{n\'um\adddot}},
+ newseries = {{s\`erie nova}{s\`erie nova}},
+ oldseries = {{s\`erie antiga}{s\`erie ant\adddot}},
+ edition = {{edici\'o}{ed\adddot}},
+ reprint = {{reimpressi\'o}{reimpr\adddot}},
+ reprintof = {{reimpressi\'o \smartof}{reimpr\adddotspace\smartof}},
+ reprintas = {{reimpr\`es com}{reimpr\adddotspace com}},
+ reprintfrom = {{reimpr\`es \smartof}{reimpr\adddotspace\smartof}},
+ reviewof = {{ressenya \smartof}{ress\adddotspace\smartof}},
+ translationof = {{traducci\'o \smartof}{trad\adddotspace\smartof}},
+ translationas = {{tradu\"{\i}t com}{trad\adddotspace com}},
+ translationfrom = {{tradu\"{\i}t del}{trad\adddotspace del}}, % Unsure of 'del'
+ origpubas = {{publicat origin\`ariament com}{pub\adddotspace orig\adddotspace com}},
+ origpubin = {{publicat origin\`ariament el}{pub\adddotspace orig\adddotspace el}},
+ astitle = {{com}{com}},
+ bypublisher = {{per}{per}},
+ page = {{p\`agina}{p\`ag\adddot}},
+ pages = {{p\`agines}{p\`ag\adddot}},
+ column = {{columna}{col\adddot}},
+ columns = {{columnes}{cols\adddot}},
+ line = {{l\'{\i}nia}{l\'{\i}n\adddot}},
+ lines = {{l\'{\i}nies}{l\'{\i}n\adddot}},
+ nodate = {{sine data}{s\adddotspace d\adddot}},
+ verse = {{vers}{v\adddot}},
+ verses = {{versos}{v\adddot}},
+ section = {{apartat}{\S}},
+ sections = {{apartats}{\S}},
+ paragraph = {{par\`agraf}{\P}},
+ paragraphs = {{par\`agrafs}{\P}},
+ pagetotal = {{p\`agina}{p\`ag\adddot}},
+ pagetotals = {{p\`agines}{p\`ag\adddot}},
+ columntotal = {{columna}{col\adddot}},
+ columntotals = {{columnes}{col\adddot}},
+ linetotal = {{l\'{\i}nia}{l\'{\i}n\adddot}},
+ linetotals = {{l\'{\i}nies}{l\'{\i}n\adddot}},
+ versetotal = {{vers}{v\adddot}},
+ versetotals = {{versos}{v\adddot}},
+ sectiontotal = {{secci\'o}{\S}},
+ sectiontotals = {{seccions}{\S}},
+ paragraphtotal = {{par\`agrafs}{\P}},
+ paragraphtotals = {{par\`agrafs}{\P}},
+ in = {{a}{a}},
+ inseries = {{a}{a}},
+ ofseries = {{\smartof}{\smartof}},
+ number = {{n\'umero}{n\'um\adddot}},
+ chapter = {{cap\'{\i}tol}{cap\adddot}},
+ bathesis = {{treball final de grau}{treb\adddotspace fin\adddotspace de gr\adddot}},
+ mathesis = {{treball final de m\`aster}{treb\adddotspace fin\adddotspace de m\`ast\adddot}},
+ phdthesis = {{tesi doctoral}{tesi doct\adddot}},
+ candthesis = {{tesi de candidatura}{tesi de cand\adddot}},
+ resreport = {{informe de recerca}{inf\adddotspace de rec\adddot}},
+ techreport = {{informe t\`ecnic}{inf\adddotspace t\`ec\adddot}},
+ software = {{programari}{prog\adddot}},
+ datacd = {{CD de dades}{CD de dades}},
+ audiocd = {{CD d'\`audio}{CD d'\`audio}},
+ version = {{versi\'o}{vers\adddot}},
+ url = {{adre\c{c}a}{adr\adddot}},
+ urlfrom = {{disponible a}{disp\adddotspace a}},
+ urlseen = {{consultat}{cons\adddotspace}}, % Possibly better «consultat \smartel», but \smartel unavailable
+ inpreparation = {{en preparaci\'o}{en prep\adddot}},
+ inpress = {{a impremta}{a impr\adddot}},% Per revisar
+ prepublished = {{pre-publicat}{pre-publicat}},
+ submitted = {{enviat a publicar}{env\adddotspace a pub\adddot}},
+ forthcoming = {{properament}{prop\adddot}},
+ citedas = {{d'ara endavant citat com}{d'ara end\adddotspace cit\adddotspace com}},
+ thiscite = {{concretament}{concr\adddot}},% Check
+ seenote = {{vegeu la nota}{v\adddotspace la n\adddot}},
+ quotedin = {{citat a}{cit\adddotspace a}},
+ idem = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idemsf = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idemsm = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idemsn = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idempf = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idempm = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idempn = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idempp = {{\'{\i}dem}{\'{\i}d\adddot}},
+ ibidem = {{ib\'{\i}dem}{ib\adddot}},
+ opcit = {{\`op\adddotspace cit\adddot}{\`op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{seq\adddot}{seq\adddot}},
+ sequentes = {{et seq\adddot}{et seq\adddot}},
+ passim = {{p\`assim}{p\`assim}},
+ see = {{vegeu}{v\adddot}},
+ seealso = {{vegeu tamb\'e}{v\adddotspace tamb\'e}},
+ backrefpage = {{vegeu la p\`agina}{v\adddotspace la p\`ag\adddot}},
+ backrefpages = {{vegeu les p\`agines}{v\adddotspace les p\`ag\adddot}},
+ january = {{gener}{gen\adddot}},
+ february = {{febrer}{febr\adddot}},
+ march = {{mar\c{c}}{mar\c{c}}},
+ april = {{abril}{abr\adddot}},
+ may = {{maig}{maig}},
+ june = {{juny}{juny}},
+ july = {{juliol}{jul\adddot}},
+ august = {{agost}{ag\adddot}},
+ september = {{setembre}{set\adddot}},
+ october = {{octubre}{oct\adddot}},
+ november = {{novembre}{nov\adddot}},
+ december = {{desembre}{des\adddot}},
+ langamerican = {{angl\`es americ\`a}{ang\adddotspace amer\adddot}},
+ langbrazilian = {{portugu\`es brasiler}{port\adddotspace bras\adddot}},
+ langbulgarian = {{b\'ulgar}{b\'ulg\adddot}},
+ langcatalan = {{catal\`a}{cat\adddot}},
+ langczech = {{txec}{txec}},
+ langcroatian = {{croat}{croat}},
+ langdanish = {{dan\`es}{dan\adddot}},
+ langdutch = {{neerland\`es}{neerl\adddot}},
+ langenglish = {{angl\`es}{ang\adddot}},
+ langestonian = {{estoni\`a}{eston\adddot}},
+ langfinnish = {{fin\`es}{fin\adddot}},
+ langfrench = {{franc\`es}{fr\adddot}},
+ langgalician = {{gallec}{gal\adddot}},
+ langgerman = {{alemany}{al\adddot}},
+ langgreek = {{grec}{grec}},
+% langhungarian = {{}{}}, % FIXME: missing
+ langitalian = {{itali\`a}{it\adddot}},
+ langjapanese = {{japon\`es}{jap\adddot}},
+ langlatin = {{llat\'{\i}}{ll\adddot}},
+ langlatvian = {{litu\`a}{lit\adddot}},
+ langnorwegian = {{noruec}{nor\adddot}},
+ langpolish = {{polon\`es}{pol\adddot}},
+ langportuguese = {{portugu\`es}{port\adddot}},
+ langrussian = {{rus}{rus}},
+ langslovak = {{eslovac}{eslovac}},
+ langslovene = {{eslov\`e}{eslov\`e}},
+ langspanish = {{castell\`a}{cast\adddot}},
+ langswedish = {{suec}{suec}},
+ langukrainian = {{ucra\"{\i}n\`es}{ucr\adddot}},
+ fromamerican = {{de l'angl\`es americ\`a}{de l'ang\adddotspace amer\adddot}},
+ frombrazilian = {{del portugu\`es brasiler}{del port\adddotspace bras\adddot}},
+ frombulgarian = {{del b\'ulgar}{del bulg\adddot}},
+ fromcatalan = {{del catal\`a}{del cat\adddot}},
+ fromcroatian = {{del croat}{del croat}},
+ fromczech = {{del txec}{del txec}},
+ fromdanish = {{del dan\`es}{del dan\adddot}},
+ fromdutch = {{del neerland\`es}{del neerl\adddot}},
+ fromenglish = {{de l'angl\`es}{de l'ang\adddot}},
+ fromestonian = {{de l'estoni\`a}{de l'eston\adddot}},
+ fromfinnish = {{del fin\`es}{del fin\adddot}},
+ fromfrench = {{del franc\`es}{del fr\adddot}},
+ fromgalician = {{del gallec}{del gall\adddot}},
+ fromgerman = {{de l'alemany}{de l'al\adddot}},
+ fromgreek = {{del grec}{del grec}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{de l'itali\`a}{de l'it\adddot}},
+ fromjapanese = {{del japon\`es}{del jap\adddot}},
+ fromlatin = {{del llat\'{\i}}{del ll\adddot}},
+ fromlatvian = {{del litu\`a}{del lit\adddot}},
+ fromnorwegian = {{del noruec}{del nor\adddot}},
+ frompolish = {{del polon\`es}{del pol\adddot}},
+ fromportuguese = {{del portugu\`es}{del port\adddot}},
+ fromrussian = {{del rus}{del rus}},
+ fromslovak = {{de l'eslovac}{de l'eslovac}},
+ fromslovene = {{de l'eslov\`e}{de l'eslov\`e}},
+ fromspanish = {{del castell\`a}{del cast\adddot}},
+ fromswedish = {{del suec}{del suec}},
+ fromukrainian = {{de l'ucra\"{\i}n\`es}{de l'ucr\adddot}},
+ countryde = {{Alemanya}{DE}},
+ countryeu = {{Uni\'o Europea}{UE}},
+ countryep = {{Uni\'o Europea}{UE}},
+ countryfr = {{Fran\c{c}a}{FR}},
+ countryuk = {{Regne Unit}{GB}},
+ countryus = {{Estats Units d'Am\`erica}{US}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{patent alemana}{pat\adddot\ al\adddot}},
+ patenteu = {{patent europea}{pat\adddot\ eur\adddot}},
+ patentfr = {{patent francesa}{pat\adddot\ fr\adddot}},
+ patentuk = {{patent brit\`anica}{pat\adddot\ brit\adddot\adddot}},
+ patentus = {{patent estatunidenca}{pat\adddot\ EUA}},
+ patreq = {{so\l.licitud de patent}{so\l.l\adddotspace de pat\adddot}},
+ patreqde = {{so\l.licitud de patent alemana}{so\l.l\adddotspace de pat\adddot\ al\adddot}},
+ patreqeu = {{so\l.licitud de patent europea}{so\l.l\adddotspace de pat\adddot\ eur\adddot}},
+ patreqfr = {{so\l.licitud de patent francesa}{so\l.l\adddotspace de pat\adddot\ fr\adddot}},
+ patrequk = {{so\l.licitud de patent brit\`anica}{so\l.l\adddotspace de pat\adddot\ brit\adddot}},
+ patrequs = {{so\l.licitud de patent estatunidenca}{so\l.l\adddotspace de pat\adddot\ EUA}},
+ file = {{fitxer}{fitx\adddot}},
+ library = {{biblioteca}{bibl\adddot}},
+ abstract = {{resum}{res\adddot}},
+ annotation = {{nota}{n\adddot}},
+ commonera = {{Era Comuna}{EC}},
+ beforecommonera = {{abans de l'Era Comuna}{AEC}},
+ annodomini = {{despr\'es de Crist}{dC}},
+ beforechrist = {{abans de Crist}{aC}},
+ circa = {{circa}{c\adddot}},
+ spring = {{primavera}{prim\adddot}},
+ summer = {{estiu}{est\adddot}},
+ autumn = {{tardor}{tard\adddot}},
+ winter = {{hivern}{hiv\adddot}},
+ am = {{a\adddotspace m\adddot}{a\adddotspace m\adddot}},
+ pm = {{p\adddotspace m\adddot}{p\adddotspace m\adddot}},
+}
+
+\begingroup
+\catcode`\&=3
+
+\gdef\lbx@ca@smartof{%
+ \iftoggle{smartof}{\lbx@ca@smartof@i}{\@gobble}}
+
+\protected\long\gdef\lbx@ca@smartof@i#1{%
+ \global\togglefalse{smartof}%
+ \begingroup
+ \def\forceD##1{a\relax}%
+ \def\forceDE##1{x\relax}%
+ \def\do##1{\let##1\@firstofone}%
+ \abx@dosingleaccents
+ \abx@dodoubleaccents
+ \def\i{i}\def\j{j}%
+ \def\AE{a}\def\ae{a}%
+ \def\OE{o}\def\oe{o}%
+ \def\O{o}\def\o{o}%
+ \let\IeC\@firstofone
+ \let\@tabacckludge\@gobble
+ \ifnum\catcode`\"=\active
+ \uccode`\~=`\"
+ \uppercase{\let~\@empty}%
+ \fi
+ \ifnum\catcode`\~=\active
+ \let~\@empty
+ \fi
+ \let\protect\noexpand
+ \edef\lbx@tempa{#1}%
+ \expandafter\futurelet
+ \expandafter\lbx@tempa
+ \expandafter\lbx@ca@smartof@ii
+ \lbx@tempa&}
+
+\gdef\lbx@ca@smartof@ii{%
+ \ifcat\bgroup\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@ca@smartof@ii##1}%
+ \else\ifcat\noexpand~\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@ca@smartof@ii}%
+ \else
+ \ifnum 0%
+ \if a\noexpand\lbx@tempa 1\fi
+ \if e\noexpand\lbx@tempa 1\fi
+ \if i\noexpand\lbx@tempa 1\fi
+ \if o\noexpand\lbx@tempa 1\fi
+ \if u\noexpand\lbx@tempa 1\fi
+ \if y\noexpand\lbx@tempa 1\fi
+ \if A\noexpand\lbx@tempa 1\fi
+ \if E\noexpand\lbx@tempa 1\fi
+ \if I\noexpand\lbx@tempa 1\fi
+ \if O\noexpand\lbx@tempa 1\fi
+ \if U\noexpand\lbx@tempa 1\fi
+ \if Y\noexpand\lbx@tempa 1\fi
+ >0 %
+ \let\lbx@tempa\lbx@ca@smartof@d
+ \else
+ \ifnum 0%
+ \if h\noexpand\lbx@tempa 1\fi
+ \if H\noexpand\lbx@tempa 1\fi
+ >0 %
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@ca@smartof@ii}%
+ \else
+ \let\lbx@tempa\lbx@ca@smartof@de
+ \fi\fi\fi\fi
+ \lbx@tempa}
+
+\gdef\lbx@ca@smartof@d#1&{\endgroup d'}
+\gdef\lbx@ca@smartof@de#1&{\endgroup de\space}
+
+\endgroup
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/croatian.lbx b/macros/latex/contrib/biblatex/latex/lbx/croatian.lbx
new file mode 100644
index 0000000000..597c80bf21
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/croatian.lbx
@@ -0,0 +1,586 @@
+\ProvidesFile{croatian.lbx}
+[\abx@lbxid]
+
+% Translator's note:
+% - Most translations have been made gender neutral,
+% as there's no intrinsic biblatex support for the opposite
+
+\DeclareRedundantLanguages{croatian}{croatian}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}%
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\iffieldundef{#3}
+ {\mkbibmonth{\thefield{#2}}}
+ {\lbx@cr@mkbibmonth{\thefield{#2}}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\addnbthinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibordinal{\thefield{#2}}%
+ \iffieldundef{#1}{}{\addnbthinspace}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibordinal}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\NewBibliographyString{% Month name variants used after day
+ datejanuary,
+ datefebruary,
+ datemarch,
+ dateapril,
+ datemay,
+ datejune,
+ datejuly,
+ dateaugust,
+ dateseptember,
+ dateoctober,
+ datenovember,
+ datedecember%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografija}{Bibliografija}},
+ references = {{Literatura}{Literatura}},
+ shorthands = {{Popis kratica}{Kratice}},
+ editor = {{urednik}{ur\adddot}},% gender biased
+ editors = {{urednici}{ur\adddot}},
+ compiler = {{sastavlja\v{c}}{sastavlja\v{c}}},% gender biased
+ compilers = {{sastavlja\v{c}i}{sastavlja\v{c}i}},
+ redactor = {{redaktor}{redaktor}},% gender biased
+ redactors = {{redaktori}{redaktori}},
+ reviser = {{korektor}{korektor}},% gender biased
+ revisers = {{korektori}{korektori}},
+ founder = {{zasniva\v{c}}{zasniva\v{c}}},% gender biased
+ founders = {{zasniva\v{c}i}{zasniva\v{c}i}},
+ continuator = {{nastavlja\v{c}}{nastavlja\v{c}i}},% gender biased
+ continuators = {{nastavlja\v{c}i}{nastavlja\v{c}i}},
+ collaborator = {{suradnik}{sur\adddot}},% gender biased
+ collaborators = {{suradnici}{sur\adddot}},
+ translator = {{prijevod}{prev\adddot}},
+ translators = {{prijevod}{prev\adddot}},
+ commentator = {{komentator}{komentator}},% gender biased
+ commentators = {{komentatori}{komentatori}},
+ annotator = {{autor bilje\v{z}aka}{autor bilje\v{z}aka}},% gender biased
+ annotators = {{autori bilje\v{z}aka}{autori bilje\v{z}aka}},
+ commentary = {{komentar}{komentar}},
+ annotations = {{bilje\v{s}ke}{bilje\v{s}ke}},
+ introduction = {{uvod}{uvod}},
+ foreword = {{predgovor}{predgovor}},
+ afterword = {{pogovor}{pogovor}},
+ editortr = {{prijevod i obrada}{ur\adddotspace i prev\adddot}},
+ editorstr = {{prijevod i obrada}{ur\adddotspace i prev\adddot}},
+ editorco = {{obrada i komentari}% gender neutral
+ {obrada i komentari}},
+ editorsco = {{obrada i komentari}%
+ {obrada i komentari}},
+ editoran = {{obrada i bilje\v{s}ke}%
+ {obrada i bilje\v{s}ke}},
+ editorsan = {{obrada i bilje\v{s}ke}%
+ {obrada i bilje\v{s}ke}},
+ editorin = {{obrada i uvod}%
+ {obrada i uvod}},
+ editorsin = {{obrada i uvod}%
+ {obrada i uvod}},
+ editorfo = {{obrada i predgovor}%
+ {obrada i predgovor}},
+ editorsfo = {{obrada i predgovor}%
+ {obrada i predgovor}},
+ editoraf = {{obrada i pogovor}%
+ {obrada i pogovor}},
+ editorsaf = {{obrada i pogovor}%
+ {obrada i pogovor}},
+ editortrco = {{prijevod, obrada i komentari}%
+ {prijevod, obrada i komentari}},
+ editorstrco = {{prijevod, obrada i komentari}%
+ {prijevod, obrada i komentari}},
+ editortran = {{prijevod, obrada i bilje\v{s}ke}%
+ {prijevod, obrada i bilje\v{s}ke}},
+ editorstran = {{prijevod, obrada i bilje\v{s}ke}%
+ {prijevod, obrada i bilje\v{s}ke}},
+ editortrin = {{prijevod, obrada i uvod}%
+ {prijevod, obrada i uvod}},
+ editorstrin = {{prijevod, obrada i uvod}%
+ {prijevod, obrada i uvod}},
+ editortrfo = {{prijevod, obrada i predgovor}%
+ {prijevod, obrada i predgovor}},
+ editorstrfo = {{prijevod, obrada i predgovor}%
+ {prijevod, obrada i predgovor}},
+ editortraf = {{prijevod, obrada i pogovor}%
+ {prijevod, obrada i pogovor}},
+ editorstraf = {{prijevod, obrada i pogovor}%
+ {prijevod, obrada i pogovor}},
+ editorcoin = {{obrada, uvod i komentari}%
+ {obrada, uvod i komentari}},
+ editorscoin = {{obrada, uvod i komentari}%
+ {obrada, uvod i komentari}},
+ editorcofo = {{obrada, predgovor i komentari}%
+ {obrada, predgovor i komentari}},
+ editorscofo = {{obrada, predgovor i komentari}%
+ {obrada, predgovor i komentari}},
+ editorcoaf = {{obrada, komentari i pogovor}%
+ {obrada, komentari i pogovor}},
+ editorscoaf = {{obrada, komentari i pogovor}%
+ {obrada, komentari i pogovor}},
+ editoranin = {{obrada, uvod i bilje\v{s}ke}%
+ {obrada, uvod i bilje\v{s}ke}},
+ editorsanin = {{obrada, uvod i bilje\v{s}ke}%
+ {obrada, uvod i bilje\v{s}ke}},
+ editoranfo = {{obrada, predgovor i bilje\v{s}ke}%
+ {obrada, predgovor i bilje\v{s}ke}},
+ editorsanfo = {{obrada, predgovor i bilje\v{s}ke}%
+ {obrada, predgovor i bilje\v{s}ke}},
+ editoranaf = {{obrada, bilje\v{s}ke i pogovor}%
+ {obrada, bilje\v{s}ke i pogovor}},
+ editorsanaf = {{obrada, bilje\v{s}ke i pogovor}%
+ {obrada, bilje\v{s}ke i pogovor}},
+ editortrcoin = {{prijevod, obrada, uvod i komentari}%
+ {prijevod, obrada, uvod i komentari}},
+ editorstrcoin = {{prijevod, obrada, uvod i komentari}%
+ {prijevod, obrada, uvod i komentari}},
+ editortrcofo = {{prijevod, obrada, predgovor i komentari}%
+ {prijevod, obrada, predgovor i komentari}},
+ editorstrcofo = {{prijevod, obrada, predgovor i komentari}%
+ {prijevod, obrada, predgovor i komentari}},
+ editortrcoaf = {{prijevod, obrada, komentari i pogovor}%
+ {prijevod, obrada, komentari i pogovor}},
+ editorstrcoaf = {{prijevod, obrada, komentari i pogovor}%
+ {prijevod, obrada, komentari i pogovor}},
+ editortranin = {{prijevod, obrada, uvod i bilje\v{s}ke}%
+ {prijevod, obrada, uvod i bilje\v{s}ke}},
+ editorstranin = {{prijevod, obrada, uvod i bilje\v{s}ke}%
+ {prijevod, obrada, uvod i bilje\v{s}ke}},
+ editortranfo = {{prijevod, obrada, predgovor i bilje\v{s}ke}%
+ {prijevod, obrada, predgovor i bilje\v{s}ke}},
+ editorstranfo = {{prijevod, obrada, predgovor i bilje\v{s}ke}%
+ {prijevod, obrada, predgovor i bilje\v{s}ke}},
+ editortranaf = {{prijevod, obrada, bilje\v{s}ke i pogovor}%
+ {prijevod, obrada, bilje\v{s}ke i pogovor}},
+ editorstranaf = {{prijevod, obrada, bilje\v{s}ke i pogovor}%
+ {prijevod, obrada, bilje\v{s}ke i pogovor}},
+ translatorco = {{prijevod i komentari}%
+ {prijevod i komentari}},
+ translatorsco = {{prijevod i komentari}%
+ {prijevod i komentari}},
+ translatoran = {{prijevod i bilje\v{s}ke}%
+ {prijevod i bilje\v{s}ke}},
+ translatorsan = {{prijevod i bilje\v{s}ke}%
+ {prijevod i bilje\v{s}ke}},
+ translatorin = {{prijevod i uvod}%
+ {prijevod i uvod}},
+ translatorsin = {{prijevod i uvod}%
+ {prijevod i uvod}},
+ translatorfo = {{prijevod i predgovor}%
+ {prijevod i predgovor}},
+ translatorsfo = {{prijevod i predgovor}%
+ {prijevod i predgovor}},
+ translatoraf = {{prijevod i pogovor}%
+ {prijevod i pogovor}},
+ translatorsaf = {{prijevod i pogovor}%
+ {prijevod i pogovor}},
+ translatorcoin = {{prijevod, uvod i komentari}%
+ {prijevod, uvod i komentari}},
+ translatorscoin = {{prijevod, uvod i komentari}%
+ {prijevod, uvod i komentari}},
+ translatorcofo = {{prijevod, predgovor i komentari}%
+ {prijevod, predgovor i komentari}},
+ translatorscofo = {{prijevod, predgovor i komentari}%
+ {prijevod, predgovor i komentari}},
+ translatorcoaf = {{prijevod, komentari i pogovor}%
+ {prijevod, komentari i pogovor}},
+ translatorscoaf = {{prijevod, komentari i pogovor}%
+ {prijevod, komentari i pogovor}},
+ translatoranin = {{prijevod, uvod i bilje\v{s}ke}%
+ {prijevod, uvod i bilje\v{s}ke}},
+ translatorsanin = {{prijevod, uvod i bilje\v{s}ke}%
+ {prijevod, uvod i bilje\v{s}ke}},
+ translatoranfo = {{prijevod, predgovor i bilje\v{s}ke}%
+ {prijevod, predgovor i bilje\v{s}ke}},
+ translatorsanfo = {{prijevod, predgovor i bilje\v{s}ke}%
+ {prijevod, predgovor i bilje\v{s}ke}},
+ translatoranaf = {{prijevod, bilje\v{s}ke i pogovor}%
+ {prijevod, bilje\v{s}ke i pogovor}},
+ translatorsanaf = {{prijevod, bilje\v{s}ke i pogovor}%
+ {prijevod, bilje\v{s}ke i pogovor}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{autor\addcolon}{autor\addcolon}},% gender biased
+ byeditor = {{obrada\addcolon}{ur\adddot}},%
+ bycompiler = {{sastavlja\v{c}\addcolon}{sast\adddot}},% gender biased
+ byredactor = {{redaktura\addcolon}{red\adddot}},
+ byreviser = {{korektura\addcolon}{kor\adddot}},
+% byreviewer = {{}{}},% FIXME: missing
+ byfounder = {{zapo\v{c}eo\addcolon}{zapo\v{c}eo\addcolon}},% gender biased
+ bycontinuator = {{nastavio\addcolon}{nastavio\addcolon}},% gender biased
+ bycollaborator = {{u suradnji s}{u sur\adddot s}},
+ bytranslator = {{prijevod \lbx@lfromlang\addcolon}%
+ {prev\adddot \lbx@sfromlang\addcolon}},
+ bycommentator = {{komentari\addcolon}{komentari\addcolon}},
+ byannotator = {{bilje\v{s}ke\addcolon}{bilje\v{s}ke\addcolon}},
+ withcommentator = {{komentari\addcolon}{komentari\addcolon}},
+ withannotator = {{bilje\v{s}ke\addcolon}{bilje\v{s}ke\addcolon}},
+ withintroduction = {{uvod\addcolon}{uvod\addcolon}},
+ withforeword = {{predgovor\addcolon}{predgovor\addcolon}},
+ withafterword = {{pogovor\addcolon}{pogovor\addcolon}},
+ byeditortr = {{prijevod \lbx@lfromlang\ i obrada\addcolon}%
+ {prijevod \lbx@lfromlang\ i obrada\addcolon}},
+ byeditorco = {{obrada i komentari\addcolon}%
+ {obrada i komentari\addcolon}},
+ byeditoran = {{obrada i bilje\v{s}ke\addcolon}%
+ {obrada i bilje\v{s}ke\addcolon}},
+ byeditorin = {{obrada i uvod\addcolon}%
+ {obrada i uvod\addcolon}},
+ byeditorfo = {{obrada i predgovor\addcolon}%
+ {obrada i predgovor\addcolon}},
+ byeditoraf = {{obrada i pogovor\addcolon}%
+ {obrada i pogovor\addcolon}},
+ byeditortrco = {{prijevod \lbx@lfromlang, obrada i komentari\addcolon}%
+ {prijevod \lbx@lfromlang, obrada i komentari\addcolon}},
+ byeditortran = {{prijevod \lbx@lfromlang, obrada i bilje\v{s}ke\addcolon}%
+ {prijevod \lbx@lfromlang, obrada i bilje\v{s}ke\addcolon}},
+ byeditortrin = {{prijevod \lbx@lfromlang, obrada i uvod\addcolon}%
+ {prijevod \lbx@lfromlang, obrada i uvod\addcolon}},
+ byeditortrfo = {{prijevod \lbx@lfromlang, obrada i predgovor\addcolon}%
+ {prijevod \lbx@lfromlang, obrada i predgovor\addcolon}},
+ byeditortraf = {{prijevod \lbx@lfromlang, obrada i pogovor\addcolon}%
+ {prijevod \lbx@lfromlang, obrada i pogovor\addcolon}},
+ byeditorcoin = {{obrada, uvod i komentari\addcolon}%
+ {obrada, uvod i komentari\addcolon}},
+ byeditorcofo = {{obrada, predgovor i komentari\addcolon}%
+ {obrada, predgovor i komentari\addcolon}},
+ byeditorcoaf = {{obrada, komentari i pogovor\addcolon}%
+ {obrada, komentari i pogovor\addcolon}},
+ byeditoranin = {{obrada, uvod i bilje\v{s}ke\addcolon}%
+ {obrada, uvod i bilje\v{s}ke\addcolon}},
+ byeditoranfo = {{obrada, predgovor i bilje\v{s}ke\addcolon}%
+ {obrada, predgovor i bilje\v{s}ke\addcolon}},
+ byeditoranaf = {{obrada, bilje\v{s}ke i pogovor\addcolon}%
+ {obrada, bilje\v{s}ke i pogovor\addcolon}},
+ byeditortrcoin = {{prijevod \lbx@lfromlang, obrada, uvod i komentari\addcolon}%
+ {prijevod \lbx@lfromlang, obrada, uvod i komentari\addcolon}},
+ byeditortrcofo = {{prijevod \lbx@lfromlang, obrada, predgovor i komentari\addcolon}%
+ {prijevod \lbx@lfromlang, obrada, predgovor i komentari\addcolon}},
+ byeditortrcoaf = {{prijevod \lbx@lfromlang, obrada, komentari i pogovor\addcolon}%
+ {prijevod \lbx@lfromlang, obrada, komentari i pogovor\addcolon}},
+ byeditortranin = {{prijevod \lbx@lfromlang, obrada, uvod i bilje\v{s}ke\addcolon}%
+ {prijevod \lbx@lfromlang, obrada, uvod i bilje\v{s}ke\addcolon}},
+ byeditortranfo = {{prijevod \lbx@lfromlang, obrada, predgovor i bilje\v{s}ke\addcolon}%
+ {prijevod \lbx@lfromlang, obrada, predgovor i bilje\v{s}ke\addcolon}},
+ byeditortranaf = {{prijevod \lbx@lfromlang, obrada, bilje\v{s}ke i pogovor\addcolon}%
+ {prijevod \lbx@lfromlang, obrada, bilje\v{s}ke i pogovor\addcolon}},
+ bytranslatorco = {{prijevod \lbx@lfromlang\ i komentari\addcolon}%
+ {prijevod \lbx@lfromlang\ i komentari\addcolon}},
+ bytranslatoran = {{prijevod \lbx@lfromlang\ i bilje\v{s}ke\addcolon}%
+ {prijevod \lbx@lfromlang\ i bilje\v{s}ke\addcolon}},
+ bytranslatorin = {{prijevod \lbx@lfromlang\ i uvod\addcolon}%
+ {prijevod \lbx@lfromlang\ i uvod\addcolon}},
+ bytranslatorfo = {{prijevod \lbx@lfromlang\ i predgovor\addcolon}%
+ {prijevod \lbx@lfromlang\ i predgovor\addcolon}},
+ bytranslatoraf = {{prijevod \lbx@lfromlang\ i pogovor\addcolon}%
+ {prijevod \lbx@lfromlang\ i pogovor\addcolon}},
+ bytranslatorcoin = {{prijevod \lbx@lfromlang, uvod i komentari\addcolon}%
+ {prijevod \lbx@lfromlang, uvod i komentari\addcolon}},
+ bytranslatorcofo = {{prijevod \lbx@lfromlang, predgovor i komentari\addcolon}%
+ {prijevod \lbx@lfromlang, predgovor i komentari\addcolon}},
+ bytranslatorcoaf = {{prijevod \lbx@lfromlang, komentari i pogovor\addcolon}%
+ {prijevod \lbx@lfromlang, komentari i pogovor\addcolon}},
+ bytranslatoranin = {{prijevod \lbx@lfromlang, uvod i bilje\v{s}ke\addcolon}%
+ {prijevod \lbx@lfromlang, uvod i bilje\v{s}ke\addcolon}},
+ bytranslatoranfo = {{prijevod \lbx@lfromlang, predgovor i bilje\v{s}ke\addcolon}%
+ {prijevod \lbx@lfromlang, predgovor i bilje\v{s}ke\addcolon}},
+ bytranslatoranaf = {{prijevod \lbx@lfromlang, bilje\v{s}ke i pogovor\addcolon}%
+ {prijevod \lbx@lfromlang, bilje\v{s}ke i pogovor\addcolon}},
+ and = {{i}{i}},
+ andothers = {{i drugi}{i dr\adddot}},
+ andmore = {{i drugi}{i dr\adddot}},
+ volume = {{sv\adddot}{sv\adddot}},
+ volumes = {{sv\adddot}{sv\adddot}},
+% involumes = {{}{}},% FIXME: missing
+ jourvol = {{sv\adddot}{sv\adddot}},
+ jourser = {{serija}{serija}},
+% book = {{}{}},% FIXME: missing
+% part = {{}{}},% FIXME: missing
+% issue = {{}{}},% FIXME: missing
+ newseries = {{nova serija}{nova serija}},
+ oldseries = {{stara serija}{stara serija}},
+ edition = {{izdanje}{izdanje}},
+ reprint = {{pretisak}{pretisak}},
+ reprintof = {{pretisak}{pretisak}},
+ reprintas = {{iznova otisnuto kao}{iznova otisnuto kao}},
+% reprintfrom = {{}{}},% FIXME: missing
+% translationof = {{}{}},% FIXME: missing
+% translationas = {{}{}},% FIXME: missing
+% translationfrom = {{}{}},% FIXME: missing
+% reviewof = {{}{}},% FIXME: missing
+% origpubas = {{}{}},% FIXME: missing
+% origpubin = {{}{}},% FIXME: missing
+% astitle = {{}{}},% FIXME: missing
+% bypublisher = {{}{}},% FIXME: missing
+ nodate = {{no date}{n\adddot d\adddot}},% FIXME
+ page = {{stranica}{str\adddot}},
+ pages = {{stranice}{str\adddot}},
+ column = {{stupac}{stupac}},
+ columns = {{stupci}{stupci}},
+ line = {{linija}{l\adddot}},
+ lines = {{linije}{ll\adddot}},
+ verse = {{stih}{stih}},
+ verses = {{stihovi}{stihovi}},
+ section = {{odjeljak}{\S}},
+ sections = {{odjeljci}{\S\S}},
+ paragraph = {{stavak}{st\adddot}},
+ paragraphs = {{stavci}{st\adddot}},
+% pagetotal = {{}{}},% FIXME: missing
+% pagetotals = {{}{}},% FIXME: missing
+% columntotal = {{}{}},% FIXME: missing
+% columntotals = {{}{}},% FIXME: missing
+% linetotal = {{}{}},% FIXME: missing
+% linetotals = {{}{}},% FIXME: missing
+% versetotal = {{}{}},% FIXME: missing
+% versetotals = {{}{}},% FIXME: missing
+% sectiontotal = {{}{}},% FIXME: missing
+% sectiontotals = {{}{}},% FIXME: missing
+% paragraphtotal = {{}{}},% FIXME: missing
+% paragraphtotals = {{}{}},% FIXME: missing
+ in = {{}{}},% FIXME: check
+ inseries = {{u seriji}{u seriji}},
+ ofseries = {{iz serije}{iz serije}},
+ number = {{broj}{br\adddot}},
+ chapter = {{poglavlje}{pogl\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{magistarski rad}{mag\adddotspace rad}},
+ phdthesis = {{doktorska disertacija}{disertacija}},
+% candthesis = {{}{}},% FIXME: missing
+ resreport = {{znanstveno izvje\v{s}\'{c}e}{zn\adddotspace izv\adddot}},
+ techreport = {{tehni\v{c}ko izvje\v{s}\'{c}e}{teh\adddotspace izv\adddot}},
+ software = {{softver}{softver}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{verzija}{verzija}},
+ url = {{adresa}{adresa}},
+% urlfrom = {{}{}},% FIXME: missing
+ urlseen = {{pogledano}{pogledano}},
+ inpreparation = {{u pripremi}{u pripremi}},
+ submitted = {{predan}{predan}},
+% forthcoming = {{}{}},% FIXME: missing
+ inpress = {{u tisku}{u tisku}},
+% prepublished = {{}{}},% FIXME: missing
+ citedas = {{dalje citirano kao}{dalje citirano kao}},
+ thiscite = {{napose}{napose}},
+ seenote = {{vidi bilje\v{s}ku}{v\adddotspace bilj\adddot}},
+ quotedin = {{citirano u}{citirano u}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{usporedi}{usp\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{vidi}{v\adddot}},
+ seealso = {{pogledaj i}{pogl\adddotspace i}},
+ backrefpage = {{citirano na stranci}{cit\adddotspace na str\adddot}},
+ backrefpages = {{cited on pages}{cit\adddotspace na str\adddot}},
+ january = {{sije\v{c}anj}{sije\v{c}anj}},
+ february = {{velja\v{c}a}{velja\v{c}a}},
+ march = {{o\v{z}ujak}{o\v{z}ujak}},
+ april = {{travanj}{travanj}},
+ may = {{svibanj}{svibanj}},
+ june = {{lipanj}{lipanj}},
+ july = {{srpanj}{srpanj}},
+ august = {{kolovoz}{kolovoz}},
+ september = {{rujan}{rujan}},
+ october = {{listopad}{listopad}},
+ november = {{studeni}{studeni}},
+ december = {{prosinac}{prosinac}},
+ datejanuary = {{sije\v{c}nja}{sije\v{c}nja}},
+ datefebruary = {{velja\v{c}e}{velja\v{c}e}},
+ datemarch = {{o\v{z}ujka}{o\v{z}ujka}},
+ dateapril = {{travnja}{travnja}},
+ datemay = {{svibnja}{svibnja}},
+ datejune = {{lipnja}{lipnja}},
+ datejuly = {{srpnja}{srpnja}},
+ dateaugust = {{kolovoza}{kolovoza}},
+ dateseptember = {{rujna}{rujna}},
+ dateoctober = {{listopada}{listopada}},
+ datenovember = {{studenoga}{studenoga}},
+ datedecember = {{prosinca}{prosinca}},
+ langamerican = {{engleski}{engleski}},
+ langbrazilian = {{portugalski}{portugalski}},
+% langbulgarian = {{}{}},% FIXME: missing
+% langcatalan = {{}{}},% FIXME: missing
+ langcroatian = {{hrvatski}{hrvatski}},
+% langczech = {{}{}},% FIXME: missing
+ langdanish = {{danski}{danski}},
+ langdutch = {{nizozemski}{nizozemski}},
+ langenglish = {{engleski}{engleski}},
+% langestonian = {{}{}},% FIXME: missing
+% langfinnish = {{}{}},% FIXME: missing
+ langfrench = {{francuski}{francuski}},
+ langgalician = {{galicijski}{galicijski}},
+ langgerman = {{njema\v{c}ki}{njema\v{c}ki}},
+ langgreek = {{gr\v{c}ki}{gr\v{c}ki}},
+ langhungarian = {{ma\dj arski}{ma\dj arski}},
+ langitalian = {{talijanski}{talijanski}},
+ langlatin = {{latinski}{latinski}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{norve\v{s}ki}{norve\v{s}ki}},
+% langpolish = {{}{}},% FIXME: missing
+ langportuguese = {{portugalski}{portugalski}},
+% langrussian = {{}{}},% FIXME: missing
+% langslovak = {{}{}},% FIXME: missing
+% langslovene = {{}{}},% FIXME: missing
+ langspanish = {{\v{s}panjolski}{\v{s}panjolski}},
+ langswedish = {{\v{s}vedski}{\v{s}vedski}},
+ fromamerican = {{s engleskog}{s engleskog}},
+ frombrazilian = {{s portugalskog}{s portugalskog}},
+% frombulgarian = {{}{}},% FIXME: missing
+% fromcatalan = {{}{}},% FIXME: missing
+ fromcroatian = {{s hrvatskog}{s hrvatskog}},
+% fromczech = {{}{}},% FIXME: missing
+ fromdanish = {{s danskog}{s danskog}},
+ fromdutch = {{s nizozemskog}{s nizozemskog}},
+ fromenglish = {{s engleskog}{s engleskog}},
+% fromestonian = {{}{}},% FIXME: missing
+% fromfinnish = {{}{}},% FIXME: missing
+ fromfrench = {{s francuskog}{s francuskog}},
+ fromgalician = {{s galicijskog}{s galicijskog}},
+ fromgerman = {{s njema\v{c}kog}{s njema\v{c}kog}},
+ fromgreek = {{s gr\v{c}kog}{s gr\v{c}kog}},
+ fromhungarian = {{s ma\dj arskog}{s ma\dj arskog}},
+ fromitalian = {{s talijanskog}{s talijanskog}},
+ fromlatin = {{s latinskog}{s latinskog}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{s norve\v{s}kog}{s norve\v{s}kog}},
+% frompolish = {{}{}},% FIXME: missing
+ fromportuguese = {{s portugalskog}{s portugalskog}},
+% fromrussian = {{}{}},% FIXME: missing
+% fromslovak = {{}{}},% FIXME: missing
+% fromslovene = {{}{}},% FIXME: missing
+ fromspanish = {{sa \v{s}panjolskog}{sa \v{s}panjolskog}},
+ fromswedish = {{sa \v{s}vedskog}{sa \v{s}vedskog}},
+ countryde = {{Njema\v{c}ka}{DE}},
+ countryeu = {{Europska unija}{EU}},
+ countryep = {{Europska unija}{EP}},
+ countryfr = {{Francuska}{FR}},
+ countryuk = {{Velika Britanija}{GB}},
+ countryus = {{Sjedinjene Ameri\v{c}ke Dr\v{z}ave}{US}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{njema\v{c}ki patent}{njema\v{c}ki pat\adddot}},
+ patenteu = {{europski patent}{europski pat\adddot}},
+ patentfr = {{francuski patent}{francuski pat\adddot}},
+ patentuk = {{britanski patent}{britanski pat\adddot}},
+ patentus = {{US patent}{US pat\adddot}},
+ patreq = {{patentni zahtjev}{pat\adddot\ zahtjev}},
+ patreqde = {{njema\v{c}ki patentni zahtjev}%
+ {njem\adddotspace pat\adddotspace zahtjev}},
+ patreqeu = {{europski patentni zahtjev}{EU pat\adddotspace zahtjev}},
+ patreqfr = {{francuski patentni zahtjev}%
+ {franc\adddotspace pat\adddotspace zahtjev}},
+ patrequk = {{britanskipatentni zahtjev}%
+ {britanski pat\adddotspace zahtjev}},
+ patrequs = {{US patentni zahtjev}{US pat\adddot\ zahtjev}},
+ file = {{datoteka}{datoteka}},
+ library = {{biblioteka}{biblioteka}},
+ abstract = {{sa\v{z}etak}{sa\v{z}etak}},
+ annotation = {{bilje\v{s}ka}{bilje\v{s}ka}},
+ commonera = {{n\adddot e\adddot}{n\adddot e\adddot}},
+ beforecommonera = {{pr\adddotspace n\adddotspace e\adddot}{pr\adddotspace n\adddotspace e\adddot}},
+ annodomini = {{poslije Krista}{p\adddotspace Kr\adddot}},
+ beforechrist = {{prije Krista}{pr\adddotspace Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\protected\gdef\lbx@cr@mkbibmonth#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{datejanuary}%
+ \or\abx@bibmonth{datefebruary}%
+ \or\abx@bibmonth{datemarch}%
+ \or\abx@bibmonth{dateapril}%
+ \or\abx@bibmonth{datemay}%
+ \or\abx@bibmonth{datejune}%
+ \or\abx@bibmonth{datejuly}%
+ \or\abx@bibmonth{dateaugust}%
+ \or\abx@bibmonth{dateseptember}%
+ \or\abx@bibmonth{dateoctober}%
+ \or\abx@bibmonth{datenovember}%
+ \or\abx@bibmonth{datedecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/czech.lbx b/macros/latex/contrib/biblatex/latex/lbx/czech.lbx
new file mode 100644
index 0000000000..716b3a1ee8
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/czech.lbx
@@ -0,0 +1,475 @@
+\ProvidesFile{czech.lbx}
+[\abx@lbxid]
+
+\DeclareBibliographyExtras{%
+ \DeclareCapitalPunctuation{.!?}%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\thinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot
+ \iffieldundef{#2}{}{\thinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldundef{#3}{/}{\adddot\thinspace}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografie}{Bibliografie}},
+ references = {{Odkazy}{Odkazy}},
+ shorthands = {{Seznam zkratek}{Zkratky}},
+ editor = {{editor}{ed\adddot}},
+ editors = {{edito\v{r}i}{ed\adddot}},
+ compiler = {{sestavil}{sest\adddot}},
+ compilers = {{sestavili}{sest\adddot}},
+ redactor = {{redaktor}{red\adddot}},
+ redactors = {{redakto\v{r}i}{red\adddot}},
+ founder = {{zakladatel}{zakl\adddot}},
+ founders = {{zakladatel\'{e}}{zakl\adddot}},
+ continuator = {{pokra\v{c}ovatel}{pokr\adddot}},% FIXME: unsure
+ continuators = {{pokra\v{c}ovatel\'{e}}{pokr\adddot}},% FIXME: unsure
+ collaborator = {{spolupracovn\'{i}k}{spoluprac\adddot}},% FIXME: unsure
+ collaborators = {{spolupracovn\'{i}ci}{spoluprac\adddot}},% FIXME: unsure
+ translator = {{p\v{r}ekladatel}{p\v{r}ekl\adddot}},
+ translators = {{p\v{r}ekladatel\'{e}}{p\v{r}ekl\adddot}},
+ commentator = {{koment\'{a}tor}{kom\adddot}},
+ commentators = {{koment\'{a}to\v{r}i}{kom\adddot}},
+ annotator = {{anot\'{a}tor}{anot\adddot}},
+ annotators = {{anot\'{a}to\v{r}i}{anot\adddot}},
+ commentary = {{koment\'{a}tor}{komm\adddot}},% FIXME: unsure
+ annotations = {{anotatace}{anot\adddot}},
+ introduction = {{\'{u}vod}{\'{u}v\adddot}},
+ foreword = {{p\v{r}edmluva}{p\v{r}edml\adddot}},
+ afterword = {{doslov}{dosl\adddot}},
+ editortr = {{editor a p\v{r}ekladatel}{ed\adddotspace a p\v{r}ekl\adddot}},
+ editorstr = {{edito\v{r}i a p\v{r}ekladatel\'{e}}{ed\adddotspace a p\v{r}ekl\adddot}},
+ editorco = {{editor a koment\'{a}tor}{ed\adddotspace a kom\adddot}},
+ editorsco = {{editor a koment\'{a}to\v{r}i}{ed\adddotspace a kom\adddot}},
+ editoran = {{editor a anot\'{a}tor}{ed\adddotspace a anot\adddot}},
+ editorsan = {{editor a anot\'{a}to\v{r}i}{ed\adddotspace a anot\adddot}},
+ editorin = {{editor a \'{u}vod}{ed\adddotspace \'{u}v\adddot}},
+ editorsin = {{edito\v{r}i a \'{u}vod}{ed\adddotspace a \'{u}v\adddot}},
+ editorfo = {{editor a p\v{r}edmluva}{ed\adddotspace a p\v{r}edml\adddot}},
+ editorsfo = {{edito\v{r}i a p\v{r}edmluva}{ed\adddotspace a p\v{r}edml\adddot}},
+ editoraf = {{editor a doslov}{ed\adddotspace a dosl\adddot}},
+ editorsaf = {{edito\v{r}i a doslov}{ed\adddotspace a dosl\adddot}},
+ editortrco = {{editor, p\v{r}eklad\ a koment\'{a}tor}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a kom\adddot}},% FIXME: hruznost
+ editorstrco = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a koment\'{a}to\v{r}i}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a kom\adddot}},
+ editortran = {{editor, p\v{r}ekladatel\ a anot\'{a}tor}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a anot\adddot}},
+ editorstran = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a anot\'{a}to\v{r}i}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a anot\adddot}},
+ editortrin = {{editor, p\v{r}ekladatel\ a \'{u}vod}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a \'{u}vod\adddot}},
+ editorstrin = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a \'{u}vod}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a \'{u}vod\adddot}},
+ editortrfo = {{editor, p\v{r}ekladatel\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a p\v{r}edml\adddot}},
+ editorstrfo = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a p\v{r}edml\adddot}},
+ editortraf = {{editor, p\v{r}ekladatel\ a doslov}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a afterw\adddot}},
+ editorstraf = {{edito\v{r}i, p\v{r}ekladatel\'{e}\ a doslov}%
+ {ed.,\addabbrvspace p\v{r}ekl\adddot\ a afterw\adddot}},
+ editorcoin = {{editor, koment\'{a}tor\ a \'{u}vod}%
+ {ed.,\addabbrvspace kom\adddot\ a \'{u}vod\adddot}},
+ editorscoin = {{edito\v{r}i, koment\'{a}to\v{r}i\ a \'{u}vod}%
+ {ed.,\addabbrvspace kom\adddot\ a \'{u}vod\adddot}},
+ editorcofo = {{editor, koment\'{a}tor\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace kom\adddot\ a p\v{r}edml\adddot}},
+ editorscofo = {{edito\v{r}i, koment\'{a}to\v{r}i\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace kom\adddot\ a p\v{r}edml\adddot}},
+ editorcoaf = {{editor, koment\'{a}tor\ a doslov}%
+ {ed.,\addabbrvspace kom\adddot\ a dosl\adddot}},
+ editorscoaf = {{edito\v{r}i, koment\'{a}to\v{r}i\ a doslov}%
+ {ed.,\addabbrvspace kom\adddot\ a dosl\adddot}},
+ editoranin = {{editor, anot\'{a}tor\ a \'{u}vod}%
+ {ed.,\addabbrvspace anot\adddot\ a \'{u}vod\adddot}},
+ editorsanin = {{edito\v{r}i, anot\'{a}to\v{r}i\ a \'{u}vod}%
+ {ed.,\addabbrvspace anot\adddot\ a \'{u}vod\adddot}},
+ editoranfo = {{editor, anot\'{a}tor\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace anot\adddot\ a p\v{r}edml\adddot}},
+ editorsanfo = {{edito\v{r}i, anot\'{a}to\v{r}i\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace anot\adddot\ a p\v{r}edml\adddot}},
+ editoranaf = {{editor, anot\'{a}tor\ a doslov}{ed.,\addabbrvspace anot\adddot\ a dosl\adddot}},
+ editorsanaf = {{edito\v{r}i, anot\'{a}to\v{r}i\ a doslov}%
+ {ed.,\addabbrvspace anot\adddot\ a dosl\adddot}},
+ editortrcoin = {{editor, p\v{r}ekladatel, koment\'{a}tor\ a \'{u}vod}%
+ {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a \'{u}vod\adddot}},
+ editorstrcoin = {{edito\v{r}i, p\v{r}ekladatel\'{e}, koment\'{a}to\v{r}i\ a \'{u}vod}%
+ {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a \'{u}vod\adddot}},
+ editortrcofo = {{editor, p\v{r}ekladatel, koment\'{a}tor\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a p\v{r}edml\adddot}},
+ editorstrcofo = {{edito\v{r}i, p\v{r}ekladatel\'{e}, koment\'{a}to\v{r}i\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a p\v{r}edml\adddot}},
+ editortrcoaf = {{editor, p\v{r}ekladatel, koment\'{a}tor\ a doslov}%
+ {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a dosl\adddot}},
+ editorstrcoaf = {{edito\v{r}i, p\v{r}ekladatel\'{e}, koment\'{a}to\v{r}i\ a doslov}%
+ {ed.,\addabbrvspace p\v{r}ekl., kom\adddot\ a dosl\adddot}},
+ editortranin = {{editor, p\v{r}ekladatel, anot\'{a}tor\ a \'{u}vod}%
+ {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a \'{u}vod\adddot}},
+ editorstranin = {{edito\v{r}i, p\v{r}ekladatel\'{e}, anot\'{a}to\v{r}i\ a \'{u}vod}%
+ {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a \'{u}vod\adddot}},
+ editortranfo = {{editor, p\v{r}ekladatel, anot\'{a}tor\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a p\v{r}edml\adddot}},
+ editorstranfo = {{edito\v{r}i, p\v{r}ekladatel\'{e}, anot\'{a}to\v{r}i\ a p\v{r}edmluva}%
+ {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a p\v{r}edml\adddot}},
+ editortranaf = {{editor, p\v{r}ekladatel, anot\'{a}tor\ a doslov}%
+ {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a dosl\adddot}},
+ editorstranaf = {{edito\v{r}i, p\v{r}ekladatel\'{e}, anot\'{a}to\v{r}i\ a doslov}%
+ {ed.,\addabbrvspace p\v{r}ekl., anot\adddot\ a dosl\adddot}},
+ translatorco = {{p\v{r}ekladatel a koment\'{a}tor}{p\v{r}ekl\adddot\ a kom\adddot}},
+ translatorsco = {{p\v{r}ekladatel\'{e} a koment\'{a}to\v{r}i}{p\v{r}ekl\adddot\ a kom\adddot}},
+ translatoran = {{p\v{r}ekladatel a anot\'{a}tor}{p\v{r}ekl\adddot\ a anot\adddot}},
+ translatorsan = {{p\v{r}ekladatel\'{e} a anot\'{a}to\v{r}i}{p\v{r}ekl\adddot\ a anot\adddot}},
+ translatorin = {{p\v{r}eklad a \'{u}vod}{p\v{r}ekl\adddot\ a \'{u}vod\adddot}},
+ translatorsin = {{p\v{r}eklad a \'{u}vod}{p\v{r}ekl\adddot\ a \'{u}vod\adddot}},
+ translatorfo = {{p\v{r}eklad a p\v{r}edmluva}{p\v{r}ekl\adddot\ a p\v{r}edml\adddot}},
+ translatorsfo = {{p\v{r}eklad a p\v{r}edmluva}{p\v{r}ekl\adddot\ a p\v{r}edml\adddot}},
+ translatoraf = {{p\v{r}eklad a doslov}{p\v{r}ekl\adddot\ a dosl\adddot}},
+ translatorsaf = {{p\v{r}eklad a doslov}{p\v{r}ekl\adddot\ a dosl\adddot}},
+ translatorcoin = {{p\v{r}eklad, koment\'{a}\v{r}\ a \'{u}vod}{p\v{r}ekl., kom\adddot\ a \'{u}vod\adddot}},
+ translatorscoin = {{p\v{r}eklad, koment\'{a}\v{r}\ a \'{u}vod}{p\v{r}ekl., kom\adddot\ a \'{u}vod\adddot}},
+ translatorcofo = {{p\v{r}eklad, koment\'{a}\v{r}\ a p\v{r}edmluva}{p\v{r}ekl., kom\adddot\ a p\v{r}edml\adddot}},
+ translatorscofo = {{p\v{r}eklad, koment\'{a}\v{r}\ a p\v{r}edmluva}{p\v{r}ekl., kom\adddot\ a p\v{r}edml\adddot}},
+ translatorcoaf = {{p\v{r}eklad, koment\'{a}\v{r}\ a doslov}{p\v{r}ekl., kom\adddot\ a dosl\adddot}},
+ translatorscoaf = {{p\v{r}eklad, koment\'{a}\v{r}\ a doslov}{p\v{r}ekl., kom\adddot\ a dosl\adddot}},
+ translatoranin = {{p\v{r}eklad, anotace,\ a \'{u}vod}{p\v{r}ekl., anot\adddot\ a \'{u}vod\adddot}},
+ translatorsanin = {{p\v{r}eklad, anotace,\ a \'{u}vod}{p\v{r}ekl., anot\adddot\ a \'{u}vod\adddot}},
+ translatoranfo = {{p\v{r}eklad, anotace,\ a p\v{r}edmluva}{p\v{r}ekl., anot\adddot\ a p\v{r}edml\adddot}},
+ translatorsanfo = {{p\v{r}eklad, anotace,\ a p\v{r}edmluva}{p\v{r}ekl., anot\adddot\ a p\v{r}edml\adddot}},
+ translatoranaf = {{p\v{r}eklad, anotace,\ a doslov}{p\v{r}ekl., anot\adddot\ a dosl\adddot}},
+ translatorsanaf = {{p\v{r}eklad, anotace,\ a doslov}{p\v{r}ekl., anot\adddot\ a dosl\adddot}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{by}{by}},
+ byeditor = {{editov\'{a}no}{ed\adddotspace}},
+ bycompiler = {{sestaveno}{comp\adddotspace}},
+ byredactor = {{redigov\'{a}no}{red\adddotspace}},
+ byfounder = {{zalo\v{z}eno}{found\adddotspace}},
+ bycontinuator = {{pokra\v{c}ov\'{a}no}{cont\adddotspace}},
+ bycollaborator = {{ve spolupr\'{a}ci s}{ve spol\adddotspace s}},% FIXME: unsure
+ bytranslator = {{p\v{r}elo\v{z}eno \lbx@lfromlang}{p\v{r}el\adddot\ \lbx@sfromlang}},
+ bycommentator = {{komentov\'{a}no}{kom\adddotspace}},
+ byannotator = {{anotov\'{a}no}{anot\adddotspace}},
+ withcommentator = {{s koment\'{a}\v{r}em}{s kom\adddotspace}},%mozna: s komentarem od?
+ withannotator = {{s anotacemi od}{s anot\adddot\ od}},
+ withintroduction = {{s \'{u}vodem od}{u \'{u}v\adddot\ od}},
+ withforeword = {{s p\v{r}edmluvou od}{s p\v{r}edml\adddot\ od}},
+ withafterword = {{s doslovem}{s dosl\adddot\ }},
+ byeditortr = {{editov\'{a}no a p\v{r}elo\v{z}eno \lbx@lfromlang\ }%
+ {ed\adddotspace a p\v{r}el\adddot\ \lbx@sfromlang\ }},
+ byeditorco = {{editov\'{a}no a komentov\'{a}no}{ed\adddotspace a kom\adddot\ }},
+ byeditoran = {{editov\'{a}no a anotov\'{a}no}{ed\adddotspace a anot\adddot\ }},
+ byeditorin = {{editov\'{a}no, s \'{u}vodem}{ed.,\addabbrvspace s \'{u}vodem}},
+ byeditorfo = {{editov\'{a}no, s p\v{r}edmluvou}{ed.,\addabbrvspace s p\v{r}edml., }},
+ byeditoraf = {{editov\'{a}no, s doslovem}{ed.,\addabbrvspace s dosl.,}},
+ byeditortrco = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no}%
+ {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a kom\adddot\ }},
+ byeditortran = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no}%
+ {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a anot\adddot\ }},
+ byeditortrin = {{editov\'{a}no a p\v{r}elo\v{z}eno \lbx@lfromlang, s \'{u}vodem}%
+ {ed\adddotspace a p\v{r}el\adddot\ \lbx@sfromlang, s \'{u}vodem}},
+ byeditortrfo = {{editov\'{a}no a p\v{r}elo\v{z}eno \lbx@lfromlang, s p\v{r}edmluvou}%
+ {ed\adddotspace a p\v{r}el\adddot\ \lbx@sfromlang, s p\v{r}edmluvou}},
+ byeditortraf = {{editov\'{a}no a p\v{r}elo\v{z}eno \lbx@lfromlang, s doslovem}%
+ {ed\adddotspace a p\v{r}ekl\adddot\ \lbx@sfromlang, s doslovem}},
+ byeditorcoin = {{editov\'{a}no a komentov\'{a}no, s \'{u}vodem}{ed\adddotspace a kom., s \'{u}vodem}},
+ byeditorcofo = {{editov\'{a}no a komentov\'{a}no, s p\v{r}edmluvou}{ed\adddotspace a kom., s p\v{r}edml\adddot}},
+ byeditorcoaf = {{editov\'{a}no a komentov\'{a}no, s doslovem}{ed\adddotspace a kom., s dosl.}},
+ byeditoranin = {{editov\'{a}no a anotov\'{a}no, s \'{u}vodem}{ed\adddotspace a anot., s \'{u}vodem}},
+ byeditoranfo = {{editov\'{a}no a anotov\'{a}no, s p\v{r}edmluvou}{ed\adddotspace a anot., s p\v{r}edml\adddot}},
+ byeditoranaf = {{editov\'{a}no a anotov\'{a}no, s doslovem}{ed\adddotspace a anot., s dosl\adddot}},
+ byeditortrcoin = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s \'{u}vodem}%
+ {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s \'{u}vodem}},
+ byeditortrcofo = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s p\v{r}edmluvou }%
+ {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s p\v{r}edml\adddot}},
+ byeditortrcoaf = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s doslovem}%
+ {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s dosl\adddot}},
+ byeditortranin = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s \'{u}vodem}%
+ {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a anot\adddot, s \'{u}vodem}},
+ byeditortranfo = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s p\v{r}edmluvou}%
+ {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a anot, s p\v{r}edml\adddot}},
+ byeditortranaf = {{editov\'{a}no, p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s doslovem}%
+ {ed.,\addabbrvspace p\v{r}el\adddot\ \lbx@sfromlang\ a anot, s dosl\adddot}},
+ bytranslatorco = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no}%
+ {p\v{r}el\adddot\ \lbx@sfromlang\ a kom\adddot\ }},
+ bytranslatoran = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no}%
+ {p\v{r}el\adddot\ \lbx@sfromlang\ a anot\adddot\ }},
+ bytranslatorin = {{p\v{r}elo\v{z}eno \lbx@lfromlang, s \'{u}vodem}%
+ {p\v{r}el\adddot\ \lbx@sfromlang, s \'{u}vodem}},
+ bytranslatorfo = {{p\v{r}elo\v{z}eno \lbx@lfromlang, s p\v{r}edmluvou}%
+ {p\v{r}el\adddot\ \lbx@sfromlang, s p\v{r}edml\adddot}},
+ bytranslatoraf = {{p\v{r}elo\v{z}eno \lbx@lfromlang, s doslovem}%
+ {p\v{r}el\adddot\ \lbx@sfromlang, s dosl\adddot}},
+ bytranslatorcoin = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s \'{u}vodem}%
+ {p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s \'{u}vodem}},
+ bytranslatorcofo = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}no, s p\v{r}edmluvou}%
+ {p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s p\v{r}edml\adddot}},
+ bytranslatorcoaf = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a komentov\'{a}ns doslovem}%
+ {p\v{r}el\adddot\ \lbx@sfromlang\ a kom., s dosl\adddot}},
+ bytranslatoranin = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s \'{u}vodem}%
+ {p\v{r}el\adddot\ \lbx@sfromlang\ a anot., s \'{u}vodem}},
+ bytranslatoranfo = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s p\v{r}edmluvou}%
+ {p\v{r}el\adddot\ \lbx@sfromlang\ a anot., s p\v{r}edml\adddot}},
+ bytranslatoranaf = {{p\v{r}elo\v{z}eno \lbx@lfromlang\ a anotov\'{a}no, s doslovem}%
+ {p\v{r}el\adddot\ \lbx@sfromlang\ a anot., s dosl\adddot}},
+ and = {{a}{a}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{svazek}{sv\adddot}},
+ volumes = {{svazky}{sv\adddot}},
+ involumes = {{in}{in}},
+ jourvol = {{ro\v{c}n\'ik}{ro\v{c}\adddot}},
+ jourser = {{\v{r}ada}{\v{r}\adddot}},% m\r{u}\v{z}e b\'{a}t t\'{e}\v{z} s\'{e}rie, ale \v{r}ada zn\'{i} l\'{e}pe
+ book = {{kniha}{kniha}},
+ part = {{\v{c}\'{a}st}{\v{c}\'{a}st}},
+ issue = {{\v{c}\'{i}slo}{\v{c}\'{i}slo}},
+ newseries = {{nov\'{a} \v{r}ada}{n. \v{r}ada\adddot}},% FIXME: unsure
+ oldseries = {{star\'{a} \v{r}ada}{st. \v{r}ada\adddot}},
+ edition = {{vyd\'{a}n\'{i}}{vyd\adddot}},
+ reprint = {{reprint}{repr\adddot}},
+ reprintof = {{reprint}{repr\adddotspace}},
+ reprintas = {{reprintov\'{a}no jako}{repr\adddotspace jako}},
+ reprintfrom = {{reprintov\'{a}no z}{repr\adddotspace z}},
+ reviewof = {{review of}{rev\adddotspace of}},
+ translationof = {{p\v{r}eklad}{p\v{r}ekl\adddotspace}},
+ translationas = {{p\v{r}elo\v{z}eno jako}{p\v{r}el\adddotspace jako}},
+ translationfrom = {{p\v{r}elo\v{z}eno z}{p\v{r}el\adddotspace}},
+ origpubas = {{p\r{u}vodn\v{e} vyd\'{a}no jako}{p\r{u}v\adddotspace vyd\adddotspace jako}},
+ origpubin = {{p\r{u}vodn\v{e} vyd\'{a}no v}{p\r{u}v\adddotspace vyd\adddotspace v}},
+ astitle = {{jako}{as}},
+ bypublisher = {{od}{od}},% nejist\'{e}
+ nodate = {{n\adddot d\adddot}{n\adddot d\adddot}},%FIXME
+ page = {{strana}{s\adddot}},
+ pages = {{strany}{s\adddot}},
+ column = {{sloupek}{sl\adddot}},% nebo sloupec?
+ columns = {{sloupce}{sl\adddot}},
+ line = {{\v{r}\'{a}dek}{\v{r}\adddot}},
+ lines = {{\v{r}\'{a}dky}{\v{r}\adddot}},
+ verse = {{ver\v{s}}{v\adddot}},
+ verses = {{ver\v{s}e}{v\adddot}},
+ section = {{sekce}{\S}},
+ sections = {{sekce}{\S\S}},
+ paragraph = {{odstavec}{ods\adddot}},
+ paragraphs = {{odstavce}{ods\adddot}},
+% pagetotal = {{}{}},% FIXME: missing
+% pagetotals = {{}{}},% FIXME: missing
+% columntotal = {{}{}},% FIXME: missing
+% columntotals = {{}{}},% FIXME: missing
+% linetotal = {{}{}},% FIXME: missing
+% linetotals = {{}{}},% FIXME: missing
+% versetotal = {{}{}},% FIXME: missing
+% versetotals = {{}{}},% FIXME: missing
+% sectiontotal = {{}{}},% FIXME: missing
+% sectiontotals = {{}{}},% FIXME: missing
+% paragraphtotal = {{}{}},% FIXME: missing
+% paragraphtotals = {{}{}},% FIXME: missing
+ in = {{in}{in}},% Pouziti napriklad u sborniku nebo
+ inseries = {{in}{in}},% casopisu, zni to lip new "v".
+ % V pripade potreby pouzit lokalni lbx soubor
+ ofseries = {{z}{z}},% taky prostor pro lokalni lbx
+ number = {{\v{c}\'{i}slo}{\v{c}\adddot}},
+ chapter = {{kapitola}{kap\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{diplomov\'{a} pr\'{a}ce}{dipl\addabbrvspace}},
+ phdthesis = {{diserta\v{c}n\'{i}\addabbrvspace pr\'{a}ce}{dis\addabbrvspace}},
+ candthesis = {{kandid\'{a}tsk\'{a} pr\'{a}ce}{kand\adddotspace pr\adddotspace}},% mozna,
+ resreport = {{v\'{y}zkumn\'{a} zpr\'{a}va}{v\'{y}zk\adddot\ zpr\adddot}},
+ techreport = {{technick\'{a} zpr\'{a}va}{tech\adddotspace zpr\adddot}},
+ software = {{po\v{c}\'{i}ta\v{c}ov\'{y} software}{soft\adddot}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{verze}{ver\adddotspace}},
+ url = {{dostupn\'y z WWW}{WWW}},
+% urlfrom = {{}{}},% FIXME: missing
+ urlseen = {{citov\'ano}{cit\adddot}},
+ inpreparation = {{v p\v{r}\'{i}prav\v{e}}{v p\v{r}\'{i}prav\v{e}}},
+ submitted = {{odesl\'{a}no}{odes\adddotspace}},
+ forthcoming = {{budouc\'{i}}{bud\adddotspace}},
+ inpress = {{v tisku}{v tisku}},
+ prepublished = {{p\v{r}ed publikov\'{a}n\'{i}m}{p\v{r}ed \adddotspace}},
+ citedas = {{d\'{a}le citov\'{a}no jako}{d\'{a}le citov\'{a}no jako}},
+ thiscite = {{zvl\'{a}\v{s}t\v{e}}{zvl\adddot}},
+ seenote = {{viz pozn\'{a}mka}{viz poz\adddot}},
+ quotedin = {{citov\'{a}no v}{cit\adddotspace v}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{viz}{viz}},
+ seealso = {{viz t\'{e}\v{z}}{viz t\'{e}\v{z}}},
+ backrefpage = {{citov\'{a}no na stran\v{e}}{cit\adddotspace na s\adddot}},
+ backrefpages = {{citov\'{a}no na stran\'{a}ch}{cit\adddotspace na s\adddot}},
+ january = {{ledna}{led\adddot}},
+ february = {{\'{u}nora}{\'{u}n\adddot}},
+ march = {{b\v{r}ezna}{b\v{r}ez\adddot}},
+ april = {{dubna}{dub\adddot}},
+ may = {{kvetna}{kv\v{e}t\adddot}},
+ june = {{\v{c}ervna}{\v{c}erv\adddot}},
+ july = {{\v{c}ervence}{\v{c}vc}},
+ august = {{srpna}{srp\adddot}},
+ september = {{z\'{a}\v{r}\'{i}}{z\'{a}\v{r}\adddot}},
+ october = {{\v{r}\'{i}jna}{\v{r}\'{i}j\adddot}},
+ november = {{listopadu}{lis\adddot}},
+ december = {{prosince}{pros\adddot}},
+ langamerican = {{americk\'{a} angli\v{c}tina}{am\adddot angl\adddot}},
+ langbrazilian = {{brazilsk\'{a} portugal\v{s}tina}{braz\adddot portugal\adddot}},
+% langbulgarian = {{}{}},% FIXME: missing
+% langcatalan = {{}{}},% FIXME: missing
+ langcroatian = {{chorvat\v{s}tina}{chorv\adddot}},
+% langczech = {{}{}},% FIXME: missing
+ langdanish = {{d\'{a}n\v{s}tina}{d\'{a}n\adddot}},
+ langdutch = {{holand\v{s}tina}{hol.\adddot}},
+ langenglish = {{angli\v{c}tina}{angl\adddot}},
+% langestonian = {{}{}},% FIXME: missing
+ langfinnish = {{fin\v{s}tina}{fin\adddot}},
+ langfrench = {{francouz\v{s}tina}{franc\adddot}},
+ langgalician = {{galicij\v{s}tina}{gal\adddot}},
+ langgerman = {{n\v{e}m\v{c}ina}{n\v{e}m\adddot}},
+ langgreek = {{\v{r}e\v{c}tina}{\v{r}e\v{c}\adddot}},
+% langhungarian = {{}{}}, % FIXME: missing
+ langitalian = {{ital\v{s}tina}{ital\adddot}},
+ langlatin = {{latina}{lat\adddot}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{nor\v{s}tina}{nor\v{s}\adddot}},
+% langpolish = {{}{}},% FIXME: missing
+ langportuguese = {{portugal\v{s}tina}{port\adddot}},
+% langslovak = {{}{}},% FIXME: missing
+% langslovene = {{}{}},% FIXME: missing
+ langspanish = {{\v{s}pan\v{e}l\v{s}tina}{\v{s}pa\v{n}\adddot}},
+ langswedish = {{\v{s}v\'{e}d\v{s}tina}{\v{s}v\'{e}d\adddot}},
+ fromamerican = {{z americk\'{e} angli\v{c}tiny}{z amer\adddot angl\adddot}},
+ frombrazilian = {{z brazilsk\'{e} portugal\v{s}tiny}{z braz\adddotspace port\adddot}},
+% frombulgarian = {{}{}},% FIXME: missing
+% fromcatalan = {{}{}},% FIXME: missing
+ fromcroatian = {{z chorvat\v{s}tiny}{z chorv.}},
+% fromczech = {{}{}},% FIXME: missing
+ fromdanish = {{z d\'{a}n\v{s}tiny}{z d\'{a}n\adddot}},
+ fromdutch = {{z holand\v{s}tiny}{z hol\adddot}},
+ fromenglish = {{z angli\v{c}tiny}{z angl\adddot}},
+% fromestonian = {{}{}},% FIXME: missing
+ fromfinnish = {{z fin\v{s}tiny}{z fin.}},
+ fromfrench = {{z francouz\v{s}tiny}{z franc\adddot}},
+ fromgalician = {{z galicij\v{s}tiny}{z gal\adddot}},
+ fromgerman = {{z n\v{e}m\v{c}iny}{z n\v{e}m\adddot}},
+ fromgreek = {{z \v{r}e\v{c}tiny}{z \v{r}e\v{c}\adddot}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{z ital\v{s}tiny}{z ital\adddot}},
+ fromlatin = {{z latiny}{z lat\adddot}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{z nor\v{s}tiny}{z nor\adddot}},
+% frompolish = {{}{}},% FIXME: missing
+ fromportuguese = {{z portugal\v{s}tiny}{z portugal\v{s}tiny}},
+% fromslovak = {{}{}},% FIXME: missing
+% fromslovene = {{}{}},% FIXME: missing
+ fromspanish = {{ze \v{s}pan\v{e}l\v{s}tiny}{ze \v{s}pa\v{n}\adddot}},
+ fromswedish = {{ze \v{s}v\'{e}d\v{s}tiny}{ze \v{s}v\'{e}d\adddot}},
+ countryde = {{N\v{e}mecko}{DE}},
+ countryeu = {{Evropsk\'{a} unie}{EU}},
+ countryep = {{Evropsk\'{a} unie}{EP}},
+ countryfr = {{Francie}{FR}},
+ countryuk = {{Velk\'{a} Brit\'{a}nie}{GB}},
+ countryus = {{Spojen\'{e} St\'{a}ty Americk\'{e}}{US}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{n\v{e}meck\'{y} patent}{n\v{e}m\adddot\ pat\adddot}},
+ patenteu = {{evropsk\'{y} patent}{evr\adddot\ pat\adddot}},
+ patentfr = {{francouzsk\'{y} patent}{franc\adddot\ pat\adddot}},
+ patentuk = {{britsk\'{y} patent}{britsk\'{y} pat\adddot}},
+ patentus = {{americk\'{y} patent}{US\adddotspace pat\adddot}},
+ patreq = {{patentov\'{a} \v{z}\'{a}dost}{pat\adddot\ \v{z}\'{a}d\adddot}},
+ patreqde = {{n\v{e}meck\'{a} patentov\'{a} \v{z}\'{a}dost}{n\v{e}meck\'{a} pat\adddot\ \v{z}\'{a}d\adddot}},
+ patreqeu = {{evropsk\'{a} patentov\'{a} \v{z}\'{a}dost}{ev\adddot\ pat\adddot\ \v{z}\'{a}d\adddot}},
+ patreqfr = {{francouzsk\'{a} patentov\'{a} \v{z}\'{a}dost}{franc\adddot\ pat\adddot\ \v{z}\'{a}d\adddot}},
+ patrequk = {{britsk\'{a} patentov\'{a} \v{z}\'{a}dost}{brit\adddot\ pat\adddot\ \v{z}\'{a}d\adddot}},
+ patrequs = {{US\adddotspace patentov\'{a} \v{z}\'{a}dost}{US\adddotspace pat\adddot\ \v{z}\'{a}d\adddot}},
+ file = {{soubor}{soub\adddot}},
+ library = {{knihovna}{knih\adddot}},
+ abstract = {{abstrakt}{abst\adddot}},
+ annotation = {{anotace}{anot\adddot}},
+% commonera = {{}{}},
+% beforecommonera = {{}{}},
+ annodomini = {{n\adddotspace l\adddot}{n\adddotspace l\adddot}},
+ beforechrist = {{p\v{r}\adddotspace n\adddotspace l\adddot}{p\v{r}\adddotspace n\adddotspace l\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{dop\adddot}{dop\adddot}},
+ pm = {{odp\adddot}{odp\adddot}},
+}
+
+\endinput
+
diff --git a/macros/latex/contrib/biblatex/latex/lbx/danish.lbx b/macros/latex/contrib/biblatex/latex/lbx/danish.lbx
new file mode 100644
index 0000000000..2c57242bd9
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/danish.lbx
@@ -0,0 +1,533 @@
+\ProvidesFile{danish.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{danish}{danish}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\adddot}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografi}{Bibliografi}},
+ references = {{Litteraturhenvisninger}{Litteratur}},
+ shorthands = {{Forkortelser}{Forkortelser}},
+ editor = {{redakt\o r}{red\adddot}},
+ editors = {{redakt\o rer}{red\adddot}},
+ compiler = {{kompilator}{kompilator}},
+ compilers = {{kompilatorer}{kompilatorer}},
+ redactor = {{medredakt\o r}{medred\adddot}},
+ redactors = {{medredakt\o rer}{medred\adddot}},
+ reviser = {{revision}{rev\adddot}},
+ revisers = {{revision}{rev\adddot}},
+ founder = {{stifter}{stifter}},
+ founders = {{stiftere}{stiftere}},
+ continuator = {{videref\o rer}{videref\adddot}},
+ continuators = {{videref\o rere}{videref\adddot}},
+ collaborator = {{medarbejder}{medarb\adddot}},
+ collaborators = {{medarbejdere}{medarb\adddot}},
+ translator = {{overs\ae tter}{overs\adddot}},
+ translators = {{overs\ae ttere}{overs\adddot}},
+ commentator = {{kommentator}{komm\adddot}},
+ commentators = {{kommentatorer}{komm\adddot}},
+ annotator = {{kommentator}{komm\adddot}},
+ annotators = {{kommentatorer}{komm\adddot}},
+ commentary = {{kommentar}{komm\adddot}},
+ annotations = {{annoteringer}{ann\adddot}},
+ introduction = {{indledning}{indl\adddot}},
+ foreword = {{forord}{forord}},
+ afterword = {{efterord}{efterord}},
+ editortr = {{redakt\o r og overs\ae tter}%
+ {red\adddotspace og overs\adddot}},
+ editorstr = {{redakt\o rer og overs\ae ttere}%
+ {red\adddotspace og overs\adddot}},
+ editorco = {{redakt\o r og kommentator}
+ {red\adddotspace og komm\adddot}},
+ editorsco = {{redakt\o rer og kommentatorer}
+ {red\adddotspace og komm\adddot}},
+ editoran = {{redakt\o r og kommentator}%
+ {red\adddotspace og komm\adddot}},
+ editorsan = {{redakt\o rer og kommentatorer}%
+ {red\adddotspace og komm\adddot}},
+ editorin = {{redaktion og indledning}%
+ {red\adddotspace og indl\adddot}},
+ editorsin = {{redaktion og indledning}%
+ {red\adddotspace og indl\adddot}},
+ editorfo = {{redaktion og forord}%
+ {red\adddotspace og forord}},
+ editorsfo = {{redaktion og forord}%
+ {red\adddotspace og forord}},
+ editoraf = {{redaktion og efterord}%
+ {red\adddotspace og efterord}},
+ editorsaf = {{redaktion og efterord}%
+ {red\adddotspace og efterord}},
+ editortrco = {{redakt\o r, overs\ae tter og kommentator}%
+ {red.,\addabbrvspace overs\adddotspace og komm\adddot}},
+ editorstrco = {{redakt\o rer, overs\ae ttere og kommentatorer}%
+ {red.,\addabbrvspace overs\adddotspace og komm\adddot}},
+ editortran = {{redakt\o r, overs\ae tter og kommentator}%
+ {red.,\addabbrvspace overs\adddotspace og komm\adddot}},
+ editorstran = {{redakt\o rer, overs\ae ttere og kommentatorer}%
+ {red.,\addabbrvspace overs\adddotspace og komm\adddot}},
+ editortrin = {{redaktion, overs\ae ttelse og indledning}%
+ {red.,\addabbrvspace overs\adddotspace og indl\adddot}},
+ editorstrin = {{redaktion, overs\ae ttelse og indledning}%
+ {red.,\addabbrvspace overs\adddotspace og indl\adddot}},
+ editortrfo = {{redaktion, overs\ae ttelse og forord}%
+ {red.,\addabbrvspace overs\adddotspace og forord}},
+ editorstrfo = {{redaktion, overs\ae ttelse og forord}%
+ {red.,\addabbrvspace overs\adddotspace og forord}},
+ editortraf = {{redaktion, overs\ae ttelse og efterord}%
+ {red.,\addabbrvspace overs\adddotspace og efterord}},
+ editorstraf = {{redaktion, overs\ae ttelse og efterord}%
+ {red.,\addabbrvspace overs\adddotspace og efterord}},
+ editorcoin = {{redaktion, kommentarer og indledning}%
+ {red.,\addabbrvspace komm\adddotspace og indl\adddot}},
+ editorscoin = {{redaktion, kommentarer og indledning}%
+ {red.,\addabbrvspace komm\adddotspace og indl\adddot}},
+ editorcofo = {{redaktion, kommentarer og forord}%
+ {red.,\addabbrvspace komm\adddotspace og forord}},
+ editorscofo = {{redaktion, kommentarer og forord}%
+ {red.,\addabbrvspace komm\adddotspace og forord}},
+ editorcoaf = {{redaktion, kommentarer og efterord}%
+ {red.,\addabbrvspace komm\adddotspace og efterord}},
+ editorscoaf = {{redaktion, kommentarer og efterord}%
+ {red.,\addabbrvspace komm\adddotspace og efterord}},
+ editoranin = {{redaktion, annoteringer og indledning}%
+ {red.,\addabbrvspace ann\adddotspace og indl\adddot}},
+ editorsanin = {{redaktion, \adddotspace og indledning}%
+ {red.,\addabbrvspace ann\adddotspace og indl\adddot}},
+ editoranfo = {{redaktion, \adddotspace og forord}%
+ {red.,\addabbrvspace ann\adddotspace og forord}},
+ editorsanfo = {{redaktion, annoteringer og forord}%
+ {red.,\addabbrvspace ann\adddotspace og forord}},
+ editoranaf = {{redaktion, annoteringer og efterord}%
+ {red.,\addabbrvspace ann\adddotspace og efterord}},
+ editorsanaf = {{redaktion, annoteringer og efterord}%
+ {red.,\addabbrvspace ann\adddotspace og efterord}},
+ editortrcoin = {{redaktion, overs\ae ttelse, kommentarer og indledning}%
+ {red.,\addabbrvspace overs., komm\adddotspace og indl\adddot}},
+ editorstrcoin = {{redaktion, overs\ae ttelse, kommentarer og indledning}%
+ {red.,\addabbrvspace overs., komm\adddotspace og indl\adddot}},
+ editortrcofo = {{redaktion, overs\ae ttelse, kommentarer og forord}%
+ {red.,\addabbrvspace overs., komm\adddotspace og forord}},
+ editorstrcofo = {{redaktion, overs\ae ttelse, kommentarer og forord}%
+ {red.,\addabbrvspace overs., komm\adddotspace og forord}},
+ editortrcoaf = {{redaktion, overs\ae ttelse, kommentarer og efterord}%
+ {red.,\addabbrvspace overs., komm\adddotspace og efterord}},
+ editorstrcoaf = {{redaktion, overs\ae ttelse, kommentarer og efterord}%
+ {red.,\addabbrvspace overs., komm\adddotspace og efterord}},
+ editortranin = {{redaktion, overs\ae ttelse, annoteringer og indledning}%
+ {red.,\addabbrvspace overs., ann\adddotspace og indl\adddot}},
+ editorstranin = {{redaktion, overs\ae ttelse, annoteringer og indledning}%
+ {red.,\addabbrvspace overs., ann\adddotspace og indl\adddot}},
+ editortranfo = {{redaktion, overs\ae ttelse, annoteringer og forord}%
+ {red.,\addabbrvspace overs., ann\adddotspace og forord}},
+ editorstranfo = {{redaktion, overs\ae ttelse, annoteringer og forord}%
+ {red.,\addabbrvspace overs., ann\adddotspace og forord}},
+ editortranaf = {{redaktion, overs\ae ttelse, annoteringer og efterord}%
+ {red.,\addabbrvspace overs., ann\adddotspace og efterord}},
+ editorstranaf = {{redaktion, overs\ae ttelse, annoteringer og efterord}%
+ {red.,\addabbrvspace overs., ann\adddotspace og efterord}},
+ translatorco = {{overs\ae ttelse og kommentarer}%
+ {overs\adddotspace og komm\adddot}},
+ translatorsco = {{overs\ae ttelse og kommentarer}%
+ {overs\adddotspace og komm\adddot}},
+ translatoran = {{overs\ae ttelse og annoteringer}%
+ {overs\adddotspace og ann\adddot}},
+ translatorsan = {{overs\ae ttelse og annoteringer}%
+ {overs\adddotspace og ann\adddot}},
+ translatorin = {{overs\ae ttelse og indledning}%
+ {overs\adddotspace og indl\adddot}},
+ translatorsin = {{overs\ae ttelse og indledning}%
+ {overs\adddotspace og indl\adddot}},
+ translatorfo = {{overs\ae ttelse og forord}%
+ {overs\adddotspace og forord}},
+ translatorsfo = {{overs\ae ttelse og forord}%
+ {overs\adddotspace og forord}},
+ translatoraf = {{overs\ae ttelse og efterord}%
+ {overs\adddotspace og efterord}},
+ translatorsaf = {{overs\ae ttelse og efterord}%
+ {overs\adddotspace og efterord}},
+ translatorcoin = {{overs\ae ttelse, kommentarer og indledning}%
+ {overs., komm\adddotspace og indl\adddot}},
+ translatorscoin = {{overs\ae ttelse, kommentarer og indledning}%
+ {overs., komm\adddotspace og indl\adddot}},
+ translatorcofo = {{overs\ae ttelse, kommentarer og forord}%
+ {overs., komm\adddotspace og forord}},
+ translatorscofo = {{overs\ae ttelse, kommentarer og forord}%
+ {overs., komm\adddotspace og forord}},
+ translatorcoaf = {{overs\ae ttelse, kommentarer og efterord}%
+ {overs., komm\adddotspace og efterord}},
+ translatorscoaf = {{overs\ae ttelse, kommentarer og efterord}%
+ {overs., komm\adddotspace og efterord}},
+ translatoranin = {{overs\ae ttelse, annoteringer og indledning}%
+ {overs., ann\adddotspace og indl\adddot}},
+ translatorsanin = {{overs\ae ttelse, annoteringer og indledning}%
+ {overs., ann\adddotspace og indl\adddot}},
+ translatoranfo = {{overs\ae ttelse, annoteringer og forord}%
+ {overs., ann\adddotspace og forord}},
+ translatorsanfo = {{overs\ae ttelse, annoteringer og forord}%
+ {overs., ann\adddotspace og forord}},
+ translatoranaf = {{overs\ae ttelse, annoteringer og efterord}%
+ {overs., ann\adddotspace og efterord}},
+ translatorsanaf = {{overs\ae ttelse, annoteringer og efterord}%
+ {overs., ann\adddotspace og efterord}},
+ organizer = {{organisator}{org\adddot}},
+ organizers = {{organisatorer}{org\adddot}},
+ byorganizer = {{organiseret af}{org\adddotspace av}},
+ byauthor = {{af}{af}},
+ byeditor = {{redigeret af}{red\adddotspace af}},
+ bycompiler = {{kompileret af}{komp\adddotspace af}},
+ byredactor = {{bearbejdet af}{bearb\adddotspace af}},
+ byreviser = {{revideret af}{rev\adddotspace af}},
+ byreviewer = {{bed\o mt af}{bed\adddotspace af}},
+ byfounder = {{stiftet af}{stiftet af}},
+ bycontinuator = {{videref\o rt af}{videref\adddotspace af}},
+ bycollaborator = {{i samarbejde med}{i samarb\adddotspace m\adddotspace}},
+ bytranslator = {{oversat \lbx@lfromlang\ af}%
+ {overs\adddot \lbx@sfromlang\ af}},
+ bycommentator = {{kommenteret af}{komm\adddot\ af}},
+ byannotator = {{annoteret af}{ann\adddot\ af}},
+ withcommentator = {{med kommentarer af}{m\adddotspace komm\adddot\ af}},
+ withannotator = {{med annoteringer af}{m\adddotspace ann\adddot\ af}},
+ withintroduction = {{med indledning af}{m\adddotspace indl\adddot\ af}},
+ withforeword = {{med forord af}{m\adddotspace forord af}},
+ withafterword = {{med efterord af}{m\adddotspace efterord af}},
+ byeditortr = {{redigeret og oversat \lbx@lfromlang\ af}%
+ {red\adddotspace og overs\adddot \lbx@sfromlang\ af}},
+ byeditorco = {{redigeret og kommenteret af}%
+ {red\adddotspace og komm\adddot\ af}},
+ byeditoran = {{redigeret med annoteringer af}%
+ {red\adddotspace m\adddotspace ann\adddotspace af}},
+ byeditorin = {{redigeret med indledning af}%
+ {red\adddotspace med indl\adddot\ af}},
+ byeditorfo = {{redigeret med forord af}%
+ {red\adddotspace med forord af}},
+ byeditoraf = {{redigeret med efterord af}%
+ {red\adddotspace med efterord af}},
+ byeditortrco = {{redigeret, oversat \lbx@lfromlang\ og kommenteret af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm\adddot\ af}},
+ byeditortran = {{redigeret, oversat \lbx@lfromlang\ og annoteret af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og ann\adddot\ af}},
+ byeditortrin = {{redigeret, oversat \lbx@lfromlang\ og med indledning af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og indl\adddot\ af}},
+ byeditortrfo = {{redigeret, oversat \lbx@lfromlang\ og med forord af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forord af}},
+ byeditortraf = {{redigeret, oversat \lbx@lfromlang\ og med efterord af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og efterord af}},
+ byeditorcoin = {{redigeret, kommenteret og med indledning af}%
+ {red.,\addabbrvspace komm\adddot\ og indl\adddotspace af}},
+ byeditorcofo = {{redigeret, kommenteret og med forord af}%
+ {red.,\addabbrvspace komm\adddot\ og forord af}},
+ byeditorcoaf = {{redigeret, kommenteret og med efterord af}%
+ {red.,\addabbrvspace komm\adddot\ og efterord af}},
+ byeditoranin = {{redigeret, annoteret og med indledning af}%
+ {red.,\addabbrvspace ann\adddot\ og indl\adddot\ af}},
+ byeditoranfo = {{redigeret, annoteret og med forord af}%
+ {red.,\addabbrvspace ann\adddot\ og forord af}},
+ byeditoranaf = {{redigeret, annoteret og med efterord af}%
+ {red.,\addabbrvspace ann\adddot\ og efterord af}},
+ byeditortrcoin = {{redigeret, oversat \lbx@lfromlang, kommenteret og med indledning af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, komm\adddot\ og indl\adddot\ af}},
+ byeditortrcofo = {{redigeret, oversat \lbx@lfromlang, kommenteret og med forord af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, komm\adddot\ og forord af}},
+ byeditortrcoaf = {{redigeret, oversat \lbx@lfromlang, kommenteret og med efterord af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, komm\adddot\ og efterord af}},
+ byeditortranin = {{redigeret, oversat \lbx@lfromlang, med annoteringer og indledning af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, ann\adddot\ og indl\adddot\ af}},
+ byeditortranfo = {{redigeret, oversat \lbx@lfromlang, med annoteringer og forord af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, ann\adddot\ og forord af}},
+ byeditortranaf = {{redigeret, oversat \lbx@lfromlang, med annoteringer og efterord af}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang, ann\adddot\ og efterord af}},
+ bytranslatorco = {{oversat \lbx@lfromlang\ med kommentarer af}%
+ {overs\adddot\ \lbx@sfromlang\ m\adddotspace komm\adddot\ af}},
+ bytranslatoran = {{oversat \lbx@lfromlang\ og annoteret af}%
+ {overs\adddot\ \lbx@sfromlang\ og ann\adddot\ af}},
+ bytranslatorin = {{oversat \lbx@lfromlang\ med indledning af}%
+ {overs\adddot\ \lbx@sfromlang\ m\adddotspace indl\adddot\ af}},
+ bytranslatorfo = {{oversat \lbx@lfromlang\ med forord af}%
+ {overs\adddot\ \lbx@sfromlang\ m\adddotspace forord af}},
+ bytranslatoraf = {{oversat \lbx@lfromlang\ med efterord af}%
+ {overs\adddot\ \lbx@sfromlang\ m\adddotspace efterord af}},
+ bytranslatorcoin = {{oversat \lbx@lfromlang\addspace med kommentarer og indledning af}%
+ {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace komm\adddotspace og indl\adddotspace af}},
+ bytranslatorcofo = {{oversat \lbx@lfromlang\addspace med kommentarer og forord af}%
+ {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace komm\adddot\ og forord af}},
+ bytranslatorcoaf = {{oversat \lbx@lfromlang\addspace med kommentarer og efterord af}%
+ {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace komm\adddot\ og efterord af}},
+ bytranslatoranin = {{oversat \lbx@lfromlang\addspace med annoteringer og indledning af}%
+ {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace ann\adddot\ og indl\adddot\ af}},
+ bytranslatoranfo = {{oversat \lbx@lfromlang\addspace med annoteringer og forord af}%
+ {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace ann\adddot\ og forord af}},
+ bytranslatoranaf = {{oversat \lbx@lfromlang\addspace med annoteringer og efterord af}%
+ {overs\adddot\ \lbx@sfromlang\addspace m\adddotspace ann\adddot\ og efterord af}},
+ and = {{og}{og}},
+ andothers = {{med flere}{m.fl\adddot}},
+ andmore = {{med mere}{m.m\adddot}},
+ volume = {{bind}{bd\adddot}},
+ volumes = {{bind}{bd\adddot}},
+ involumes = {{i}{i}},
+ jourvol = {{\aa rgang}{\aa rg\adddot}},
+ jourser = {{r\ae kke}{rk\adddot}},
+ book = {{bog}{bog}},
+ part = {{del}{del}},
+ issue = {{nummer}{nr\adddot}},
+ newseries = {{ny r\ae kke}{ny rk\adddot}},
+ oldseries = {{gammel r\ae kke}{gl. rk\adddot}},
+ edition = {{udgave}{udg\adddot}},
+ reprint = {{genoptryk}{genoptr\adddot}},
+ reprintof = {{genoptryk af}{genoptr\adddot\ af}},
+ reprintas = {{genoptryk under titlen}{genoptr\adddot\ under titlen}},
+ reprintfrom = {{genoptryk fra}{genoptr\adddot\ fra}},
+ translationof = {{overs\ae ttelse af}{overs\adddot\ af}},
+ translationas = {{oversat under titlen}{overs\adddotspace\ under titlen}},
+ translationfrom = {{oversat fra}{overs\adddotspace\ fra}},
+ reviewof = {{bed\o mmelse af}{bed\adddotspace af}},
+ origpubas = {{oprindeligt udgivet som}{opr\adddot\ udg\adddot\ som}},
+ origpubin = {{oprindeligt udgivet i}{opr\adddot\ udg\adddot\ i}},
+ astitle = {{under titlen}{under titlen}},
+ bypublisher = {{af}{af}},
+ nodate = {{uden \aa rstal}{u.\aa\adddot}},
+ page = {{side}{s\adddot}},
+ pages = {{sider}{s\adddot}},
+ column = {{spalte}{sp\adddot}},
+ columns = {{spalter}{sp\adddot}},
+ line = {{linje}{l\adddot}},
+ lines = {{linjer}{l\adddot}},
+ verse = {{vers}{v\adddot}},
+ verses = {{vers}{v\adddot}},
+ section = {{paragraf}{par\adddot}},
+ sections = {{paragraffer}{par\adddot}},
+ paragraph = {{afsnit}{afsn\adddot}},
+ paragraphs = {{afsnit}{afsn\adddot}},
+ pagetotal = {{side}{s\adddot}},
+ pagetotals = {{sider}{s\adddot}},
+ columntotal = {{spalte}{sp\adddot}},
+ columntotals = {{spalter}{sp\adddot}},
+ line = {{linje}{l\adddot}},
+ lines = {{linjer}{l\adddot}},
+ verse = {{vers}{v\adddot}},
+ verses = {{vers}{v\adddot}},
+ linetotal = {{linje}{l\adddot}},
+ linetotals = {{linje}{l\adddot}},
+ versetotal = {{vers}{v\adddot}},
+ versetotals = {{vers}{v\adddot}},
+ sectiontotal = {{paragraf}{par\adddot}},
+ sectiontotals = {{paragraffer}{par\adddot}},
+ paragraphtotal = {{afsnit}{afsn\adddot}},
+ paragraphtotals = {{afsnit}{afsn\adddot}},%
+ in = {{i}{i}},
+ inseries = {{i r\ae kken}{i rk\adddot}},
+ ofseries = {{fra r\ae kken}{fra rk\adddot}},
+ number = {{nummer}{nr\adddot}},
+% numbers = {{numre}{nr\adddot}},
+ chapter = {{kapitel}{kap\adddot}},
+ bathesis = {{bachelorafhandling}{bachelorafh\adddot}},
+ mathesis = {{masterafhandling}{masterafh\adddot}},
+ phdthesis = {{PhD afhandling}{PhD afh\adddot}},
+ candthesis = {{specialeafhandling}{specialeafh\adddot}},
+ resreport = {{forskningsrapport}{forskningsrap\adddot}},
+ techreport = {{teknisk rapport}{tekn\adddot\ rap\adddot}},
+ software = {{software}{software}},
+ datacd = {{data-cd}{data-cd}},
+ audiocd = {{lyd-cd}{lyd-cd}},
+ version = {{version}{vers\adddot}},
+ url = {{webadresse}{webadr\adddot}},
+ urlfrom = {{tilg\ae ngelig fra}{tilg\adddotspace fra}},
+ urlseen = {{bes\o gt}{bes\adddot}},
+ inpreparation = {{under udarbejdelse}{under udarb\adddot}},
+ submitted = {{indleveret}{indlev\adddot}},
+ forthcoming = {{under udgivelse}{under udgiv\adddot}},
+ inpress = {{i trykken}{i trykken}},
+ prepublished = {{pr\ae publiceret}{pr\ae publ\adddot}},
+ citedas = {{herefter citeret som}{herefter cit\adddot\ som}},
+ thiscite = {{her}{her}},
+ seenote = {{se note}{se nt\adddot}},
+ quotedin = {{citeret efter}{cit\adddot\ efter}},
+ idem = {{den samme}{d\adddot s\adddot}},
+ idemsf = {{den samme}{d\adddot s\adddot}},
+ idemsm = {{den samme}{d\adddot s\adddot}},
+ idemsn = {{det samme}{d\adddot s\adddot}},
+ idempf = {{de samme}{d\adddot s\adddot}},
+ idempm = {{de samme}{d\adddot s\adddot}},
+ idempn = {{de samme}{d\adddot s\adddot}},
+ idempp = {{de samme}{d\adddot s\adddot}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op.\adddotspace cit\adddot}{op.\adddotspace cit\adddot}},
+ loccit = {{loc.\adddotspace cit\adddot}{loc.\adddotspace cit\adddot}},
+ confer = {{j\ae vnf\o r}{jvf\adddot}},
+ sequens = {{f\adddot}{f\adddot}},
+ sequentes = {{ff\adddot}{ff\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{se}{s\adddot}},
+ seealso = {{se ogs\aa}{se ogs\aa}},
+ backrefpage = {{se side}{se s\adddot}},
+ backrefpages = {{se siderne}{se s\adddot}},
+ january = {{januar}{jan\adddot}},
+ february = {{februar}{feb\adddot}},
+ march = {{marts}{mar\adddot}},
+ april = {{april}{apr\adddot}},
+ may = {{maj}{maj}},
+ june = {{juni}{jun\adddot}},
+ july = {{juli}{jul\adddot}},
+ august = {{august}{aug\adddot}},
+ september = {{september}{sep\adddot}},
+ october = {{oktober}{okt\adddot}},
+ november = {{november}{nov\adddot}},
+ december = {{december}{dec\adddot}},
+ langamerican = {{amerikansk-engelsk}{amerikansk-engelsk}},
+ langbrazilian = {{brasiliansk-portugisisk}{brasiliansk-portugisisk}},
+ langbulgarian = {{bulgarsk}{bulgarsk}},
+ langcatalan = {{katalansk}{katalansk}},
+ langcroatian = {{kroatisk}{kroatisk}},
+ langczech = {{tjekkisk}{tjekkisk}},
+ langdanish = {{dansk}{dansk}},
+ langdutch = {{nederlandsk}{nederlandsk}},
+ langenglish = {{engelsk}{engelsk}},
+ langestonian = {{estisk}{estisk}},
+ langfinnish = {{finsk}{finsk}},
+ langfrench = {{fransk}{fransk}},
+ langgalician = {{galicisk}{galicisk}},
+ langgerman = {{tysk}{tysk}},
+ langgreek = {{gr\ae sk}{gr\ae sk}},
+ langhungarian = {{ungarsk}{ungarsk}},
+ langitalian = {{italiensk}{italiensk}},
+ langjapanese = {{japansk}{japansk}},
+ langlatin = {{latin}{latin}},
+ langlatvian = {{lettisk}{lettisk}},
+ langnorwegian = {{norsk}{norsk}},
+ langpolish = {{polsk}{polsk}},
+ langportuguese = {{portugisisk}{portugisisk}},
+ langrussian = {{russisk}{russisk}},
+ langslovak = {{slovakisk}{slovakisk}},
+ langslovene = {{slovensk}{slovensk}},
+ langspanish = {{spansk}{spansk}},
+ langswedish = {{svensk}{svensk}},
+ langukrainian = {{ukrainsk}{ukrainsk}},
+ fromamerican = {{fra amerikansk-engelsk}{fra amerikansk-engelsk}},
+ frombrazilian = {{fra brasiliansk-portugisisk}{fra brasiliansk-portugisisk}},
+ frombulgarian = {{fra bulgarsk}{fra bulgarsk}},
+ fromcatalan = {{fra katalansk}{fra katalansk}},
+ fromcroatian = {{fra kroatisk}{fra kroatisk}},
+ fromczech = {{fra tjekkisk}{fra tjekkisk}},
+ fromdanish = {{fra dansk}{fra dansk}},
+ fromdutch = {{fra nederlandsk}{fra nederlandsk}},
+ fromenglish = {{fra engelsk}{fra engelsk}},
+ fromestonian = {{fra estisk}{fra estisk}},
+ fromfinnish = {{fra finsk}{fra finsk}},
+ fromfrench = {{fra fransk}{fra fransk}},
+ fromgalician = {{fra galicisk}{fra galicisk}},
+ fromgerman = {{fra tysk}{fra tysk}},
+ fromgreek = {{fra gr\ae sk}{fra gr\ae sk}},
+ fromhungarian = {{fra ungarsk}{fra ungarsk}},
+ fromitalian = {{fra italiensk}{fra italiensk}},
+ fromjapanese = {{fra japansk}{fra japansk}},
+ fromlatin = {{fra latin}{fra latin}},
+ fromlatvian = {{fra lettisk}{fra lettisk}},
+ fromnorwegian = {{fra norsk}{fra norsk}},
+ frompolish = {{fra polsk}{fra polsk}},
+ fromportuguese = {{fra portugisisk}{fra portugisisk}},
+ fromrussian = {{fra russisk}{fra russisk}},
+ fromslovak = {{fra slovakisk}{fra slovakisk}},
+ fromslovene = {{fra slovensk}{fra slovensk}},
+ fromspanish = {{fra spansk}{fra spansk}},
+ fromswedish = {{fra svensk}{fra svensk}},
+ fromukrainian = {{fra ukrainsk}{fra ukrainsk}},
+ countryde = {{Tyskland}{DE}},
+ countryeu = {{Europ\ae iske Union}{EU}},
+ countryep = {{Europ\ae iske Union}{EP}},
+ countryfr = {{Frankrig}{FR}},
+ countryuk = {{Storbritannien}{GB}},
+ countryus = {{USA}{US}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{tysk patent}{tysk pat\adddot}},
+ patenteu = {{europ\ae isk patent}{eur\adddot\ pat\adddot}},
+ patentfr = {{fransk patent}{fransk pat\adddot}},
+ patentuk = {{britisk patent}{brit\adddot\ pat\adddot}},
+ patentus = {{amerikansk patent}{am\adddot\ pat\adddot}},
+ patreq = {{patentans\o gning}{pat\adddot\ ans\o gn\adddot}},
+ patreqde = {{tysk patentans\o gning}{tysk pat\adddot\ ans\o gn\adddot}},
+ patreqeu = {{europ\ae isk patentans\o gning}{eur\adddot\ pat\adddot\ ans\o gn\adddot}},
+ patreqfr = {{fransk patentans\o gning}{fransk pat\adddot\ ans\o gn\adddot}},
+ patrequk = {{britisk patentans\o gning}{brit\adddot\ pat\adddot\ ans\o gn\adddot}},
+ patrequs = {{amerikansk patentans\o gning}{am\adddot\ pat\adddot\ ans\o gn\adddot}},
+ file = {{fil}{fil}},
+ library = {{bibliotek}{bibl\adddot}},
+ abstract = {{resum\'{e}}{resum\'{e}}},
+ annotation = {{kommentarer}{komm\adddot}},
+ commonera = {{efter vor tidsregning}{e\adddot v\adddot t\adddot}},
+ beforecommonera = {{f\o r vor tidsregning}{f\adddot v\adddot t\adddot}},
+ annodomini = {{efter Kristi f\o dsel}{e\adddot Kr\adddot}},
+ beforechrist = {{f\o r Kristi f\o dsel}{f\adddot Kr\adddot}},
+ circa = {{cirka}{ca\adddot}},
+ spring = {{for\aa r}{for\aa r}},
+ summer = {{sommer}{sommer}},
+ autumn = {{efter\aa r}{efter\aa r}},
+ winter = {{vinter}{vinter}},
+ am = {{formiddag}{form\adddot}},
+ pm = {{eftermiddag}{efterm\adddot}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/dutch.lbx b/macros/latex/contrib/biblatex/latex/lbx/dutch.lbx
new file mode 100644
index 0000000000..6d6822fd72
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/dutch.lbx
@@ -0,0 +1,546 @@
+\ProvidesFile{dutch.lbx}
+[\abx@lbxid]
+
+% Changes:
+% 2010-10-31 Update by Alexander van Loon
+% 2011-08-27 Update by Pieter Belmans
+
+\DeclareRedundantLanguages{dutch}{dutch}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ % both ordinal numbers are valid, the first is the most basic: 1e, 2e, 19e
+ % whereas the second is capable of typesetting 1ste, 2de, 21ste, 102de
+ % \protected\def\mkbibordinal#1{\stripzeros{#1}e}%
+ \protected\def\mkbibordinal#1{%
+ \begingroup
+ \@tempcnta0#1\relax\number\@tempcnta
+ \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}%
+ \ifnum\@tempcnta>19
+ ste%
+ \else
+ \ifnum\@tempcnta=1
+ ste%
+ \else
+ \ifnum\@tempcnta=8 ste\else de\fi
+ \fi
+ \fi
+ \endgroup}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\mbox{-}}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\mbox{-}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografie}{Bibliografie}},
+ references = {{Referenties}{Referenties}},
+ shorthands = {{Lijst van afkortingen}{Afkortingen}},
+ editor = {{redacteur}{red\adddot}},
+ editors = {{redacteurs}{red\adddot}},
+ compiler = {{samensteller}{samenst\adddot}},
+ compilers = {{samenstellers}{samenst\adddot}},
+ founder = {{oprichter}{opr\adddot}},
+ founders = {{oprichters}{opr\adddot}},
+ continuator = {{opvolger}{opv\adddot}},
+ continuators = {{opvolgers}{opv\adddot}},
+ redactor = {{redacteur}{red\adddot}},
+ redactors = {{redacteuren}{red\adddot}},
+ reviser = {{revisor}{rev\adddot}},
+ revisers = {{revisors}{rev\adddot}},
+ collaborator = {{medewerker}{med\adddot}},
+ collaborators = {{medewerkers}{med\adddot}},
+ translator = {{vertaler}{vert\adddot}},
+ translators = {{vertalers}{vert\adddot}},
+ commentator = {{commentator}{comm\adddot}},
+ commentators = {{commentatoren}{comm\adddot}},
+ annotator = {{annotator}{annot\adddot}},
+ annotators = {{annotatoren}{annot\adddot}},
+ editortr = {{redacteur en vertaler}%
+ {red\adddotspace en vert\adddot}},
+ editorstr = {{redacteuren en vertalers}%
+ {red\adddotspace en vert\adddot}},
+ editorco = {{redacteur en commentator}%
+ {red\adddotspace en comm\adddot}},
+ editorsco = {{redacteuren en commentatoren}%
+ {red\adddotspace en comm\adddot}},
+ editoran = {{redacteur en annotator}%
+ {red\adddotspace en annot\adddot}},
+ editorsan = {{redacteuren en annotatoren}%
+ {red\adddotspace en annot\adddot}},
+ editorin = {{redactie en inleiding}%
+ {red\adddotspace en inl\adddot}},
+ editorsin = {{redacteuren en inleiding}%
+ {red\adddotspace en inl\adddot}},
+ editorfo = {{redacteur en voorwoord}%
+ {red\adddotspace en voorw\adddot}},
+ editorsfo = {{redacteuren en voorwoord}%
+ {red\adddotspace en voorw\adddot}},
+ editoraf = {{redacteur en nawoord}%
+ {red\adddotspace en naw\adddot}},
+ editorsaf = {{redacteuren en nawoord}%
+ {red\adddotspace en naw\adddot}},
+ editortrco = {{redacteur, vertaler en commentator}%
+ {red.,\addabbrvspace vert\adddotspace en comm\adddot}},
+ editorstrco = {{redacteuren, vertalers en commentatoren}%
+ {red.,\addabbrvspace vert\adddotspace en comm\adddot}},
+ editortran = {{redacteur, vertaler en annotator}%
+ {red.,\addabbrvspace vert\adddotspace en annot\adddot}},
+ editorstran = {{redacteur, vertalers en annotatoren}%
+ {red.,\addabbrvspace vert\adddotspace en annot\adddot}},
+ editortrin = {{redacteur, vertaler en inleiding}%
+ {red.,\addabbrvspace vert\adddotspace en inl\adddot}},
+ editorstrin = {{redacteuren, vertalers en inleiding}%
+ {red.,\addabbrvspace vert\adddotspace en inl\adddot}},
+ editortrfo = {{redacteur, vertaler en voorwoord}%
+ {red.,\addabbrvspace vert\adddotspace en voorw\adddot}},
+ editorstrfo = {{redacteuren, vertalers en voorwoord}%
+ {red.,\addabbrvspace vert\adddotspace en voorw\adddot}},
+ editortraf = {{redacteur, vertaler en nawoord}%
+ {red.,\addabbrvspace vert\adddotspace en naw\adddot}},
+ editorstraf = {{redacteuren, vertalers en nawoord}%
+ {red.,\addabbrvspace vert\adddotspace en naw\adddot}},
+ editorcoin = {{redacteur, commentator en inleiding}%
+ {red.,\addabbrvspace comm\adddotspace en inl\adddot}},
+ editorscoin = {{redacteuren, commentatoren en inleiding}%
+ {red.,\addabbrvspace comm\adddotspace en inl\adddot}},
+ editorcofo = {{redacteur, commentator en voorwoord}%
+ {red.,\addabbrvspace comm\adddotspace en voorw\adddot}},
+ editorscofo = {{redacteuren, commentatoren en voorwoord}%
+ {red.,\addabbrvspace comm\adddotspace en voorw\adddot}},
+ editorcoaf = {{redacteur, commentator en nawoord}%
+ {red.,\addabbrvspace comm\adddotspace en naw\adddot}},
+ editorscoaf = {{redacteuren, commentatoren en nawoord}%
+ {red.,\addabbrvspace comm\adddotspace en naw\adddot}},
+ editoranin = {{redacteur, annotator en inleiding}%
+ {red.,\addabbrvspace annot\adddotspace en inl\adddot}},
+ editorsanin = {{redacteuren, annotatoren en inleiding}%
+ {red.,\addabbrvspace annot\adddotspace en inl\adddot}},
+ editoranfo = {{redacteur, annotator en voorwoord}%
+ {red.,\addabbrvspace annot\adddotspace en voorw\adddot}},
+ editorsanfo = {{redacteuren, annotatoren en voorwoord}%
+ {red.,\addabbrvspace annot\adddotspace en voorw\adddot}},
+ editoranaf = {{redacteur, annotator en nawoord}%
+ {red.,\addabbrvspace annot\adddotspace en nawoord\adddot}},
+ editorsanaf = {{redacteuren, annotatoren en nawoord}%
+ {red.,\addabbrvspace annot\adddotspace en naw\adddot}},
+ editortrcoin = {{redacteur, vertaler, commentator en inleiding}%
+ {red.,\addabbrvspace vert., comm\adddotspace en inl\adddot}},
+ editorstrcoin = {{redacteuren, vertalers, commentatoren en inleiding}%
+ {red.,\addabbrvspace vert., comm\adddotspace en inl\adddot}},
+ editortrcofo = {{redacteur, vertaling, commentator en voorwoord}%
+ {red.,\addabbrvspace vert., comm\adddotspace en voorw\adddot}},
+ editorstrcofo = {{redacteuren, vertalers, commentatoren en voorwoord}%
+ {red.,\addabbrvspace vert., comm\adddotspace en voorw\adddot}},
+ editortrcoaf = {{redacteur, vertaler, commentator en nawoord}%
+ {red.,\addabbrvspace vert., comm\adddotspace en naw\adddot}},
+ editorstrcoaf = {{redacteuren, vertalers, commentators en nawoord}%
+ {red.,\addabbrvspace vert., comm\adddotspace en naw\adddot}},
+ editortranin = {{redacteur, vertaler, annotator en inleiding}%
+ {red.,\addabbrvspace vert., annot\adddotspace en inl\adddot}},
+ editorstranin = {{redacteuren, vertalers, annotatoren en inleiding}%
+ {red.,\addabbrvspace vert., annot\adddotspace en inl\adddot}},
+ editortranfo = {{redacteur, vertaler, annotator en voorwoord}%
+ {red.,\addabbrvspace vert., annot\adddotspace en voorw\adddot}},
+ editorstranfo = {{redacteuren, vertalers, annotatoren en voorwoord}%
+ {red.,\addabbrvspace vert., annot\adddotspace en voorw\adddot}},
+ editortranaf = {{redacteur, vertaler, annotator en nawoord}%
+ {red.,\addabbrvspace vert., annot\adddotspace en naw\adddot}},
+ editorstranaf = {{redacteuren, vertalers, annotatoren en nawoord}%
+ {red.,\addabbrvspace vert., annot\adddotspace en naw\adddot}},
+ translatorco = {{vertaler en commentator}%
+ {vert\adddotspace en comm\adddot}},
+ translatorsco = {{vertalers en commentatoren}%
+ {vert\adddotspace en comm\adddot}},
+ translatoran = {{vertaler en annotator}%
+ {vert\adddotspace en annot\adddot}},
+ translatorsan = {{vertalers en annotatoren}%
+ {vert\adddotspace en annot\adddot}},
+ translatorin = {{vertaling en inleiding}%
+ {vert\adddotspace en inl\adddot}},
+ translatorsin = {{vertaling en inleiding}%
+ {vert\adddotspace en inl\adddot}},
+ translatorfo = {{vertaling en voorwoord}%
+ {vert\adddotspace en voorw\adddot}},
+ translatorsfo = {{vertaling en voorwoord}%
+ {vert\adddotspace en voorw\adddot}},
+ translatoraf = {{vertaling en nawoord}%
+ {vert\adddotspace en naw\adddot}},
+ translatorsaf = {{vertaling en nawoord}%
+ {vert\adddotspace en naw\adddot}},
+ translatorcoin = {{vertaling, commentaar en inleiding}%
+ {vert., comm\adddotspace en inl\adddot}},
+ translatorscoin = {{vertaling, commentaar en inleiding}%
+ {vert., comm\adddotspace en inl\adddot}},
+ translatorcofo = {{vertaling, commentaar en voorwoord}%
+ {vert., comm\adddotspace en voorwoord\adddot}},
+ translatorscofo = {{vertaling, commentaar en voorwoord}%
+ {vert., comm\adddotspace en voorw\adddot}},
+ translatorcoaf = {{vertaling, commentaar en nawoord}%
+ {vert., comm\adddotspace en naw\adddot}},
+ translatorscoaf = {{vertaling, commentaar en nawoord}%
+ {vert., comm\adddotspace en naw\adddot}},
+ translatoranin = {{vertaling, annotaties en inleiding}%
+ {vert., annot\adddotspace en inl\adddot}},
+ translatorsanin = {{vertaling, annotaties en inleiding}%
+ {vert., annot\adddotspace en inl\adddot}},
+ translatoranfo = {{vertaling, annotaties en voorwoord}%
+ {vert., annot\adddotspace en voorw\adddot}},
+ translatorsanfo = {{vertaling, annotaties en voorwoord}%
+ {vert., annot\adddotspace en voorw\adddot}},
+ translatoranaf = {{vertaling, annotaties en nawoord}%
+ {vert., annot\adddotspace en naw\adddot}},
+ translatorsanaf = {{vertaling, annotaties en nawoord}%
+ {vert., annot\adddotspace en naw\adddot}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{door}{door}},
+ byeditor = {{geredigeerd door}{red\adddot\addabbrvspace door}},
+ bycompiler = {{samengesteld door}{sam\adddot\addabbrvspace door}},
+ byfounder = {{opgericht door}{opger\adddot\addabbrvspace door}},
+ bycontinuator = {{opgevolgd door}{opgev\adddot\addabbrvspace door}},
+ byredactor = {{geredigeerd door}{red\adddotspace door}},
+ byreviser = {{gereviseerd door}{gerevis\adddot\addabbrvspace door}},
+ byreviewer = {{nagekeken door}{nagek\adddot\addabbrvspace door}},
+ bycollaborator = {{met medewerking van}{m\adddot m\adddot v}},
+ bytranslator = {{vertaald \lbx@lfromlang\ door}{vert\adddotspace \lbx@lfromlang\ door}},
+ bycommentator = {{becommentarieerd door}{comm\adddotspace door}},
+ byannotator = {{geannoteerd door}{annot\adddotspace door}},
+ byeditortr = {{geredigeerd en vertaald \lbx@lfromlang\ door}%
+ {red\adddotspace en vert\adddotspace \lbx@sfromlang\ door}},
+ byeditorco = {{geredigeerd en becommentarieerd door}%
+ {red\adddotspace en comm\adddotspace door}},
+ byeditoran = {{geredigeerd en geannoteerd door}%
+ {red\adddotspace en annot\adddotspace door}},
+ byeditorin = {{geredigeerd, met een inleiding, van}%
+ {red., met een inl., van}},
+ byeditorfo = {{geredigeerd, met een voorwoord, van}%
+ {red., met een voorw., van}},
+ byeditoraf = {{geredigeerd, met een nawoord, van}%
+ {red., met een naw., van}},
+ byeditortrco = {{geredigeerd, vertaald \lbx@lfromlang\ en becommentarieerd door}%
+ {red., vert\adddotspace \lbx@sfromlang\ en comm\adddotspace door}},
+ byeditortran = {{geredigeerd, vertaald \lbx@lfromlang\ en geannoteerd door}%
+ {red., vert\adddotspace \lbx@sfromlang\ en annot\adddotspace door}},
+ byeditortrin = {{geredigeerd en vertaald \lbx@lfromlang, met een inleiding, door}%
+ {red\adddotspace en vert. \lbx@sfromlang, met een inl., door}},
+ byeditortrfo = {{geredigeerd en vertaald \lbx@lfromlang, met een voorwoord, door}%
+ {red\adddotspace en vert. \lbx@sfromlang, met een voorw., door}},
+ byeditortraf = {{geredigeerd en vertaald \lbx@lfromlang, met een nawoord, door}%
+ {red\adddotspace en vert. \lbx@sfromlang, met een naw., door}},
+ byeditorcoin = {{geredigeerd en becommentarieerd, met een inleiding, door}%
+ {red\adddotspace en comm., met een inl., door}},
+ byeditorcofo = {{geredigeerd en becommentarieerd, met een voorwoord, door}%
+ {red\adddotspace en comm., met een voorw., door}},
+ byeditorcoaf = {{geredigeerd en becommentarieerd, met een nawoord, door}%
+ {red\adddotspace en comm., met een naw., door}},
+ byeditoranin = {{geredigeerd en geannoteerd, met een inleiding, door}%
+ {red\adddotspace en annot., met een inl., door}},
+ byeditoranfo = {{geredigeerd en geannoteerd, met een voorwoord, door}%
+ {red\adddotspace en annot., met een voorw., door}},
+ byeditoranaf = {{geredigeerd en geannoteerd, met een nawoord, door}%
+ {red\adddotspace en annot., met een naw., door}},
+ byeditortrcoin = {{geredigeerd, vertaald \lbx@lfromlang\ en becommentarieerd, met een inleiding, door}%
+ {red., vert\adddotspace \lbx@sfromlang\ en comm., met een inl., door}},
+ byeditortrcofo = {{geredigeerd, vertaald \lbx@lfromlang\ en becommentarieerd, met een voorwoord, door}%
+ {red., vert\adddotspace \lbx@sfromlang\ en comm., met een voorw., door}},
+ byeditortrcoaf = {{geredigeerd, vertaald \lbx@lfromlang\ en becommentarieerd, met een nawoord, door}%
+ {red., vert\adddotspace \lbx@sfromlang\ en comm., met een naw., door}},
+ byeditortranin = {{geredigeerd, vertaald \lbx@lfromlang\ en geannoteerd, met een inleiding, door}%
+ {red., vert\adddotspace \lbx@sfromlang\ en annot., met een inl., door}},
+ byeditortranfo = {{geredigeerd, vertaald \lbx@lfromlang\ en geannoteerd, met een voorwoord, door}%
+ {red., vert\adddotspace \lbx@sfromlang\ en annot., met een voorw., door}},
+ byeditortranaf = {{geredigeerd, vertaald \lbx@lfromlang\ en geannoteerd, met een nawoord, door}%
+ {red., vert\adddotspace \lbx@sfromlang\ en annot., met een naw., door}},
+ bytranslatorco = {{vertaald \lbx@lfromlang\ en becommentarieerd door}%
+ {vert\adddotspace \lbx@sfromlang\ en comm\adddotspace door}},
+ bytranslatoran = {{vertaald \lbx@lfromlang\ en geannoteerd door}%
+ {vert\adddotspace \lbx@sfromlang\ en annot.\adddotspace door}},
+ bytranslatorin = {{vertaald \lbx@lfromlang, met een inleiding, door}%
+ {vert. \lbx@sfromlang, met een inl., door}},
+ bytranslatorfo = {{vertaald \lbx@lfromlang, met een voorwoord, door}%
+ {vert. \lbx@sfromlang, met een voorw., door}},
+ bytranslatoraf = {{vertaald \lbx@lfromlang, met een nawoord, door}%
+ {vert. \lbx@sfromlang, met een naw., door}},
+ bytranslatorcoin = {{vertaald \lbx@lfromlang\ en becommentarieerd, met een inleiding, door}%
+ {vert\adddotspace \lbx@sfromlang\ en comm., met een inl., door}},
+ bytranslatorcofo = {{vertaald \lbx@lfromlang\ en becommentarieerd, met een voorwoord, door}%
+ {vert\adddotspace \lbx@sfromlang\ en comm., met een voorw., door}},
+ bytranslatorcoaf = {{vertaald \lbx@lfromlang\ en becommentarieerd, met een nawoord, door}%
+ {vert\adddotspace \lbx@sfromlang\ en comm., met een naw., door}},
+ bytranslatoranin = {{vertaald \lbx@lfromlang\ en geannoteerd, met een inleiding, door}%
+ {vert\adddotspace \lbx@sfromlang\ en annot., met een inl., door}},
+ bytranslatoranfo = {{vertaald \lbx@lfromlang\ en geannoteerd, met een voorwoord, door}%
+ {vert\adddotspace \lbx@sfromlang\ en annot., met een voorw., door}},
+ bytranslatoranaf = {{vertaald \lbx@lfromlang\ en geannoteerd, met een nawoord, door}%
+ {vert\adddotspace \lbx@sfromlang\ en annot., met een naw., door}},
+ withcommentator = {{met een commentaar van}{met een comm\adddotspace van}},
+ withannotator = {{met annotaties door}{met annot\adddotspace door}},
+ withintroduction = {{met een inleiding van}{met een inl\adddotspace van}},
+ withforeword = {{met een voorwoord van}{met een voorw\adddotspace van}},
+ withafterword = {{met een nawoord van}{met een naw\adddotspace van}},
+ commentary = {{commentaar}{comm\adddot}},
+ annotations = {{annotaties}{annot\adddot}},
+ introduction = {{inleiding}{inl\adddot}},
+ foreword = {{voorwoord}{voorw\adddot}},
+ afterword = {{nawoord}{naw\adddot}},
+ volume = {{deel}{deel}},
+ volumes = {{delen}{delen}},
+ jourvol = {{jaargang}{jrg\adddot}},
+ jourser = {{reeks}{reeks}},
+ book = {{boek}{boek}},
+ part = {{deel}{deel}},
+ issue = {{nummer}{nr\adddot}},
+ newseries = {{nieuwe reeks}{nieuwe reeks}},
+ oldseries = {{oude reeks}{oude reeks}},
+ edition = {{editie}{ed\adddot}},
+ in = {{in}{in}},
+ inseries = {{in}{in}},
+ ofseries = {{van}{van}},
+ number = {{nummer}{nr\adddot}},
+ chapter = {{hoofdstuk}{hfdstk\adddot}},
+ version = {{versie}{versie}},
+ reprint = {{herdruk}{herdr\adddot}},
+ reprintof = {{herdruk van}{herdr\adddotspace van}},
+ reprintas = {{herdrukt als}{herdr\adddotspace als}},
+ reprintfrom = {{herdrukt uit}{herdr\adddotspace uit}},
+ translationof = {{vertaling van}{vert\adddotspace van}},
+ translationas = {{vertaald als}{vert\adddotspace als}},
+ translationfrom = {{vertaald van}{vert\adddotspace van}},
+ reviewof = {{bespreking van}{bespr\adddotspace van}},
+ origpubas = {{oorspronkelijk gepubliceerd als}{oorspr\adddotspace gep\adddotspace als}},
+ origpubin = {{oorspronkelijk gepubliceerd in}{oorspr\adddotspace gep\adddotspace in}},
+ astitle = {{als}{als}},% FIXME: check
+ bypublisher = {{door}{door}},% FIXME: check
+ inpreparation = {{in voorbereiding}{in voorbereiding}},
+ submitted = {{ingediend}{ingedied}},
+% forthcoming = {{onderweg}{onderweg}},% FIXME: check
+ inpress = {{in druk}{in druk}},
+ prepublished = {{voorpublicatie}{voorpublicatie}},
+ nodate = {{geen\space datum}{{}g\adddot d\adddot}},
+ page = {{pagina}{p\adddot}},
+ pages = {{pagina's}{p\adddot}},
+ column = {{kolom}{kol\adddot}},
+ columns = {{kolommen}{kol\adddot}},
+ section = {{sectie}{\S}},
+ sections = {{secties}{\S}},
+ paragraph = {{paragraaf}{par\adddot}},
+ paragraphs = {{paragrafen}{par\adddot}},
+ verse = {{vers}{v\adddot}},
+ verses = {{verzen}{v\adddot}},
+ line = {{regel}{r\adddot}},
+ lines = {{regels}{r\adddot}},
+ pagetotal = {{pagina}{p\adddot}},
+ pagetotals = {{pagina's}{p\adddot}},
+ columntotal = {{kolom}{kol\adddot}},
+ columntotals = {{kolommen}{kol\adddot}},
+ linetotal = {{regel}{r\adddot}},
+ linetotals = {{regels}{r\adddot}},
+ versetotal = {{vers}{v\adddot}},
+ versetotals = {{verzen}{v\adddot}},
+ sectiontotal = {{sectie}{\S}},
+ sectiontotals = {{secties}{\S}},
+ paragraphtotal = {{paragraaf}{par\adddot}},
+ paragraphtotals = {{paragrafen}{par\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{masterscriptie}{masterscriptie}},
+ phdthesis = {{proefschrift}{proefschrift}},
+ resreport = {{onderzoeksrapport}{onderzoeksrap\adddot}},
+ techreport = {{technisch rapport}{tech\adddotspace rap\adddot}},
+ software = {{computersoftware}{computersoft\adddot}},
+ datacd = {{cd-rom}{cd-rom}},
+ audiocd = {{audio-cd}{audio-cd}},
+ and = {{en}{en}},
+ andothers = {{en andere}{e\adddot a\adddot}},
+ andmore = {{en andere}{e\adddot a\adddot}},
+ url = {{adres}{adres}},
+ urlfrom = {{beschikbaar op}{beschikbaar op}},
+ urlseen = {{bezocht op}{bezocht op}},
+ file = {{bestand}{bestand}},
+ library = {{bibliotheek}{bibliotheek}},
+ abstract = {{samenvatting}{samenvatting}},
+ annotation = {{annotaties}{annotaties}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{zie}{zie}},
+ seealso = {{zie ook}{zie ook}},
+ seenote = {{zie voetnoot}{zie v\adddot}},
+ backrefpage = {{zie pagina}{zie pag\adddot}},
+ backrefpages = {{zie pagina's}{zie pag\adddot}},
+ quotedin = {{geciteerd in}{cit\adddotspace in}},
+ citedas = {{verder geciteerd als}{verder geciteerd als}},
+ thiscite = {{met name}{m.n\adddot}},
+ january = {{januari}{jan}},
+ february = {{februari}{feb}},
+ march = {{maart}{mrt}},
+ april = {{april}{apr}},
+ may = {{mei}{mei}},
+ june = {{juni}{jun}},
+ july = {{juli}{jul}},
+ august = {{augustus}{aug}},
+ september = {{september}{sep}},
+ october = {{oktober}{okt}},
+ november = {{november}{nov}},
+ december = {{december}{dec}},
+ langamerican = {{Amerikaans Engels}{Amerikaans Engels}},
+ langbrazilian = {{Braziliaans Portugeens}{Braziliaans Portugees}},
+ langbulgarian = {{Bulgaars}{Bulgaars}},
+ langcatalan = {{Catalaans}{Catalaans}},
+ langcroatian = {{Kroatisch}{Kroatisch}},
+ langczech = {{Tsjechisch}{Tsjechisch}},
+ langdanish = {{Deens}{Deens}},
+ langdutch = {{Nederlands}{Nederlands}},
+ langenglish = {{Engels}{Engels}},
+ langestonian = {{Estisch}{Estisch}},
+ langfinnish = {{Fins}{Fins}},
+ langfrench = {{Frans}{Frans}},
+ langgalician = {{Galicisch}{Galicisch}},
+ langgerman = {{Duits}{Duits}},
+ langgreek = {{Grieks}{Grieks}},
+ langhungarian = {{Hongaars}{Hongaars}},
+ langitalian = {{Italiaans}{Italiaans}},
+ langjapanese = {{Japaans}{Japaans}},
+ langlatin = {{Latijn}{Latijn}},
+ langlatvian = {{Lets}{Lets}},
+ langnorwegian = {{Noors}{Noors}},
+ langpolish = {{Pools}{Pools}},
+ langportuguese = {{Portugees}{Portugees}},
+ langrussian = {{Russisch}{Russisch}},
+ langslovak = {{Slowaaks}{Slowaaks}},% FIXME: or Slovaaks
+ langslovene = {{Sloveens}{Sloveens}},
+ langspanish = {{Spaans}{Spaans}},
+ langswedish = {{Zweeds}{Zweeds}},
+ langukrainian = {{Oekra\"iens}{Oekra\"iens}},
+ fromamerican = {{uit het Amerikaans Engels}{uit het Amerikaans Engels}},
+ frombrazilian = {{uit het Braziliaans Portugees}{uit het Braziliaans Portugees}},
+ frombulgarian = {{uit het Bulgaars}{uit het Bulgaars}},
+ fromcatalan = {{uit het Catalaans}{uit het Catalaans}},
+ fromcroatian = {{uit het Kroatisch}{uit het Kroatisch}},
+ fromczech = {{uit het Tsjechisch}{uit het Tsjechisch}},
+ fromdanish = {{uit het Deens}{uit het Deens}},
+ fromdutch = {{uit het Nederlands}{uit het Nederlands}},
+ fromenglish = {{uit het Engels}{uit het Engels}},
+ fromestonian = {{uit het Estisch}{uit het Estisch}},
+ fromfinnish = {{uit het Fins}{uit het Fins}},
+ fromfrench = {{uit het Frans}{uit het Frans}},
+ fromgalician = {{uit het Galicisch}{uit het Galicisch}},
+ fromgerman = {{uit het Duits}{uit het Duits}},
+ fromgreek = {{uit het Grieks}{uit het Grieks}},
+ fromhungarian = {{uit het Hongaars}{uit het Hongaars}},
+ fromitalian = {{uit het Italiaans}{uit het Italiaans}},
+ fromjapanese = {{uit het Japaans}{uit het Japaans}},
+ fromlatin = {{uit het Latijn}{uit het Latijn}},
+ fromlatvian = {{uit het Lets}{uit het Lets}},
+ fromnorwegian = {{uit het Noors}{uit het Noors}},
+ frompolish = {{uit het Pools}{uit het Pools}},
+ fromportuguese = {{uit het Portugees}{uit het Portugees}},
+ fromrussian = {{uit het Russisch}{uit het Russisch}},
+ fromslovak = {{uit het Slowaaks}{uit het Slowaaks}},% FIXME: or Slovaaks
+ fromslovene = {{uit het Sloveens}{uit het Sloveens}},
+ fromspanish = {{uit het Spaans}{uit het Spaans}},
+ fromswedish = {{uit het Zweeds}{uit het Zweeds}},
+ fromukrainian = {{uit het Oekra\"iens}{uit het Oekra\"iens}},
+ countryde = {{Duitsland}{DE}},
+ countryeu = {{Europese Unie}{EU}},
+ countryep = {{Europese Unie}{EP}},
+ countryfr = {{Frankrijk}{FR}},
+ countryuk = {{Verenigd Koninkrijk}{VK}},
+ countryus = {{Verenigde Staten van Amerika}{VS}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{Duits patent}{Duits pat\adddot}},
+ patenteu = {{Europees patent}{Eur\adddot pat\adddot}},
+ patentfr = {{Frans patent}{Frans pat\adddot}},
+ patentuk = {{Brits patent}{Brits pat\adddot}},
+ patentus = {{Amerikaans patent}{Amer\adddot pat\adddot}},
+ patreq = {{patentaanvraag}{patentaanvr\adddot}},
+ patreqde = {{Duitse patentaanvraag}{Duitse patentaanvr\adddot}},
+ patreqeu = {{Europese patentaanvraag}{Eur\adddot patentaanvr\adddot}},
+ patreqfr = {{Franse patentaanvraag}{Franse patentaanvr\adddot}},
+ patrequk = {{Britse patentaanvraag}{Britse patentaanvr\adddot}},
+ patrequs = {{Amerikaanse patentaanvraag}{Amer\adddot patentaanvr\adddot}},
+ commonera = {{gewone jaartelling}{g\adddot j\adddot}},
+ beforecommonera = {{v\'o\'or gewone jaartelling}{v\adddot g\adddot j\adddot}},
+ annodomini = {{na Christus}{n\adddot Chr\adddot}},
+ beforechrist = {{voor Christus}{v\adddot Chr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{a\adddot m\adddot}{a\adddot m\adddot}},
+ pm = {{p\adddot m\adddot}{p\adddot m\adddot}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/english.lbx b/macros/latex/contrib/biblatex/latex/lbx/english.lbx
new file mode 100644
index 0000000000..109014dafb
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/english.lbx
@@ -0,0 +1,713 @@
+\ProvidesFile{english.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{english,american}{english,american,british,
+canadian,australian,newzealand,USenglish,UKenglish}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \def\finalandcomma{\addcomma}%
+ \def\finalandsemicolon{\addsemicolon}%
+ \protected\def\mkbibordinal#1{%
+ \begingroup
+ \@tempcnta0#1\relax\number\@tempcnta
+ \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}%
+ \ifnum\@tempcnta>20
+ \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}%
+ \fi
+ \ifcase\@tempcnta th\or st\or nd\or rd\else th\fi
+ \endgroup}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#3}
+ {\iffieldundef{#1}{}{\space}}
+ {\nobreakspace}}%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#1}{}{,\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#3}
+ {\iffieldundef{#1}{}{/}}
+ {/}}%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}%
+ \bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \savecommand\mkdaterangecomp
+ \savecommand\mkdaterangecompextra
+ \savecommand\mkdaterangeterse
+ \savecommand\mkdaterangeterseextra
+ \protected\def\mkdaterangecomp{%
+ \lbx@us@mkdaterangetrunc@long{long}}%
+ \protected\def\mkdaterangeterse{%
+ \lbx@us@mkdaterangetrunc@short{short}}%
+ \protected\def\mkdaterangecompextra{%
+ \lbx@us@mkdaterangetruncextra@long{long}}%
+ \protected\def\mkdaterangeterseextra{%
+ \lbx@us@mkdaterangetruncextra@short{short}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkdaterangecomp
+ \restorecommand\mkdaterangecompextra
+ \restorecommand\mkdaterangeterse
+ \restorecommand\mkdaterangeterseextra
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliography}{Bibliography}},
+ references = {{References}{References}},
+ shorthands = {{List of Abbreviations}{Abbreviations}},
+ editor = {{editor}{ed\adddot}},
+ editors = {{editors}{eds\adddot}},
+ compiler = {{compiler}{comp\adddot}},
+ compilers = {{compilers}{comp\adddot}},
+ redactor = {{redactor}{red\adddot}},
+ redactors = {{redactors}{red\adddot}},
+ reviser = {{reviser}{rev\adddot}},
+ revisers = {{revisers}{rev\adddot}},
+ founder = {{founder}{found\adddot}},
+ founders = {{founders}{found\adddot}},
+ continuator = {{continued}{cont\adddot}},% FIXME: unsure
+ continuators = {{continued}{cont\adddot}},% FIXME: unsure
+ collaborator = {{collaborator}{collab\adddot}},% FIXME: unsure
+ collaborators = {{collaborators}{collab\adddot}},% FIXME: unsure
+ translator = {{translator}{trans\adddot}},
+ translators = {{translators}{trans\adddot}},
+ commentator = {{commentator}{comm\adddot}},
+ commentators = {{commentators}{comm\adddot}},
+ annotator = {{annotator}{annot\adddot}},
+ annotators = {{annotators}{annot\adddot}},
+ commentary = {{commentary}{comm\adddot}},
+ annotations = {{annotations}{annot\adddot}},
+ introduction = {{introduction}{intro\adddot}},
+ foreword = {{foreword}{forew\adddot}},
+ afterword = {{afterword}{afterw\adddot}},
+ editortr = {{editor and translator}%
+ {ed\adddotspace and trans\adddot}},
+ editorstr = {{editors and translators}%
+ {eds\adddotspace and trans\adddot}},
+ editorco = {{editor and commentator}%
+ {ed\adddotspace and comm\adddot}},
+ editorsco = {{editors and commentators}%
+ {eds\adddotspace and comm\adddot}},
+ editoran = {{editor and annotator}%
+ {ed\adddotspace and annot\adddot}},
+ editorsan = {{editors and annotators}%
+ {eds\adddotspace and annot\adddot}},
+ editorin = {{editor and introduction}%
+ {ed\adddotspace and introd\adddot}},
+ editorsin = {{editors and introduction}%
+ {eds\adddotspace and introd\adddot}},
+ editorfo = {{editor and foreword}%
+ {ed\adddotspace and forew\adddot}},
+ editorsfo = {{editors and foreword}%
+ {eds\adddotspace and forew\adddot}},
+ editoraf = {{editor and afterword}%
+ {ed\adddotspace and afterw\adddot}},
+ editorsaf = {{editors and afterword}%
+ {eds\adddotspace and afterw\adddot}},
+ editortrco = {{editor, translator\finalandcomma\ and commentator}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ editorstrco = {{editors, translators\finalandcomma\ and commentators}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ editortran = {{editor, translator\finalandcomma\ and annotator}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ editorstran = {{editors, translators\finalandcomma\ and annotators}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ editortrin = {{editor, translator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and introd\adddot}},
+ editorstrin = {{editors, translators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and introd\adddot}},
+ editortrfo = {{editor, translator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and forew\adddot}},
+ editorstrfo = {{editors, translators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and forew\adddot}},
+ editortraf = {{editor, translator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and afterw\adddot}},
+ editorstraf = {{editors, translators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and afterw\adddot}},
+ editorcoin = {{editor, commentator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace comm\adddot\finalandcomma\ and introd\adddot}},
+ editorscoin = {{editors, commentators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace comm\adddot\finalandcomma\ and introd\adddot}},
+ editorcofo = {{editor, commentator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace comm\adddot\finalandcomma\ and forew\adddot}},
+ editorscofo = {{editors, commentators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace comm\adddot\finalandcomma\ and forew\adddot}},
+ editorcoaf = {{editor, commentator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace comm\adddot\finalandcomma\ and afterw\adddot}},
+ editorscoaf = {{editors, commentators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace comm\adddot\finalandcomma\ and afterw\adddot}},
+ editoranin = {{editor, annotator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace annot\adddot\finalandcomma\ and introd\adddot}},
+ editorsanin = {{editors, annotators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace annot\adddot\finalandcomma\ and introd\adddot}},
+ editoranfo = {{editor, annotator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace annot\adddot\finalandcomma\ and forew\adddot}},
+ editorsanfo = {{editors, annotators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace annot\adddot\finalandcomma\ and forew\adddot}},
+ editoranaf = {{editor, annotator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace annot\adddot\finalandcomma\ and afterw\adddot}},
+ editorsanaf = {{editors, annotators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace annot\adddot\finalandcomma\ and afterw\adddot}},
+ editortrcoin = {{editor, translator, commentator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and introd\adddot}},
+ editorstrcoin = {{editors, translators, commentators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and introd\adddot}},
+ editortrcofo = {{editor, translator, commentator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and forew\adddot}},
+ editorstrcofo = {{editors, translators, commentators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and forew\adddot}},
+ editortrcoaf = {{editor, translator, commentator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and afterw\adddot}},
+ editorstrcoaf = {{editors, translators, commentators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and afterw\adddot}},
+ editortranin = {{editor, translator, annotator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and introd\adddot}},
+ editorstranin = {{editors, translators, annotators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and introd\adddot}},
+ editortranfo = {{editor, translator, annotator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and forew\adddot}},
+ editorstranfo = {{editors, translators, annotators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and forew\adddot}},
+ editortranaf = {{editor, translator, annotator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and afterw\adddot}},
+ editorstranaf = {{editors, translators, annotators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and afterw\adddot}},
+ translatorco = {{translator and commentator}%
+ {trans\adddot\ and comm\adddot}},
+ translatorsco = {{translators and commentators}%
+ {trans\adddot\ and comm\adddot}},
+ translatoran = {{translator and annotator}%
+ {trans\adddot\ and annot\adddot}},
+ translatorsan = {{translators and annotators}%
+ {trans\adddot\ and annot\adddot}},
+ translatorin = {{translation and introduction}%
+ {trans\adddot\ and introd\adddot}},
+ translatorsin = {{translation and introduction}%
+ {trans\adddot\ and introd\adddot}},
+ translatorfo = {{translation and foreword}%
+ {trans\adddot\ and forew\adddot}},
+ translatorsfo = {{translation and foreword}%
+ {trans\adddot\ and forew\adddot}},
+ translatoraf = {{translation and afterword}%
+ {trans\adddot\ and afterw\adddot}},
+ translatorsaf = {{translation and afterword}%
+ {trans\adddot\ and afterw\adddot}},
+ translatorcoin = {{translation, commentary\finalandcomma\ and introduction}%
+ {trans., comm\adddot\finalandcomma\ and introd\adddot}},
+ translatorscoin = {{translation, commentary\finalandcomma\ and introduction}%
+ {trans., comm\adddot\finalandcomma\ and introd\adddot}},
+ translatorcofo = {{translation, commentary\finalandcomma\ and foreword}%
+ {trans., comm\adddot\finalandcomma\ and forew\adddot}},
+ translatorscofo = {{translation, commentary\finalandcomma\ and foreword}%
+ {trans., comm\adddot\finalandcomma\ and forew\adddot}},
+ translatorcoaf = {{translation, commentary\finalandcomma\ and afterword}%
+ {trans., comm\adddot\finalandcomma\ and afterw\adddot}},
+ translatorscoaf = {{translation, commentary\finalandcomma\ and afterword}%
+ {trans., comm\adddot\finalandcomma\ and afterw\adddot}},
+ translatoranin = {{translation, annotations\finalandcomma\ and introduction}%
+ {trans., annot\adddot\finalandcomma\ and introd\adddot}},
+ translatorsanin = {{translation, annotations\finalandcomma\ and introduction}%
+ {trans., annot\adddot\finalandcomma\ and introd\adddot}},
+ translatoranfo = {{translation, annotations\finalandcomma\ and foreword}%
+ {trans., annot\adddot\finalandcomma\ and forew\adddot}},
+ translatorsanfo = {{translation, annotations\finalandcomma\ and foreword}%
+ {trans., annot\adddot\finalandcomma\ and forew\adddot}},
+ translatoranaf = {{translation, annotations\finalandcomma\ and afterword}%
+ {trans., annot\adddot\finalandcomma\ and afterw\adddot}},
+ translatorsanaf = {{translation, annotations\finalandcomma\ and afterword}%
+ {trans., annot\adddot\finalandcomma\ and afterw\adddot}},
+ organizer = {{organizer}{org\adddot}},
+ organizers = {{organizers}{orgs\adddot}},
+ byorganizer = {{organized by}{org\adddotspace by}},
+ byauthor = {{by}{by}},
+ byeditor = {{edited by}{ed\adddotspace by}},
+ bycompiler = {{compiled by}{comp\adddotspace by}},
+ byredactor = {{redacted by}{red\adddotspace by}},
+ byreviser = {{revised by}{rev\adddotspace by}},
+ byreviewer = {{reviewed by}{rev\adddotspace by}},
+ byfounder = {{founded by}{found\adddotspace by}},
+ bycontinuator = {{continued by}{cont\adddotspace by}},
+ bycollaborator = {{in collaboration with}{in collab\adddotspace with}},% FIXME: unsure
+ bytranslator = {{translated \lbx@lfromlang\ by}{trans\adddot\ \lbx@sfromlang\ by}},
+ bycommentator = {{commented by}{comm\adddot\ by}},
+ byannotator = {{annotated by}{annot\adddot\ by}},
+ withcommentator = {{with a commentary by}{with a comment\adddot\ by}},
+ withannotator = {{with annotations by}{with annots\adddot\ by}},
+ withintroduction = {{with an introduction by}{with an intro\adddot\ by}},
+ withforeword = {{with a foreword by}{with a forew\adddot\ by}},
+ withafterword = {{with an afterword by}{with an afterw\adddot\ by}},
+ byeditortr = {{edited and translated \lbx@lfromlang\ by}%
+ {ed\adddotspace and trans\adddot\ \lbx@sfromlang\ by}},
+ byeditorco = {{edited and commented by}%
+ {ed\adddotspace and comm\adddot\ by}},
+ byeditoran = {{edited and annotated by}%
+ {ed\adddotspace and annot\adddot\ by}},
+ byeditorin = {{edited, with an introduction, by}%
+ {ed.,\addabbrvspace with an introd., by}},
+ byeditorfo = {{edited, with a foreword, by}%
+ {ed.,\addabbrvspace with a forew., by}},
+ byeditoraf = {{edited, with an afterword, by}%
+ {ed.,\addabbrvspace with an afterw., by}},
+ byeditortrco = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot\ by}},
+ byeditortran = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot\ by}},
+ byeditortrin = {{edited and translated \lbx@lfromlang, with an introduction, by}%
+ {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with an introd., by}},
+ byeditortrfo = {{edited and translated \lbx@lfromlang, with a foreword, by}%
+ {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with a forew., by}},
+ byeditortraf = {{edited and translated \lbx@lfromlang, with an afterword, by}%
+ {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with an afterw., by}},
+ byeditorcoin = {{edited and commented, with an introduction, by}%
+ {ed\adddotspace and comm., with an introd., by}},
+ byeditorcofo = {{edited and commented, with a foreword, by}%
+ {ed\adddotspace and comm., with a forew., by}},
+ byeditorcoaf = {{edited and commented, with an afterword, by}%
+ {ed\adddotspace and comm., with an afterw., by}},
+ byeditoranin = {{edited and annotated, with an introduction, by}%
+ {ed\adddotspace and annot., with an introd., by}},
+ byeditoranfo = {{edited and annotated, with a foreword, by}%
+ {ed\adddotspace and annot., with a forew., by}},
+ byeditoranaf = {{edited and annotated, with an afterword, by}%
+ {ed\adddotspace and annot., with an afterw., by}},
+ byeditortrcoin = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an introduction, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with an introd., by}},
+ byeditortrcofo = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with a foreword, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with a forew., by}},
+ byeditortrcoaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an afterword, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with an afterw., by}},
+ byeditortranin = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an introduction, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot, with an introd., by}},
+ byeditortranfo = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with a foreword, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot, with a forew., by}},
+ byeditortranaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an afterword, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot, with an afterw., by}},
+ bytranslatorco = {{translated \lbx@lfromlang\ and commented by}%
+ {trans\adddot\ \lbx@sfromlang\ and comm\adddot\ by}},
+ bytranslatoran = {{translated \lbx@lfromlang\ and annotated by}%
+ {trans\adddot\ \lbx@sfromlang\ and annot\adddot\ by}},
+ bytranslatorin = {{translated \lbx@lfromlang, with an introduction, by}%
+ {trans\adddot\ \lbx@sfromlang, with an introd., by}},
+ bytranslatorfo = {{translated \lbx@lfromlang, with a foreword, by}%
+ {trans\adddot\ \lbx@sfromlang, with a forew., by}},
+ bytranslatoraf = {{translated \lbx@lfromlang, with an afterword, by}%
+ {trans\adddot\ \lbx@sfromlang, with an afterw., by}},
+ bytranslatorcoin = {{translated \lbx@lfromlang\ and commented, with an introduction, by}%
+ {trans\adddot\ \lbx@sfromlang\ and comm., with an introd., by}},
+ bytranslatorcofo = {{translated \lbx@lfromlang\ and commented, with a foreword, by}%
+ {trans\adddot\ \lbx@sfromlang\ and comm., with a forew., by}},
+ bytranslatorcoaf = {{translated \lbx@lfromlang\ and commented, with an afterword, by}%
+ {trans\adddot\ \lbx@sfromlang\ and comm., with an afterw., by}},
+ bytranslatoranin = {{translated \lbx@lfromlang\ and annotated, with an introduction, by}%
+ {trans\adddot\ \lbx@sfromlang\ and annot., with an introd., by}},
+ bytranslatoranfo = {{translated \lbx@lfromlang\ and annotated, with a foreword, by}%
+ {trans\adddot\ \lbx@sfromlang\ and annot., with a forew., by}},
+ bytranslatoranaf = {{translated \lbx@lfromlang\ and annotated, with an afterword, by}%
+ {trans\adddot\ \lbx@sfromlang\ and annot., with an afterw., by}},
+ and = {{and}{and}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{volume}{vol\adddot}},
+ volumes = {{volumes}{vols\adddot}},
+ involumes = {{in}{in}},
+ jourvol = {{volume}{vol\adddot}},
+ jourser = {{series}{ser\adddot}},
+ book = {{book}{book}},
+ part = {{part}{part}},
+ issue = {{issue}{issue}},
+ newseries = {{new series}{new ser\adddot}},
+ oldseries = {{old series}{old ser\adddot}},
+ edition = {{edition}{ed\adddot}},
+ reprint = {{reprint}{repr\adddot}},
+ reprintof = {{reprint of}{repr\adddotspace of}},
+ reprintas = {{reprinted as}{rpt\adddotspace as}},
+ reprintfrom = {{reprinted from}{repr\adddotspace from}},
+ reviewof = {{review of}{rev\adddotspace of}},
+ translationof = {{translation of}{trans\adddotspace of}},
+ translationas = {{translated as}{trans\adddotspace as}},
+ translationfrom = {{translated from}{trans\adddotspace from}},
+ origpubas = {{originally published as}{orig\adddotspace pub\adddotspace as}},
+ origpubin = {{originally published in}{orig\adddotspace pub\adddotspace in}},
+ astitle = {{as}{as}},
+ bypublisher = {{by}{by}},
+ nodate = {{no date}{n\adddot d\adddot}},
+ page = {{page}{p\adddot}},
+ pages = {{pages}{pp\adddot}},
+ column = {{column}{col\adddot}},
+ columns = {{columns}{cols\adddot}},
+ line = {{line}{l\adddot}},
+ lines = {{lines}{ll\adddot}},
+ verse = {{verse}{v\adddot}},
+ verses = {{verses}{vv\adddot}},
+ section = {{section}{\S}},
+ sections = {{sections}{\S\S}},
+ paragraph = {{paragraph}{par\adddot}},
+ paragraphs = {{paragraphs}{par\adddot}},
+ pagetotal = {{page}{p\adddot}},
+ pagetotals = {{pages}{pp\adddot}},
+ columntotal = {{column}{col\adddot}},
+ columntotals = {{columns}{cols\adddot}},
+ linetotal = {{line}{l\adddot}},
+ linetotals = {{lines}{ll\adddot}},
+ versetotal = {{verse}{v\adddot}},
+ versetotals = {{verses}{vv\adddot}},
+ sectiontotal = {{section}{\S}},
+ sectiontotals = {{sections}{\S\S}},
+ paragraphtotal = {{paragraph}{par\adddot}},
+ paragraphtotals = {{paragraphs}{par\adddot}},
+ in = {{in}{in}},
+ inseries = {{in}{in}},
+ ofseries = {{of}{of}},
+ number = {{number}{no\adddot}},
+ chapter = {{chapter}{chap\adddot}},
+ bathesis = {{Bachelor's thesis}{BA\addabbrvspace thesis}},
+ mathesis = {{Master's thesis}{MA\addabbrvspace thesis}},
+ phdthesis = {{PhD\addabbrvspace thesis}{PhD\addabbrvspace thesis}},
+ candthesis = {{Candidate thesis}{Cand\adddotspace thesis}},
+ resreport = {{research report}{research rep\adddot}},
+ techreport = {{technical report}{tech\adddotspace rep\adddot}},
+ software = {{computer software}{comp\adddotspace software}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{version}{version}},
+ url = {{address}{address}},
+ urlfrom = {{available from}{available from}},
+ urlseen = {{visited on}{visited on}},
+ inpreparation = {{in preparation}{in preparation}},
+ submitted = {{submitted}{submitted}},
+ forthcoming = {{forthcoming}{forthcoming}},
+ inpress = {{in press}{in press}},
+ prepublished = {{pre-published}{pre-published}},
+ citedas = {{henceforth cited as}{henceforth cited as}},
+ thiscite = {{especially}{esp\adddot}},
+ seenote = {{see note}{see n\adddot}},
+ quotedin = {{quoted in}{qtd\adddotspace in}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{see}{see}},
+ seealso = {{see also}{see also}},
+ backrefpage = {{cited on page}{cit\adddotspace on p\adddot}},
+ backrefpages = {{cited on pages}{cit\adddotspace on pp\adddot}},
+ january = {{January}{Jan\adddot}},
+ february = {{February}{Feb\adddot}},
+ march = {{March}{Mar\adddot}},
+ april = {{April}{Apr\adddot}},
+ may = {{May}{May}},
+ june = {{June}{June}},
+ july = {{July}{July}},
+ august = {{August}{Aug\adddot}},
+ september = {{September}{Sept\adddot}},
+ october = {{October}{Oct\adddot}},
+ november = {{November}{Nov\adddot}},
+ december = {{December}{Dec\adddot}},
+ langamerican = {{American}{American}},
+ langbrazilian = {{Brazilian}{Brazilian}},
+ langbulgarian = {{Bulgarian}{Bulgarian}},
+ langcatalan = {{Catalan}{Catalan}},
+ langcroatian = {{Croatian}{Croatian}},
+ langczech = {{Czech}{Czech}},
+ langdanish = {{Danish}{Danish}},
+ langdutch = {{Dutch}{Dutch}},
+ langenglish = {{English}{English}},
+ langestonian = {{Estonian}{Estonian}},
+ langfinnish = {{Finnish}{Finnish}},
+ langfrench = {{French}{French}},
+ langgalician = {{Galician}{Galician}},
+ langgerman = {{German}{German}},
+ langgreek = {{Greek}{Greek}},
+ langhungarian = {{Hungarian}{Hungarian}},
+ langitalian = {{Italian}{Italian}},
+ langjapanese = {{Japanese}{Japanese}},
+ langlatin = {{Latin}{Latin}},
+ langlatvian = {{Latvian}{Latvian}},
+ langnorwegian = {{Norwegian}{Norwegian}},
+ langpolish = {{Polish}{Polish}},
+ langportuguese = {{Portuguese}{Portuguese}},
+ langrussian = {{Russian}{Russian}},
+ langslovak = {{Slovak}{Slovak}},
+ langslovene = {{Slovene}{Slovene}},
+ langspanish = {{Spanish}{Spanish}},
+ langswedish = {{Swedish}{Swedish}},
+ langukrainian = {{Ukrainian}{Ukrainian}},
+ fromamerican = {{from the American}{from the American}},
+ frombrazilian = {{from the Brazilian}{from the Brazilian}},
+ frombulgarian = {{from the Bulgarian}{from the Bulgarian}},
+ fromcatalan = {{from the Catalan}{from the Catalan}},
+ fromcroatian = {{from the Croatian}{from the Croatian}},
+ fromczech = {{from the Czech}{from the Czech}},
+ fromdanish = {{from the Danish}{from the Danish}},
+ fromdutch = {{from the Dutch}{from the Dutch}},
+ fromenglish = {{from the English}{from the English}},
+ fromestonian = {{from the Estonian}{from the Estonian}},
+ fromfinnish = {{from the Finnish}{from the Finnish}},
+ fromfrench = {{from the French}{from the French}},
+ fromgalician = {{from the Galician}{from the Galician}},
+ fromgerman = {{from the German}{from the German}},
+ fromgreek = {{from the Greek}{from the Greek}},
+ fromhungarian = {{from the Hungarian}{from the Hungarian}},
+ fromitalian = {{from the Italian}{from the Italian}},
+ fromjapanese = {{from the Japanese}{from the Japanese}},
+ fromlatin = {{from the Latin}{from the Latin}},
+ fromlatvian = {{from the Latvian}{from the Latvian}},
+ fromnorwegian = {{from the Norwegian}{from the Norwegian}},
+ frompolish = {{from the Polish}{from the Polish}},
+ fromportuguese = {{from the Portuguese}{from the Portuguese}},
+ fromrussian = {{from the Russian}{from the Russian}},
+ fromslovak = {{from the Slovak}{from the Slovak}},
+ fromslovene = {{from the Slovene}{from the Slovene}},
+ fromspanish = {{from the Spanish}{from the Spanish}},
+ fromswedish = {{from the Swedish}{from the Swedish}},
+ fromukrainian = {{from the Ukrainian}{from the Ukrainian}},
+ countryde = {{Germany}{DE}},
+ countryeu = {{European Union}{EU}},
+ countryep = {{European Union}{EP}},
+ countryfr = {{France}{FR}},
+ countryuk = {{United Kingdom}{GB}},
+ countryus = {{United States of America}{US}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{German patent}{German pat\adddot}},
+ patenteu = {{European patent}{European pat\adddot}},
+ patentfr = {{French patent}{French pat\adddot}},
+ patentuk = {{British patent}{British pat\adddot}},
+ patentus = {{U.S\adddotspace patent}{U.S\adddotspace pat\adddot}},
+ patreq = {{patent request}{pat\adddot\ req\adddot}},
+ patreqde = {{German patent request}{German pat\adddot\ req\adddot}},
+ patreqeu = {{European patent request}{European pat\adddot\ req\adddot}},
+ patreqfr = {{French patent request}{French pat\adddot\ req\adddot}},
+ patrequk = {{British patent request}{British pat\adddot\ req\adddot}},
+ patrequs = {{U.S\adddotspace patent request}{U.S\adddotspace pat\adddot\ req\adddot}},
+ file = {{file}{file}},
+ library = {{library}{library}},
+ abstract = {{abstract}{abstract}},
+ annotation = {{annotations}{annotations}},
+ commonera = {{Common Era}{CE}},
+ beforecommonera = {{Before Common Era}{BCE}},
+ annodomini = {{Anno Domini}{AD}},
+ beforechrist = {{Before Christ}{BC}},
+ circa = {{circa}{ca\adddot}},
+ spring = {{Spring}{Spr\adddot}},
+ summer = {{Summer}{Sum\adddot}},
+ autumn = {{Autumn}{Aut\adddot}},
+ winter = {{Winter}{Win\adddot}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\protected\gdef\lbx@us@mkdaterangetrunc@long#1#2{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefull{#1}{#2}}
+ {\lbx@us@mkdaterangetrunc@long@i{#1}{#2}}}
+
+\protected\gdef\lbx@us@mkdaterangetrunc@long@i#1#2{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \dateeraprint{#2year}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \dateeraprint{#2year}}}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\ifdateyearsequal{#2}{#2end}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\protected\gdef\lbx@us@mkdaterangetrunc@short#1#2{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefull{#1}{#2}}
+ {\lbx@us@mkdaterangetrunc@short@i{#1}{#2}}}
+
+\protected\gdef\lbx@us@mkdaterangetrunc@short@i#1#2{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \dateeraprint{#2year}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \dateeraprint{#2year}}}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\protected\gdef\lbx@us@mkdaterangetruncextra@long#1#2{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefullextra{#1}{#2}}
+ {\lbx@us@mkdaterangetruncextra@long@i{#1}{#2}}}
+
+\protected\gdef\lbx@us@mkdaterangetruncextra@long#1#2{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \dateeraprint{#2year}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \dateeraprint{#2year}}}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {\printfield{extradate}}
+ {\iffieldequalstr{#2endyear}{}
+ {\printfield{extradate}%
+ \mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\ifdateyearsequal{#2}{#2end}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \printfield{extradate}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\protected\gdef\lbx@us@mkdaterangetruncextra@short#1#2{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefullextra{#1}{#2}}
+ {\lbx@us@mkdaterangetruncextra@short@i{#1}{#2}}}
+
+\protected\gdef\lbx@us@mkdaterangetruncextra@short#1#2{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \dateeraprint{#2year}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \dateeraprint{#2year}}}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {\printfield{extradate}}
+ {\iffieldequalstr{#2endyear}{}
+ {\printfield{extradate}%
+ \mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \printfield{extradate}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/estonian.lbx b/macros/latex/contrib/biblatex/latex/lbx/estonian.lbx
new file mode 100644
index 0000000000..2b0b32f115
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/estonian.lbx
@@ -0,0 +1,560 @@
+\ProvidesFile{estonian.lbx}
+[\abx@lbxid]
+
+% First attempt at Estonian using Finnish.lbx, Bing translator and a dictionary
+% Translator's notes:
+% Some translations look akward but they are made in such a way
+% that they look as good as possible in running text.
+% Source for some items in translations: Kielikello 3/1998.
+% and Liisa Junno: Kirjastosanasto 1. BTJ Kirjastopalvelu 2006.
+
+\DeclareRedundantLanguages{estonian}{estonian}
+
+
+\DeclareBibliographyExtras{%
+ % dashes: may be either \textendash or \textemdash
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\protected\def\bibdaterangesep{\addnbspace\textendash\space}%
+ \mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}\adddot}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\lbx@lfromlang
+ \savecommand\lbx@sfromlang
+ \def\lbx@lfromlang{%
+ \iflistundef{origlanguage}
+ {}
+ {\printlist[lfromoriglanguage]{origlanguage}\space}}%
+ \def\lbx@sfromlang{%
+ \iflistundef{origlanguage}
+ {}
+ {\printlist[sfromoriglanguage]{origlanguage}\space}}%
+ \savebibmacro{in:}%
+ \renewbibmacro{in:}{%
+ \iffieldequalstr{entrytype}{article}
+ {}
+ {\printtext{\bibstring{in}\intitlepunct}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\lbx@lfromlang
+ \restorecommand\lbx@sfromlang
+ \restorebibmacro{in:}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{bibliograafia}{bibliograafia}},
+ references = {{viited}{viited}},
+ shorthands = {{l\"{u}hendid}{l\"{u}hendid}},
+ editor = {{toimetaja}{toim\adddot}},
+ editors = {{toimetajad}{toim\adddot}},
+ compiler = {{koostaja}{koost\adddot}},
+ compilers = {{koostajad}{koost\adddot}},
+ redactor = {{toimetaja}{toim\adddot}},
+ redactors = {{toimetajad}{toim\adddot}},
+ reviser = {{toimetaja}{toim\adddot}},
+ revisers = {{toimetajad}{toim\adddot}},
+ founder = {{asutaja}{asutaja}},
+ founders = {{asutajad}{asutajad}},
+ continuator = {{j\"{a}tkaja}{j\"{a}tkaja}},
+ continuators = {{j\"{a}tkajad}{j\"{a}tkajad}},
+ collaborator = {{kaast\"{o}\"{o}line}{kaast\adddot}},
+ collaborators = {{kaast\"{o}\"{o}lised}{kaast\adddot}},
+ translator = {{t\~{o}lkija}{t\~{o}lk\adddot}},
+ translators = {{t\~{o}lkijad}{t\~{o}lk\adddot}},
+ commentator = {{kommenteerija}{kommenteerija}},
+ commentators = {{kommenteerijad}{kommenteerijad}},
+ annotator = {{kommenteerija}{kommenteerija}},
+ annotators = {{kommenteerijad}{kommenteerijad}},
+ commentary = {{kommentaarid}{kommentaarid}},
+ annotations = {{kommentaarid}{kommentaarid}},
+ introduction = {{sissejuhatus}{sissejuhatus}},
+ foreword = {{eess\~{o}na autor}{eess\~{o}na}},
+ afterword = {{j\"{a}rels\~{o}na autor}{j\"{a}rels\~{o}na}},
+ editortr = {{toimetaja ja t\~{o}lkija}%
+ {toim\adddotspace ja t\~{o}lk\adddot}},
+ editorstr = {{toimetajad ja t\~{o}lkijad}%
+ {toim\adddotspace ja t\~{o}lk\adddot}},
+ editorco = {{toimetaja ja kommenteerija}%
+ {toimetaja ja kommenteerija}},
+ editorsco = {{toimetajad ja kommenteerijad}%
+ {toimetajad ja kommenteerijad}},
+ editoran = {{toimetaja ja kommenteerija}%
+ {toimetaja ja kommenteerija}},
+ editorsan = {{toimetajad ja kommenteerijad}%
+ {toimetajad ja kommenteerijad}},
+ editorin = {{toimetaja ja sissejuhatus}%
+ {toimetaja ja sissejuhatus}},
+ editorsin = {{toimetajad ja sissejuhatus}%
+ {toimetajad ja sissejuhatus}},
+ editorfo = {{toimetaja ja eess\~{o}na}%
+ {toimetaja ja eess\~{o}na}},
+ editorsfo = {{toimetajad ja eess\~{o}na}%
+ {toimetajad ja eess\~{o}na}},
+ editoraf = {{toimetaja ja j\"{a}rels\~{o}na}%
+ {toimetaja ja j\"{a}rels\~{o}na}},
+ editorsaf = {{toimetajad ja j\"{a}rels\~{o}na}%
+ {toimetajad ja j\"{a}rels\~{o}na}},
+ editortrco = {{toimetaja, t\~{o}lkija ja kommenteerija} %
+ {toim., t\~{o}lk\adddotspace ja komm\adddot}},
+ editorstrco = {{toimetajad, t\~{o}lkijad ja kommenteerijad} %
+ {toim., t\~{o}lk\adddotspace ja komm\adddot}},
+ editortran = {{toimetaja, t\~{o}lkija ja kommenteerija} %
+ {toim., t\~{o}lk\adddotspace ja annot\adddot}},
+ editorstran = {{toimetajad, t\~{o}lkijad ja kommenteerijad} %
+ {toim., t\~{o}lk\adddotspace ja annot\adddot}},
+ editortrin = {{toimetaja, t\~{o}lkija ja sissejuhatus} %
+ {toim., t\~{o}lk\adddotspace ja sissej\adddot}},
+ editorstrin = {{toimetajad, t\~{o}lkijad ja sissejuhatus} %
+ {toim., t\~{o}lk\adddotspace ja sissej\adddot}},
+ editortrfo = {{toimetaja, t\~{o}lkija ja eess\~{o}na} %
+ {toim., t\~{o}lk\adddotspace ja eess\adddot}},
+ editorstrfo = {{toimetajad, t\~{o}lkijad ja eess\~{o}na} %
+ {toim., t\~{o}lk\adddotspace ja forew\adddot}},
+ editortraf = {{toimetaja, t\~{o}lkija ja j\"{a}rels\~{o}na} %
+ {toim., t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+ editorstraf = {{toimetajad, t\~{o}lkijad ja j\"{a}rels} %
+ {toim., t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+ editorcoin = {{toimetaja, kommenteerija ja sissejuhatus} %
+ {toim., komm\adddotspace ja sissej\adddot}},
+ editorscoin = {{toimetajad, kommenteerijad ja sissejuhatus} %
+ {toim., komm\adddotspace ja sissej\adddot}},
+ editorcofo = {{toimetaja, kommenteerija ja eess\~{o}na} %
+ {toim., komm\adddotspace ja forew\adddot}},
+ editorscofo = {{toimetajad, kommenteerija ja eess\~{o}na} %
+ {toim., komm\adddotspace ja eess\adddot}},
+ editorcoaf = {{toimetaja, kommenteerija ja j\"{a}rels\~{o}na} %
+ {toim., komm\adddotspace ja j\"{a}rels\adddot}},
+ editorscoaf = {{toimetajad, kommenteerijad ja j\"{a}rels\~{o}na} %
+ {toim., komm\adddotspace ja j\"{a}rels\adddot}},
+ editoranin = {{toimetaja, kommenteerija ja sissejuhatus} %
+ {toim., annot\adddotspace ja sissej\adddot}},
+ editorsanin = {{toimetajad, kommenteerijad ja sissejuhatus} %
+ {toim., annot\adddotspace ja sissej\adddot}},
+ editoranfo = {{toimetaja, annoteerja ja eess\~{o}na} %
+ {toim., annot\adddotspace ja eess\adddot}},
+ editorsanfo = {{toimetajad, kommenteerijad ja eess\~{o}na} %
+ {toim., annot\adddotspace ja eess\adddot}},
+ editoranaf = {{toimetaja, kommenteerija ja j\"{a}rels\~{o}na} %
+ {toim., annot\adddotspace ja j\"{a}rels\adddot}},
+ editorsanaf = {{toimetajad, kommenteerijad ja j\"{a}rels\~{o}na} %
+ {toim., annot\adddotspace ja j\"{a}rels\adddot}},
+ editortrcoin = {{toimetaja, t\~{o}lkija, kommenteerija ja sissejuhatus} %
+ {toim., t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+ editorstrcoin = {{toimetajad, t\~{o}lkijad, kommenteerijad ja sissejuhatus} %
+ {toim., t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+ editortrcofo = {{toimetaja, t\~{o}lkija, kommenteerija ja eess\~{o}na} %
+ {toim., t\~{o}lk., komm\adddotspace ja eess\adddot}},
+ editorstrcofo = {{toimetajad, t\~{o}lkijad, kommenteerijad ja eess\~{o}na} %
+ {toim., t\~{o}lk., komm\adddotspace ja eess\adddot}},
+ editortrcoaf = {{toimetaja, t\~{o}lkija, kommentator ja j\"{a}rels\~{o}na} %
+ {toim., t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+ editorstrcoaf = {{toimetajad, t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} %
+ {toim., t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+ editortranin = {{toimetaja, t\~{o}lkija, kommenteerija ja sissejuhatus} %
+ {toim., t\~{o}lk., annot\adddotspace ja sissej\adddot}},
+ editorstranin = {{toimetajad, t\~{o}lkijad, kommenteerijad ja sissejuhatus} %
+ {toim., t\~{o}lk., annot\adddotspace ja sissej\adddot}},
+ editortranfo = {{toimetaja, t\~{o}lkija, kommenteerija ja eess\~{o}na} %
+ {toim., t\~{o}lk., annot\adddotspace ja eess\adddot}},
+ editorstranfo = {{toimetajad, t\~{o}lkijad, kommenteerijad ja eess\~{o}na} %
+ {toim., t\~{o}lk., annot\adddotspace ja eess\adddot}},
+ editortranaf = {{toimetaja, t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} %
+ {toim., t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}},
+ editorstranaf = {{toimetajad, t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} %
+ {toim., t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}},
+ translatorco = {{t\~{o}lkija ja kommenteerija} %
+ {t\~{o}lk\adddotspace ja komm\adddot}},
+ translatorsco = {{t\~{o}lkijad ja kommenteerijad} %
+ {t\~{o}lk\adddotspace ja komm\adddot}},
+ translatoran = {{t\~{o}lkija ja kommenteerija} %
+ {t\~{o}lk\adddotspace ja annot\adddot}},
+ translatorsan = {{t\~{o}lkijad ja kommenteerijad} %
+ {t\~{o}lk\adddotspace ja annot\adddot}},
+ translatorin = {{t\~{o}lkija ja sissejuhatus} %
+ {t\~{o}lk\adddotspace ja sissej\adddot}},
+ translatorsin = {{t\~{o}lkijad ja sissejuhatus} %
+ {t\~{o}lk\adddotspace ja sissej\adddot}},
+ translatorfo = {{t\~{o}lkija ja eess\~{o}na} %
+ {t\~{o}lk\adddotspace ja eess\adddot}},
+ translatorsfo = {{t\~{o}lkijad ja eess\~{o}na} %
+ {t\~{o}lk\adddotspace ja eess\adddot}},
+ translatoraf = {{t\~{o}lkija ja j\"{a}rels\~{o}na} %
+ {t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+ translatorsaf = {{t\~{o}lkijad ja j\"{a}rels\~{o}na} %
+ {t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+ translatorcoin = {{t\~{o}lkija, kommenteerija ja sissejuhatus} %
+ {t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+ translatorscoin = {{t\~{o}lkijad, kommenteerijad ja sissejuhatus} %
+ {t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+ translatorcofo = {{t\~{o}lkija, kommenteerija ja eess\~{o}na} %
+ {t\~{o}lk., komm\adddotspace ja eess\adddot}},
+ translatorscofo = {{t\~{o}lkijad, kommenteerijad ja eess\~{o}na} %
+ {t\~{o}lk., komm\adddotspace ja eess\adddot}},
+ translatorcoaf = {{t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} %
+ {t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+ translatorscoaf = {{t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} %
+ {t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+ translatoranin = {{t\~{o}lkija, kommenteerija ja sissejuhatus} %
+ {t\~{o}lk., annot\adddotspace ja sissej\adddot}},
+ translatorsanin = {{t\~{o}lkijad, kommenteerijad ja sissejuhatus} %
+ {t\~{o}lk., annot\adddotspace ja sissej\adddot}},
+ translatoranfo = {{t\~{o}lkija, kommenteerija ja eess\~{o}na} %
+ {t\~{o}lk., annot\adddotspace ja eess\adddot}},
+ translatorsanfo = {{t\~{o}lkijad, kommenteerijad ja eess\~{o}na} %
+ {t\~{o}lk., annot\adddotspace ja eess\adddot}},
+ translatoranaf = {{t\~{o}lkija, kommenteerija ja j\"{a}rels\~{o}na} %
+ {t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}},
+ translatorsanaf = {{t\~{o}lkijad, kommenteerijad ja j\"{a}rels\~{o}na} %
+ {t\~{o}lk., annot\adddotspace ja j\"{a}rels\adddot}},
+ organizer = {{korraldaja}{korraldaja}},
+ organizers = {{korraldajad}{korraldajad}},
+ byorganizer = {{korraldanud}{korraldanud}},
+ byauthor = {{kirjutanud}{kirj\adddot}},
+ byeditor = {{toimetanud}{toim\adddot}},
+ bycompiler = {{koostanud}{koost\adddot}},
+ byredactor = {{toimetanud}{toim\adddot}},
+ byreviser = {{l\"{a}bivaadanud}{l\"{a}bivaadanud}},
+ byreviewer = {{vaadanud}{vaadanud}},
+ byfounder = {{asutanud}{asutanud}},
+ bycontinuator = {{j\"{a}tkanud}{j\"{a}tkanud}},
+ bycollaborator = {{koost\"{o}\"{o}s}{koost\"{o}\"{o}s}},
+ bytranslator = {{\lbx@lfromlang t\~{o}lkinud}{\lbx@sfromlang t\~{o}lk\adddotspace}},
+ bycommentator = {{kommenteerinud}{kommenteerinud}},
+ byannotator = {{kommenteerinud}{kommenteerinud}},% FIXME: unsure
+ withcommentator = {{koos kommentaaridega}{koos kommentaaridega}},% FIXME: commentator name should be in the middle
+ withannotator = {{koos kommentaaridega}{koos kommentaaridega}},
+ withintroduction = {{koos tutvustusega}{koos tutvustusega}},% FIXME: unsure
+ withforeword = {{koos eess\~{o}naga}{koos eess\adddot}},
+ withafterword = {{koos j\"{a}rels\~{o}naga}{koos j\"{a}rels\adddot}},
+ byeditortr = {{toimetanud ja \lbx@lfromlang t\~{o}lkinud} %
+ {toim\adddotspace ja \lbx@sfromlang t\~{o}lk\adddot}},
+ byeditorco = {{toimetanud ja kommenteerinud} %
+ {toim\adddotspace ja komment\adddot}},
+ byeditoran = {{toimetanud ja kommenteerinud} %
+ {toim\adddotspace ja komment\adddot}},
+ byeditorin = {{toimetanud ja sissejuhatuse kirjutanud} %
+ {toim\adddotspace ja sissej\adddot}},
+ byeditorfo = {{toimetanud ja eess\~{o}na kirjutanud} %
+ {toim\adddotspace ja eess\adddot}},
+ byeditoraf = {{toimetanud ja j\"{a}rels\~{o}na kirjutanud} %
+ {toim\adddotspace ja j\"{a}rels\adddot}},
+ byeditortrco = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja kommenteerinud} %
+ {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja komm\adddot}},
+ byeditortran = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja kommenteerinud} %
+ {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja komment\adddot}},
+ byeditortrin = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja sissejuhatuse kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja sissej\adddot}},
+ byeditortrfo = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja eess\~{o}na kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja eess\adddot}},
+ byeditortraf = {{toimetanud, \lbx@lfromlang t\~{o}lkinud ja j\"{a}rels\~{o}na kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+ byeditorcoin = {{toimetanud, kommenteerinud ja sissejuhatuse kirjutanud} %
+ {toim., komm\adddotspace ja sissej\adddot}},
+ byeditorcofo = {{toimetanud, kommenteerinud ja eess\~{o}na kirjutanud} %
+ {toim., komm\adddotspace ja eess\adddot}},
+ byeditorcoaf = {{toimetanud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+ {toim., komm\adddotspace ja j\"{a}rels\adddot}},
+ byeditoranin = {{toimetanud, kommenteerinud ja sissejuhatuse kirjutanud} %
+ {toim., komment\adddotspace ja sissej\adddot}},
+ byeditoranfo = {{toimetanud, kommenteerinud ja eess\~{o}na kirjutanud} %
+ {toim., komment\adddotspace ja eess\adddot}},
+ byeditoranaf = {{toimetanud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+ {toim., komment\adddotspace ja j\"{a}rels\adddot}},
+ byeditortrcoin = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+ byeditortrcofo = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk., komm\adddotspace ja eess\adddot}},
+ byeditortrcoaf = {{toimetatud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+ byeditortranin = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk., komment\adddotspace ja sissej\adddot}},
+ byeditortranfo = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk., komment\adddotspace ja eess\adddot}},
+ byeditortranaf = {{toimetanud, \lbx@lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+ {toim., \lbx@sfromlang t\~{o}lk., komment\adddotspace ja j\"{a}rels\adddot}},
+ bytranslatorco = {{\lbx@lfromlang t\~{o}lkinud ja kommenteerinud} %
+ {\lbx@sfromlang t\~{o}lk\adddotspace ja komm\adddot}},
+ bytranslatoran = {{\lbx@lfromlang t\~{o}lkinud ja kommenteerinud} %
+ {\lbx@sfromlang t\~{o}lk\adddotspace ja komment\adddot}},
+ bytranslatorin = {{\lbx@lfromlang t\~{o}lkinud ja sissejuhatuse kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk\adddotspace ja sissej\adddot}},
+ bytranslatorfo = {{\lbx@lfromlang t\~{o}lkinud ja eess\~{o}na kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk\adddotspace ja eess\adddot}},
+ bytranslatoraf = {{\lbx@lfromlang t\~{o}lkinud ja j\"{a}rels\~{o}na kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk\adddotspace ja j\"{a}rels\adddot}},
+ bytranslatorcoin = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk., komm\adddotspace ja sissej\adddot}},
+ bytranslatorcofo = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk., komm\adddotspace ja eess\adddot}},
+ bytranslatorcoaf = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk., komm\adddotspace ja j\"{a}rels\adddot}},
+ bytranslatoranin = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja sissejuhatuse kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk., komment\adddotspace ja sissej\adddot}},
+ bytranslatoranfo = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja eess\~{o}na kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk., komment\adddotspace ja eess\adddot}},
+ bytranslatoranaf = {{\lbx@lfromlang t\~{o}lkinud, kommenteerinud ja j\"{a}rels\~{o}na kirjutanud} %
+ {\lbx@sfromlang t\~{o}lk., komment\adddotspace ja j\"{a}rels\adddot}},
+ and = {{ja}{ja}},
+ andothers = {{\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}} %
+ {\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}}},
+ andmore = {{\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}} %
+ {\mkbibemph{\autocap{e}t\addabbrvspace al\adddot}}},
+ volume = {{k\"{o}ide}{k\"{o}ide}},
+ volumes = {{k\"{o}ited}{k\"{o}ited}},
+ involumes = {{osas}{osas}},
+ jourvol = {{k\"{o}ide}{k\"{o}ide}},
+ jourser = {{seeria}{seeria}},
+ book = {{raamat}{raamat}},
+ part = {{osa}{osa}},
+ issue = {{number}{nr\adddot}},
+ newseries = {{uus seerias}{uus seer\adddot}},
+ oldseries = {{vana seeria}{vana seer\adddot}},
+ edition = {{v\"{a}ljaanne}{v\"{a}ljaanne}},
+ reprint = {{kordustr\"{u}kk}{kordustr\"{u}kk}},
+ reprintof = {{kordustr\"{u}kk teosest}{kordustr\"{u}kk teosest}},
+ reprintas = {{kordustr\"{u}kitud kui}{kordustr\"{u}kitud kui}},
+ reprintfrom = {{kordustr\"{u}kitud teosest}{kordustr\"{u}kitud teosest}},
+ reviewof = {{arvustus teosest}{arvustus teosest}},
+ translationof = {{t\~{o}lge}{t\~{o}lge}},
+ translationas = {{t\~{o}lgitud kui}{t\~{o}lgitud kui}},
+ translationfrom = {{t\~{o}lgitud}{t\~{o}lgitud}},
+ origpubas = {{algselt avaldatud kui}{algselt avaldatud kui}}, % FIXME: unsure, could also be 'esmatrükitud kui'
+ origpubin = {{algselt avaldatud aastal}{algselt avaldatud aastal}}, % FIXME: unsure, could also be 'esmatrükitud aastal'
+ astitle = {{pealkirjaga}{pealkirjaga}},
+ bypublisher = {{v\"{a}lja andnud}{v\"{a}lja andnud}},
+ page = {{lehek\"{u}lg}{lk\adddot}},
+ pages = {{lehek\"{u}ljed}{lk\adddot}},
+ column = {{veerg}{veerg}},
+ columns = {{veerud}{veerud}},
+ line = {{rida}{rida}},
+ lines = {{read}{read}},
+ nodate = {{kuup\"{a}ev puudub}{kuup\"{a}ev puudub}},
+ verse = {{salm}{salm}},
+ verses = {{salmid}{salmid}},
+ section = {{jagu}{jagu}},
+ sections = {{jaod}{jaod}},
+ paragraph = {{l\~{o}ik}{l\~{o}ik}},
+ paragraphs = {{l\~{o}igud}{l\~{o}igud}},
+ pagetotal = {{lehek\"{u}lgi kokku}{lk\adddotspace kokku}},% FIXME: unsure
+ pagetotals = {{lehek\"{u}lgesid kokku}{lk\adddotspace kokku}},% FIXME: unsure
+ columntotal = {{veerge kokku}{veerge kokku}},% FIXME: unsure
+ columntotals = {{veergusid kokku}{veergusid kokku}},% FIXME: unsure
+ linetotal = {{ridu kokku}{ridu kokku}},% FIXME: unsure
+ linetotals = {{ridasid kokku}{ridasid kokku}},% FIXME: unsure
+ versetotal = {{salmi kokku}{salmi kokku}},% FIXME: unsure
+ versetotals = {{salmesid kokku}{salmesid kokku}},% FIXME: unsure
+ sectiontotal = {{jagusid kokku}{jagusid kokku}},% FIXME: unsure
+ sectiontotals = {{jagusid kokku}{jagusid kokku}},% FIXME: unsure
+ paragraphtotal = {{l\~{o}ike kokku}{l\~{o}ike kokku}},% FIXME: unsure
+ paragraphtotals = {{l\~{o}ikusid kokku}{l\~{o}ikusid kokku}},% FIXME: unsure
+ in = {{teoses}{teoses}},
+ inseries = {{sarjas}{sarjas}},
+ ofseries = {{sarjast}{sarjast}},
+ number = {{number}{nr}},
+ chapter = {{peat\"{u}kk}{ptk}},
+ bathesis = {{bakalaureuse t\"{o}\"{o}}{bakalaureuse t\"{o}\"{o}}},
+ mathesis = {{magistrit\"{o}\"{o}}{magistrit\"{o}\"{o}}},
+ phdthesis = {{doktorit\"{o}\"{o}}{doktorit\"{o}\"{o}}},
+ candthesis = {{kandidaadi v\"{a}itekiri}{kandidaadi v\"{a}itekiri}},% Literal translation of "Candidate thesis".
+ resreport = {{uuringuraport}{uuringuraport}},
+ techreport = {{tehniline raport}{tehniline raport}},
+ software = {{tarkvara}{tarkvara}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audioplaat}{audioplaat}},
+ version = {{versioon}{versioon}},
+ url = {{aadress}{aadress}},
+ urlfrom = {{saadaval}{saadaval}},
+ urlseen = {{vaadatud}{vaadatud}},
+ inpreparation = {{koostamisel}{koostamisel}},
+ submitted = {{esitatud}{esitatud}},
+ forthcoming = {{tulevases}{tulevases}},
+ inpress = {{tr\"{u}kis}{tr\"{u}kis}},
+ prepublished = {{eelnevalt avaldatud} {eelnevalt avaldatud}},
+ citedas = {{edaspidi viidatud kui}{edaspidi viidatud kui}},
+ thiscite = {{eriti}{eriti}},
+ seenote = {{vaata m\"{a}rkus}{vt m\"{a}rkus}},
+ quotedin = {{noteeritud}{noteeritud}}, % FIXME: unsure
+ idem = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}}, % It its not necessary to translate Latin phrases.
+ idemsm = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}},
+ idemsf = {{\mkbibemph{\autocap{e}adem}}{\mkbibemph{\autocap{e}adem}}},
+ idemsn = {{\mkbibemph{\autocap{i}dem}}{\mkbibemph{\autocap{i}dem}}},
+ idempm = {{\mkbibemph{\autocap{e}idem}}{\mkbibemph{\autocap{e}idem}}},
+ idempf = {{\mkbibemph{\autocap{e}aedem}}{\mkbibemph{\autocap{e}aedem}}},
+ idempn = {{\mkbibemph{\autocap{e}adem}}{\mkbibemph{\autocap{e}adem}}},
+ idempp = {{\mkbibemph{\autocap{e}idem}}{\mkbibemph{\autocap{e}idem}}},
+ ibidem = {{\mkbibemph{\autocap{i}bidem}}{\mkbibemph{\autocap{i}bid\adddot}}},
+ opcit = {{\mkbibemph{\autocap{o}p\adddotspace cit\adddot}}{\mkbibemph{\autocap{o}p\adddotspace cit\adddot}}},
+ loccit = {{\mkbibemph{\autocap{l}oc\adddotspace cit\adddot}}{\mkbibemph{\autocap{l}oc\adddotspace cit\adddot}}},
+ confer = {{\mkbibemph{\autocap{c}f\adddot}}{\mkbibemph{\autocap{c}f\adddot}}},
+ sequens = {{\mkbibemph{\autocap{s}q\adddot}}{\mkbibemph{\autocap{s}q\adddot}}},
+ sequentes = {{\mkbibemph{\autocap{s}qq\adddot}}{\mkbibemph{\autocap{s}qq\adddot}}},
+ passim = {{\mkbibemph{\autocap{p}assim}}{\mkbibemph{\autocap{p}ass\adddot}}},
+ see = {{vaata}{vt}},
+ seealso = {{vaata ka}{vt ka}},
+ backrefpage = {{viidatud lehel}{viidatud lehel}},
+ backrefpages = {{viidatud lehek\"{u}ljed}{viidatud lehek\"{u}ljed}},
+ january = {{jaanuar}{jaanuar}},
+ february = {{veebruar}{veebruar}},
+ march = {{m\"{a}rts}{m\"{a}rts}},
+ april = {{aprill}{aprill}},
+ may = {{mai}{mai}},
+ june = {{juuni}{juuni}},
+ july = {{juuli}{juuli}},
+ august = {{august}{august}},
+ september = {{september}{september}},
+ october = {{oktoober}{oktoober}},
+ november = {{november}{november}},
+ december = {{detsember}{detsember}},
+ langamerican = {{Ameerika inglise keel}{Ameerika inglise keel}},
+ langbrazilian = {{brasiilia keel}{brasiilia keel}},
+ langbulgarian = {{bulgaaria keel}{bulgaaria keel}},
+ langcatalan = {{katalaani keel}{katalaani keel}},
+ langcroatian = {{horvaadi keel}{horvaadi keel}},
+ langczech = {{t\v{s}ehhi keel}{t\v{s}ehhi keel}},
+ langdanish = {{taani keel}{taani keel}},
+ langdutch = {{hollandi keel}{hollandi keel}},
+ langenglish = {{inglise keel}{inglise keel}},
+ langestonian = {{eesti keel}{eesti keel}},
+ langfinnish = {{soome keel}{soome keel}},
+ langfrench = {{prantsuse keel}{prantsuse keel}},
+ langgalician = {{galeegi keel}{galeegi keel}},
+ langgerman = {{saksa keel}{saksa keel}},
+ langgreek = {{kreeka keel}{kreeka keel}},
+ langhungarian = {{ungari keel}{ungari keel}},
+ langitalian = {{itaalia keel}{itaalia keel}},
+ langjapanese = {{jaapani keel}{jaapani keel}},
+ langlatin = {{ladina keel}{ladina keel}},
+ langlatvian = {{l\"{a}ti keel}{l\"{a}ti keel}},
+ langnorwegian = {{norra keel}{norra keel}},
+ langpolish = {{poola keel}{poola keel}},
+ langportuguese = {{portugali keel}{portugali keel}},
+ langrussian = {{vene keel}{vene keel}},
+ langslovak = {{slovakia keel}{slovakia keel}},
+ langslovene = {{sloveeni keel}{sloveeni keel}},
+ langspanish = {{hispaania keel}{hispaania keel}},
+ langswedish = {{rootsi keel}{rootsi keel}},
+ langukrainian = {{ukraina keel}{ukraina keel}},
+ fromamerican = {{Ameerika inglise keelest}{Ameerika inglise keelest}},
+ frombrazilian = {{brasiilia keelest}{brasiilia keelest}},
+ frombulgarian = {{bulgaaria keelest}{bulgaaria keelest}},
+ fromcatalan = {{katalani keelest}{kalatalani keelest}},
+ fromcroatian = {{horvaadi keelest}{horvaadi keelest}},
+ fromczech = {{t\v{s}ehhi keelest}{t\v{s}ehhi keelest}},
+ fromdanish = {{taani keelest}{taani keelest}},
+ fromdutch = {{hollandi keelest}{hollandi keelest}},
+ fromenglish = {{inglise keelest}{inglise keelest}},
+ fromestonian = {{eesti keelest}{eesti keelest}},
+ fromfinnish = {{soome keelest}{soome keelest}},
+ fromfrench = {{prantsuse keelest}{prantsuse keelest}},
+ fromgalician = {{galeegi keelest}{galeegi keelest}},
+ fromgerman = {{saksa keelest}{saksa keelest}},
+ fromgreek = {{kreeka keelest}{kreeka keelest}},
+ fromhungarian = {{ungari keelest}{ungari keelest}},
+ fromitalian = {{itaalia keelest}{itaalia keelest}},
+ fromjapanese = {{jaapani keelest}{jaapani keelest}},
+ fromlatin = {{ladina keelest}{ladina keelest}},
+ fromlatvian = {{l\"{a}ti keelest}{l\"{a}ti keelest}},
+ fromnorwegian = {{norra keelest}{norra keelest}},
+ frompolish = {{poola keelest} {poola keelest}},
+ fromportuguese = {{portugali keelest}{portugali keelest}},
+ fromrussian = {{vene keelest}{vene keelest}},
+ fromslovak = {{slovakia keelest}{slovakia keelest}},
+ fromslovene = {{sloveenia keelest}{sloveenia keelest}},
+ fromspanish = {{hispaania keelest}{hispaania keelest}},
+ fromswedish = {{rootsi keelest}{rootsi keelest}},
+ fromukrainian = {{ukraina keelest}{ukraina keelest}},
+ countryde = {{Saksamaa}{DE}},
+ countryeu = {{Euroopa Liit}{EL}},
+ countryep = {{Euroopa Parlament}{EP}},
+ countryfr = {{Prantsusmaa}{FR}},
+ countryuk = {{Suurbritannia}{GB}},
+ countryus = {{Ameerika}{US}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{Saksa patent}{Saksa pat\adddot}},
+ patenteu = {{Euroopa patent}{Euroopa pat\adddot}},
+ patentfr = {{Prantsuse patent}{Prantsuse pat\adddot}},
+ patentuk = {{Briti patent}{Briti pat\adddot}},
+ patentus = {{U.S\adddotspace patent}{U.S\adddotspace pat\adddot}},
+ patreq = {{patendi taotlus}{pat\adddotspace taotl\adddot}},
+ patreqde = {{Saksa patendi taotlus}{Saksa pat\adddotspace taotl\adddot}},
+ patreqeu = {{Euroopa patendi taotlus}{Euroopa pat\adddotspace taotl\adddot}},
+ patreqfr = {{Prantsuse patendi taotlus}{Prantsuse pat\adddotspace taotl\adddot}},
+ patrequk = {{Briti patendi taotlus}{Briti pat\adddotspace taotl\adddot}},
+ patrequs = {{U.S\adddotspace patendi taotlus.}{U.S\adddotspace pat\adddotspace taotl\adddot}},
+ file = {{fail}{fail}},
+ library = {{raamatukogu}{raamatukogu}},
+ abstract = {{teesid}{teesid}},
+ annotation = {{kommentaarid}{kommentaarid}},
+ commonera = {{meie ajaarvamise j\"argi}{m\adddot a\adddot j}},
+ beforecommonera = {{enne meie ajaarvamist}{e\adddot m\adddot a}},
+ annodomini = {{p\"arast Kristust}{pKr}},
+ beforechrist = {{enne Kristust}{eKr}},
+ circa = {{\mkbibemph{\autocap{c}a}}{\mkbibemph{\autocap{c}a}}},
+ spring = {{kevadel}{kevadel}},
+ summer = {{suvel}{suvel}},
+ autumn = {{s\"{u}gisel}{s\"{u}gisel}},
+ winter = {{talvel}{talvel}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/finnish.lbx b/macros/latex/contrib/biblatex/latex/lbx/finnish.lbx
new file mode 100644
index 0000000000..372b537d97
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/finnish.lbx
@@ -0,0 +1,603 @@
+\ProvidesFile{finnish.lbx}
+[\abx@lbxid]
+
+% Translator's notes:
+% Some translations look akward but they are made in such a way
+% that they look as good as possible in running text.
+% Source for some items in translations: Kielikello 3/1998.
+% and Liisa Junno: Kirjastosanasto 1. BTJ Kirjastopalvelu 2006.
+
+\DeclareRedundantLanguages{finnish}{finnish}
+
+\NewBibliographyString{%
+ basicjanuary,
+ basicfebruary,
+ basicmarch,
+ basicapril,
+ basicmay,
+ basicjune,
+ basicjuly,
+ basicaugust,
+ basicseptember,
+ basicoctober,
+ basicnovember,
+ basicdecember%
+}
+
+\DeclareBibliographyExtras{%
+ % dashes: may be either \textendash or \textemdash
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\iffieldundef{#3}
+ {\lbx@fi@mkbibmonthbasic{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot
+ \iffieldundef{#2}{}{\thinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldundef{#3}{/}{\adddot\thinspace}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\lbx@lfromlang
+ \savecommand\lbx@sfromlang
+ \def\lbx@lfromlang{%
+ \iflistundef{origlanguage}
+ {}
+ {\printlist[lfromoriglanguage]{origlanguage}\space}}%
+ \def\lbx@sfromlang{%
+ \iflistundef{origlanguage}
+ {}
+ {\printlist[sfromoriglanguage]{origlanguage}\space}}%
+ \savebibmacro{in:}%
+ \renewbibmacro{in:}{%
+ \iffieldequalstr{entrytype}{article}
+ {}
+ {\printtext{\bibstring{in}\intitlepunct}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\lbx@lfromlang
+ \restorecommand\lbx@sfromlang
+ \restorebibmacro{in:}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Kirjallisuusluettelo}{Kirjallisuus}},
+ references = {{Viitteet}{Viitteet}},
+ shorthands = {{Lyhenteet}{Lyhenteet}},
+ editor = {{toimittanut}{toim\adddot}},
+ editors = {{toimittaneet}{toim\adddot}},% Abbreviation is the same in singular and plural.
+ compiler = {{koontanut}{koontanut}},% FIXME: unsure
+ compilers = {{koontaneet}{koontaneet}},% FIXME: unsure
+ redactor = {{toimittanut}{toim\adddot}},% FIXME: unsure
+ redactors = {{toimittaneet}{toim\adddot}},% FIXME: unsure
+ reviser = {{toimittanut}{toim\adddot}},% FIXME: unsure
+ revisers = {{toimittaneet}{toim\adddot}},% FIXME: unsure
+ founder = {{perustaja}{perustaja}},
+ founders = {{perustajat}{perustajat}},
+ continuator = {{jatkaja}{jatkaja}},% FIXME: unsure
+ continuators = {{jatkajat}{jatkajat}},% FIXME: unsure
+ collaborator = {{avustaja}{avustaja}},% FIXME: unsure
+ collaborators = {{avustajat}{avustajat}},% FIXME: unsure
+ translator = {{k\"a\"ant\"anyt}{k\"a\"ant\adddot}},
+ translators = {{k\"a\"ant\"anyt}{k\"a\"ant\adddot}},
+ commentator = {{kommentaarin kirjoittanut}{kommentaarin kirjoittanut}},
+ commentators = {{kommentaarin kirjoittaneet}{kommentaarin kirjoittaneet}},
+ annotator = {{selityksin varustanut}{selityksin varustanut}},% FIXME: unsure
+ annotators = {{selityksin varustaneet}{selityksin varustaneet}},% FIXME: unsure
+ commentary = {{kommentaari}{kommentaari}},
+ annotations = {{selitykset}{selitykset}},% FIXME: unsure
+ introduction = {{johdanto}{johdanto}},
+ foreword = {{esipuhe}{esipuhe}},% Is "alkusanat" better?
+ afterword = {{j\"alkisanat}{j\"alkisanat}},
+ editortr = {{toimittanut ja k\"a\"ant\"anyt}%
+ {toim\adddotspace ja k\"a\"ant\adddot}},
+ editorstr = {{toimittaneet ja k\"a\"ant\"aneet}%
+ {toim\adddotspace ja k\"a\"ant\adddot}},
+ editorco = {{toimittanut ja kommentaarin kirjoittanut}%
+ {toimittanut ja kommentaarin kirjottanut}},
+ editorsco = {{toimittaneet ja kommentaarin kirjoittaneet}%
+ {toimittaneet ja kommentaarin kirjoittaneet}},
+ editoran = {{toimittanut ja selityksin varustanut}% FIXME: unsure
+ {toimittanut ja selityksin varustanut}},
+ editorsan = {{toimittaneet ja selityksin varustaneet}% FIXME: unsure
+ {toimittaneet ja selityksin varustaneet}},
+ editorin = {{toimittanut ja johdannon kirjoittanut}%
+ {toimittanut ja johdannon kirjoittanut}},
+ editorsin = {{toimittaneet ja johdannon kirjoittaneet}%
+ {toimittaneet ja johdannon kirjoittaneet}},
+ editorfo = {{toimittanut ja esipuheen kirjoittanut}%
+ {toimittanut ja esipuheen kirjoittanut}},
+ editorsfo = {{toimittaneet ja esipuheen kirjoittaneet}%
+ {toimittaneet ja esipuheen kirjoittaneet}},
+ editoraf = {{toimittanut ja j\"alkisanat kirjoittanut}%
+ {toimittanut ja j\"alkisanat kirjoittanut}},
+ editorsaf = {{toimittaneet ja j\"alkisanat kirjoittaneet}%
+ {toimittaneet ja j\"alkisanat kirjoittaneet}},
+ editortrco = {{toimittanut, k\"a\"ant\"anyt ja kommentaarin kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt ja kommentaarin kirjoittanut}},
+ editorstrco = {{toimittaneet, k\"a\"ant\"aneet ja kommentaarin kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet ja kommentaarin kirjoittaneet}},
+ editortran = {{toimittanut, k\"a\"ant\"anyt ja selityksin varustanut}% FIXME: unsure
+ {toimittanut, k\"a\"ant\"anyt ja selityksin varustanut}},
+ editorstran = {{toimittaneet, k\"a\"ant\"aneet ja selityksin varustaneet}% FIXME: unsure
+ {toimittaneet, k\"a\"ant\"aneet ja selityksin varustaneet}},
+ editortrin = {{toimittanut, k\"a\"ant\"anyt ja johdannon kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt ja johdannon kirjoittanut}},
+ editorstrin = {{toimittaneet, k\"a\"ant\"aneet ja johdannon kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet ja johdannon kirjoittaneet}},
+ editortrfo = {{toimittanut, k\"a\"ant\"anyt ja esipuheen kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt ja esipuheen kirjoittanut}},
+ editorstrfo = {{toimittaneet, k\"a\"ant\"aneet ja esipuheen kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet ja esipuheen kirjoittaneet}},
+ editortraf = {{toimittanut, k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}},
+ editorstraf = {{toimittaneet, k\"a\"ant\"aneet ja j\"alkisanat kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet ja j\"alkisanat kirjoittaneet}},
+ editorcoin = {{toimittanut, kommentaarin ja johdannon kirjoittanut}%
+ {toimittanut, kommentaarin ja johdannon kirjoittanut}},
+ editorscoin = {{toimittaneet, kommentaarin ja johdannon kirjoittaneet}%
+ {toimittaneet, kommentaarin ja johdannon kirjoittaneet}},
+ editorcofo = {{toimittanut, kommentaarin ja esipuheen kirjoittanut}%
+ {toimittanut, kommentaarin ja esipuheen kirjoittanut}},
+ editorscofo = {{toimittaneet, kommentaarin ja esipuheen kirjoittaneet}%
+ {toimittaneet, kommentaarin ja esipuheen kirjoittaneet}},
+ editorcoaf = {{toimittanut, kommentaarin ja j\"alkisanat kirjoittanut}%
+ {toimittanut, kommentaarin ja j\"alkisanat kirjoittanut}},
+ editorscoaf = {{toimittaneet, kommentaarin ja j\"alkisanat kirjoittaneet}%
+ {toimittaneet, kommentaarin ja j\"alkisanat kirjoittaneet}},
+ editoranin = {{toimittanut, selitykset ja johdannon kirjoittanut}%
+ {toimittanut, selitykset ja johdannon kirjoittanut}},
+ editorsanin = {{toimittaneet, selitykset ja johdannon kirjoittaneet}%
+ {toimittaneet, selitykset ja johdannon kirjoittaneet}},
+ editoranfo = {{toimittanut, selitykset ja esipuheen kirjoittanut}%
+ {toimittanut, selitykset ja esipuheen kirjoittanut}},
+ editorsanfo = {{toimittaneet, selitykset ja esipuheen kirjoittaneet}%
+ {toimittaneet, selitykset ja esipuheen kirjoittaneet}},
+ editoranaf = {{toimittanut, selitykset ja j\"alkisanat kirjoittanut}%
+ {toimittanut, selitykset ja j\"alkisanat kirjoittanut}},
+ editorsanaf = {{toimittaneet, selitykset ja j\"alkisanat kirjoittaneet}%
+ {toimittaneet, selitykset ja j\"alkisanat kirjoittaneet}},
+ editortrcoin = {{toimittanut, k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}},
+ editorstrcoin = {{toimittaneet, k\"a\"ant\"aneet, kommentaarin ja johdannon kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet, kommentaarin ja johdannon kirjoittaneet}},
+ editortrcofo = {{toimittanut, k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}},
+ editorstrcofo = {{toimittaneet, k\"a\"ant\"aneet, kommentaarin ja esipuheen kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet, kommentaarin ja esipuheen kirjoittaneet}},
+ editortrcoaf = {{toimittanut, k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}},
+ editorstrcoaf = {{toimittaneet, k\"a\"ant\"aneet, kommentaarin ja j\"alkisanat kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet, kommentaarin ja j\"alkisanat kirjoittaneet}},
+ editortranin = {{toimittanut, k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}},
+ editorstranin = {{toimittaneet, k\"a\"ant\"aneet, selitykset ja johdannon kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet, selitykset ja johdannon kirjoittaneet}},
+ editortranfo = {{toimittanut, k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}},
+ editorstranfo = {{toimittaneet, k\"a\"ant\"aneet, selitykset ja esipuheen kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet, selitykset ja esipuheen kirjoittaneet}},
+ editortranaf = {{toimittanut, k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}%
+ {toimittanut, k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}},
+ editorstranaf = {{toimittaneet, k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}%
+ {toimittaneet, k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}},
+ translatorco = {{k\"a\"ant\"anyt ja kommentaarin kirjoittanut}%
+ {k\"a\"ant\"anyt ja kommentaarin kirjoittanut}},
+ translatorsco = {{k\"a\"ant\"aneet ja kommentaarin kirjoittaneet}%
+ {k\"a\"ant\"aneet ja kommentaarin kirjoittaneet}},
+ translatoran = {{k\"a\"ant\"anyt ja selityksin varustanut}%
+ {k\"a\"ant\"anyt ja selityksin varustanut}},
+ translatorsan = {{k\"a\"ant\"aneet ja selityksin varustaneet}%
+ {k\"a\"ant\"aneet ja selityksin varustaneet}},
+ translatorin = {{k\"a\"ant\"anyt ja johdannon kirjoittanut}%
+ {k\"a\"ant\"anyt ja johdannon kirjoittanut}},
+ translatorsin = {{k\"a\"ant\"aneet ja johdannon kirjoittaneet}%
+ {k\"a\"ant\"aneet ja johdannon kirjoittaneet}},
+ translatorfo = {{k\"a\"ant\"anyt ja esipuheen kirjoittanut}%
+ {k\"a\"ant\"anyt ja esipuheen kirjoittanut}},
+ translatorsfo = {{k\"a\"ant\"aneet ja esipuheen kirjoittaneet}%
+ {k\"a\"ant\"aneet ja esipuheen kirjoittaneet}},
+ translatoraf = {{k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}%
+ {k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}},
+ translatorsaf = {{k\"a\"ant\"aneet ja j\"alkisanat kirjoittaneet}%
+ {k\"a\"ant\"aneet ja j\"alkisanat kirjoittaneet}},
+ translatorcoin = {{k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}%
+ {k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}},
+ translatorscoin = {{k\"a\"ant\"aneet, kommentaarin ja johdannon kirjoittaneet}%
+ {k\"a\"ant\"aneet, kommentaarin ja johdannon kirjoittaneet}},
+ translatorcofo = {{k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}%
+ {k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}},
+ translatorscofo = {{k\"a\"ant\"aneet, kommentaarin ja esipuheen kirjoittaneet}%
+ {k\"a\"ant\"aneet, kommentaarin ja esipuheen kirjoittaneet}},
+ translatorcoaf = {{k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}%
+ {k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}},
+ translatorscoaf = {{k\"a\"ant\"aneet, kommentaarin ja j\"alkisanat kirjoittaneet}%
+ {k\"a\"ant\"aneet, kommentaarin ja j\"alkisanat kirjoittaneet}},
+ translatoranin = {{k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}%
+ {k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}},
+ translatorsanin = {{k\"a\"ant\"aneet, selitykset ja johdannon kirjoittaneet}%
+ {k\"a\"ant\"aneet, selitykset ja johdannon kirjoittaneet}},
+ translatoranfo = {{k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}%
+ {k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}},
+ translatorsanfo = {{k\"a\"ant\"aneet, selitykset ja esipuheen kirjoittaneet}%
+ {k\"a\"ant\"aneet, selitykset ja esipuheen kirjoittaneet}},
+ translatoranaf = {{k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}%
+ {k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}},
+ translatorsanaf = {{k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}%
+ {k\"a\"ant\"aneet, selitykset ja j\"alkisanat kirjoittaneet}},
+ organizer = {{toimittanut}{toim\adddot}},% FIXME: unsure
+ organizers = {{toimittaneet}{toim\adddot}},% FIXME: unsure
+ byorganizer = {{toimittanut}{toim\adddot}},% FIXME: unsure
+ byauthor = {{kirjoittanut}{kirj\adddot}},
+ byeditor = {{toimittanut}{toim\adddot}},
+ bycompiler = {{koontanut}{koontanut}},
+ byredactor = {{toimittanut}{toim\adddot}},% FIXME: unsure
+ byreviser = {{toimittanut}{toim\adddot}},% FIXME: unsure
+ byreviewer = {{toimittanut}{toim\adddot}},% FIXME: unsure
+ byfounder = {{perustanut}{perustanut}},% FIXME: unsure
+ bycontinuator = {{jatkanut}{jatkanut}},% FIXME: unsure
+ bycollaborator = {{yhteisty\"oss\"a}{yhteisty\"oss\"a}},% FIXME: Bad translation. Impossible to translate with one word.
+ bytranslator = {{\lbx@lfromlang k\"a\"ant\"anyt}{\lbx@sfromlang k\"a\"ant\adddot}},
+ bycommentator = {{kommentaarin kirjoittanut}{kommentaarin kirjoittanut}},% FIXME: unsure
+ byannotator = {{selityksin varustanut}{selityksin varustanut}},% FIXME: unsure
+ withcommentator = {{kommentaarin kirjoittanut}{kommentaarin kirjoittanut}},% FIXME: unsure
+ withannotator = {{selityksin varustanut}{selityksin varustanut}},% FIXME: unsure
+ withintroduction = {{johdannon kirjottanut}{johdannon kirjottanut}},
+ withforeword = {{esipuheen kirjoittanut}{esipuheen kirjoittanut}},
+ withafterword = {{j\"alkisanat kirjoittanut}{j\"alkisanat kirjoittanut}},
+ byeditortr = {{toimittanut ja \lbx@lfromlang k\"a\"ant\"anyt}%
+ {toim\adddotspace ja \lbx@sfromlang k\"a\"ant\adddot}},
+ byeditorco = {{toimittanut ja kommentaarin kirjoittanut}%
+ {toimittanut ja kommentaarin kirjoittanut}},
+ byeditoran = {{toimittanut ja selityksin varustanut}%
+ {toimittanut ja selityksin varustanut}},
+ byeditorin = {{toimittanut ja johdannon kirjoittanut}%
+ {toimittanut ja johdannon kirjoittanut}},
+ byeditorfo = {{toimittanut ja esipuheen kirjoittanut}%
+ {toimittanut ja esipuheen kirjoittanut}},
+ byeditoraf = {{toimittanut ja j\"alkisanat kirjoittanut}%
+ {toimittanut ja j\"alkisanat kirjoittanut}},
+ byeditortrco = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja kommentaarin kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja kommentaarin kirjoittanut}},
+ byeditortran = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja selityksin varustanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja selityksin varustanut}},
+ byeditortrin = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja johdannon kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja johdannon kirjoittanut}},
+ byeditortrfo = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja esipuheen kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja esipuheen kirjoittanut}},
+ byeditortraf = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}},
+ byeditorcoin = {{toimittanut, kommentaarin ja johdannon kirjoittanut}%
+ {toimittanut, kommentaarin ja johdannon kirjoittanut}},
+ byeditorcofo = {{toimittanut, kommentaarin ja esipuheen kirjoittanut}%
+ {toimittanut, kommentaarin ja esipuheen kirjoittanut}},
+ byeditorcoaf = {{toimittanut, kommentaarin ja j\"alkisanat kirjoittanut}%
+ {toimittanut, kommentaarin ja j\"alkisanat kirjoittanut}},
+ byeditoranin = {{toimittanut, selitykset ja johdannon kirjoittanut}%
+ {toimittanut, selitykset ja johdannon kirjoittanut}},
+ byeditoranfo = {{toimittanut, selitykset ja esipuheen kirjoittanut}%
+ {toimittanut, selitykset ja esipuheen kirjoittanut}},
+ byeditoranaf = {{toimittanut, selitykset ja j\"alkisanat kirjoittanut}%
+ {toimittanut, selitykset ja j\"alkisanat kirjoittanut}},
+ byeditortrcoin = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}},
+ byeditortrcofo = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}},
+ byeditortrcoaf = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}},
+ byeditortranin = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, selitykset ja johdannon kirjoittanut}},
+ byeditortranfo = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, selitykset ja esipuheen kirjoittanut}},
+ byeditortranaf = {{toimittanut, \lbx@lfromlang k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}%
+ {toimittanut, \lbx@sfromlang k\"a\"ant\"anyt, selitykset ja j\"alkisanat kirjoittanut}},
+ bytranslatorco = {{\lbx@lfromlang k\"a\"ant\"anyt ja kommentaarin kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt ja kommentaarin kirjoittanut}},
+ bytranslatoran = {{\lbx@lfromlang k\"a\"ant\"anyt ja selityksin varustanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt ja selityksin varustanut}},
+ bytranslatorin = {{\lbx@lfromlang k\"a\"ant\"anyt ja johdannon kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt ja johdannon kirjoittanut}},
+ bytranslatorfo = {{\lbx@lfromlang k\"a\"ant\"anyt ja esipuheen kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt ja esipuheen kirjoittanut}},
+ bytranslatoraf = {{\lbx@lfromlang k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt ja j\"alkisanat kirjoittanut}},
+ bytranslatorcoin = {{\lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja johdannon kirjoittanut}},
+ bytranslatorcofo = {{\lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja esipuheen kirjoittanut}},
+ bytranslatorcoaf = {{\lbx@lfromlang k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt, kommentaarin ja j\"alkisanat kirjoittanut}},
+ bytranslatoranin = {{\lbx@lfromlang k\"a\"ant\"anyt, selityksin varustanut ja johdannon kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt, selityksin varustanut ja johdannon kirjoittanut}},
+ bytranslatoranfo = {{\lbx@lfromlang k\"a\"ant\"anyt, selityksin varustanut ja esipuheen kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt, selityksin varustanut ja esipuheen kirjoittanut}},
+ bytranslatoranaf = {{\lbx@lfromlang k\"a\"ant\"anyt, selityksin varustanut ja j\"alkisanat kirjoittanut}%
+ {\lbx@sfromlang k\"a\"ant\"anyt, selityksin varustanut ja j\"alkisanat kirjoittanut}},
+ and = {{ja}{ja}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{jne\adddot}{jne\adddot}},
+ volume = {{volyymi}{vol\adddot}},% FIXME: Is {{osa}{osa}} a better translation?
+ volumes = {{volyymit}{vol\adddot}},% Incorrect. Correct translation of "volumes" depends on context.
+ involumes = {{}{}},% Finnish translation of "in 5 volumes" is "5 osassa", so translation of "in" is an empty string.
+ jourvol = {{volyymi}{vol\adddot}},
+ jourser = {{sarja}{sarja}},
+ book = {{kirja}{kirja}},% FIXME: Literal translation of "book". Correct translation depends on context.
+ part = {{osa}{osa}},
+ issue = {{numero}{numero}},
+ newseries = {{uusi sarja}{uusi sarja}},
+ oldseries = {{vanha sarja}{vanha sarja}},
+ edition = {{painos}{painos}},
+ reprint = {{j\"alkipainos}{j\"alkipainos}},
+ reprintof = {{julkaistu aiemmin nimell\"a}{julkaistu aiemmin nimell\"a}},
+ reprintas = {{julkaistu uudelleen nimell\"a}{julkaistu uudelleen nimell\"a}},
+ reprintfrom = {{julkaistu aiemmin nimell\"a}{julkaistu aiemmin nimell\"a}},% FIXME: unsure
+ translationof = {{k\"a\"ann\"os teoksesta}{k\"a\"ann\"os teoksesta}},% FIXME: unsure
+ translationas = {{k\"a\"annetty nimell\"a}{k\"a\"annetty nimell\"a}},% FIXME: unsure
+ translationfrom = {{k\"a\"annetty kielest\"a}{k\"a\"annetty kielest\"a}},% Result is very bad Finnish.
+ reviewof = {{arvostelu teoksesta}{arvostelu teoksesta}},% FIXME: unsure. Bad Finnish.
+ origpubas = {{julkaistu ensi kerran nimell\"a}{julkaistu ensi kerran nimell\"a}},
+ origpubin = {{julkaistu ensi kerran vuonna}{julkaistu ensi kerran vuonna}},
+ astitle = {{nimell\"a}{nimell\"a}},% FIXME: unsure
+ bypublisher = {{julkaissut}{julkaissut}},% FIXME: unsure
+ page = {{sivu}{s\adddot}},
+ pages = {{sivut}{s\adddot}},
+ column = {{palsta}{palsta}},% Here "sarake" is wrong!
+ columns = {{palstat}{palstat}},% Here "sarakkeet" is wrong!
+ line = {{rivi}{rivi}},
+ lines = {{rivit}{rivit}},
+ nodate = {{ei julkaisup\"aiv\"a\"a}{ei julkaisup\"aiv\"a\"a}},% FIXME: unsure
+ verse = {{s\"ae}{s\"ae}},
+ verses = {{s\"akeet}{s\"akeet}},
+ section = {{kohta}{kohta}},% Bad translation, but "pyk\"al\"a" is no better.
+ sections = {{kohdat}{kohdat}},% Bad translation, but "pyk\"al\"at" is no better.
+ paragraph = {{kappale}{kappale}},
+ paragraphs = {{kappaleet}{kappaleet}},
+ pagetotal = {{sivu}{s\adddot}},
+ pagetotals = {{sivut}{s\adddot}},
+ columntotal = {{palsta}{palsta}},% Here "sarake" is wrong!
+ columntotals = {{palstat}{palstat}},% Here "sarakkeet" is wrong!
+ linetotal = {{rivi}{rivi}},
+ linetotals = {{rivit}{rivit}},
+ versetotal = {{s\"ae}{s\"ae}},
+ versetotals = {{s\"akeet}{s\"akeet}},
+ sectiontotal = {{kohta}{kohta}},% Bad translation, but "pyk\"al\"a" is no better.
+ sectiontotals = {{kohdat}{kohdat}},% Bad translation, but "pyk\"al\"at" is no better.
+ paragraphtotal = {{kappale}{kappale}},
+ paragraphtotals = {{kappaleet}{kappaleet}},
+ in = {{teoksessa}{teoksessa}},
+ inseries = {{sarjassa}{sarjassa}},
+ ofseries = {{sarjassa}{sarjassa}},
+ number = {{numero}{nro}},
+ chapter = {{luku}{luku}},
+ bathesis = {{tutkielma}{tutkielma}},% FIXME: unsure
+ mathesis = {{tutkielma}{tutkielma}},% FIXME: unsure
+ phdthesis = {{tohtorinv\"ait\"oskirja}{tohtorinv\"ait\"oskirja}},
+ candthesis = {{kanditaatintutkielma}{kanditaatintutkielma}},% Literal translation of "Candidate thesis".
+ resreport = {{tutkimusraportti}{tutkimusraportti}},
+ techreport = {{tekninen raportti}{tekninen raportti}},% Literal translation of "technical report".
+ software = {{ohjelmisto}{ohjelmisto}},
+ datacd = {{data-CD}{data-CD}},% Is {{CD-ROM}{CD-ROM}} better?
+ audiocd = {{\"a\"ani-CD}{\"a\"ani-CD}},
+ version = {{versio}{versio}},
+ url = {{url}{url}},
+ urlfrom = {{saatavilla osoitteesta}{saatavilla osoitteesta}},% FIXME: unsure
+ urlseen = {{viitattu}{viitattu}},
+ inpreparation = {{valmisteilla}{valmisteilla}},% FIXME: unsure
+ submitted = {{l\"ahetetty}{l\"ahetetty}},% FIXME: unsure
+ forthcoming = {{hyv\"aksytty julkaistavaksi}{hyv\"aksytty julkaistavaksi}},% FIXME: unsure
+ inpress = {{painossa}{painossa}},% FIXME: unsure
+ prepublished = {{esijulkaistu}{esijulkaistu}},% FIXME: unsure
+ citedas = {{jatkossa}{jatkossa}},
+ thiscite = {{sama}{sama}},% FIXME: unsure
+ seenote = {{katso viite}{katso viite}},
+ quotedin = {{lainattu teoksessa}{lainattu teoksessa}},
+ idem = {{idem}{id\adddot}},% It its not necessary to translate Latin phrases.
+ idemsf = {{idem}{id\adddot}},
+ idemsm = {{idem}{id\adddot}},
+ idemsn = {{idem}{id\adddot}},
+ idempf = {{idem}{id\adddot}},
+ idempm = {{idem}{id\adddot}},
+ idempn = {{idem}{id\adddot}},
+ idempp = {{idem}{id\adddot}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{katso}{ks\adddot}},
+ seealso = {{katso my\"os}{katso my\"os}},
+ backrefpage = {{katso sivu}{ks\adddotspace s\adddot}},
+ backrefpages = {{katso sivut}{ks\adddotspace s\adddot}},
+ january = {{tammikuuta}{tammikuuta}},
+ february = {{helmikuuta}{helmikuuta}},
+ march = {{maaliskuuta}{maaliskuuta}},
+ april = {{huhtikuuta}{huhtikuuta}},
+ may = {{toukokuuta}{toukokuuta}},
+ june = {{kes\"akuuta}{kes\"akuuta}},
+ july = {{hein\"akuuta}{hein\"akuuta}},
+ august = {{elokuuta}{elokuuta}},
+ september = {{syyskuuta}{syyskuuta}},
+ october = {{lokakuuta}{lokakuuta}},
+ november = {{marraskuuta}{marraskuuta}},
+ december = {{joulukuuta}{joulukuuta}},
+ basicjanuary = {{tammikuu}{tammikuu}},
+ basicfebruary = {{helmikuu}{helmikuu}},
+ basicmarch = {{maaliskuu}{maaliskuu}},
+ basicapril = {{huhtikuu}{huhtikuu}},
+ basicmay = {{toukokuu}{toukokuu}},
+ basicjune = {{kes\"akuu}{kes\"akuu}},
+ basicjuly = {{hein\"akuu}{hein\"akuu}},
+ basicaugust = {{elokuu}{elokuu}},
+ basicseptember = {{syyskuu}{syyskuu}},
+ basicoctober = {{lokakuu}{lokakuu}},
+ basicnovember = {{marraskuu}{marraskuu}},
+ basicdecember = {{joulukuu}{joulukuu}},
+ langamerican = {{amerikanenglanti}{amerikanenglanti}},
+ langbrazilian = {{brasilianportugali}{brasilianportugali}},
+ langbulgarian = {{bulgaria}{bulgaria}},
+ langcatalan = {{katalonia}{katalonia}},
+ langcroatian = {{kroatia}{kroatia}},
+ langczech = {{t\v{s}ekki}{t\v{s}ekki}},
+ langdanish = {{tanska}{tanska}},
+ langdutch = {{hollanti}{hollanti}},
+ langenglish = {{englanti}{englanti}},
+ langestonian = {{viro}{viro}},
+ langfinnish = {{suomi}{suomi}},
+ langfrench = {{ranska}{ranska}},
+ langgalician = {{galicia}{galicia}},
+ langgerman = {{saksa}{saksa}},
+ langgreek = {{kreikka}{kreikka}},
+ langhungarian = {{unkari}{unkari}},
+ langitalian = {{italia}{italia}},
+ langlatin = {{latina}{latina}},
+ langlatvian = {{latvia}{latvia}},
+ langnorwegian = {{norja}{norja}},
+ langpolish = {{puola}{puola}},
+ langportuguese = {{portugali}{portugali}},
+ langrussian = {{ven\"aj\"a}{ven\"aj\"a}},
+ langslovak = {{slovakia}{slovakia}},
+ langslovene = {{slovenia}{slovenia}},
+ langspanish = {{espanja}{espanja}},
+ langswedish = {{ruotsi}{ruotsi}},
+ fromamerican = {{englannin kielest\"a}{englannin kielest\"a}},
+ frombrazilian = {{portugalin kielest\"a}{portugalin kielest\"a}},
+ frombulgarian = {{bulgarian kielest\"a}{bulgarian kielest\"a}},
+ fromcatalan = {{katalonian kielest\"a}{katalonian kielest\"a}},
+ fromcroatian = {{kroatian kielest\"a}{kroatian kielest\"a}},
+ fromczech = {{t\v{s}ekin kielest\"a}{t\v{s}ekin kielest\"a}},
+ fromdanish = {{tanskan kielest\"a}{tanskan kielest\"a}},
+ fromdutch = {{hollannin kielest\"a}{hollannin kielest\"a}},
+ fromenglish = {{englannin kielest\"a}{englannin kielest\"a}},
+ fromestonian = {{viron kielest\"a}{viron kielest\"a}},
+ fromfinnish = {{suomen kielest\"a}{suomen kielest\"a}},
+ fromfrench = {{ranskan kielest\"a}{ranskan kielest\"a}},
+ fromgalician = {{galician kielest\"a}{galician kielest\"a}},
+ fromgerman = {{saksan kielest\"a}{saksan kielest\"a}},
+ fromgreek = {{kreikan kielest\"a}{kreikan kielest\"a}},
+ fromhungarian = {{unkarin kielest\"a}{unkarin kielest\"a}},
+ fromitalian = {{italian kielest\"a}{italian kielest\"a}},
+ fromlatin = {{latinan kielest\"a}{latinan kielest\"a}},
+ fromlatvian = {{latvian kielest\"a}{latvian kielest\"a}},
+ fromnorwegian = {{norjan kielest\"a}{norjan kielest\"a}},
+ frompolish = {{puolan kielest\"a}{puolan kielest\"a}},
+ fromportuguese = {{portugalin kielest\"a}{portugalin kielest\"a}},
+ fromrussian = {{ven\"aj\"an kielest\"a}{ven\"aj\"an kielest\"a}},
+ fromslovak = {{slovakian kielest\"a}{slovakian kielest\"a}},
+ fromslovene = {{slovenian kielest\"a}{slovenian kielest\"a}},
+ fromspanish = {{espanjan kielest\"a}{espanjan kielest\"a}},
+ fromswedish = {{ruotsin kielest\"a}{ruotsin kielest\"a}},
+ countryde = {{Saksa}{DE}},
+ countryeu = {{Euroopan Unioni}{EU}},
+ countryep = {{Euroopan Unioni}{EP}},
+ countryfr = {{Ranska}{FR}},
+ countryuk = {{Iso-Britannia}{GB}},
+ countryus = {{Yhdysvallat}{US}},
+ patent = {{patentti}{pat\adddot}},
+ patentde = {{saksalainen patentti}{saksalainen pat\adddot}},
+ patenteu = {{Euroopan Unionin patentti}{Euroopan Unionin pat\adddot}},
+ patentfr = {{ranskalainen patentti}{ranskalainen pat\adddot}},
+ patentuk = {{isobritannialainen patentti}{isobritannialainen pat\adddot}},
+ patentus = {{yhdysvaltalainen patentti}{yhdysvaltalainen pat\adddot}},
+ patreq = {{patenttihakemus}{pat\adddot\ hak\adddot}},
+ patreqde = {{saksalainen patenttihakemus}{saksalainen pat\adddot\ hak\adddot}},
+ patreqeu = {{Euroopan Unionin patenttihakemus}{Euroopan Unionin pat\adddot\ hak\adddot}},
+ patreqfr = {{ranskalainen patenttihakemus}{ranskalainen pat\adddot\ hak\adddot}},
+ patrequk = {{isobritannialainen patenttihakemus}{isobritannialainen pat\adddot\ hak\adddot}},
+ patrequs = {{yhdysvaltalainen patenttihakemus}{yhdysvaltalainen pat\adddot\ hak\adddot}},
+ file = {{tiedosto}{tiedosto}},
+ library = {{kirjasto}{kirjasto}},
+ abstract = {{tiivistelm\"a}{tiivistelm\"a}},
+ annotation = {{selitykset}{selitykset}},% FIXME: unsure
+ commonera = {{j\"alkeen ajanlaskun alun}{jaa\adddot}},
+ beforecommonera = {{ennen ajanlaskun alkua}{eaa\adddot}},
+ annodomini = {{j\"alkeen Kristuksen syntym\"an}{jKr\adddot}},
+ beforechrist = {{ennen Kristuksen syntym\"a\"a}{eKr\adddot}},
+ circa = {{noin}{n\adddot}},
+ spring = {{kev\"at}{kev\"at}},% Or kev\"a\"all\"a ?
+ summer = {{kes\"a}{kes\"a}},% Or kes\"all\"a ?
+ autumn = {{syksy}{syksy}},% Or syksyll\"a ?
+ winter = {{talvi}{talvi}},% Or talvella ?
+ am = {{ap\adddot}{ip\adddot}},
+ pm = {{ip\adddot}{ip\adddot}},
+}
+
+\protected\gdef\lbx@fi@mkbibmonthbasic#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{basicjanuary}%
+ \or\abx@bibmonth{basicfebruary}%
+ \or\abx@bibmonth{basicmarch}%
+ \or\abx@bibmonth{basicapril}%
+ \or\abx@bibmonth{basicmay}%
+ \or\abx@bibmonth{basicjune}%
+ \or\abx@bibmonth{basicjuly}%
+ \or\abx@bibmonth{basicaugust}%
+ \or\abx@bibmonth{basicseptember}%
+ \or\abx@bibmonth{basicoctober}%
+ \or\abx@bibmonth{basicnovember}%
+ \or\abx@bibmonth{basicdecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/french.lbx b/macros/latex/contrib/biblatex/latex/lbx/french.lbx
new file mode 100644
index 0000000000..31f436e1df
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/french.lbx
@@ -0,0 +1,649 @@
+\ProvidesFile{french.lbx}
+[\abx@lbxid]
+
+% Translations by non-native speaker: this file needs an overhaul!
+
+\DeclareRedundantLanguages{french}{french}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{-}%
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \def\mkbibordinal{\mkbibmascord}%
+ \protected\def\mkbibmascord{\lbx@fr@ordinal{er}}%
+ \protected\def\mkbibfemord{\lbx@fr@ordinal{re}}%
+ \protected\def\mkbibneutord{\mkbibmascord}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \ifnumequal{\thefield{#3}}{1}
+ {\textsuperscript{er}}
+ {}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{/}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \providecommand*{\FDP@thinspace}{\addnbthinspace}% FDP@* -> frenchb.ldf (babel)
+ \providecommand*{\FDP@colonspace}{\addnbspace}%
+ \def\abx@semicolon{%
+ \ifdim\lastkern>\z@\unkern\fi
+ \FDP@thinspace\abx@puncthook{;}}%
+ \def\abx@colon{%
+ \ifdim\lastkern>\z@\unkern\fi
+ \FDP@colonspace\abx@puncthook{:}}%
+ \def\abx@exclam{%
+ \ifdim\lastkern>\z@\unkern\fi
+ \FDP@thinspace\abx@puncthook{!}}%
+ \def\abx@question{%
+ \ifdim\lastkern>\z@\unkern\fi
+ \FDP@thinspace\abx@puncthook{?}}%
+ \savecommand\lbx@initnamehook
+ \savecommand\lbx@inittitlehook
+ \savecommand\mkbibnamefamily
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \let\lbx@initnamehook=\lbx@fr@smartof
+ \let\lbx@inittitlehook=\lbx@fr@smartof
+ \protected\def\mkbibnamefamily#1{%
+ \textsc{\textnohyphenation{#1}}}%
+ \def\mkbibordedition{\mkbibfemord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\lbx@initnamehook
+ \restorecommand\lbx@inittitlehook
+ \restorecommand\mkbibnamefamily
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliographie}{Bibliographie}},
+ references = {{R\'ef\'erences}{R\'ef\'erences}},
+ shorthands = {{Liste des sigles}{Sigles}},
+ editor = {{\'editeur}{\'ed\adddot}},
+ editors = {{\'editeurs}{\'ed\adddot}},
+ compiler = {{compilateur}{comp\adddot}},
+ compilers = {{compilateurs}{comp\adddot}},
+ redactor = {{r\'edacteur}{r\'ed\adddot}},
+ redactors = {{r\'edacteurs}{r\'ed\adddot}},
+ reviser = {{r\'eviseur}{r\'ev\adddot}},
+ revisers = {{r\'eviseurs}{r\'ev\adddot}},
+ founder = {{fondateur}{fond\adddot}},
+ founders = {{fondateurs}{fond\adddot}},
+ continuator = {{continuateur}{cont\adddot}},
+ continuators = {{continuateurs}{cont\adddot}},
+ collaborator = {{collaborateur}{coll\adddot}},
+ collaborators = {{collaborateurs}{coll\adddot}},
+ translator = {{traducteur}{trad\adddot}},
+ translators = {{traducteurs}{trad\adddot}},
+ commentator = {{commentateur}{comm\adddot}},
+ commentators = {{commentateurs}{comm\adddot}},
+ annotator = {{annotateur}{annot\adddot}},
+ annotators = {{annotateurs}{annot\adddot}},
+ commentary = {{commentaires}{comment\adddot}},
+ annotations = {{annotations}{annot\adddot}},
+ introduction = {{introduction}{introd\adddot}},
+ foreword = {{pr\'eface}{pr\'ef\adddot}},
+ afterword = {{postface}{postf\adddot}},
+ editortr = {{\'editeur et traducteur}{\'ed\adddotspace et trad\adddot}},
+ editorstr = {{\'editeurs et traducteurs}{\'ed\adddotspace et trad\adddot}},
+ editorco = {{\'editeur et commentateur}%
+ {\'ed\adddotspace et comm\adddot}},
+ editorsco = {{\'editeurs et commentateurs}%
+ {\'ed\adddotspace et comm\adddot}},
+ editoran = {{\'editeur et annotateur}%
+ {\'ed\adddotspace et annot\adddot}},
+ editorsan = {{\'editeurs et annotateurs}%
+ {\'ed\adddotspace et annot\adddot}},
+ editorin = {{\'editeur et introduction}%
+ {\'ed\adddotspace et introd\adddot}},
+ editorsin = {{\'editeurs et introduction}%
+ {\'ed\adddotspace et introd\adddot}},
+ editorfo = {{\'editeur et pr\'efacier}%
+ {\'ed\adddotspace et pr\'ef\adddot}},
+ editorsfo = {{\'editeurs et pr\'efaciers}%
+ {\'ed\adddotspace et pr\'ef\adddot}},
+ editoraf = {{\'editeur et postfacier}%
+ {\'ed\adddotspace et postf\adddot}},
+ editorsaf = {{\'editeurs et postfaciers}%
+ {\'ed\adddotspace et postf\adddot}},
+ editortrco = {{\'editeur, traducteur et commentateur}%
+ {\'ed.,\addabbrvspace trad\adddotspace et comm\adddot}},
+ editorstrco = {{\'editeurs, traducteurs et commentateurs}%
+ {\'ed.,\addabbrvspace trad\adddotspace et comm\adddot}},
+ editortran = {{\'editeur, traducteur et annotateur}%
+ {\'ed.,\addabbrvspace trad\adddotspace et annot\adddot}},
+ editorstran = {{\'editeurs, traducteurs et annotateurs}%
+ {\'ed.,\addabbrvspace trad\adddotspace et annot\adddot}},
+ editortrin = {{\'editeur, traducteur et introduction}%
+ {\'ed.,\addabbrvspace trad\adddotspace et introd\adddot}},
+ editorstrin = {{\'editeurs, traducteurs et introduction}%
+ {\'ed.,\addabbrvspace trad\adddotspace et introd\adddot}},
+ editortrfo = {{\'editeur, traducteur et pr\'efacier}%
+ {\'ed.,\addabbrvspace trad\adddotspace et pr\'ef\adddot}},
+ editorstrfo = {{\'editeurs, traducteurs et pr\'efaciers}%
+ {\'ed.,\addabbrvspace trad\adddotspace et pr\'ef\adddot}},
+ editortraf = {{\'editeur, traducteur et postfacier}%
+ {\'ed.,\addabbrvspace trad\adddotspace et postf\adddot}},
+ editorstraf = {{\'editeurs, traducteurs et postfaciers}%
+ {\'ed.,\addabbrvspace trad\adddot et postf\adddot}},
+ editorcoin = {{\'editeur, commentateur et introduction}%
+ {\'ed.,\addabbrvspace comm\adddotspace et introd\adddot}},
+ editorscoin = {{\'editeurs, commentateurs et introduction}%
+ {\'ed.,\addabbrvspace comm\adddotspace et introd\adddot}},
+ editorcofo = {{\'editeur, commentateur et pr\'efacier}%
+ {\'ed.,\addabbrvspace comm\adddotspace et pr\'ef\adddot}},
+ editorscofo = {{\'editeurs, commentateurs et pr\'efaciers}%
+ {\'ed.,\addabbrvspace comm\adddotspace et pr\'ef\adddot}},
+ editorcoaf = {{\'editeur, commentateur et postfacier}%
+ {\'ed.,\addabbrvspace comm\adddotspace et postf\adddot}},
+ editorscoaf = {{\'editeurs, commentateurs et postfaciers}%
+ {\'ed.,\addabbrvspace comm\adddotspace et postf\adddot}},
+ editoranin = {{\'editeur, annotateur et introduction}%
+ {\'ed.,\addabbrvspace annot\adddotspace et introd\adddot}},
+ editorsanin = {{\'editeurs, annotateurs et introduction}%
+ {\'ed.,\addabbrvspace annot\adddotspace et introd\adddot}},
+ editoranfo = {{\'editeur, annotateur et pr\'efacier}%
+ {\'ed.,\addabbrvspace annot\adddotspace et pr\'ef\adddot}},
+ editorsanfo = {{\'editeurs, annotateurs et pr\'efaciers}%
+ {\'ed.,\addabbrvspace annot\adddotspace et pr\'ef\adddot}},
+ editoranaf = {{\'editeur, annotateur et postfacier}%
+ {\'ed.,\addabbrvspace annot\adddotspace et postf\adddot}},
+ editorsanaf = {{\'editeurs, annotateurs et postfaciers}%
+ {\'ed.,\addabbrvspace annot\adddotspace et postf\adddot}},
+ editortrcoin = {{\'editeur, traducteur, commentateur et introduction}%
+ {\'ed.,\addabbrvspace trad., comm\adddotspace et introd\adddot}},
+ editorstrcoin = {{\'editeurs, traducteurs, commentateurs et introduction}%
+ {\'ed.,\addabbrvspace trad., comm\adddotspace et introd\adddot}},
+ editortrcofo = {{\'editeur, traducteur, commentateur et pr\'efacier}%
+ {\'ed.,\addabbrvspace trad., comm\adddotspace et pr\'ef\adddot}},
+ editorstrcofo = {{\'editeurs, traducteurs, commentateurs et pr\'efaciers}%
+ {\'ed.,\addabbrvspace trad., comm\adddotspace et pr\'ef\adddot}},
+ editortrcoaf = {{\'editeur, traducteur, commentateur et postfacier}%
+ {\'ed.,\addabbrvspace trad., comm\adddotspace et postf\adddot}},
+ editorstrcoaf = {{\'editeurs, traducteurs, commentateurs et postfaciers}%
+ {\'ed.,\addabbrvspace trad., comm\adddotspace et postf\adddot}},
+ editortranin = {{\'editeur, traducteur, annotateur et introduction}%
+ {\'ed.,\addabbrvspace trad., annot\adddotspace et introd\adddot}},
+ editorstranin = {{\'editeurs, traducteurs, annotateurs et introduction}%
+ {\'ed.,\addabbrvspace trad., annot\adddotspace et introd\adddot}},
+ editortranfo = {{\'editeur, traducteur, annotateur et pr\'efacier}%
+ {\'ed.,\addabbrvspace trad., annot\adddotspace et pr\'ef\adddot}},
+ editorstranfo = {{\'editeurs, traducteurs, annotateurs et pr\'efaciers}%
+ {\'ed.,\addabbrvspace trad., annot\adddotspace et pr\'ef\adddot}},
+ editortranaf = {{\'editeur, traducteur, annotateur et postfacier}%
+ {\'ed.,\addabbrvspace trad., annot\adddotspace et postf\adddot}},
+ editorstranaf = {{\'editeurs, traducteurs, annotateurs et postfaciers}%
+ {\'ed.,\addabbrvspace trad., annot\adddotspace et postf\adddot}},
+ translatorco = {{traducteur et commentateur}%
+ {trad\adddotspace et comm\adddot}},
+ translatorsco = {{traducteurs et commentateurs}%
+ {trad\adddotspace et comm\adddot}},
+ translatoran = {{traducteur et annotateur}%
+ {trad\adddotspace et annot\adddot}},
+ translatorsan = {{traducteurs et annotateurs}%
+ {trad\adddotspace et annot\adddot}},
+ translatorin = {{traduction et introduction}%
+ {trad\adddotspace et introd\adddot}},
+ translatorsin = {{traduction et introduction}%
+ {trad\adddotspace et introd\adddot}},
+ translatorfo = {{traduction et pr\'eface}%
+ {trad\adddotspace et pr\'ef\adddot}},
+ translatorsfo = {{traduction et pr\'eface}%
+ {trad\adddotspace et pr\'ef\adddot}},
+ translatoraf = {{traduction et postface}%
+ {trad\adddotspace et postf\adddot}},
+ translatorsaf = {{traduction et postface}%
+ {trad\adddotspace et postf\adddot}},
+ translatorcoin = {{traduction, commentaire et introduction}%
+ {trad., comm\adddotspace et introd\adddot}},
+ translatorscoin = {{traduction, commentaire et introduction}%
+ {trad., comm\adddotspace et introd\adddot}},
+ translatorcofo = {{traduction, commentaire et pr\'eface}%
+ {trad., comm\adddotspace et pr\'ef\adddot}},
+ translatorscofo = {{traduction, commentaire et pr\'eface}%
+ {trad., comm\adddotspace et pr\'ef\adddot}},
+ translatorcoaf = {{traduction, commentaire et postface}%
+ {trad., comm\adddotspace et postf\adddot}},
+ translatorscoaf = {{traduction, commentaire et postface}%
+ {trad., comm\adddotspace et postf\adddot}},
+ translatoranin = {{traduction, annotations et introduction}%
+ {trad., annot\adddotspace et introd\adddot}},
+ translatorsanin = {{traduction, annotations et introduction}%
+ {trad., annot\adddotspace et introd\adddot}},
+ translatoranfo = {{traduction, annotations et pr\'eface}%
+ {trad., annot\adddotspace et pr\'ef\adddot}},
+ translatorsanfo = {{traduction, annotations et pr\'eface}%
+ {trad., annot\adddotspace et pr\'ef\adddot}},
+ translatoranaf = {{traduction, annotations et postface}%
+ {trad., annot\adddotspace et postf\adddot}},
+ translatorsanaf = {{traduction, annotations et postface}%
+ {trad., annot\adddotspace et postf\adddot}},
+ organizer = {{organisateur}{org\adddot}},%
+ organizers = {{organisateurs}{org\adddot}},%
+ byorganizer = {{organis\'e par}{org\adddotspace par}},%
+ byauthor = {{par}{par}},
+ byeditor = {{sous la direction \smartof}{sous la dir\adddotspace\smartof}},
+ bycompiler = {{compil\'e par}{comp\adddotspace par}},
+ byredactor = {{r\'edig\'e par}{r\'ed\adddotspace par}},
+ byreviser = {{r\'evis\'e par}{r\'ev\adddotspace par}},
+ byreviewer = {{examin\'e par}{ex\adddotspace par}},
+ byfounder = {{d\'ecouvert par}{d\'ecouv\adddotspace par}},
+ bycontinuator = {{continu\'e par}{cont\adddotspace par}},
+ bycollaborator = {{avec la collaboration \smartof}{avec la
+ coll\adddotspace\smartof}},
+ bytranslator = {{traduit \lbx@lfromlang\ par}{trad\adddotspace \lbx@sfromlang\ par}},
+ bycommentator = {{comment\'e par}{comm\adddotspace par}},
+ byannotator = {{annot\'e par}{annot\adddotspace par}},
+ withcommentator = {{avec des commentaires \smartof}{avec des comment\adddotspace\smartof}},
+ withannotator = {{avec des annotations \smartof}{avec des annot\adddotspace\smartof}},
+ withintroduction = {{avec une introduction \smartof}{avec une introd\adddotspace\smartof}},
+ withforeword = {{avec une pr\'eface \smartof}{avec une pr\'ef\adddotspace\smartof}},
+ withafterword = {{avec une postface \smartof}{avec une postf\adddotspace\smartof}},
+ byeditortr = {{\'edition \'etablie et traduite \lbx@lfromlang\ par}%
+ {\'ed\adddotspace \'etablie et trad\adddotspace \lbx@sfromlang\ par}},
+ byeditorco = {{\'edition \'etablie et comment\'ee par}%
+ {\'ed\adddotspace \'etablie et comm\adddotspace par}},
+ byeditoran = {{\'edition \'etablie et annot\'ee par}%
+ {\'ed\adddotspace \'etablie et annot\adddotspace par}},
+ byeditorin = {{\'edition \'etablie et introduite par}%
+ {\'ed\adddotspace \'etablie et introd\adddotspace par}},
+ byeditorfo = {{\'edition \'etablie et pr\'efac\'ee par}%
+ {\'ed\adddotspace \'etablie et pr\'ef\adddotspace par}},
+ byeditoraf = {{\'edition \'etablie et postfac\'ee par}%
+ {\'ed\adddotspace \'etablie et postf\adddotspace par}},
+ byeditortrco = {{\'edition \'etablie, traduite \lbx@lfromlang\ et comment\'ee par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et comm\adddotspace par}},
+ byeditortran = {{\'edition \'etablie, traduite \lbx@lfromlang\ et annot\'ee par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et annot\adddotspace par}},
+ byeditortrin = {{\'edition \'etablie, traduite \lbx@lfromlang\ et introduite par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et introd\adddotspace par}},
+ byeditortrfo = {{\'edition \'etablie, traduite \lbx@lfromlang\ et pr\'efac\'ee par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et pr\'ef\adddotspace par}},
+ byeditortraf = {{\'edition \'etablie, traduite \lbx@lfromlang\ et postfac\'ee par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang\ et postf\adddotspace par}},
+ byeditorcoin = {{\'edition \'etablie, comment\'ee et introduite par}%
+ {\'ed\adddotspace \'etablie, comm\adddotspace et introd\adddotspace par}},
+ byeditorcofo = {{\'edition \'etablie, comment\'ee et pr\'efac\'ee par}%
+ {\'ed\adddotspace \'etablie, comm\adddotspace et pr\'ef\adddotspace par}},
+ byeditorcoaf = {{\'edition \'etablie, comment\'ee et postfac\'ee par}%
+ {\'ed\adddotspace \'etablie, comm\adddotspace et postf\adddotspace par}},
+ byeditoranin = {{\'edition \'etablie, annot\'ee et introduite par}%
+ {\'ed\adddotspace \'etablie, annot\adddotspace et introd\adddotspace par}},
+ byeditoranfo = {{\'edition \'etablie, annot\'ee et pr\'efac\'ee par}%
+ {\'ed\adddotspace \'etablie, annot\adddotspace et pr\'ef\adddotspace par}},
+ byeditoranaf = {{\'edition \'etablie, annot\'ee et postfac\'ee par}%
+ {\'ed\adddotspace \'etablie, annot\adddotspace et postf\adddotspace par}},
+ byeditortrcoin = {{\'edition \'etablie, traduite \lbx@lfromlang, comment\'ee et introduite par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, comm\adddotspace et introd\adddotspace par}},
+ byeditortrcofo = {{\'edition \'etablie, traduite \lbx@lfromlang, comment\'ee et pr\'efac\'ee par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, comm\adddotspace et pr\'ef\adddotspace par}},
+ byeditortrcoaf = {{\'edition \'etablie, traduite \lbx@lfromlang, comment\'ee et postfac\'ee par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, comm\adddotspace et postf\adddotspace par}},
+ byeditortranin = {{\'edition \'etablie, traduite \lbx@lfromlang, annot\'ee et introduite par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, annot\adddotspace et introd\adddotspace par}},
+ byeditortranfo = {{\'edition \'etablie, traduite \lbx@lfromlang, annot\'ee et pr\'efac\'ee par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, annot\adddotspace et pr\'ef\adddotspace par}},
+ byeditortranaf = {{\'edition \'etablie, traduite \lbx@lfromlang, annot\'ee et postfac\'ee par}%
+ {\'ed\adddotspace \'etablie, trad\adddotspace \lbx@sfromlang, annot\adddotspace et postf\adddotspace par}},
+ bytranslatorco = {{traduit \lbx@lfromlang\ et comment\'e par}%
+ {trad\adddotspace \lbx@sfromlang\ et comm\adddotspace par}},
+ bytranslatoran = {{traduit \lbx@lfromlang\ et annot\'e par}%
+ {trad\adddotspace \lbx@sfromlang\ et annot\adddotspace par}},
+ bytranslatorin = {{traduit \lbx@lfromlang\ et introduit par}%
+ {trad\adddotspace \lbx@sfromlang\ et introd\adddotspace par}},
+ bytranslatorfo = {{traduit \lbx@lfromlang\ et pr\'efac\'e par}%
+ {trad\adddotspace \lbx@sfromlang\ et pr\'ef\adddotspace par}},
+ bytranslatoraf = {{traduit \lbx@lfromlang\ et postfac\'e par}%
+ {trad\adddotspace \lbx@sfromlang\ et postf\adddotspace par}},
+ bytranslatorcoin = {{traduit \lbx@lfromlang, comment\'e et introduit par}%
+ {trad\adddotspace \lbx@sfromlang, comm\adddotspace et introd\adddotspace par}},
+ bytranslatorcofo = {{traduit \lbx@lfromlang, comment\'e et pr\'efac\'e par}%
+ {trad\adddotspace \lbx@sfromlang, comm\adddotspace et pr\'ef\adddotspace par}},
+ bytranslatorcoaf = {{traduit \lbx@lfromlang, comment\'e et postfac\'e par}%
+ {trad\adddotspace \lbx@sfromlang, comm\adddotspace et postf\adddotspace par}},
+ bytranslatoranin = {{traduit \lbx@lfromlang, annot\'e et introduit par}%
+ {trad\adddotspace \lbx@sfromlang, annot\adddotspace et introd\adddotspace par}},
+ bytranslatoranfo = {{traduit \lbx@lfromlang, annot\'e et pr\'efac\'e par}%
+ {trad\adddotspace \lbx@sfromlang, annot\adddotspace et pr\'ef\adddotspace par}},
+ bytranslatoranaf = {{traduit \lbx@lfromlang, annot\'e et postfac\'e par}%
+ {trad\adddotspace \lbx@sfromlang, annot\adddotspace et postf\adddotspace par}},
+ and = {{et}{et}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{tome}{t\adddot}},
+ volumes = {{tomes}{t\adddot}},
+ involumes = {{en}{en}},
+ jourvol = {{tome}{t\adddot}},
+ jourser = {{s\'erie}{s\'er\adddot}},
+ book = {{livre}{livre}},
+ part = {{partie}{partie}},
+ issue = {{\'edition}{\'ed\adddot}},
+ newseries = {{nouvelle s\'erie}{nouv\adddotspace s\'er\adddot}},
+ oldseries = {{ancienne s\'erie}{anc\adddotspace s\'er\adddot}},
+ edition = {{\'edition}{\'ed\adddot}},
+ reprint = {{r\'eimpression}{r\'eimpr\adddot}},
+ reprintof = {{r\'eimpression de}{r\'eimpr\adddotspace de}},
+ reprintas = {{r\'eimpression sous le titre}{r\'eimpr\adddotspace sous le titre}},
+ reprintfrom = {{r\'eimpression \`a partir \smartof}{r\'eimpr\adddotspace \`a part\adddotspace\smartof}},
+ translationof = {{traduction de}{trad\adddotspace de}},
+ translationas = {{traduit sous le titre}{trad\adddotspace sous le titre}},
+ translationfrom = {{traduit de}{trad\adddotspace de}},
+ reviewof = {{critique de}{crit.\adddotspace de}},
+ origpubas = {{publi\'e \`a l'origine sous le titre}{pub\adddotspace \`a l'orig\adddotspace sous le titre}},
+ origpubin = {{publi\'e \`a l'origine en}{pub\adddotspace \`a l'orig\adddotspace en}},
+ astitle = {{sous le titre}{sous le titre}},
+ bypublisher = {{par}{par}},
+ nodate = {{pas\space de\space date}{{}p\adddotspace d\adddot}},
+ page = {{page}{p\adddot}},
+ pages = {{pages}{p\adddot}},
+ column = {{colonne}{col\adddot}},
+ columns = {{colonnes}{col\adddot}},
+ line = {{ligne}{l\adddot}},
+ lines = {{lignes}{l\adddot}},
+ verse = {{vers}{v\adddot}},
+ verses = {{vers}{v\adddot}},
+ section = {{section}{\S}},
+ sections = {{sections}{\S}},
+ paragraph = {{paragraphe}{par\adddot}},
+ paragraphs = {{paragraphes}{par\adddot}},
+ pagetotal = {{page}{p\adddot}},
+ pagetotals = {{pages}{p\adddot}},
+ columntotal = {{colonne}{col\adddot}},
+ columntotals = {{colonnes}{col\adddot}},
+ linetotal = {{ligne}{l\adddot}},
+ linetotals = {{lignes}{l\adddot}},
+ versetotal = {{vers}{v\adddot}},
+ versetotals = {{vers}{v\adddot}},
+ sectiontotal = {{section}{\S}},
+ sectiontotals = {{sections}{\S}},
+ paragraphtotal = {{paragraphe}{par\adddot}},
+ paragraphtotals = {{paragraphes}{par\adddot}},
+ in = {{in}{in}},
+ inseries = {{in}{in}},
+ ofseries = {{de}{de}},
+ number = {{num\'ero}{n\textsuperscript{o}}},
+ chapter = {{chapitre}{chap\adddot}},
+ bathesis = {{m\'emoire de bachelor}{m\'em\adddotspace de bach\adddot}},
+ mathesis = {{m\'emoire de master}{m\'em\adddotspace de mast\adddot}},
+ phdthesis = {{th\`ese de doctorat}{th\`ese de doct\adddot}},
+ candthesis = {{th\`ese de candidature}{th\`ese de cand\adddot}},
+ resreport = {{rapport scientifique}{rapp\adddotspace scient\adddot}},
+ techreport = {{rapport technique}{rapp\adddotspace tech\adddot}},
+ software = {{logiciel}{logiciel}},
+ datacd = {{c\'ed\'erom}{c\'ed\'erom}},
+ audiocd = {{disque compact audio}{CD}},
+ version = {{version}{version}},
+ url = {{adresse}{adresse}},
+ urlfrom = {{disponible \`a l'adresse}{disp\adddotspace \`a l'adr\adddot}},
+ urlseen = {{visit\'e le}{visit\'e le}},
+ inpreparation = {{en pr\'eparation}{en pr\'ep\adddot}},
+ submitted = {{soumis}{soumis}},
+ forthcoming = {{\`a para\^{\i}tre}{\`a para\adddot}},
+ inpress = {{sous presse}{sous presse}},
+ prepublished = {{pr\'epubli\'e}{pr\'epubl\adddot}},
+ citedas = {{d\'esign\'e ci-apr\`es par}{ci-apr\`es}},
+ thiscite = {{sp\'ecialement}{sp\'ec\adddot}},
+ seenote = {{voir note}{cf\adddotspace note}},
+ quotedin = {{cit\'e dans}{cit\'e dans}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{cf\adddot}{cf\adddot}},
+ seealso = {{cf\adddotspace aussi}{cf\adddotspace aussi}},
+ backrefpage = {{cf\adddotspace page}{cf\adddotspace p\adddot}},
+ backrefpages = {{cf\adddotspace pages}{cf\adddotspace p\adddot}},
+ january = {{janvier}{jan\adddot}},
+ february = {{f\'evrier}{f\'ev\adddot}},
+ march = {{mars}{mar\adddot}},
+ april = {{avril}{avr\adddot}},
+ may = {{mai}{mai}},
+ june = {{juin}{juin}},
+ july = {{juillet}{juil\adddot}},
+ august = {{ao\^ut}{ao\^ut}},
+ september = {{septembre}{sept\adddot}},
+ october = {{octobre}{oct\adddot}},
+ november = {{novembre}{nov\adddot}},
+ december = {{d\'ecembre}{d\'ec\adddot}},
+ langamerican = {{am\'ericain}{am\'ericain}},
+ langbrazilian = {{br\'esilien}{br\'esilien}},
+ langbulgarian = {{bulgare}{bulgare}},
+ langcatalan = {{catalan}{catalan}},
+ langcroatian = {{croate}{croate}},
+ langczech = {{tch\`eque}{tch\`eque}},
+ langdanish = {{danois}{danois}},
+ langdutch = {{n\'eerlandais}{n\'eerlandais}},
+ langenglish = {{anglais}{anglais}},
+ langestonian = {{estonien}{estonien}},
+ langfinnish = {{finnois}{finnois}},
+ langfrench = {{fran\c{c}ais}{fran\c{c}ais}},
+ langgalician = {{galicien}{galicien}},
+ langgerman = {{allemand}{allemand}},
+ langgreek = {{grec}{grec}},
+ langhungarian = {{hongrois}{hongrois}},
+ langitalian = {{italien}{italien}},
+ langjapanese = {{japonais}{japonais}},
+ langlatin = {{latin}{latin}},
+ langlatvian = {{letton}{letton}},
+ langnorwegian = {{norv\'egien}{norv\'egien}},
+ langpolish = {{polonais}{polonais}},
+ langportuguese = {{portugais}{portugais}},
+ langrussian = {{russe}{russe}},
+ langslovak = {{slovaque}{slovaque}},
+ langslovene = {{slov\`ene}{slov\`ene}},
+ langspanish = {{espagnol}{espagnol}},
+ langswedish = {{su\'edois}{su\'edois}},
+ langukrainian = {{ukrainien}{ukrainien}},
+ fromamerican = {{de l'am\'ericain}{de l'am\'ericain}},
+ frombrazilian = {{du br\'esilien}{du br\'esilien}},
+ frombulgarian = {{du bulgare}{du bulgare}},
+ fromcatalan = {{du catalan}{du catalan}},
+ fromcroatian = {{du croate}{du croate}},
+ fromczech = {{du tch\`eque}{du tch\`eque}},
+ fromdanish = {{du danois}{du danois}},
+ fromdutch = {{du n\'eerlandais}{du n\'eerlandais}},
+ fromenglish = {{de l'anglais}{de l'anglais}},
+ fromestonian = {{de l'estonien}{de l'estonien}},
+ fromfinnish = {{du finnois}{du finnois}},
+ fromfrench = {{du fran\c{c}ais}{du fran\c{c}ais}},
+ fromgalician = {{du galicien}{du galicien}},
+ fromgerman = {{de l'allemand}{de l'allemand}},
+ fromgreek = {{du grec}{du grec}},
+ fromhungarian = {{du hongrois}{du hongrois}},
+ fromitalian = {{de l'italien}{de l'italien}},
+ fromjapanese = {{du japonais}{du japonais}},
+ fromlatin = {{du latin}{du latin}},
+ fromlatvian = {{du letton}{du letton}},
+ fromnorwegian = {{du norv\'egien}{du norv\'egien}},
+ frompolish = {{du polonais}{du polonais}},
+ fromportuguese = {{du portugais}{du portugais}},
+ fromrussian = {{du russe}{du russe}},
+ fromslovak = {{du slovaque}{du slovaque}},
+ fromslovene = {{du slov\`ene}{du slov\`ene}},
+ fromspanish = {{de l'espagnol}{de l'espagnol}},
+ fromswedish = {{du su\'edois}{du su\'edois}},
+ fromukrainian = {{de l'ukrainien}{de l'ukrainien}},
+ countryde = {{Allemagne}{DE}},
+ countryeu = {{Union europ\'eenne}{EU}},
+ countryep = {{Union europ\'eenne}{EP}},
+ countryfr = {{France}{FR}},
+ countryuk = {{Royaume-Uni}{GB}},
+ countryus = {{\'Etats-Unis}{US}},
+ patent = {{brevet}{brev\adddot}},
+ patentde = {{brevet allemand}{brev\adddotspace allem\adddot}},
+ patenteu = {{brevet europ\'een}{brev\adddotspace europ\adddot}},
+ patentfr = {{brevet fran\c{c}ais}{brev\adddotspace fran\c{c}\adddot}},
+ patentuk = {{brevet britannique}{brev\adddotspace brit\adddot}},
+ patentus = {{brevet am\'ericain}{brev\adddotspace am\'er\adddot}},
+ patreq = {{demande de brevet}{demande de brev\adddot}},
+ patreqde = {{demande de brevet allemand}{demande de brev\adddotspace allem\adddot}},
+ patreqeu = {{demande de brevet europ\'een}{demande de brev\adddotspace europ\adddot}},
+ patreqfr = {{demande de brevet fran\c{c}ais}{demande de brev\adddotspace fran\c{c}\adddot}},
+ patrequk = {{demande de brevet britannique}{demande de brev\adddotspace brit\adddot}},
+ patrequs = {{demande de brevet am\'ericain}{demande de brev\adddotspace am\'er\adddot}},
+ file = {{fichier}{fichier}},
+ library = {{biblioth\`eque}{biblioth\adddot}},
+ abstract = {{r\'esum\'e}{r\'es\adddot}},
+ annotation = {{annotations}{annotations}},
+ commonera = {{de l'\`ere commune}{EC}},
+ beforecommonera = {{avant l'\`ere commune}{AEC}},
+ annodomini = {{apr\`es J\'esus-Christ}{apr\adddotspace J\adddot-C\adddot}},
+ beforechrist = {{avant J\'esus-Christ}{av\adddotspace J\adddot-C\adddot}},
+ circa = {{vers}{vers}},
+ spring = {{printemps}{printemps}},
+ summer = {{\'et\'e}{\'et\'e}},
+ autumn = {{automne}{automne}},
+ winter = {{hiver}{hiver}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\gdef\lbx@fr@ordinal#1#2{%
+ \begingroup
+ \@tempcnta0#2\relax\number\@tempcnta
+ \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100}%
+ \ifnum\@tempcnta>20
+ \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10}%
+ \fi
+ \ifnum\@tempcnta=\@ne
+ \textsuperscript{#1}%
+ \else
+ \textsuperscript{e}%
+ \fi
+ \endgroup}
+
+\begingroup
+\catcode`\&=3
+
+\gdef\lbx@fr@smartof{%
+ \iftoggle{smartof}{\lbx@fr@smartof@i}{\@gobble}}
+
+\protected\long\gdef\lbx@fr@smartof@i#1{%
+ \global\togglefalse{smartof}%
+ \begingroup
+ \def\forceD##1{a\relax}%
+ \def\forceDE##1{x\relax}%
+ \def\do##1{\let##1\@firstofone}%
+ \abx@dosingleaccents
+ \abx@dodoubleaccents
+ \def\i{i}\def\j{j}%
+ \def\AE{a}\def\ae{a}%
+ \def\OE{o}\def\oe{o}%
+ \def\O{o}\def\o{o}%
+ \let\IeC\@firstofone
+ \let\@tabacckludge\@gobble
+ \ifnum\catcode`\"=\active
+ \uccode`\~=`\"
+ \uppercase{\let~\@empty}%
+ \fi
+ \ifnum\catcode`\~=\active
+ \let~\@empty
+ \fi
+ \let\protect\noexpand
+ \edef\lbx@tempa{#1}%
+ \expandafter\futurelet
+ \expandafter\lbx@tempa
+ \expandafter\lbx@fr@smartof@ii
+ \lbx@tempa&}
+
+\gdef\lbx@fr@smartof@ii{%
+ \ifcat\bgroup\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@fr@smartof@ii##1}%
+ \else\ifcat\noexpand~\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@fr@smartof@ii}%
+ \else
+ \ifnum 0%
+ \if a\noexpand\lbx@tempa 1\fi
+ \if e\noexpand\lbx@tempa 1\fi
+ \if i\noexpand\lbx@tempa 1\fi
+ \if o\noexpand\lbx@tempa 1\fi
+ \if u\noexpand\lbx@tempa 1\fi
+ \if y\noexpand\lbx@tempa 1\fi
+ \if A\noexpand\lbx@tempa 1\fi
+ \if E\noexpand\lbx@tempa 1\fi
+ \if I\noexpand\lbx@tempa 1\fi
+ \if O\noexpand\lbx@tempa 1\fi
+ \if U\noexpand\lbx@tempa 1\fi
+ \if Y\noexpand\lbx@tempa 1\fi
+ >0 %
+ \let\lbx@tempa\lbx@fr@smartof@d
+ \else
+ \ifnum 0%
+ \if h\noexpand\lbx@tempa 1\fi
+ \if H\noexpand\lbx@tempa 1\fi
+ >0 %
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@fr@smartof@ii}%
+ \else
+ \let\lbx@tempa\lbx@fr@smartof@de
+ \fi\fi\fi\fi
+ \lbx@tempa}
+
+\gdef\lbx@fr@smartof@d#1&{\endgroup d'}
+\gdef\lbx@fr@smartof@de#1&{\endgroup de\space}
+
+\endgroup
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/galician.lbx b/macros/latex/contrib/biblatex/latex/lbx/galician.lbx
new file mode 100644
index 0000000000..5cd3085e00
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/galician.lbx
@@ -0,0 +1,534 @@
+\ProvidesFile{galician.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{galician}{galician}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \def\mkbibordinal{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{%
+ \stripzeros{#1}\textordmasculine}% \textordmasculine -> textcomp.sty
+ \protected\def\mkbibfemord#1{%
+ \stripzeros{#1}\textordfeminine}% \textordfeminine -> textcomp.sty
+ \protected\def\mkbibneutord{\mkbibmascord}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace de\space}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\nobreakspace de\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{/}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibfemord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliograf\'ia}{Bibliograf\'ia}},
+ references = {{Referencias}{Referencias}},
+ shorthands = {{Lista de abreviaturas}{Abreviaturas}},
+ editor = {{editor}{ed\adddot}},
+ editors = {{editores}{eds\adddot}},
+ compiler = {{compilador}{comp\adddot}},
+ compilers = {{compiladores}{comp\adddot}},
+ redactor = {{redactor}{red\adddot}},
+ redactors = {{redactores}{red\adddot}},
+ reviser = {{revisor}{rev\adddot}},
+ revisers = {{revisores}{revs\adddot}},
+ founder = {{fundador}{fund\adddot}},
+ founders = {{fundadores}{fund\adddot}},
+ continuator = {{continuador}{cont\adddot}},
+ continuators = {{continuadores}{cont\adddot}},
+ collaborator = {{colaborador}{col\adddot}},
+ collaborators = {{colaboradores}{cols\adddot}},
+ translator = {{tradutor}{trad\adddot}},
+ translators = {{tradutores}{trads\adddot}},
+ commentator = {{comentador}{coment\adddot}},
+ commentators = {{comentadores}{coments\adddot}},
+ annotator = {{anotador}{anot\adddot}},
+ annotators = {{anotadores}{anots\adddot}},
+ commentary = {{comentario}{coment\adddot}},
+ annotations = {{notas}{notas}},
+ introduction = {{introduci\'on}{introd\adddot}},
+ foreword = {{prefacio}{pref\adddot}},
+ afterword = {{posfacio}{posf\adddot}},
+ editortr = {{editor e tradutor}%
+ {ed\adddotspace e trad\adddot}},
+ editorstr = {{editores e tradutores}%
+ {eds\adddotspace e trads\adddot}},
+ editorco = {{editor e comentador}%
+ {ed\adddotspace e coment\adddot}},
+ editorsco = {{editores e comentadores}%
+ {eds\adddotspace e coments\adddot}},
+ editoran = {{editor e anotador}%
+ {ed\adddotspace e anot\adddot}},
+ editorsan = {{editores e anotadores}%
+ {eds\adddotspace e anots\adddot}},
+ editorin = {{editor e introduci\'on}%
+ {ed\adddotspace e introd\adddot}},
+ editorsin = {{editores e introduci\'on}%
+ {eds\adddotspace e introd\adddot}},
+ editorfo = {{editor e prefacio}%
+ {ed\adddotspace e pref\adddot}},
+ editorsfo = {{editores e prefacio}%
+ {eds\adddotspace e pref\adddot}},
+ editoraf = {{editor e posfacio}%
+ {ed\adddotspace e posf\adddot}},
+ editorsaf = {{editores e posfacio}%
+ {eds\adddotspace e posf\adddot}},
+ editortrco = {{editor, tradutor e comentador}%
+ {ed., trad\adddot\ e coment\adddot}},
+ editorstrco = {{editores, tradutores e comentadores}%
+ {eds., trads\adddot\ e coments\adddot}},
+ editortran = {{editor, tradutor e anotador}%
+ {ed., trad\adddot\ e anot\adddot}},
+ editorstran = {{editores, tradutores e anotadores}%
+ {eds., trads\adddot\ e anots\adddot}},
+ editortrin = {{editor, tradutor e introduci\'on}%
+ {ed., trad\adddot\ e introd\adddot}},
+ editorstrin = {{editores, tradutores e introduci\'on}%
+ {eds., trads\adddot\ e introd\adddot}},
+ editortrfo = {{editor, tradutor e prefacio}%
+ {ed., trad\adddot\ e pref\adddot}},
+ editorstrfo = {{editores, tradutores e prefacio}%
+ {eds., trads\adddot\ e pref\adddot}},
+ editortraf = {{editor, tradutor e posfacio}%
+ {ed., trad\adddot\ e posf\adddot}},
+ editorstraf = {{editores, tradutores e posfacio}%
+ {eds., trads\adddot\ e posf\adddot}},
+ editorcoin = {{editor, comentador e introduci\'on}%
+ {ed., coment\adddot\ e introd\adddot}},
+ editorscoin = {{editores, comentadores e introduci\'on}%
+ {eds., coments\adddot\ e introd\adddot}},
+ editorcofo = {{editor, comentador e prefacio}%
+ {ed., coment\adddot\ e pref\adddot}},
+ editorscofo = {{editores, comentadores e prefacio}%
+ {eds., coments\adddot\ e pref\adddot}},
+ editorcoaf = {{editor, comentador e posfacio}%
+ {ed., coment\adddot\ e posf\adddot}},
+ editorscoaf = {{editores, comentadores e posfacio}%
+ {eds., coments\adddot\ e posf\adddot}},
+ editoranin = {{editor, anotador e introduci\'on}%
+ {ed., anot\adddot\ e introd\adddot}},
+ editorsanin = {{editores, anotadores e introduci\'on}%
+ {eds., anots\adddot\ e introd\adddot}},
+ editoranfo = {{editor, anotador e prefacio}%
+ {ed., anot\adddot\ e pref\adddot}},
+ editorsanfo = {{editores, anotadores e prefacio}%
+ {eds., anots\adddot\ e pref\adddot}},
+ editoranaf = {{editor, anotador e posfacio}%
+ {ed., anot\adddot\ e posf\adddot}},
+ editorsanaf = {{editores, anotadores e posfacio}%
+ {eds., anots\adddot\ e posf\adddot}},
+ editortrcoin = {{editor, tradutor, comentador e introduci\'on}%
+ {ed., trad., coment\adddot\ e introd\adddot}},
+ editorstrcoin = {{editores, tradutores, comentadores e introduci\'on}%
+ {eds., trads., coments\adddot\ e introd\adddot}},
+ editortrcofo = {{editor, tradutor, comentador e prefacio}%
+ {ed., trad., coment\adddot\ e pref\adddot}},
+ editorstrcofo = {{editores, tradutores, comentadores e prefacio}%
+ {eds., trads., coments\adddot\ e pref\adddot}},
+ editortrcoaf = {{editor, tradutor, comentador e posfacio}%
+ {ed., trad., coment\adddot\ e posf\adddot}},
+ editorstrcoaf = {{editores, tradutores, comentadores e posfacio}%
+ {eds., trads., coments\adddot\ e posf\adddot}},
+ editortranin = {{editor, tradutor, anotador e introduci\'on}%
+ {ed., trad., anot\adddot\ e introd\adddot}},
+ editorstranin = {{editores, tradutores, anotadores e introduci\'on}%
+ {eds., trads., anots\adddot\ e introd\adddot}},
+ editortranfo = {{editor, tradutor, anotador e prefacio}%
+ {ed., trad., anot\adddot\ e pref\adddot}},
+ editorstranfo = {{editores, tradutores, anotadores e prefacio}%
+ {eds., trads., anots\adddot\ e pref\adddot}},
+ editortranaf = {{editor, tradutor, anotador e posfacio}%
+ {ed., trad., anot\adddot\ e posf\adddot}},
+ editorstranaf = {{editores, tradutores, anotadores e posfacio}%
+ {eds., trads., anots\adddot\ e posf\adddot}},
+ translatorco = {{tradutor e comentador}%
+ {trad\adddot\ e coment\adddot}},
+ translatorsco = {{tradutores e comentadores}%
+ {trads\adddot\ e coments\adddot}},
+ translatoran = {{tradutor e anotador}%
+ {trad\adddot\ e anot\adddot}},
+ translatorsan = {{tradutores e anotadores}%
+ {trads\adddot\ e anots\adddot}},
+ translatorin = {{traduci\'on e introduci\'on}%
+ {trad\adddot\ e introd\adddot}},
+ translatorsin = {{traduci\'on e introduci\'on}%
+ {trad\adddot\ e introd\adddot}},
+ translatorfo = {{traduci\'on e prefacio}%
+ {trad\adddot\ e pref\adddot}},
+ translatorsfo = {{traduci\'on e prefacio}%
+ {trad\adddot\ e pref\adddot}},
+ translatoraf = {{traduci\'on e posfacio}%
+ {trad\adddot\ e posf\adddot}},
+ translatorsaf = {{traduci\'on e posfacio}%
+ {trad\adddot\ e posf\adddot}},
+ translatorcoin = {{traduci\'on, comentario e introduci\'on}%
+ {trad., coment\adddot\ e introd\adddot}},
+ translatorscoin = {{traduci\'on, comentario e introduci\'on}%
+ {trad., coment\adddot\ e introd\adddot}},
+ translatorcofo = {{traduci\'on, comentario e prefacio}%
+ {trad., coment\adddot\ e pref\adddot}},
+ translatorscofo = {{traduci\'on, comentario e prefacio}%
+ {trad., coment\adddot\ e pref\adddot}},
+ translatorcoaf = {{traduci\'on, comentario e posfacio}%
+ {trad., coment\adddot\ e posf\adddot}},
+ translatorscoaf = {{traduci\'on, comentario e posfacio}%
+ {trad., coment\adddot\ e posf\adddot}},
+ translatoranin = {{traduci\'on, notas e introduci\'on}%
+ {trad., notas e introd\adddot}},
+ translatorsanin = {{traduci\'on, notas e introduci\'on}%
+ {trad., notas e introd\adddot}},
+ translatoranfo = {{traduci\'on, notas e prefacio}%
+ {trad., notas e pref\adddot}},
+ translatorsanfo = {{traduci\'on, notas e prefacio}%
+ {trad., notas e pref\adddot}},
+ translatoranaf = {{traduci\'on, notas e posfacio}%
+ {trad., notas e posf\adddot}},
+ translatorsanaf = {{traduci\'on, notas e posfacio}%
+ {trad., notas e posf\adddot}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{por}{por}},
+ byeditor = {{editado por}{ed\adddotspace por}},
+ bycompiler = {{compilado por}{comp\adddotspace por}},
+ byredactor = {{redactado por}{red\adddotspace por}},
+ byreviser = {{revisto por}{rev\adddotspace por}},
+ byreviewer = {{avaliado por}{aval\adddotspace por}},
+ byfounder = {{fundado por}{fund\adddotspace por}},
+ bycontinuator = {{continuado por}{cont\adddotspace por}},
+ bycollaborator = {{en colaboraci\'on con}{en col\adddotspace con}},
+ bytranslator = {{traducido \lbx@lfromlang\ por}{trad\adddot\ \lbx@sfromlang\ por}},
+ bycommentator = {{comentado por}{com\adddot\ por}},
+ byannotator = {{notas de}{notas de}},
+ withcommentator = {{con comentarios de}{con coment\adddot\ de}},
+ withannotator = {{con notas de}{con notas de}},
+ withintroduction = {{con introduci\'on de}{con introd\adddot\ de}},
+ withforeword = {{con prefacio de}{con pref\adddot\ de}},
+ withafterword = {{con posfacio de}{con posf\adddot\ de}},
+ byeditortr = {{editado e traducido \lbx@lfromlang\ por}%
+ {ed\adddotspace e trad\adddot\ \lbx@sfromlang\ por}},
+ byeditorco = {{editado e comentado por}%
+ {ed\adddotspace e com\adddot\ por}},
+ byeditoran = {{editado e anotado por}%
+ {ed\adddotspace e anot\adddot\ por}},
+ byeditorin = {{editado e introducido por}%
+ {ed\adddotspace e introd\adddot\ por}},
+ byeditorfo = {{editado e prefaciado por}%
+ {ed\adddotspace e pref\adddot\ por}},
+ byeditoraf = {{editado e posfaciado por}%
+ {ed\adddotspace e posf\adddot\ por}},
+ byeditortrco = {{editado, traducido \lbx@lfromlang\ e comentado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e com\adddot\ por}},
+ byeditortran = {{editado, traducido \lbx@lfromlang\ e anotado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}},
+ byeditortrin = {{editado, traducido \lbx@lfromlang\ e introducido por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e introd\adddot\ por}},
+ byeditortrfo = {{editado, traducido \lbx@lfromlang\ e prefaciado por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e pref\adddot\ por}},
+ byeditortraf = {{editado, traducido \lbx@lfromlang\ e posfaciado por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e posf\adddot\ por}},
+ byeditorcoin = {{editado, comentado e introducido por}%
+ {ed.,\addabbrvspace com\adddot\ e introd\adddot\ por}},
+ byeditorcofo = {{editado, comentado e prefaciado por}%
+ {ed.,\addabbrvspace com\adddot\ e pref\adddot\ por}},
+ byeditorcoaf = {{editado, comentado e posfaciado por}%
+ {ed.,\addabbrvspace com\adddot\ e posf\adddot\ por}},
+ byeditoranin = {{editado, anotado e introducido por}%
+ {ed.,\addabbrvspace anot\adddot\ e introd\adddot\ por}},
+ byeditoranfo = {{editado, anotado e prefaciado por}%
+ {ed.,\addabbrvspace anot\adddot\ e pref\adddot\ por}},
+ byeditoranaf = {{editado, anotado e posfaciado por}%
+ {ed.,\addabbrvspace anot\adddot\ e posf\adddot\ por}},
+ byeditortrcoin = {{editado, traducido \lbx@lfromlang, comentado e introducido por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, com\adddot\ e introd\adddot\ por}},
+ byeditortrcofo = {{editado, traducido \lbx@lfromlang, comentado e prefaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, com\adddot\ e pref\adddot\ por}},
+ byeditortrcoaf = {{editado, traducido \lbx@lfromlang, comentado e posfaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, com\adddot\ e posf\adddot\ por}},
+ byeditortranin = {{editado, traducido \lbx@lfromlang, anotado e introducido por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}},
+ byeditortranfo = {{editado, traducido \lbx@lfromlang, anotado e prefaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}},
+ byeditortranaf = {{editado, traducido \lbx@lfromlang, anotado e posfaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}},
+ bytranslatorco = {{traducido \lbx@lfromlang\ e comentado por}%
+ {trad\adddot\ \lbx@sfromlang\ e com\adddot\ por}},
+ bytranslatoran = {{traducido \lbx@lfromlang\ e anotado por}%
+ {trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}},
+ bytranslatorin = {{traducido \lbx@lfromlang\ e introducido por}%
+ {trad\adddot\ \lbx@sfromlang\ e introd\adddot\ por}},
+ bytranslatorfo = {{traducido \lbx@lfromlang\ e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang\ e pref\adddot\ por}},
+ bytranslatoraf = {{traducido \lbx@lfromlang\ e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang\ e posf\adddot\ por}},
+ bytranslatorcoin = {{traducido \lbx@lfromlang, comentado e introducido por}%
+ {trad\adddot\ \lbx@sfromlang, com\adddot\ e introd\adddot\ por}},
+ bytranslatorcofo = {{traducido \lbx@lfromlang, comentado e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang, com\adddot\ e pref\adddot\ por}},
+ bytranslatorcoaf = {{traducido \lbx@lfromlang, comentado e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang, com\adddot\ e posf\adddot\ por}},
+ bytranslatoranin = {{traducido \lbx@lfromlang, anotado e introducido por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}},
+ bytranslatoranfo = {{traducido \lbx@lfromlang, anotado e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}},
+ bytranslatoranaf = {{traducido \lbx@lfromlang, anotado e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}},
+ and = {{e}{e}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{volume}{vol\adddot}},
+ volumes = {{volumes}{vols\adddot}},
+ involumes = {{en}{en}},
+ jourvol = {{volume}{vol\adddot}},
+ jourser = {{serie}{ser\adddot}},
+ book = {{libro}{libro}},
+ part = {{parte}{parte}},
+ issue = {{n\'umero}{n\'umero}},
+ newseries = {{nova serie}{nova ser\adddot}},
+ oldseries = {{serie antiga}{ser\adddot\ antiga}},
+ edition = {{edici\'on}{ed\adddot}},
+ reprint = {{reimpresi\'on}{reimpr\adddot}},
+ reprintof = {{reimpresi\'on' de}{reimpr\adddotspace de}},
+ reprintas = {{reimpreso como}{reimpr\adddotspace como}},
+ reprintfrom = {{reimpreso de}{reimpr\adddotspace de}},
+ translationof = {{traduci\'on de}{trad\adddotspace de}},
+ translationas = {{traducido como}{trad\adddotspace como}},
+ translationfrom = {{traducido de}{trad\adddotspace de}},
+ reviewof = {{recensi\'on de}{rec.\adddotspace de}},
+ origpubas = {{orixinalmente publicado como}{orix\adddotspace pub\adddotspace como}},
+ origpubin = {{orixinalmente publicado en}{orix\adddotspace pub\adddotspace en}},
+ astitle = {{como}{como}},
+ bypublisher = {{por}{por}},
+nodate = {{sen data}{s\adddot d\adddot}},
+ page = {{p\'axina}{p\adddot}},
+ pages = {{p\'axinas}{pp\adddot}},
+ column = {{coluna}{col\adddot}},
+ columns = {{colunas}{cols\adddot}},
+ line = {{li\~{n}a}{l\adddot}},
+ lines = {{li\~{n}as}{ll\adddot}},
+ verse = {{verso}{v\adddot}},
+ verses = {{versos}{vv\adddot}},
+ section = {{secci\'on}{\S}},
+ sections = {{secci\'ons'}{\S\S}},
+ paragraph = {{par\'agrafo}{par\adddot}},
+ paragraphs = {{par\'agrafo}{pars\adddot}},
+% pagetotal = {{}{}},% FIXME: missing
+% pagetotals = {{}{}},% FIXME: missing
+% columntotal = {{}{}},% FIXME: missing
+% columntotals = {{}{}},% FIXME: missing
+% linetotal = {{}{}},% FIXME: missing
+% linetotals = {{}{}},% FIXME: missing
+% versetotal = {{}{}},% FIXME: missing
+% versetotals = {{}{}},% FIXME: missing
+% sectiontotal = {{}{}},% FIXME: missing
+% sectiontotals = {{}{}},% FIXME: missing
+% paragraphtotal = {{}{}},% FIXME: missing
+% paragraphtotals = {{}{}},% FIXME: missing
+ in = {{en}{en}},
+ inseries = {{en}{en}},
+ ofseries = {{de}{de}},
+ number = {{n\'umero}{n\adddot\textordmasculine}},
+ chapter = {{cap\'itulo}{cap\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{tese de mestrado}{tese de mestrado}},
+ phdthesis = {{tese de doutoramento}{tese de doutoramento}},
+ candthesis = {{proposta de tese}{proposta de tese}},
+ resreport = {{memoria de investigaci\'on'}{mem\adddotspace de inv\adddot}},
+ techreport = {{informe t\'ecnico}{inf\adddotspace t\'ec\adddot}},
+ software = {{software}{software}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{CD audio}{CD audio}},
+ version = {{versi\'on'}{versi\'on}},
+ url = {{URL}{URL}},
+ urlfrom = {{URL}{URL}},
+ urlseen = {{accedido en}{accedido en}},
+ inpreparation = {{en preparaci\'on'}{en prep\adddot}},
+ submitted = {{enviado}{env\adddot}},
+ forthcoming = {{no prelo}{no prelo}},
+ inpress = {{no prelo}{no prelo}},
+ prepublished = {{prepublicado}{prepub\adddot}},
+ citedas = {{de agora en diante}{de agora en diante}},
+ seenote = {{ver nota}{ver nota}},
+ quotedin = {{citado en}{citado en}},
+ idem = {{\'idem}{\'idem}},
+ idemsm = {{\'idem}{\'idem}},
+ idemsf = {{\'idem}{\'idem}},
+ idemsn = {{\'idem}{\'idem}},
+ idempm = {{\'idem}{\'idem}},
+ idempf = {{\'idem}{\'idem}},
+ idempn = {{\'idem}{\'idem}},
+ idempp = {{\'idem}{\'idem}},
+ ibidem = {{ib\'idem}{ib\'id\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{p\'assim}{p\'ass\adddot}},
+ see = {{v\'exase}{vid\adddotspace}},
+ seealso = {{v\'exase tam\'en}{vid\adddotspace tam\'en}},
+ backrefpage = {{v\'exase p\'axina}{vid\adddotspace p\adddot}},
+ backrefpages = {{v\'exanse p\'axinas}{vid\adddotspace pp\adddot}},
+ january = {{xaneiro}{xan\adddot}},
+ february = {{febreiro}{feb\adddot}},
+ march = {{marzo}{mar\adddot}},
+ april = {{abril}{abr\adddot}},
+ may = {{maio}{maio}},
+ june = {{xu\~{n}o}{xu\~{n}\adddot}},
+ july = {{xullo}{xul\adddot}},
+ august = {{agosto}{ago\adddot}},
+ september = {{setembro}{set\adddot}},
+ october = {{outubro}{out\adddot}},
+ november = {{novembro}{nov\adddot}},
+ december = {{decembro}{dec\adddot}},
+ langamerican = {{ingl\'es americano}{ing\adddotspace am\adddot}},
+ langbulgarian = {{b\'ulgaro}{b\'ulg\adddot}},
+ langbrazilian = {{portugu\'es brasileiro}{port\adddotspace br\adddot}},
+ langcatalan = {{catal\'an}{cat\adddot}},
+ langcroatian = {{croata}{croata}},
+ langczech = {{checo}{checo}},
+ langdanish = {{dinamarqu\'es}{dan\'es}},
+ langdutch = {{neerland\'es}{neerl\adddot}},
+ langenglish = {{ingl\'es}{ing\adddot}},
+ langestonian = {{estoniano}{eston\adddot}},
+ langfinnish = {{fin\'es}{fin\'es}},
+ langfrench = {{franc\'es}{fr\adddot}},
+ langgalician = {{galego}{gal\adddot}},
+ langgerman = {{alem\'an}{al\adddot}},
+ langgreek = {{grego}{grego}},
+ langhungarian = {{h\'ungaro}{h\'ungaro}},
+ langitalian = {{italiano}{ital\adddot}},
+ langlatin = {{lat\'in}{lat\adddot}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{noruegu\'es}{nor\adddot}},
+ langpolish = {{polaco}{pol\adddot}},
+ langportuguese = {{portugu\'es}{port\adddot}},
+ langrussian = {{ruso}{ruso}},
+% langslovak = {{}{}},% FIXME: missing
+ langslovene = {{esloveno}{eslov\adddot}},
+ langspanish = {{castel\'an}{cast\adddot}},
+ langswedish = {{sueco}{sueco}},
+ fromamerican = {{do ingl\'es americano}{do ingl\adddotspace am\adddot}},
+ frombulgarian = {{do b\'ulgaro}{do b\'ulg\adddot}},
+ frombrazilian = {{do portugu\'es brasileiro}{do port\adddotspace br\adddot}},
+ fromcatalan = {{do catal\~ao}{do cat\adddot}},
+ fromcroatian = {{do croata}{do croata}},
+ fromczech = {{do checo}{do checo}},
+ fromdanish = {{do dinamarqu\'es}{do dan\'es}},
+ fromdutch = {{do neerland\'es}{do neerl\adddot}},
+ fromenglish = {{do ingl\'es}{do ing\adddot}},
+ fromestonian = {{do estoniano}{do eston\adddot}},
+ fromfinnish = {{do fin\'es}{do fin\'es}},
+ fromfrench = {{do franc\'es}{do fr\adddot}},
+ fromgalician = {{do galego}{do gal\adddot}},
+ fromgerman = {{do alem\'an}{do al\adddot}},
+ fromgreek = {{do grego}{do grego}},
+ fromhungarian = {{do h\'ungaro}{do h\'ungaro}},
+ fromitalian = {{do italiano}{do ital\adddot}},
+ fromlatin = {{do lat\'in'}{do lat\adddot}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{do noruegu\'es}{do nor\adddot}},
+ frompolish = {{do polaco}{do pol\adddot}},
+ fromportuguese = {{do portugu\'es}{do port\adddot}},
+ fromrussian = {{do ruso}{do ruso}},
+% fromslovak = {{}{}},% FIXME: missing
+ fromslovene = {{do esloveno}{do eslov\adddot}},
+ fromspanish = {{do castel\'an}{do cast\adddot}},
+ fromswedish = {{do sueco}{do sueco}},
+ countryde = {{Aleman\{{n}a}{DE}},
+ countryeu = {{Uni\'on Europea}{EU}},
+ countryep = {{Uni\'on Europea}{EU}},
+ countryfr = {{Francia}{FR}},
+ countryuk = {{Reino Unido}{GB}},
+ countryus = {{Estados Unidos de Am\'erica}{EUA}},
+ patent = {{patente}{pat\adddot}},
+ patentde = {{patente alem\'a}{pat\adddot\ al\adddot}},
+ patenteu = {{patente europea}{pat\adddot\ eur\adddot}},
+ patentfr = {{patente francesa}{pat\adddot fr\adddot}},
+ patentuk = {{patente brit\'anica}{pat\adddot\ brit\adddot}},
+ patentus = {{patente americana}{pat\adddot\ am\adddot}},
+ patreq = {{solicitude de patente}{sol\adddot\ de pat\adddot}},
+ patreqde = {{solicitude de patente alem\'a}{sol\adddot\ de pat\adddot\ al\adddot}},
+ patreqeu = {{solicitude de patente europea}{sol\adddot\ de pat\adddot\ eur\adddot}},
+ patreqfr = {{solicitude de patente francesa}{sol\adddot\ de pat\adddot\ fr\adddot}},
+ patrequk = {{solicitude de patente brit\'anica}{sol\adddot\ de pat\adddot\ brit\adddot}},
+ patrequs = {{solicitude de patente americana}{sol\adddot\ de pat\adddot\ EUA}},
+ file = {{arquivo}{arq\adddot}},
+ library = {{biblioteca}{bibl\adddot}},
+ abstract = {{resumo}{res\adddot}},
+ annotation = {{anotaci\'on}{anot\adddot}},
+ commonera = {{Era Com\'un'}{EC}},
+ beforecommonera = {{antes da Era Com\'un'}{AEC}},
+ annodomini = {{despois de Cristo}{d\adddot C\adddot}},
+ beforechrist = {{antes de Cristo}{a\adddot C\adddot}},
+ circa = {{circa}{ca\adddot}},
+ spring = {{primavera}{primavera}},
+ summer = {{ver\'an}{ver\'an}},
+ autumn = {{outono}{outono}},
+ winter = {{inverno}{inverno}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/german.lbx b/macros/latex/contrib/biblatex/latex/lbx/german.lbx
new file mode 100644
index 0000000000..d133f04c53
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/german.lbx
@@ -0,0 +1,551 @@
+\ProvidesFile{german.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{german}{german,ngerman,austrian,naustrian,nswissgerman,swissgerman}
+
+\DeclareBibliographyExtras{%
+ \DeclareCapitalPunctuation{.:!?}%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot
+ \iffieldundef{#2}{}{\thinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldundef{#3}{/}{\adddot\thinspace}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\lbx@lfromlang
+ \savecommand\lbx@sfromlang
+ \def\lbx@lfromlang{%
+ \iflistundef{origlanguage}
+ {}
+ {\printlist[lfromoriglanguage]{origlanguage}\space}}%
+ \def\lbx@sfromlang{%
+ \iflistundef{origlanguage}
+ {}
+ {\printlist[sfromoriglanguage]{origlanguage}\space}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\lbx@lfromlang
+ \restorecommand\lbx@sfromlang
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Literaturverzeichnis}{Literatur}},
+ references = {{Literaturverzeichnis}{Literatur}},
+ shorthands = {{Sigelverzeichnis}{Sigel}},
+ editor = {{Herausgeber}{Hrsg\adddot}},
+ editors = {{Herausgeber}{Hrsg\adddot}},
+ compiler = {{Kompilator}{Komp\adddot}},
+ compilers = {{Kompilatoren}{Komp\adddot}},
+ redactor = {{Bearbeiter}{Bearb\adddot}},
+ redactors = {{Bearbeiter}{Bearb\adddot}},
+ reviser = {{\"Uberarbeiter}{\"Uberarb\adddot}},
+ revisers = {{\"Uberarbeiter}{\"Uberarb\adddot}},
+ founder = {{Begr\"under}{Begr\adddot}},
+ founders = {{Begr\"under}{Begr\adddot}},
+ continuator = {{Fortf\"uhrer}{Fortf\adddot}},
+ continuators = {{Fortf\"uhrer}{Fortf\adddot}},
+ collaborator = {{Mitarbeiter}{Mitarb\adddot}},
+ collaborators = {{Mitarbeiter}{Mitarb\adddot}},
+ translator = {{\"Ubersetzer}{\"Ubers\adddot}},
+ translators = {{\"Ubersetzer}{\"Ubers\adddot}},
+ commentator = {{Kommentator}{Komm\adddot}},
+ commentators = {{Kommentatoren}{Komm\adddot}},
+ annotator = {{Kommentator}{Komm\adddot}},
+ annotators = {{Kommentatoren}{Komm\adddot}},
+ commentary = {{Kommentar}{Komm\adddot}},
+ annotations = {{Erl\"auterungen}{Erl\"aut\adddot}},
+ introduction = {{Einleitung}{Einl\adddot}},
+ foreword = {{Vorwort}{Vorw\adddot}},
+ afterword = {{Nachwort}{Nachw\adddot}},
+ editortr = {{Herausgeber und \"Ubersetzer}%
+ {Hrsg\adddot\ und \"Ubers\adddot}},
+ editorstr = {{Herausgeber und \"Ubersetzer}%
+ {Hrsg\adddot\ und \"Ubers\adddot}},
+ editorco = {{Herausgeber und Kommentator}%
+ {Hrsg\adddot\ und Komm\adddot}},
+ editorsco = {{Herausgeber und Kommentatoren}%
+ {Hrsg\adddot\ und Komm\adddot}},
+ editoran = {{Herausgeber und Kommentator}%
+ {Hrsg\adddot\ und Komm\adddot}},
+ editorsan = {{Herausgeber und Kommentatoren}%
+ {Hrsg\adddot\ und Komm\adddot}},
+ editorin = {{Herausgabe und Einleitung}%
+ {Hrsg\adddot\ und Einl\adddot}},
+ editorsin = {{Herausgeber und Einleitung}%
+ {Hrsg\adddot\ und Einl\adddot}},
+ editorfo = {{Herausgeber und Vorwort}%
+ {Hrsg\adddot\ und Vorw\adddot}},
+ editorsfo = {{Herausgabe und Vorwort}%
+ {Hrsg\adddot\ und Vorw\adddot}},
+ editoraf = {{Herausgabe und Nachwort}%
+ {Hrsg\adddot\ und Nachw\adddot}},
+ editorsaf = {{Herausgabe und Nachwort}%
+ {Hrsg\adddot\ und Nachw\adddot}},
+ editortrco = {{Herausgeber, \"Ubersetzer und Kommentator}%
+ {Hrsg., \"Ubers\adddot\ und Komm\adddot}},
+ editorstrco = {{Herausgeber, \"Ubersetzer und Kommentatoren}%
+ {Hrsg., \"Ubers\adddot\ und Komm\adddot}},
+ editortran = {{Herausgeber, \"Ubersetzer und Kommentator}%
+ {Hrsg., \"Ubers\adddot\ und Komm\adddot}},
+ editorstran = {{Herausgeber, \"Ubersetzer und Kommentatoren}%
+ {Hrsg., \"Ubers\adddot\ und Komm\adddot}},
+ editortrin = {{Herausgabe, \"Ubersetzung und Einleitung}%
+ {Hrsg., \"Ubers\adddot\ und Einl\adddot}},
+ editorstrin = {{Herausgabe, \"Ubersetzung und Einleitung}%
+ {Hrsg., \"Ubers\adddot\ und Einl\adddot}},
+ editortrfo = {{Herausgabe, \"Ubersetzung und Vorwort}%
+ {Hrsg., \"Ubers\adddot\ und Vorw\adddot}},
+ editorstrfo = {{Herausgabe, \"Ubersetzung und Vorwort}%
+ {Hrsg., \"Ubers\adddot\ und Vorw\adddot}},
+ editortraf = {{Herausgabe, \"Ubersetzung und Nachwort}%
+ {Hrsg., \"Ubers\adddot\ und Nachw\adddot}},
+ editorstraf = {{Herausgabe, \"Ubersetzung und Nachwort}%
+ {Hrsg., \"Ubers\adddot\ und Nachw\adddot}},
+ editorcoin = {{Herausgabe, Kommentar und Einleitung}%
+ {Hrsg., Komm\adddot\ und Einl\adddot}},
+ editorscoin = {{Herausgabe, Kommentar und Einleitung}%
+ {Hrsg., Komm\adddot\ und Einl\adddot}},
+ editorcofo = {{Herausgabe, Kommentar und Vorwort}%
+ {Hrsg., Komm\adddot\ und Vorw\adddot}},
+ editorscofo = {{Herausgabe, Kommentar und Vorwort}%
+ {Hrsg., Komm\adddot\ und Vorw\adddot}},
+ editorcoaf = {{Herausgabe, Kommentar und Nachwort}%
+ {Hrsg., Komm\adddot\ und Nachw\adddot}},
+ editorscoaf = {{Herausgabe, Kommentar und Nachwort}%
+ {Hrsg., Komm\adddot\ und Nachw\adddot}},
+ editoranin = {{Herausgabe, Erl\"auterungen und Einleitung}%
+ {Hrsg., Erl\"aut\adddot\ und Einl\adddot}},
+ editorsanin = {{Herausgabe, Erl\"auterungen und Einleitung}%
+ {Hrsg., Erl\"aut\adddot\ und Einl\adddot}},
+ editoranfo = {{Herausgabe, Erl\"auterungen und Vorwort}%
+ {Hrsg., Erl\"aut\adddot\ und Vorw\adddot}},
+ editorsanfo = {{Herausgabe, Erl\"auterungen und Vorwort}%
+ {Hrsg., Erl\"aut\adddot\ und Vorw\adddot}},
+ editoranaf = {{Herausgabe, Erl\"auterungen und Nachwort}%
+ {Hrsg., Erl\"aut\adddot\ und Nachw\adddot}},
+ editorsanaf = {{Herausgabe, Erl\"auterungen und Nachwort}%
+ {Hrsg., Erl\"aut\adddot\ und Nachw\adddot}},
+ editortrcoin = {{Herausgabe, \"Ubersetzung, Kommentar und Einleitung}%
+ {Hrsg., \"Ubers., Komm\adddot\ und Einl\adddot}},
+ editorstrcoin = {{Herausgabe, \"Ubersetzung, Kommentar und Einleitung}%
+ {Hrsg., \"Ubers., Komm\adddot\ und Einl\adddot}},
+ editortrcofo = {{Herausgabe, \"Ubersetzung, Kommentar und Vorwort}%
+ {Hrsg., \"Ubers., Komm\adddot\ und Vorw\adddot}},
+ editorstrcofo = {{Herausgabe, \"Ubersetzung, Kommentar und Vorwort}%
+ {Hrsg., \"Ubers., Komm\adddot\ und Vorw\adddot}},
+ editortrcoaf = {{Herausgabe, \"Ubersetzung, Kommentar und Nachwort}%
+ {Hrsg., \"Ubers., Komm\adddot\ und Nachw\adddot}},
+ editorstrcoaf = {{Herausgabe, \"Ubersetzung, Kommentar und Nachwort}%
+ {Hrsg., \"Ubers., Komm\adddot\ und Nachw\adddot}},
+ editortranin = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Einleitung}%
+ {Hrsg., \"Ubers., Erl\"aut\adddot\ und Einl\adddot}},
+ editorstranin = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Einleitung}%
+ {Hrsg., \"Ubers., Erl\"aut\adddot\ und Einl\adddot}},
+ editortranfo = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Vorwort}%
+ {Hrsg., \"Ubers., Erl\"aut\adddot\ und Vorw\adddot}},
+ editorstranfo = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Vorwort}%
+ {Hrsg., \"Ubers., Erl\"aut\adddot\ und Vorw\adddot}},
+ editortranaf = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Nachwort}%
+ {Hrsg., \"Ubers., Erl\"aut\adddot\ und Nachw\adddot}},
+ editorstranaf = {{Herausgabe, \"Ubersetzung, Erl\"auterungen und Nachwort}%
+ {Hrsg., \"Ubers., Erl\"aut\adddot\ und Nachw\adddot}},
+ translatorco = {{\"Ubersetzung und Kommentar}%
+ {\"Ubers\adddot\ und Komm\adddot}},
+ translatorsco = {{\"Ubersetzung und Kommentar}%
+ {\"Ubers\adddot\ und Komm\adddot}},
+ translatoran = {{\"Ubersetzung und Erl\"auterungen}%
+ {\"Ubers\adddot\ und Erl\"aut\adddot}},
+ translatorsan = {{\"Ubersetzung und Erl\"auterungen}%
+ {\"Ubers\adddot\ und Erl\"aut\adddot}},
+ translatorin = {{\"Ubersetzung und Einleitung}%
+ {\"Ubers\adddot\ und Einl\adddot}},
+ translatorsin = {{\"Ubersetzung und Einleitung}%
+ {\"Ubers\adddot\ und Einl\adddot}},
+ translatorfo = {{\"Ubersetzung und Vorwort}%
+ {\"Ubers\adddot\ und Vorw\adddot}},
+ translatorsfo = {{\"Ubersetzung und Vorwort}%
+ {\"Ubers\adddot\ und Vorw\adddot}},
+ translatoraf = {{\"Ubersetzung und Nachwort}%
+ {\"Ubers\adddot\ und Nachw\adddot}},
+ translatorsaf = {{\"Ubersetzung und Nachwort}%
+ {\"Ubers\adddot\ und Nachw\adddot}},
+ translatorcoin = {{\"Ubersetzung, Kommentar und Einleitung}%
+ {\"Ubers., Komm\adddot\ und Einl\adddot}},
+ translatorscoin = {{\"Ubersetzung, Kommentar und Einleitung}%
+ {\"Ubers., Komm\adddot\ und Einl\adddot}},
+ translatorcofo = {{\"Ubersetzung, Kommentar und Vorwort}%
+ {\"Ubers., Komm\adddot\ und Vorw\adddot}},
+ translatorscofo = {{\"Ubersetzung, Kommentar und Vorwort}%
+ {\"Ubers., Komm\adddot\ und Vorw\adddot}},
+ translatorcoaf = {{\"Ubersetzung, Kommentar und Nachwort}%
+ {\"Ubers., Komm\adddot\ und Nachw\adddot}},
+ translatorscoaf = {{\"Ubersetzung, Kommentar und Nachwort}%
+ {\"Ubers., Komm\adddot\ und Nachw\adddot}},
+ translatoranin = {{\"Ubersetzung, Erl\"auterungen und Einleitung}%
+ {\"Ubers., Erl\"aut\adddot\ und Einl\adddot}},
+ translatorsanin = {{\"Ubersetzung, Erl\"auterungen und Einleitung}%
+ {\"Ubers., Erl\"aut\adddot\ und Einl\adddot}},
+ translatoranfo = {{\"Ubersetzung, Erl\"auterungen und Vorwort}%
+ {\"Ubers., Erl\"aut\adddot\ und Vorw\adddot}},
+ translatorsanfo = {{\"Ubersetzung, Erl\"auterungen und Vorwort}%
+ {\"Ubers., Erl\"aut\adddot\ und Vorw\adddot}},
+ translatoranaf = {{\"Ubersetzung, Erl\"auterungen und Nachwort}%
+ {\"Ubers., Erl\"aut\adddot\ und Nachw\adddot}},
+ translatorsanaf = {{\"Ubersetzung, Erl\"auterungen und Nachwort}%
+ {\"Ubers., Erl\"aut\adddot\ und Nachw\adddot}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{von}{von}},
+ byeditor = {{herausgegeben von}{hrsg\adddotspace von}},
+ bycompiler = {{kompiliert von}{komp\adddotspace von}},
+ byredactor = {{bearbeitet von}{bearb\adddotspace von}},
+ byreviser = {{\"uberarbeitet von}{\"uberarb\adddotspace von}},
+ byreviewer = {{rezensiert von}{rez\adddotspace von}},
+ byfounder = {{begr\"undet von}{begr\adddotspace von}},
+ bycontinuator = {{fortgef\"urt von}{fortgef\adddotspace von}},
+ bycollaborator = {{unter Mitarbeit von}{unter Mitarb\adddotspace von}},
+ bytranslator = {{\lbx@lfromlang \"ubersetzt von}{\lbx@sfromlang \"ubers\adddot\ von}},
+ bycommentator = {{kommentiert von}{komm\adddot\ von}},
+ byannotator = {{erl\"autert von}{erl\"aut\adddot\ von}},
+ withcommentator = {{mit einem Kommentar von}{mit einem Komm\adddot\ von}},
+ withannotator = {{mit Erl\"auterungen von}{mit Erl\"aut\adddot\ von}},
+ withintroduction = {{mit einer Einleitung von}{mit einer Einl\adddot\ von}},
+ withforeword = {{mit einem Vorwort von}{mit einem Vorw\adddot\ von}},
+ withafterword = {{mit einem Nachwort von}{mit einem Nachw\adddot\ von}},
+ byeditortr = {{herausgegeben und \lbx@lfromlang \"ubersetzt von}%
+ {hrsg\adddotspace und \lbx@sfromlang \"ubers\adddot\ von}},
+ byeditorco = {{herausgegeben und kommentiert von}%
+ {hrsg\adddotspace und komm\adddot\ von}},
+ byeditoran = {{herausgegeben und erl\"autert von}%
+ {hrsg\adddotspace und erl\"aut\adddot\ von}},
+ byeditorin = {{herausgegeben und mit einer Einleitung versehen von}%
+ {hrsg\adddotspace und mit einer Einl\adddot\ vers\adddot\ von}},
+ byeditorfo = {{herausgegeben und mit einem Vorwort versehen von}%
+ {hrsg\adddotspace und mit einem Vorw\adddot\ vers\adddot\ von}},
+ byeditoraf = {{herausgegeben und mit einem Nachwort versehen von}%
+ {hrsg\adddotspace und mit einem Nachw\adddot\ vers\adddot\ von}},
+ byeditortrco = {{herausgegeben, \lbx@lfromlang \"ubersetzt und kommentiert von}%
+ {hrsg., \lbx@sfromlang \"ubers\adddot\ und komm\adddot\ von}},
+ byeditortran = {{herausgegeben, \lbx@lfromlang \"ubersetzt und erl\"autert von}%
+ {hrsg., \lbx@sfromlang \"ubers\adddot\ und erl\"aut\adddot\ von}},
+ byeditortrin = {{herausgegeben, \lbx@lfromlang \"ubersetzt und mit einer Einleitung versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}},
+ byeditortrfo = {{herausgegeben, \lbx@lfromlang \"ubersetzt und mit einem Vorwort versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}},
+ byeditortraf = {{herausgegeben, \lbx@lfromlang \"ubersetzt und mit einem Nachwort versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}},
+ byeditorcoin = {{herausgegeben, kommentiert und mit einer Einleitung versehen von}%
+ {hrsg., komm\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}},
+ byeditorcofo = {{herausgegeben, kommentiert und mit einem Vorwort versehen von}%
+ {hrsg., komm\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}},
+ byeditorcoaf = {{herausgegeben, kommentiert und mit einem Nachwort versehen von}%
+ {hrsg., komm\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}},
+ byeditoranin = {{herausgegeben, erl\"autert und mit einer Einleitung versehen von}%
+ {hrsg., erl\"aut\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}},
+ byeditoranfo = {{herausgegeben, erl\"autert und mit einem Vorwort versehen von}%
+ {hrsg., erl\"aut\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}},
+ byeditoranaf = {{herausgegeben, erl\"autert und mit einem Nachwort versehen von}%
+ {hrsg., erl\"aut\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}},
+ byeditortrcoin = {{herausgegeben, \lbx@lfromlang \"ubersetzt, kommentiert und mit einer Einleitung versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers., komm\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}},
+ byeditortrcofo = {{herausgegeben, \lbx@lfromlang \"ubersetzt, kommentiert und mit einem Vorwort versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers., komm\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}},
+ byeditortrcoaf = {{herausgegeben, \lbx@lfromlang \"ubersetzt, kommentiert und mit einem Nachwort versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers., komm\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}},
+ byeditortranin = {{herausgegeben, \lbx@lfromlang \"ubersetzt, erl\"autert und mit einer Einleitung versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}},
+ byeditortranfo = {{herausgegeben, \lbx@lfromlang \"ubersetzt, erl\"autert und mit einem Vorwort versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}},
+ byeditortranaf = {{herausgegeben, \lbx@lfromlang \"ubersetzt, erl\"autert und mit einem Nachwort versehen von}%
+ {hrsg., \lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}},
+ bytranslatorco = {{\lbx@lfromlang \"ubersetzt und kommentiert von}%
+ {\lbx@sfromlang \"ubers\adddot\ und komm\adddot\ von}},
+ bytranslatoran = {{\lbx@lfromlang \"ubersetzt und erl\"autert von}%
+ {\lbx@sfromlang \"ubers\adddot\ und erl\"aut\adddot\ von}},
+ bytranslatorin = {{\lbx@lfromlang \"ubersetzt und mit einer Einleitung versehen von}%
+ {\lbx@sfromlang \"ubers\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}},
+ bytranslatorfo = {{\lbx@lfromlang \"ubersetzt und mit einem Vorwort versehen von}%
+ {\lbx@sfromlang \"ubers\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}},
+ bytranslatoraf = {{\lbx@lfromlang \"ubersetzt und mit einem Nachwort versehen von}%
+ {\lbx@sfromlang \"ubers\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}},
+ bytranslatorcoin = {{\lbx@lfromlang \"ubersetzt, kommentiert und mit einer Einleitung versehen von}%
+ {\lbx@sfromlang \"ubers., komm\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}},
+ bytranslatorcofo = {{\lbx@lfromlang \"ubersetzt, kommentiert und mit einem Vorwort versehen von}%
+ {\lbx@sfromlang \"ubers., komm\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}},
+ bytranslatorcoaf = {{\lbx@lfromlang \"ubersetzt, kommentiert und mit einem Nachwort versehen von}%
+ {\lbx@sfromlang \"ubers., komm\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}},
+ bytranslatoranin = {{\lbx@lfromlang \"ubersetzt, erl\"autert und mit einer Einleitung versehen von}%
+ {\lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einer Einl\adddot\ vers\adddot\ von}},
+ bytranslatoranfo = {{\lbx@lfromlang \"ubersetzt, erl\"autert und mit einem Vorwort versehen von}%
+ {\lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einem Vorw\adddot\ vers\adddot\ von}},
+ bytranslatoranaf = {{\lbx@lfromlang \"ubersetzt, erl\"autert und mit einem Nachwort versehen von}%
+ {\lbx@sfromlang \"ubers., erl\"aut\adddot\ und mit einem Nachw\adddot\ vers\adddot\ von}},
+ and = {{und}{und}},
+ andothers = {{u.\,a\adddot}{u.\,a\adddot}},
+ andmore = {{u.\,a\adddot}{u.\,a\adddot}},
+ volume = {{Band}{Bd\adddot}},
+ volumes = {{B\"ande}{Bde\adddot}},
+ involumes = {{in}{in}},
+ jourvol = {{Jahrgang}{Jg\adddot}},
+ jourser = {{Serie}{Ser\adddot}},
+ book = {{Buch}{Buch}},
+ part = {{Teil}{T.\adddot}},
+ issue = {{Ausgabe}{Ausg\adddot}},
+ newseries = {{neue Folge}{n.\,F\adddot}},
+ oldseries = {{alte Folge}{a.\,F\adddot}},
+ edition = {{Auf\noligature lage}{Aufl\adddot}},
+ reprint = {{Nachdruck}{Nachdr\adddot}},
+ reprintof = {{Nachdruck von}{Nachdr\adddotspace von}},
+ reprintas = {{Nachdruck unter dem Titel}{Nachdr\adddotspace unter dem Titel}},
+ reprintfrom = {{Nachdruck aus}{Nachdr\adddotspace aus}},
+ translationof = {{\"Ubersetzung von}{\"Ubers\adddotspace von}},
+ translationas = {{\"ubersetzt unter dem Titel}{\"ubers\adddotspace unter dem Titel}},
+% translationfrom = {{}{}},% FIXME: missing
+ reviewof = {{Rezension von}{Rez\adddotspace von}},
+ origpubas = {{zuerst publiziert als}{zuerst publ\adddotspace als}},
+ origpubin = {{zuerst publiziert in}{zuerst publ\adddotspace in}},
+ astitle = {{unter dem Titel}{unter dem Titel}},
+ bypublisher = {{von}{von}},
+ nodate = {{ohne\space Datum}{{}o\adddot D\adddot}},
+ page = {{Seite}{S\adddot}},
+ pages = {{Seiten}{S\adddot}},
+ column = {{Spalte}{Sp\adddot}},
+ columns = {{Spalten}{Sp\adddot}},
+ line = {{Zeile}{Z\adddot}},
+ lines = {{Zeilen}{Z\adddot}},
+ verse = {{Vers}{V\adddot}},
+ verses = {{Verse}{V\adddot}},
+ section = {{Paragraph}{\S}},
+ sections = {{Paragraphen}{\S\S}},
+ paragraph = {{Absatz}{Abs\adddot}},
+ paragraphs = {{Abs\"atze}{Abs\adddot}},
+ pagetotal = {{Seite}{S\adddot}},
+ pagetotals = {{Seiten}{S\adddot}},
+ columntotal = {{Spalte}{Sp\adddot}},
+ columntotals = {{Spalten}{Sp\adddot}},
+ linetotal = {{Zeile}{Z\adddot}},
+ linetotals = {{Zeilen}{Z\adddot}},
+ versetotal = {{Vers}{V\adddot}},
+ versetotals = {{Verse}{V\adddot}},
+ sectiontotal = {{Paragraph}{\S}},
+ sectiontotals = {{Paragraphen}{\S\S}},
+ paragraphtotal = {{Absatz}{Abs\adddot}},
+ paragraphtotals = {{Abs\"atze}{Abs\adddot}},
+ in = {{in}{in}},
+ inseries = {{der Reihe}{der Reihe}},
+ ofseries = {{der Reihe}{der Reihe}},
+ number = {{Nummer}{Nr\adddot}},
+ chapter = {{Kapitel}{Kap\adddot}},
+ bathesis = {{Bachelorarbeit}{Bachelorarb\adddot}},
+ mathesis = {{Magisterarbeit}{Magisterarb\adddot}},
+ phdthesis = {{Dissertation}{Diss\adddot}},
+ candthesis = {{Qualifikationsschrift}{Qualifikationsschr\adddot}},
+ resreport = {{Forschungsbericht}{Forschungsber\adddot}},
+ techreport = {{Technischer Bericht}{Techn\adddotspace Ber\adddot}},
+ software = {{Com\-pu\-ter-Soft\-ware}{Soft\-ware}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{Audio-CD}{Audio-CD}},
+ version = {{Version}{Version}},
+ url = {{Adresse}{Adresse}},
+ urlfrom = {{abgerufen unter}{abger\adddotspace unter}},
+ urlseen = {{besucht am}{besucht am}},
+ inpreparation = {{in Vorbereitung}{in Vorbereitung}},
+ submitted = {{eingereicht}{eingereicht}},
+ forthcoming = {{im Erscheinen}{im Erscheinen}},
+ inpress = {{im Druck}{im Druck}},
+ prepublished = {{Vorver\"offentlichung}{Vorver\"offentlichung}},
+ citedas = {{im folgenden zitiert als}{im folgenden zit\adddotspace als}},
+ thiscite = {{hier}{hier}},
+ seenote = {{siehe Anmerkung}{s\adddotspace Anm\adddot}},
+ quotedin = {{zitiert nach}{zit\adddotspace nach}},
+ idem = {{derselbe}{ders\adddot}},
+ idemsf = {{dieselbe}{dies\adddot}},
+ idemsm = {{derselbe}{ders\adddot}},
+ idemsn = {{dasselbe}{dass\adddot}},
+ idempf = {{dieselben}{dies\adddot}},
+ idempm = {{dieselben}{dies\adddot}},
+ idempn = {{dieselben}{dies\adddot}},
+ idempp = {{dieselben}{dies\adddot}},
+ ibidem = {{ebenda}{ebd\adddot}},
+ opcit = {{a.\,a.\,O\adddot}{a.\,a.\,O\adddot}},
+ loccit = {{a.\,a.\,O\adddot}{a.\,a.\,O\adddot}},
+ confer = {{vgl\adddot}{vgl\adddot}},
+ sequens = {{f\adddot}{f\adddot}},
+ sequentes = {{ff\adddot}{ff\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{siehe}{siehe}},
+ seealso = {{siehe auch}{s.\,auch}},
+ backrefpage = {{siehe Seite}{siehe S\adddot}},
+ backrefpages = {{siehe Seiten}{siehe S\adddot}},
+ january = {{Januar}{Jan\adddot}},
+ february = {{Februar}{Feb\adddot}},
+ march = {{M\"arz}{M\"arz}},
+ april = {{April}{Apr\adddot}},
+ may = {{Mai}{Mai}},
+ june = {{Juni}{Juni}},
+ july = {{Juli}{Juli}},
+ august = {{August}{Aug\adddot}},
+ september = {{September}{Sep\adddot}},
+ october = {{Oktober}{Okt\adddot}},
+ november = {{November}{Nov\adddot}},
+ december = {{Dezember}{Dez\adddot}},
+ langamerican = {{Amerikanisch}{Amerikanisch}},
+ langbrazilian = {{Brasilianisch}{Brasilianisch}},
+ langbulgarian = {{Bulgarisch}{Bulgarisch}},
+ langcatalan = {{Katalanisch}{Katalanisch}},
+ langcroatian = {{Kroatisch}{Kroatisch}},
+ langczech = {{Tschechisch}{Tschechisch}},
+ langdanish = {{D\"anisch}{D\"anisch}},
+ langdutch = {{Niederl\"andisch}{Niederl\"andisch}},
+ langenglish = {{Englisch}{Englisch}},
+ langestonian = {{Estnisch}{Estnisch}},
+ langfinnish = {{Finnisch}{Finnisch}},
+ langfrench = {{Franz\"osisch}{Franz\"osisch}},
+ langgalician = {{Galicisch}{Galicisch}},
+ langgerman = {{Deutsch}{Deutsch}},
+ langgreek = {{Griechisch}{Griechisch}},
+ langhungarian = {{Ungarisch}{Ungarisch}},
+ langitalian = {{Italienisch}{Italienisch}},
+ langjapanese = {{Japanisch}{Japanisch}},
+ langlatin = {{Lateinisch}{Lateinisch}},
+ langlatvian = {{Lettisch}{Lettisch}},
+ langnorwegian = {{Norwegisch}{Norwegisch}},
+ langpolish = {{Polnisch}{Polnisch}},
+ langportuguese = {{Portugiesisch}{Portugiesisch}},
+ langrussian = {{Russisch}{Russisch}},
+ langslovak = {{Slowakisch}{Slowakisch}},
+ langslovene = {{Slowenisch}{Slowenisch}},
+ langspanish = {{Spanisch}{Spanisch}},
+ langswedish = {{Schwedisch}{Schwedisch}},
+ langukrainian = {{Ukrainisch}{Ukrainisch}},
+ fromamerican = {{aus dem Amerikanischen}{aus dem Amerikanischen}},
+ frombrazilian = {{aus dem Brasilianischen}{aus dem Brasilianischen}},
+ frombulgarian = {{aus dem Bulgarischen}{aus dem Bulgarischen}},
+ fromcatalan = {{aus dem Katalanischen}{aus dem Katalanischen}},
+ fromcroatian = {{aus dem Kroatischen}{aus dem Kroatischen}},
+ fromczech = {{aus dem Tschechischen}{aus dem Tschechischen}},
+ fromdanish = {{aus dem D\"anischen}{aus dem D\"anischen}},
+ fromdutch = {{aus dem Niederl\"andischen}{aus dem Niederl\"andischen}},
+ fromenglish = {{aus dem Englischen}{aus dem Englischen}},
+ fromestonian = {{aus dem Estnischen}{aus dem Estnischen}},
+ fromfinnish = {{aus dem Finnischen}{aus dem Finnischen}},
+ fromfrench = {{aus dem Franz\"osischen}{aus dem Franz\"osischen}},
+ fromgalician = {{aus dem Galicischen}{aus dem Galicischen}},
+ fromgerman = {{aus dem Deutschen}{aus dem Deutschen}},
+ fromgreek = {{aus dem Griechischen}{aus dem Griechischen}},
+ fromhungarian = {{aus dem Ungarischen}{aus dem Ungarischen}},
+ fromitalian = {{aus dem Italienischen}{aus dem Italienischen}},
+ fromjapanese = {{aus dem Japanischen}{aus dem Japanischen}},
+ fromlatin = {{aus dem Lateinischen}{aus dem Lateinischen}},
+ fromlatvian = {{aus dem Lettischen}{aus dem Lettischen}},
+ fromnorwegian = {{aus dem Norwegischen}{aus dem Norwegischen}},
+ frompolish = {{aus dem Polnischen}{aus dem Polnischen}},
+ fromportuguese = {{aus dem Portugiesischen}{aus dem Portugiesischen}},
+ fromrussian = {{aus dem Russischen}{aus dem Russischen}},
+ fromslovak = {{aus dem Slowakischen}{aus dem Slowakischen}},
+ fromslovene = {{aus dem Slowenischen}{aus dem Slowenischen}},
+ fromspanish = {{aus dem Spanischen}{aus dem Spanischen}},
+ fromswedish = {{aus dem Schwedischen}{aus dem Schwedischen}},
+ fromukrainian = {{aus dem Ukrainischen}{aus dem Ukrainischen}},
+ countryde = {{Deutschland}{DE}},
+ countryep = {{Europ\"aische Union}{EP}},
+ countryeu = {{Europ\"aische Union}{EU}},
+ countryfr = {{Frankreich}{FR}},
+ countryuk = {{Gro\ss britannien}{GB}},
+ countryus = {{USA}{US}},
+ patent = {{Patent}{Pat\adddot}},
+ patentde = {{deutsches Patent}{dt\adddotspace Pat\adddot}},
+ patenteu = {{europ\"aisches Patent}{europ\adddot\ Pat\adddot}},
+ patentfr = {{franz\"osisches Patent}{frz\adddot\ Pat\adddot}},
+ patentuk = {{britisches Patent}{brit\adddot\ Pat\adddot}},
+ patentus = {{US-Patent}{US-Pat\adddot}},
+ patreq = {{Patentanmeldung}{Patentanmeld\adddot}},
+ patreqde = {{deutsche Patentanmeldung}{dt\adddotspace Patentanmeld\adddot}},
+ patreqeu = {{europ\"aische Patentanmeldung}{europ\adddot\ Patentanmeld\adddot}},
+ patreqfr = {{franz\"osische Patentanmeldung}{frz\adddot\ Patentanmeld\adddot}},
+ patrequk = {{britische Patentanmeldung}{brit\adddot\ Patentanmeld\adddot}},
+ patrequs = {{US-Patentanmeldung}{US-Patentanmeld\adddot}},
+ file = {{Datei}{Datei}},
+ library = {{Bibliothek}{Bibliothek}},
+ abstract = {{Zusammenfassung}{Zusammenfassung}},
+ annotation = {{Anmerkungen}{Anmerkungen}},
+ commonera = {{unserer Zeitrechnung}{u\adddotspace Z\adddot}},
+ beforecommonera = {{vor unserer Zeitrechnung}{v\adddotspace u\adddotspace Z\adddot}},
+ annodomini = {{n\adddotspace Chr\adddot}{n\adddotspace Chr\adddot}},
+ beforechrist = {{v\adddotspace Chr\adddot}{v\adddotspace Chr\adddot}},
+ circa = {{circa}{ca\adddot}},
+ spring = {{Fr\"uhling}{Fr\adddot}},
+ summer = {{Sommer}{So\adddot}},
+ autumn = {{Herbst}{He\adddot}},
+ winter = {{Winter}{Wi\adddot}},
+ am = {{vorm\adddot}{vorm\adddot}},
+ pm = {{nachm\adddot}{nachm\adddot}},
+}
+
+\DeclareHyphenationExceptions{%
+ Pa-tent-an-mel-dung
+ Pa-tent-an-meld
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/greek.lbx b/macros/latex/contrib/biblatex/latex/lbx/greek.lbx
new file mode 100644
index 0000000000..69f2fd708b
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/greek.lbx
@@ -0,0 +1,592 @@
+\ProvidesFile{greek.lbx}
+[\abx@lbxid]
+
+% Translator's notes:
+%
+% The translations should be OK but should also be tested against
+% enough real data. Especially:
+%
+% a) Abbreviations should be checked
+% b) Issues concerning grammatical gender have not been studied
+%
+% This file requires UTF-8 support!
+
+\lbx@ifutfinput
+ {}
+ {\PackageError{biblatex}
+ {Greek requires UTF-8 support}
+ {The 'greek.lbx' file requires UTF-8 encoding but you
+ seem\MessageBreak to be using a different encoding.
+ This is a fatal error. I will\MessageBreak abort loading
+ greek.lbx now.}%
+ \endinput}
+
+\NewBibliographyString{% Used only Greek for month checks
+ datejanuary,
+ datefebruary,
+ datemarch,
+ dateapril,
+ datemay,
+ datejune,
+ datejuly,
+ dateaugust,
+ dateseptember,
+ dateoctober,
+ datenovember,
+ datedecember%
+}
+
+\DeclareRedundantLanguages{greek}{greek}
+
+\DeclareBibliographyExtras{%
+ \DeclareCapitalPunctuation{.!;?}%
+ \let\finalandcomma=\empty
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{\stripzeros{#1}ος}%
+ \protected\def\mkbibfemord#1{\stripzeros{#1}η}%
+ \protected\def\mkbibneutord{\mkbibmascord}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\lbx@gr@mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{/}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibfemord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Βιβλιογραφία}{Βιβλιογραφία}},
+ references = {{Αναφορές}{Αναφορές}},
+ shorthands = {{Κατάλογος συντμήσεων}{Συντμήσεις}},
+ editor = {{επιμελητής}{επιμελητής}},
+ editors = {{επιμελητές}{επιμελητές}},
+ compiler = {{συντάκτης}{συντάκτης}},
+ compilers = {{συντάκτες}{συντάκτες}},
+ redactor = {{συντάκτης}{συντάκτης}},
+ redactors = {{συντάκτες}{συντάκτες}},
+% reviser = {{}{}},% FIXME: missing
+% revisers = {{}{}},% FIXME: missing
+ founder = {{αρχικός δημιουργός}{αρχικός δημιουργός}},
+ founders = {{αρχικοί δημιουργοί}{αρχικοί δημιουργοί}},
+ continuator = {{συνεχιστής}{συνεχιστής}},
+ continuators = {{συνεχιστές}{συνεχιστές}},
+ collaborator = {{συνεργάτης}{συνεργάτης}},
+ collaborators = {{συνεργάτες}{συνεργάτες}},
+ translator = {{μεταφραστής}{μεταφραστής}},
+ translators = {{μεταφραστές}{μεταφραστές}},
+ commentator = {{υπομνηματιστής}{υπομνηματιστής}},% FIXME: unsure
+ commentators = {{υπομνηματιστές}{υπομνηματιστές}},% FIXME: unsure
+ annotator = {{υπομνηματιστής}{υπομνηματιστής}},
+ annotators = {{υπομνηματιστές}{υπομνηματιστές}},
+ commentary = {{ερμηνευτικές σημειώσεις}{ερμηνευτικές σημειώσεις}},
+ annotations = {{επισημείωση}{επισημείωση}},
+ introduction = {{εισαγωγή}{εισαγωγή}},
+ foreword = {{πρόλογος}{πρόλ\adddot}},
+ afterword = {{επίλογος}{επίλ\adddot}},
+ editortr = {{επιμελητή και μεταφραστής}
+ {επιμελητή και μτφρ\adddot}},
+ editorstr = {{επιμελητέ και μεταφραστές}
+ {επιμελητέ και μτφρ\adddot}},
+ editorco = {{επιμελητή και υπομνηματιστής}
+ {επιμελητή και υπομν\adddot}},
+ editorsco = {{επιμελητέ και υπομνηματιστής}
+ {επιμελητέ και υπομν\adddot}},
+ editoran = {{επιμελητή και υπομνηματιστής}
+ {επιμελητή και υπομν\adddot}},
+ editorsan = {{επιμελητέ και υπομνηματιστές}
+ {επιμελητέ και υπομν\adddot}},
+ editorin = {{επιμελητή και εισαγωγή}
+ {επιμελητή και εισαγ\adddot}},
+ editorsin = {{επιμελητέ και εισαγωγή}
+ {επιμελητέ και εισαγ\adddot}},
+ editorfo = {{επιμελητή και πρόλογος}
+ {επιμελητή και πρόλ\adddot}},
+ editorsfo = {{επιμελητέ και πρόλογος}
+ {επιμελητέ και πρόλ\adddot}},
+ editoraf = {{επιμελητή και επίλογος}
+ {επιμελητή και επίλ\adddot}},
+ editorsaf = {{επιμελητέ και επίλογος}
+ {επιμελητέ και επίλ\adddot}},
+ editortrco = {{επιμελητή, μεταφραστή και υπομνηματιστής}
+ {επιμελητή μτφρ\adddot\ και υπομν\adddot}},
+ editorstrco = {{επιμελητέ, μεταφραστέ και υπομνηματιστές}
+ {επιμελητέ, μτφρ\adddot\ και υπομν\adddot}},
+ editortran = {{επιμελητή, μεταφραστή και επισημειωτής}
+ {επιμελητή μτφρ\adddot\ και επισημ\adddot}},
+ editorstran = {{επιμελητέ, μεταφραστέ και επισημειωτές}
+ {επιμελητέ, μτφρ\adddot\ και επισημ\adddot}},
+ editortrin = {{επιμελητή, μεταφραστή και εισαγωγή}
+ {επιμελητή μτφρ\adddot\ και εισαγ\adddot}},
+ editorstrin = {{επιμελητέ, μεταφραστέ και εισαγωγή}
+ {επιμελητέ, μτφρ\adddot\ και εισαγ\adddot}},
+ editortrfo = {{επιμελητή, μεταφραστή και πρόλογος}
+ {επιμελητή μτφρ\adddot\ και πρόλ\adddot}},
+ editorstrfo = {{επιμελητέ, μεταφραστέ και πρόλογος}
+ {επιμελητέ, μτφρ\adddot\ και πρόλ\adddot}},
+ editortraf = {{επιμελητή, μεταφραστή και επίλογος}
+ {επιμελητή μτφρ\adddot\ και επίλ\adddot}},
+ editorstraf = {{επιμελητέ, μεταφραστέ και επίλογος}
+ {επιμελητέ, μτφρ\adddot\ και επίλ\adddot}},
+ editorcoin = {{επιμελητή, υπομνηματιστή και εισαγωγή}
+ {επιμελητή υπομν\adddot\ και εισαγ\adddot}},
+ editorscoin = {{επιμελητέ, υπομνηματιστέ και εισαγωγή}
+ {επιμελητέ, υπομν\adddot\ και εισαγ\adddot}},
+ editorcofo = {{επιμελητή, υπομνηματιστή και πρόλογος}
+ {επιμελητή υπομν\adddot\ και πρόλ\adddot}},
+ editorscofo = {{επιμελητέ, υπομνηματιστέ και πρόλογος}
+ {επιμελητέ, υπομν\adddot\ και πρόλ\adddot}},
+ editorcoaf = {{επιμελητή, υπομνηματιστή και επίλογος}
+ {επιμελητή υπομν\adddot\ και επίλ\adddot}},
+ editorscoaf = {{επιμελητέ, υπομνηματιστέ και επίλογος}
+ {επιμελητέ, υπομν\adddot\ και επίλ\adddot}},
+ editoranin = {{επιμελητή, επισημειωτή και εισαγωγή}
+ {επιμελητή επισημ\adddot\ και εισαγ\adddot}},
+ editorsanin = {{επιμελητέ, επισημειωτέ και εισαγωγή}
+ {επιμελητέ, επισημ\adddot\ και εισαγ\adddot}},
+ editoranfo = {{επιμελητή, επισημειωτή και πρόλογος}
+ {επιμελητή επισημ\adddot\ και πρόλ\adddot}},
+ editorsanfo = {{επιμελητέ, επισημειωτέ και πρόλογος}
+ {επιμελητέ, επισημ\adddot\ και πρόλ\adddot}},
+ editoranaf = {{επιμελητή, επισημειωτή και επίλογος}
+ {επιμελητή επισημ\adddot\ και επίλ\adddot}},
+ editorsanaf = {{επιμελητέ, επισημειωτέ και επίλογος}
+ {επιμελητέ, επισημ\adddot\ και επίλ\adddot}},
+ editortrcoin = {{επιμελητή, μεταφραστής, υπομνηματιστή και εισαγωγή}
+ {επιμελητή μτφρ., υπομν\adddot\ και εισαγ\adddot}},
+ editorstrcoin = {{επιμελητέ, μεταφραστές, υπομνηματιστέ και εισαγωγή}
+ {επιμελητέ, μτφρ., υπομν\adddot\ και εισαγ\adddot}},
+ editortrcofo = {{επιμελητή, μεταφραστής, υπομνηματιστή και πρόλογος}
+ {επιμελητή μτφρ., υπομν\adddot\ και πρόλ\adddot}},
+ editorstrcofo = {{επιμελητέ, μεταφραστές, υπομνηματιστέ και πρόλογος}
+ {επιμελητέ, μτφρ., υπομν\adddot\ και πρόλ\adddot}},
+ editortrcoaf = {{επιμελητή, μεταφραστής, υπομνηματιστή και επίλογος}
+ {επιμελητή μτφρ., υπομν\adddot\ και επίλ\adddot}},
+ editorstrcoaf = {{επιμελητέ, μεταφραστές, υπομνηματιστέ και επίλογος}
+ {επιμελητέ, μτφρ., υπομν\adddot\ και επίλ\adddot}},
+ editortranin = {{επιμελητή, μεταφραστής, επισημειωτή και εισαγωγή}
+ {επιμελητή μτφρ., επισημ\adddot\ και εισαγ\adddot}},
+ editorstranin = {{επιμελητέ, μεταφραστές, επισημειωτέ και εισαγωγή}
+ {επιμελητέ, μτφρ., επισημ\adddot\ και εισαγ\adddot}},
+ editortranfo = {{επιμελητή, μεταφραστής, επισημειωτή και πρόλογος}
+ {επιμελητή μτφρ., επισημ\adddot\ και πρόλ\adddot}},
+ editorstranfo = {{επιμελητέ, μεταφραστές, επισημειωτέ και πρόλογος}
+ {επιμελητέ, μτφρ., επισημ\adddot\ και πρόλ\adddot}},
+ editortranaf = {{επιμελητή, μεταφραστής, επισημειωτή και επίλογος}
+ {επιμελητή μτφρ., επισημ\adddot\ και επίλ\adddot}},
+ editorstranaf = {{επιμελητέ, μεταφραστές, επισημειωτέ και επίλογος}
+ {επιμελητέ, μτφρ., επισημ\adddot\ και επίλ\adddot}},
+ translatorco = {{μεταφραστής και υπομνηματιστής}
+ {μτφρ\adddot\ και υπομν\adddot}},
+ translatorsco = {{μεταφραστές και υπομνηματιστές}
+ {μτφρ\adddot\ και υπομν\adddot}},
+ translatoran = {{μεταφραστής και επισημειωτής}
+ {μτφρ\adddot\ και επισημ\adddot}},
+ translatorsan = {{μεταφραστές και επισημειωτές}
+ {μτφρ\adddot\ και επισημ\adddot}},
+ translatorin = {{μετάφραση και εισαγωγή}
+ {μτφρ\adddot\ και εισαγ\adddot}},
+ translatorsin = {{μετάφραση και εισαγωγή}
+ {μτφρ\adddot\ και εισαγ\adddot}},
+ translatorfo = {{μετάφραση και πρόλογος}
+ {μτφρ\adddot\ και πρόλ\adddot}},
+ translatorsfo = {{μετάφραση και πρόλογος}
+ {μτφρ\adddot\ και πρόλ\adddot}},
+ translatoraf = {{μετάφραση και επίλογος}
+ {μτφρ\adddot\ και επίλ\adddot}},
+ translatorsaf = {{μετάφραση και επίλογος}
+ {μτφρ\adddot\ και επίλ\adddot}},
+ translatorcoin = {{μετάφραση, υπομνηματισμό και εισαγωγή}
+ {μτφρ., υπομν\adddot\ και εισαγ\adddot}},
+ translatorscoin = {{μετάφραση, υπομνηματισμό και εισαγωγή}
+ {μτφρ., υπομν\adddot\ και εισαγ\adddot}},
+ translatorcofo = {{μετάφραση, υπομνηματισμό και πρόλογος}
+ {μτφρ., υπομν\adddot\ και πρόλ\adddot}},
+ translatorscofo = {{μετάφραση, υπομνηματισμό και πρόλογος}
+ {μτφρ., υπομν\adddot\ και πρόλ\adddot}},
+ translatorcoaf = {{μετάφραση, υπομνηματισμό και επίλογος}
+ {μτφρ., υπομν\adddot\ και επίλ\adddot}},
+ translatorscoaf = {{μετάφραση, υπομνηματισμό και επίλογος}
+ {μτφρ., υπομν\adddot\ και επίλ\adddot}},
+ translatoranin = {{μετάφραση, επισημείωση και εισαγωγή}
+ {μτφρ., επισημ\adddot\ και εισαγ\adddot}},
+ translatorsanin = {{μετάφραση, επισημείωση και εισαγωγή}
+ {μτφρ., επισημ\adddot\ και εισαγ\adddot}},
+ translatoranfo = {{μετάφραση, επισημείωση και πρόλογος}
+ {μτφρ., επισημ\adddot\ και πρόλ\adddot}},
+ translatorsanfo = {{μετάφραση, επισημείωση και πρόλογος}
+ {μτφρ., επισημ\adddot\ και πρόλ\adddot}},
+ translatoranaf = {{μετάφραση, επισημείωση και επίλογος}
+ {μτφρ., επισημ\adddot\ και επίλ\adddot}},
+ translatorsanaf = {{μετάφραση, επισημείωση και επίλογος}
+ {μτφρ., επισημ\adddot\ και επίλ\adddot}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{υπό}{υπό}},
+ byeditor = {{επιμέλεια υπό}{επιμέλεια υπό}},
+ bycompiler = {{σύνταξη υπό}{σύνταξη υπό}},
+ byredactor = {{σύνταξη υπό}{σύναταξη υπό}},
+% byreviser = {{}{}},% FIXME: missing
+% byreviewer = {{}{}},% FIXME: missing
+ byfounder = {{αρχική δημιουργία από}{αρχική δημιουργία από}},
+ bycontinuator = {{συνέχεια από}{συνέχεια από}},
+ bycollaborator = {{συνεργασία από}{συνεργασία από}},
+ bytranslator = {{μετάφραση \lbx@lfromlang\ υπό}{μετάφραση \lbx@sfromlang\ υπό}},
+ bycommentator = {{υπομνηματισμός υπό}{υπομνηματισμός υπό}},
+ byannotator = {{υπομνηματισμός υπό}{υπομνηματισμός υπό}},
+ withcommentator = {{υπομνηματισμός υπό}{υπομνηματισμός υπό}},
+ withannotator = {{υπομνηματισμός υπό}{υπομνηματισμός υπό}},
+ withintroduction = {{εισαγωγή υπό}{εισαγωγή υπό}},
+ withforeword = {{πρόλογος υπό}{πρόλογος υπό}},
+ withafterword = {{επίλογος υπό}{επίλογος υπό}},
+% byeditortr = {{}{}},% FIXME: missing
+% byeditorco = {{}{}},% FIXME: missing
+% byeditoran = {{}{}},% FIXME: missing
+% byeditorin = {{}{}},% FIXME: missing
+% byeditorfo = {{}{}},% FIXME: missing
+% byeditoraf = {{}{}},% FIXME: missing
+% byeditortrco = {{}{}},% FIXME: missing
+% byeditortran = {{}{}},% FIXME: missing
+% byeditortrin = {{}{}},% FIXME: missing
+% byeditortrfo = {{}{}},% FIXME: missing
+% byeditortraf = {{}{}},% FIXME: missing
+% byeditorcoin = {{}{}},% FIXME: missing
+% byeditorcofo = {{}{}},% FIXME: missing
+% byeditorcoaf = {{}{}},% FIXME: missing
+% byeditoranin = {{}{}},% FIXME: missing
+% byeditoranfo = {{}{}},% FIXME: missing
+% byeditoranaf = {{}{}},% FIXME: missing
+% byeditortrcoin = {{}{}},% FIXME: missing
+% byeditortrcofo = {{}{}},% FIXME: missing
+% byeditortrcoaf = {{}{}},% FIXME: missing
+% byeditortranin = {{}{}},% FIXME: missing
+% byeditortranfo = {{}{}},% FIXME: missing
+% byeditortranaf = {{}{}},% FIXME: missing
+% bytranslatorco = {{}{}},% FIXME: missing
+% bytranslatoran = {{}{}},% FIXME: missing
+% bytranslatorin = {{}{}},% FIXME: missing
+% bytranslatorfo = {{}{}},% FIXME: missing
+% bytranslatoraf = {{}{}},% FIXME: missing
+% bytranslatorcoin = {{}{}},% FIXME: missing
+% bytranslatorcofo = {{}{}},% FIXME: missing
+% bytranslatorcoaf = {{}{}},% FIXME: missing
+% bytranslatoranin = {{}{}},% FIXME: missing
+% bytranslatoranfo = {{}{}},% FIXME: missing
+% bytranslatoranaf = {{}{}},% FIXME: missing
+ and = {{και}{και}},
+ andothers = {{κ.ά\adddot}{κ.ά\adddot}},
+ andmore = {{κ.ά\adddot}{κ.ά\adddot}},
+ volume = {{τόμος}{τόμ\adddot}},
+ volumes = {{τόμοι}{τόμοι}},
+ involumes = {{σε}{σε}},% FIXME: check
+ jourvol = {{τόμος}{τόμ\adddot}},
+ jourser = {{σειρά}{σειρά}},
+% book = {{}{}},% FIXME: missing
+% part = {{}{}},% FIXME: missing
+% issue = {{}{}},% FIXME: missing
+ newseries = {{νέα σειρά}{νέα σειρά}},
+ oldseries = {{παλαιά σειρά}{παλαιά σειρά}},
+ edition = {{έκδοση}{έκδοση}},
+ reprint = {{ανατύπωση}{ανατύπωση}},
+ reprintof = {{ανατύπωση του}{ανατύπωση του}},
+ reprintas = {{ανατύπωση ως}{ανατύπωση ως}},
+% reprintfrom = {{}{}},% FIXME: missing
+% translationof = {{}{}},% FIXME: missing
+% translationas = {{}{}},% FIXME: missing
+% translationfrom = {{}{}},% FIXME: missing
+% reviewof = {{}{}},% FIXME: missing
+% origpubas = {{}{}},% FIXME: missing
+% origpubin = {{}{}},% FIXME: missing
+% astitle = {{}{}},% FIXME: missing
+ bypublisher = {{υπό}{υπό}},% FIXME: check
+ page = {{σελίδα}{σ\adddot}},
+ pages = {{σελίδες}{σσ\adddot}},
+ column = {{στήλη}{στ\adddot}},
+ columns = {{στήλες}{στήλες}},
+ line = {{γραμμή}{γραμ\adddot}},
+ lines = {{γραμμές}{γραμμές}},
+ nodate = {{χωρίς\space ημερομηνία}{{}χ\adddot η\adddot}},
+ verse = {{στίχος}{στίχ\adddot}},
+ verses = {{στίχοι}{στίχοι}},
+ section = {{ενότητα}{εντότητα}},
+ sections = {{ενότητες}{ενότητες}},
+ paragraph = {{παράγραφος}{§}},
+ paragraphs = {{παράγραφοι}{§§}},
+% pagetotal = {{}{}},% FIXME: missing
+% pagetotals = {{}{}},% FIXME: missing
+% columntotal = {{}{}},% FIXME: missing
+% columntotals = {{}{}},% FIXME: missing
+% linetotal = {{}{}},% FIXME: missing
+% linetotals = {{}{}},% FIXME: missing
+% versetotal = {{}{}},% FIXME: missing
+% versetotals = {{}{}},% FIXME: missing
+% sectiontotal = {{}{}},% FIXME: missing
+% sectiontotals = {{}{}},% FIXME: missing
+% paragraphtotal = {{}{}},% FIXME: missing
+% paragraphtotals = {{}{}},% FIXME: missing
+ in = {{στο}{στο}},
+ inseries = {{στη}{στη}},
+ ofseries = {{της}{της}},
+ number = {{αριθμός}{αρθμ\adddot}},
+ chapter = {{κεφάλαιο}{κεφ\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{Μεταπτυχιακή διπλωματική εργασία}
+ {Μεταπτ/κή διπλ\adddot\ εργασ\adddot}},
+ phdthesis = {{Διδακτορική διατριβή}
+ {Διδακτορική διατρ\adddot}},
+% candthesis = {{}{}},% FIXME: missing
+ resreport = {{αδημοσίευτη ερευνητική εργασία}
+ {αδημοσίευτη ερευνητική εργασία}},
+ techreport = {{αδημοσίευτη ερευνητική εργασία}
+ {αδημοσίευτη ερευνητική εργασία}},
+ software = {{λογισμικό Η/Υ}{λογισμικό Η/Υ}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{ακουστικό CD}{ακουστικό CD}},
+ version = {{έκδοση}{έκδ\adddot}},
+ url = {{διεύθυνση}{διεύθν\adddot}},
+% urlfrom = {{}{}},% FIXME: missing
+ urlseen = {{επίσκεψη}{επίσκεψη}},
+% inpreparation = {{}{}},% FIXME: missing
+ submitted = {{υποβληθέν}{υποβληθέν}},% FIXME: gender?
+% forthcoming = {{}{}},% FIXME: missing
+ inpress = {{υπό έκδοση}{υπό έκδ.}},
+% prepublished = {{}{}},% FIXME: missing
+ citedas = {{εφεξής θα αναφέρεται ως}{εφεξής θα αναφέρεται ως}},
+ thiscite = {{αυτή η αναφορά}{αυτή η αναφορά}},
+ seenote = {{βλέπε σημείωση}{βλ\adddot\ σημ\adddot}},
+ quotedin = {{αναφέρεται στο}{αναφέρεται στο}},
+ idem = {{του ίδιου}{του ίδιου}},
+ % FIXME: adapt gender
+ %
+ % sf=singular feminine
+ % sm=singular masculine
+ % sn=singular neuter
+ % pf=plural feminine
+ % pm=plural masculine
+ % pn=plural neuter
+ % pp=plural (group of mixed gender)
+ idemsf = {{του ίδιου}{του ίδιου}},% FIXME: gender?
+ idemsm = {{του ίδιου}{του ίδιου}},% FIXME: gender?
+ idemsn = {{του ίδιου}{του ίδιου}},% FIXME: gender?
+ idempf = {{του ίδιου}{του ίδιου}},% FIXME: gender?
+ idempm = {{του ίδιου}{του ίδιου}},% FIXME: gender?
+ idempn = {{του ίδιου}{του ίδιου}},% FIXME: gender?
+ idempp = {{του ίδιου}{του ίδιου}},% FIXME: gender?
+ ibidem = {{στο ίδιο}{στο ίδιο}},
+ opcit = {{όπου παραπάνω}{ό.π\adddot}},
+ loccit = {{όπου παραπάνω}{ό.π\adddot}},
+ confer = {{πρβλ\adddot}{πρβλ\adddot}},
+ sequens = {{κ.ε}{κ.ε\adddot}},
+ sequentes = {{κ.εξ\adddot}{κ.εξ\adddot}},
+ passim = {{σποράδην}{σποράδην}},
+ see = {{βλέπε}{βλ\adddot}},
+ seealso = {{βλέπε επίσης}{βλ\adddot\ επίσης}},
+% backrefpage = {{}{}},% FIXME: missing
+% backrefpages = {{}{}},% FIXME: missing
+ january = {{Ιανουάριος}{Ιαν\adddot}},
+ february = {{Φεβρουάριος}{Φεβ\adddot}},
+ march = {{Μάρτιος}{Μαρ\adddot}},
+ april = {{Αρίλιος}{Απρ\adddot}},
+ may = {{Μάιος}{Μάι\adddot}},
+ june = {{Ιούνιος}{Ιούν\adddot}},
+ july = {{Ιούλιος}{Ιούλ\adddot}},
+ august = {{Αύγουστος}{Αύγ\adddot}},
+ september = {{Σεπτέμβριος}{Σεπτ\adddot}},
+ october = {{Οκτώβριος}{Οκτ\adddot}},
+ november = {{Νοέμβριος}{Νοέ\adddot}},
+ december = {{Δεκέμβριος}{Δεκ\adddot}},
+ datejanuary = {{Ιανουαρίου}{Ιαν\adddot}},
+ datefebruary = {{Φεβρουαρίου}{Φεβ\adddot}},
+ datemarch = {{Μαρτίου}{Μαρ\adddot}},
+ dateapril = {{Απριλίου}{Απρ\adddot}},
+ datemay = {{Μαΐου}{Μάι\adddot}},
+ datejune = {{Ιουνίου}{Ιούν\adddot}},
+ datejuly = {{Ιουλίου}{Ιούλ\adddot}},
+ dateaugust = {{Αυγούστου}{Αύγ\adddot}},
+ dateseptember = {{Σεπτεμβρίου}{Σεπτ\adddot}},
+ dateoctober = {{Οκτωβρίου}{Οκτ\adddot}},
+ datenovember = {{Νοεμβρίου}{Νοέ\adddot}},
+ datedecember = {{Δεκεμβρίου}{Δεκ\adddot}},
+ langamerican = {{Αγγλικά}{Αγγλικά}},
+ langbrazilian = {{Βραζιλιάνικα}{Βραζιλιάνικα}},
+% langbulgarian = {{}{}},% FIXME: missing
+% langcatalan = {{}{}},% FIXME: missing
+% langcroatian = {{}{}},% FIXME: missing
+% langczech = {{}{}},% FIXME: missing
+ langdanish = {{Δανέζικα}{Δανέζικα}},
+ langdutch = {{Ολλανδικά}{Ολλανδικά}},
+ langenglish = {{Αγγλικά}{Αγγλικά}},
+% langestonian = {{}{}},% FIXME: missing
+% langfinnish = {{}{}},% FIXME: missing
+ langfrench = {{Γαλλικά}{Γαλλικά}},
+ langgalician = {{Γαλικιανή}{Γαλικιανή}},
+ langgerman = {{Γερμανικά}{Γερμανικά}},
+ langgreek = {{Ελληνικά}{Ελληνικά}},
+% langhungarian = {{}{}}, % FIXME: missing
+ langitalian = {{Ιταλικά}{Ιταλικά}},
+ langlatin = {{Λατινικά}{Λατινικά}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{Νορβηγικά}{Νορβηγικά}},
+% langpolish = {{}{}},% FIXME: missing
+ langportuguese = {{Πορτογαλικά}{Πορτογαλικά}},
+% langrussian = {{}{}},% FIXME: missing
+% langslovak = {{}{}},% FIXME: missing
+% langslovene = {{}{}},% FIXME: missing
+ langspanish = {{Ισπανικά}{Ισπανικά}},
+ langswedish = {{Σουηδικά}{Σουηδικά}},
+ fromamerican = {{από τα Αγγλικά}{από τα Αγγλικά}},
+ frombrazilian = {{από τα Βραζιλιάνικα}{από τα Βραζιλιάνικα}},
+% frombulgarian = {{}{}},% FIXME: missing
+% fromcatalan = {{}{}},% FIXME: missing
+% fromcroatian = {{}{}},% FIXME: missing
+% fromczech = {{}{}},% FIXME: missing
+ fromdanish = {{από τα Δανέζικα}{από τα Δανέζικα}},
+ fromdutch = {{από τα Ολλανδικά}{από τα Ολλανδικά}},
+ fromenglish = {{από τα Αγγλικά}{από τα Αγγλικά}},
+% fromestonian = {{}{}},% FIXME: missing
+% fromfinnish = {{}{}},% FIXME: missing
+ fromfrench = {{από τα Γαλλικά}{από τα Γαλλικά}},
+ fromgalician = {{από τα Γαλικιανή}{από τα Γαλικιανή}},
+ fromgerman = {{από τα Γερμανικά}{από τα Γερμανικά}},
+ fromgreek = {{από τα Ελληνικά}{από τα Ελληνικά}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{από τα Ιταλικά}{από τα Ιταλικά}},
+ fromlatin = {{από τα Λατινικά}{από τα Λατινικά}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{από τα Νορβηγικά}{από τα Νορβηγικά}},
+% frompolish = {{}{}},% FIXME: missing
+ fromportuguese = {{από τα Πορτογαλικά}{από τα Πορτογαλικά}},
+% fromrussian = {{}{}},% FIXME: missing
+% fromslovak = {{}{}},% FIXME: missing
+% fromslovene = {{}{}},% FIXME: missing
+ fromspanish = {{από τα Ισπανικά}{από τα Ισπανικά}},
+ fromswedish = {{από τα Σουηδικά}{από τα Σουηδικά}},
+ countryde = {{Γερμανία}{DE}},
+ countryeu = {{Ευρωπαϊκή Ένωση}{ΕΕ}},
+ countryep = {{Ευρωπαϊκή Ένωση}{ΕΕ}},
+ countryfr = {{Γαλλία}{FR}},
+ countryuk = {{Μεγάλη Βρετανία}{GB}},
+ countryus = {{Ηνωμένες Πολιτείες της Αμερικής}{ΗΠΑ}},
+ patent = {{δίπλωμα ευρεσιτεχνίας}
+ {διπλ\adddot\ ευρεσ\adddot}},
+ patentde = {{γερμανικό δίπλωμα ευρεσιτεχνίας}
+ {γερμ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patenteu = {{ευρωπαϊκό δίπλωμα ευρεσιτεχνίας}
+ {ευρωπ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patentfr = {{γαλλικό δίπλωμα ευρεσιτεχνίας}
+ {γαλλ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patentuk = {{βρετανικό δίπλωμα ευρεσιτεχνίας}
+ {βρετ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patentus = {{αμερικανικό δίπλωμα ευρεσιτεχνίας}
+ {αμερ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patreq = {{αίτηση διπλώματος ευρεσιτεχνίας}
+ {αιτ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patreqde = {{αίτηση γερμανικού διπλώματος ευρεσιτεχνίας}
+ {αιτ\adddot\ γερμ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patreqeu = {{αίτηση ευρωπαϊκού διπλώματος ευρεσιτεχνίας}
+ {αιτ\adddot\ ευρωπ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patreqfr = {{αίτηση γαλλικού διπλώματος ευρεσιτεχνίας}
+ {αιτ\adddot\ γαλλ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patrequk = {{αίτηση βρετανικού διπλώματος ευρεσιτεχνίας}
+ {αιτ\adddot\ βρετ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ patrequs = {{αίτηση αμερικανικού διπλώματος ευρεσιτεχνίας}
+ {αιτ\adddot\ αμερ\adddot\ διπλ\adddot\ ευρεσ\adddot}},
+ file = {{αρχείο}{αρχείο}},
+ library = {{βιβλιοθήκη}{βιβλιοθήκη}},
+ abstract = {{περίληψη}{περίληψη}},
+ annotation = {{σχολιασμοί}{σχολιασμοί}},
+ commonera = {{Κοινή Χρονολογία}{KX}},
+ beforecommonera = {{πριν από την Κοινή Χρονολογία}{π\adddot Κ\adddot Χ\adddot}},
+ annodomini = {{μετά Χριστόν}{μ\adddot Χ\adddot}},
+ beforechrist = {{προ Χριστού}{π\adddot Χ\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{π\adddot μ\adddot}{π\adddot μ\adddot}},
+ pm = {{μ\adddot μ\adddot}{μ\adddot μ\adddot}},
+}
+
+\protected\gdef\lbx@gr@mkbibmonth#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{datejanuary}%
+ \or\abx@bibmonth{datefebruary}%
+ \or\abx@bibmonth{datemarch}%
+ \or\abx@bibmonth{dateapril}%
+ \or\abx@bibmonth{datemay}%
+ \or\abx@bibmonth{datejune}%
+ \or\abx@bibmonth{datejuly}%
+ \or\abx@bibmonth{dateaugust}%
+ \or\abx@bibmonth{dateseptember}%
+ \or\abx@bibmonth{dateoctober}%
+ \or\abx@bibmonth{datenovember}%
+ \or\abx@bibmonth{datedecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/hungarian.lbx b/macros/latex/contrib/biblatex/latex/lbx/hungarian.lbx
new file mode 100644
index 0000000000..8d910389d5
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/hungarian.lbx
@@ -0,0 +1,7 @@
+\ProvidesFile{hungarian.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{magyar}
+\InheritBibliographyStrings{magyar}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/icelandic.lbx b/macros/latex/contrib/biblatex/latex/lbx/icelandic.lbx
new file mode 100644
index 0000000000..0429de4e13
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/icelandic.lbx
@@ -0,0 +1,484 @@
+\ProvidesFile{icelandic.lbx}
+[\abx@lbxid]
+
+% Translator's notes:
+% - Translated by a native speaker (Baldur Kristinsson).
+% - Many bibstrings remain untranslated.
+% - Needs fine tuning, since grammatical peculiarities of Icelandic
+% make straight translations difficult.
+
+\DeclareRedundantLanguages{icelandic}{icelandic}
+
+% The beginning of this is the same as for Danish, since conventions are similar
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\adddot}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ % Later, it would be more elegant to reverse the order of the name and the localized
+ % bibstrings, in order to avoid problems with regard to declension. This has to be done
+ % in a coordinated manner, however, and a lot of macros would have to be redefined
+ % at the same time. The below, inactive code shows the general idea.
+ %
+ % \savebibmacro{bytranslator}%
+ %\renewbibmacro{bytranslator}{%
+ % \ifnameundef{translator}
+ % {}
+ % {\printnames[bytranslator]{translator}%
+ % \setunit{\addspace}%
+ % \bibstring{bytranslator}%
+ % }}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+%\UndeclareBibliographyExtras{%
+% \restorebibmacro{bytranslator}
+%}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Heimildaskr\'a}{Heimildaskr\'a}},
+ references = {{Heimildir}{Heimildir}},
+ shorthands = {{Listi yfir skammstafanir}{Skammstafanir}},
+ editor = {{ristj\'ori}{ritstj\adddot}},
+ editors = {{ritstj\'orar}{ritstj\adddot}},
+ compiler = {{samantekt}{samantekt}},
+ compilers = {{samantekt}{samantekt}},
+% FIXME: redactor and editor are the same string;
+% is that acceptable?
+ redactor = {{ritstj\'ori}{ritstj\adddot}},
+ redactors = {{ritstj\'orar}{ritstj\adddot}},
+ reviser = {{\'utg\'afuendursko\dh{}andi}{endursk\adddot}},
+ revisers = {{\'utg\'afuendursko\dh{}endur}{endursk\adddot}},
+% founder = {{}{}},% FIXME: missing
+% founders = {{}{}},% FIXME: missing
+% continuator = {{}{}},% FIXME: missing
+% continuators = {{}{}},% FIXME: missing
+% collaborator = {{}{}},% FIXME: missing
+% collaborators = {{}{}},% FIXME: missing
+% FIXME: A great deal of conflation here, as well as simplifications in order
+% to avoid problems associated with declension:
+ translator = {{\th\'y\dh{}andi}{\th\'y\dh\adddot}},
+ translators = {{\th\'y\dh{}endur}{\th\'y\dh\adddot}},
+ commentator = {{sk\'yrandi}{sk\'yr\adddot}},
+ commentators = {{sk\'yrendur}{sk\'yr\adddot}},
+ annotator = {{\'utsk\'yrandi}{\'utsk\'yr\adddot}},
+ annotators = {{\'utsk\'yrendur}{\'utsk\'yr\adddot}},
+ commentary = {{sk\'yringar}{sk\'yr\adddot}},
+ annotations = {{\'utsk\'yringar}{\'utsk\'yr\adddot}},
+ introduction = {{inngangur}{inng\adddot}},
+ foreword = {{form\'ali}{form\'ali}},
+ afterword = {{eftirm\'ali}{eftirm\'ali}},
+% editortr = {{}{}},% FIXME: missing
+% editorstr = {{}{}},% FIXME: missing
+% editorco = {{}{}},% FIXME: missing
+% editorsco = {{}{}},% FIXME: missing
+% editoran = {{}{}},% FIXME: missing
+% editorsan = {{}{}},% FIXME: missing
+% editorin = {{}{}},% FIXME: missing
+% editorsin = {{}{}},% FIXME: missing
+% editorfo = {{}{}},% FIXME: missing
+% editorsfo = {{}{}},% FIXME: missing
+% editoraf = {{}{}},% FIXME: missing
+% editorsaf = {{}{}},% FIXME: missing
+% editortrco = {{}{}},% FIXME: missing
+% editorstrco = {{}{}},% FIXME: missing
+% editortran = {{}{}},% FIXME: missing
+% editorstran = {{}{}},% FIXME: missing
+% editortrin = {{}{}},% FIXME: missing
+% editorstrin = {{}{}},% FIXME: missing
+% editortrfo = {{}{}},% FIXME: missing
+% editorstrfo = {{}{}},% FIXME: missing
+% editortraf = {{}{}},% FIXME: missing
+% editorstraf = {{}{}},% FIXME: missing
+% editorcoin = {{}{}},% FIXME: missing
+% editorscoin = {{}{}},% FIXME: missing
+% editorcofo = {{}{}},% FIXME: missing
+% editorscofo = {{}{}},% FIXME: missing
+% editorcoaf = {{}{}},% FIXME: missing
+% editorscoaf = {{}{}},% FIXME: missing
+% editoranin = {{}{}},% FIXME: missing
+% editorsanin = {{}{}},% FIXME: missing
+% editoranfo = {{}{}},% FIXME: missing
+% editorsanfo = {{}{}},% FIXME: missing
+% editoranaf = {{}{}},% FIXME: missing
+% editorsanaf = {{}{}},% FIXME: missing
+% editortrcoin = {{}{}},% FIXME: missing
+% editorstrcoin = {{}{}},% FIXME: missing
+% editortrcofo = {{}{}},% FIXME: missing
+% editorstrcofo = {{}{}},% FIXME: missing
+% editortrcoaf = {{}{}},% FIXME: missing
+% editorstrcoaf = {{}{}},% FIXME: missing
+% editortranin = {{}{}},% FIXME: missing
+% editorstranin = {{}{}},% FIXME: missing
+% editortranfo = {{}{}},% FIXME: missing
+% editorstranfo = {{}{}},% FIXME: missing
+% editortranaf = {{}{}},% FIXME: missing
+% editorstranaf = {{}{}},% FIXME: missing
+% translatorco = {{}{}},% FIXME: missing
+% translatorsco = {{}{}},% FIXME: missing
+% translatoran = {{}{}},% FIXME: missing
+% translatorsan = {{}{}},% FIXME: missing
+% translatorin = {{}{}},% FIXME: missing
+% translatorsin = {{}{}},% FIXME: missing
+% translatorfo = {{}{}},% FIXME: missing
+% translatorsfo = {{}{}},% FIXME: missing
+% translatoraf = {{}{}},% FIXME: missing
+% translatorsaf = {{}{}},% FIXME: missing
+% translatorcoin = {{}{}},% FIXME: missing
+% translatorscoin = {{}{}},% FIXME: missing
+% translatorcofo = {{}{}},% FIXME: missing
+% translatorscofo = {{}{}},% FIXME: missing
+% translatorcoaf = {{}{}},% FIXME: missing
+% translatorscoaf = {{}{}},% FIXME: missing
+% translatoranin = {{}{}},% FIXME: missing
+% translatorsanin = {{}{}},% FIXME: missing
+% translatoranfo = {{}{}},% FIXME: missing
+% translatorsanfo = {{}{}},% FIXME: missing
+% translatoranaf = {{}{}},% FIXME: missing
+% translatorsanaf = {{}{}},% FIXME: missing
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{h\"ofundur}{h\"of\adddot}},
+ byeditor = {{gefi\dh{} \'ut af}{gefi\dh{} \'ut af}},
+ bycompiler = {{teki\dh{} saman af}{teki\dh{} saman af}},
+ byredactor = {{endursko\dh{}a\dh{} af}{endursk\adddot}},
+% byreviser = {{}{}},% FIXME: missing
+% byreviewer = {{}{}},% FIXME: missing
+% byfounder = {{}{}},% FIXME: missing
+% bycontinuator = {{}{}},% FIXME: missing
+% bycollaborator = {{}{}},% FIXME: missing
+% FIXME: For some of the keys below, the better way would be to postpend
+% rather than prepend the localized bibstrings. That would however require a
+% redefinition of many macros. Later, perhaps...
+ bytranslator = {{\th\'y\dh{}ing \lbx@lfromlang}{\th\'y\dh\adddot{} \lbx@sfromlang}},
+ bycommentator = {{sk\'yringar eftir}{sk\'yr\adddot}},
+ byannotator = {{\'utsk\'yringar eftir}{\'utsk\'yr\adddot}},
+ withcommentator = {{me\dh{} sk\'yringum eftir}{m\adddot sk\'yr\adddot e\adddot}},
+ withannotator = {{me\dh{} \'utsk\'yringum eftir}{m\adddot \'utsk\'yr\adddot e\adddot}},
+ withintroduction = {{me\dh{} inngangi eftir}{inng\adddot}},
+ withforeword = {{me\dh{} form\'ala eftir}{m\adddot form\adddot e\adddot}},
+ withafterword = {{me\dh{} eftirm\'ala eftir}{m\adddot eftirm\adddot e\adddot}},
+ byeditortr = {{\'utg\'afa og \th\'y\dh{}ing \lbx@lfromlang}%
+ {\'utg\adddot{} og \th\'y\dh\adddot}},
+ byeditorco = {{\'utg\'a fa og sk\'yringar eftir}%
+ {\'utg\adddot{} og sk\'yr\adddot}},
+ byeditoran = {{\'utg\'a fa og \'utsk\'yringar eftir}%
+ {\'utg\adddot{} og \'utsk\'yr\adddot}},
+ byeditorin = {{\'utg\'afa og inngangur eftir}%
+ {\'utg\adddot{} og inng\adddot}},
+ byeditorfo = {{\'utg\'afa og form\'ali eftir}%
+ {\'utg\adddot{} og form\adddot e\adddot}},
+ byeditoraf = {{\'utg\'afa og eftirm\'ali eftir}%
+ {\'utg\adddot{} og eftirm\adddot e\adddot}},
+ byeditortrco = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og sk\'yringar eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og sk\'yr\adddot}},
+ byeditortran = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og \'utsk\'yringar eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og \'utsk\'yr\adddot}},
+ byeditortrin = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og inngangur eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og inng\adddot}},
+ byeditortrfo = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og form\'ali eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og form\adddot}},
+ byeditortraf = {{\'utg\'afa \th\'y\dh{}ing \lbx@sfromlang\ og eftirm\'ali eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang\ og eftirm\adddot}},
+ byeditorcoin = {{\'utg\'afa, sk\'yringar og inngangur eftir}%
+ {\'utg\adddot, sk\'yr\adddot{} og inng\adddot}},
+ byeditorcofo = {{\'utg\'afa, sk\'yringar og form\'ali eftir}%
+ {\'utg\adddot, sk\'yr\adddot{} og form\adddot}},
+ byeditorcoaf = {{\'utg\'afa, sk\'yringar og eftirm\'ali eftir}%
+ {\'utg\adddot, sk\'yr\adddot{} og eftirm\adddot}},
+ byeditoranin = {{\'utg\'afa, \'utsk\'yringar og inngangur eftir}%
+ {\'utg\adddot, \'utsk\'yr\adddot{} og inng\adddot}},
+ byeditoranfo = {{\'utg\'afa, \'utsk\'yringar og form\'ali eftir}%
+ {\'utg\adddot, \'utsk\'yr\adddot{} og form\adddot}},
+ byeditoranaf = {{\'utg\'afa, sk\'yringar og eftirm\'ali eftir}%
+ {\'utg\adddot, sk\'yr\adddot{} og eftirm\adddot}},
+ byeditortrcoin = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, sk\'yringar og inngangur eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, sk\'yr\adddot{} og inng\adddot}},
+ byeditortrcofo = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, sk\'yringar og form\'ali eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, sk\'yr\adddot{} og form\adddot}},
+ byeditortrcoaf = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, sk\'yringar og eftirm\'ali eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, sk\'yr\adddot{} og eftirm\adddot}},
+ byeditortranin = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, \'utsk\'yringar og inngangur eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, \'utsk\'yr\adddot{} og inng\adddot}},
+ byeditortranfo = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, \'utsk\'yringar og form\'ali eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, \'utsk\'yr\adddot{} og form\adddot}},
+ byeditortranaf = {{\'utg\'afa, \th\'y\dh{}ing \lbx@sfromlang, \'utsk\'yringar og eftirm\'ali eftir}%
+ {\'utg\adddot, \th\'y\dh\adddot{} \lbx@sfromlang, \'utsk\'yr\adddot{} og eftirm\adddot}},
+ bytranslatorco = {{\th\'y\dh{}ing \lbx@lfromlang\ og sk\'yringar eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang\ og sk\'yr\adddot}},
+ bytranslatoran = {{\th\'y\dh{}ing \lbx@lfromlang\ og \'utsk\'yringar eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang\ og \'utsk\'yr\adddot}},
+ bytranslatorin = {{\th\'y\dh{}ing \lbx@lfromlang\ og inngangur eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang\ og inng\adddot}},
+ bytranslatorfo = {{\th\'y\dh{}ing \lbx@lfromlang\ og form\'ali eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang\ og form\adddot}},
+ bytranslatoraf = {{\th\'y\dh{}ing \lbx@lfromlang\ og eftirm\'ali eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang\ og eftirm\adddot}},
+ bytranslatorcoin = {{\th\'y\dh{}ing \lbx@lfromlang, sk\'yringar og inngangur eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang, sk\'yr\adddot{} og inng\adddot}},
+ bytranslatorcofo = {{\th\'y\dh{}ing \lbx@lfromlang, sk\'yringar og form\'ali eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang, sk\'yr\adddot{} og form\adddot}},
+ bytranslatorcoaf = {{\th\'y\dh{}ing \lbx@lfromlang, sk\'yringar og eftirm\'ali eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang, sk\'yr\adddot{} og eftirm\adddot}},
+ bytranslatoranin = {{\th\'y\dh{}ing \lbx@lfromlang, \'utsk\'yringar og inngangur eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang, \'utsk\'yr\adddot{} og inng\adddot}},
+ bytranslatoranfo = {{\th\'y\dh{}ing \lbx@lfromlang, \'utsk\'yringar og form\'ali eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang, \'utsk\'yringar og form\adddot}},
+ bytranslatoranaf = {{\th\'y\dh{}ing \lbx@lfromlang, \'utsk\'yringar og eftirm\'ali eftir}%
+ {\th\'y\dh\adddot{} \lbx@lfromlang, \'utsk\'yr\adddot{} og eftirm\adddot}},
+ and = {{og}{og}},
+ andothers = {{\'asamt fleirum}{o\adddot fl\adddot}},
+ andmore = {{og fleiri}{o\adddot fl\adddot}},
+ volume = {{bindi}{bd\adddot}},
+ volumes = {{bindi}{bd\adddot}},
+ involumes = {{\'{\i}}{\'{\i}}},
+ jourvol = {{\'argangur}{\'arg\adddot}},
+ jourser = {{r\"o\dh}{r\"o\dh}},
+ book = {{b\'ok}{b\'ok}},
+ part = {{hluti}{hluti}},
+ issue = {{hefti}{hefti}},
+ newseries = {{n\'y ritr\"o\dh}{n\'y ritr\"o\dh}},
+ oldseries = {{g\"omul ritr\"o\dh}{g\"omul ritr\"o\dh}},
+ edition = {{\'utg\'afa}{\'utg\adddot}},
+ reprint = {{endurprentun}{endurpr\adddot}},
+ reprintof = {{endurprentun \'a}{endurpr\adddot{} \'a}},
+ reprintas = {{endurprenta\dh{} sem}{endurpr\adddot{} sem}},
+ reprintfrom = {{endurprentun \'ur}{endurpr\adddot{} \'ur}},
+ translationof = {{\th'yth ing \'a}{\th\'y\dh\adddot{} \'a}},
+ translationas = {{\th'ytt sem}{\th\'ytt sem}},
+ translationfrom = {{\th'yth ing \'ur}{\th\'y\dh\adddot{} \'ur}},
+ reviewof = {{ums\"ogn um}{ums\"ogn um}},
+% origpubas = {{}{}},% FIXME: missing
+% origpubin = {{}{}},% FIXME: missing
+% astitle = {{}{}},% FIXME: missing
+ nodate = {{\'an \'ars}{\'an \'ars}},
+ page = {{bla\dh{}s\'{\i}\dh{}a}{bls\adddot}},
+ pages = {{bla\dh{}s\'{\i}\dh{}ur}{bls\adddot}},
+ column = {{d\'alkur}{dlk\adddot}},
+ columns = {{d\'alkar}{dlk\adddot}},
+ line = {{l\'{\i}na}{l\adddot}},
+ lines = {{l\'{\i}nur}{l\adddot}},
+ verse = {{erindi}{er\adddot}},
+ verses = {{erindi}{er\adddot}},
+ section = {{grein}{\S}},
+ sections = {{grein}{\S\S}},
+ paragraph = {{m\'alsgrein}{mgr\adddot}},
+ paragraphs = {{m\'alsgreinar}{mgr\adddot}},
+% pagetotal = {{}{}},% FIXME: missing
+% pagetotals = {{}{}},% FIXME: missing
+% columntotal = {{}{}},% FIXME: missing
+% columntotals = {{}{}},% FIXME: missing
+% linetotal = {{}{}},% FIXME: missing
+% linetotals = {{}{}},% FIXME: missing
+% versetotal = {{}{}},% FIXME: missing
+% versetotals = {{}{}},% FIXME: missing
+% sectiontotal = {{}{}},% FIXME: missing
+% sectiontotals = {{}{}},% FIXME: missing
+% paragraphtotal = {{}{}},% FIXME: missing
+% paragraphtotals = {{}{}},% FIXME: missing
+ in = {{\'{\i}}{\'{\i}}},
+ inseries = {{ritr\"o\dh{}in}{ritr\"o\dh{}in}},
+ ofseries = {{\'ur ritr\"o\dh{}inni}{\'ur ritr\adddot}},
+ number = {{n\'umer}{nr\adddot}},
+ chapter = {{kafli}{k\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{meistarapr\'ofsritger\dh}{meistararitg\adddot}},
+ phdthesis = {{doktorsritger\dh}{doktorsritg\adddot}},
+ candthesis = {{kand\'{\i}datsritger\dh}{kand\'{\i}datsritg\adddot}},
+ resreport = {{ranns\'oknarsk\'yrsla}{ranns\'oknarsk\'yrsla}},
+ techreport = {{t\ae{}knileg sk\'yrsla}{t\ae{}knileg sk\'yrsla}},
+ software = {{hugb\'una\dh{}ur}{hugb\'una\dh{}ur}},
+ datacd = {{gagnadiskur}{gagnadiskur}},
+ audiocd = {{hlj\'o\dh{}diskur}{hlj\'o\dh{}diskur}},
+ version = {{\'utg\'afa}{\'utg\adddot}},
+ url = {{vefsl\'o\dh{}}{vefsl\'o\dh{}}},
+% urlfrom = {{}{}},% FIXME: missing
+ urlseen = {{sko\dh{}a\dh}{sko\dh{}a\dh}},
+ inpreparation = {{\'{\i} vinnslu}{\'{\i} vinnslu}},
+ submitted = {{afhent til birtingar}{afhent til birtingar}},
+ forthcoming = {{mun birtast}{mun birtast}},
+ inpress = {{\'{\i} prentun}{\'{\i} prentun}},
+ prepublished = {{forbirt}{forbirt}},
+ citedas = {{h\'er eftir skammstafa\dh}{h\'er eftir skst\adddot}},
+ seenote = {{sj\'a athugasemd}{sj\'a aths\adddot}},
+ quotedin = {{tilvitnun samkv\ae{}mt}{tilvitnun skv\adddot}},
+ idem = {{sama heimild}{s\adddot h\adddot}},
+ idemsf = {{sama heimild}{s\adddot h\adddot}},
+ idemsm = {{sama heimild}{s\adddot h\adddot}},
+ idemsn = {{sama heimild}{s\adddot h\adddot}},
+ idempf = {{sama heimild}{s\adddot h\adddot}},
+ idempm = {{sama heimild}{s\adddot h\adddot}},
+ idempn = {{sama heimild}{s\adddot h\adddot}},
+ idempp = {{sama heimild}{s\adddot h\adddot}},
+ ibidem = {{sama heimild}{s\adddot h\adddot}},
+ opcit = {{sama rit}{sama rit}},
+ loccit = {{sami sta\dh{}ur}{s\adddot st\adddot}},
+ confer = {{sbr\adddot}{sbr\adddot}},
+ sequens = {{o\adddot \'afr\adddot}{o\adddot \'afr\adddot}},
+ sequentes = {{o\adddot \'afr\adddot}{o\adddot \'afr\adddot}},
+ passim = {{v\'{\i}\dh{}a}{v\'{\i}\dh{}a}},
+ see = {{sj\'a}{sj\'a}},
+ seealso = {{sj\'a einnig}{sj\'a einnig}},
+ backrefpage = {{sj\'a bla\dh{}s\'{\i}u}{sj\'a bls\adddot}},
+ backrefpages = {{sj\'a bla\dh{}s\'{\i}ur}{sj\'a bls\adddot}},
+ january = {{jan\'uar}{jan\adddot}},
+ february = {{febr\'uar}{feb\adddot}},
+ march = {{mars}{mar\adddot}},
+ april = {{apr\'{\i}l}{apr\adddot}},
+ may = {{ma\'{\i}}{ma\'{\i}}},
+ june = {{j\'un\'{\i}}{j\'un\adddot}},
+ july = {{j\'ul\'{\i}}{j\'ul\adddot}},
+ august = {{\'ag\'ust}{\'ag\'u\adddot}},
+ september = {{september}{sep\adddot}},
+ october = {{okt\'ober}{okt\adddot}},
+ november = {{n\'ovember}{n\'ov\adddot}},
+ december = {{desember}{des\adddot}},
+ langamerican = {{bandar\'{\i}ska}{bandar\'{\i}ska}},
+% langbrazilian = {{}{}},% FIXME: missing
+% langbulgarian = {{}{}},% FIXME: missing
+% langcatalan = {{}{}},% FIXME: missing
+% langcroatian = {{}{}},% FIXME: missing
+% langczech = {{}{}},% FIXME: missing
+ langdanish = {{danska}{danska}},
+ langdutch = {{hollenska}{hollenska}},
+ langenglish = {{enska}{enska}},
+% langestonian = {{}{}},% FIXME: missing
+ langfinnish = {{finnska}{finnska}},
+ langfrench = {{franska}{franska}},
+ langgalician = {{galis\'iska}{galis\'iska}},
+ langgerman = {{\th\'yska}{\th\'yska}},
+ langgreek = {{gr\'{\i}ska}{gr\'{\i}ska}},
+ langhungarian = {{ungverska}{ungverska}},
+ langitalian = {{\'{\i}talska}{\'{\i}talska}},
+ langlatin = {{lat\'{\i}na}{lat\'{\i}na}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{norska}{norska}},
+ langpolish = {{p\'olska}{p\'olska}},
+ langportuguese = {{port\'ugalska}{port\'ugalska}},
+ langrussian = {{r\'ussneska}{r\'ussneska}},
+% langslovak = {{}{}},% FIXME: missing
+% langslovene = {{}{}},% FIXME: missing
+ langspanish = {{sp\ae{}nska}{sp\ae{}nska}},
+ langswedish = {{s\ae{}nska}{s\ae{}nska}},
+ fromamerican = {{\'ur bandar\'{\i}sku}{\'ur bandar\'{\i}sku}},
+% frombrazilian = {{}{}},% FIXME: missing
+% frombulgarian = {{}{}},% FIXME: missing
+% fromcatalan = {{}{}},% FIXME: missing
+% fromcroatian = {{}{}},% FIXME: missing
+% fromczech = {{}{}},% FIXME: missing
+ fromdanish = {{\'ur d\"onsku}{\'ur d\"onsku}},
+ fromdutch = {{\'ur hollensku}{\'ur hollensku}},
+ fromenglish = {{\'ur ensku}{\'ur ensku}},
+% fromestonian = {{}{}},% FIXME: missing
+ fromfinnish = {{\'ur finnsku}{\'ur finnsku}},
+ fromfrench = {{\'ur fr\"onsku}{\'ur fr\"onsku}},
+ fromgalician = {{\'ur galis\'isku}{\'ur galis\'isku}},
+ fromgerman = {{\'ur \th\'ysku}{\'ur \th\'ysku}},
+ fromgreek = {{\'ur gr\'{\i}sku}{\'ur gr\'{\i}sku}},
+ fromhungarian = {{\'ur ungversku}{\'ur ungversku}},
+ fromitalian = {{\'ur \'{\i}t\"olsku}{\'ur \'{\i}t\"olsku}},
+ fromlatin = {{\'ur lat\'{\i}nu}{\'ur lat\'{\i}nu}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{\'ur norsku}{\'ur norsku}},
+ frompolish = {{\'ur p\'olsku}{\'ur p\'olsku}},
+ fromportuguese = {{\'ur port\'ug\"olsku}{\'ur port\'ug\"olsku}},
+ fromrussian = {{\'ur r\'ussnesku}{\'ur r\'ussnesku}},
+% fromslovak = {{}{}},% FIXME: missing
+% fromslovene = {{}{}},% FIXME: missing
+ fromspanish = {{\'ur sp\ae{}nsku}{\'ur sp\ae{}nsku}},
+ fromswedish = {{\'ur s\ae{}nsku}{\'ur s\ae{}nsku}},
+ countryde = {{\TH\'yskaland}{DE}},
+ countryeu = {{Evr\'opusambandi\dh}{EU}},
+ countryep = {{Evr\'opusambandi\dh}{EP}},
+ countryfr = {{Frakkland}{FR}},
+ countryuk = {{Bretland}{GB}},
+ countryus = {{Bandar\'{\i}kin}{US}},
+ patent = {{einkaleyfi}{einkaleyfi}},
+ patentde = {{\th\'yskt einkaleyfi}{\th\'yskt einkaleyfi}},
+ patenteu = {{evr\'opskt einkaleyfi}{evr\'opskt einkaleyfi}},
+ patentfr = {{franskt einkaleyfi}{franskt einkaleyfi}},
+ patentuk = {{breskt einkaleyfi}{breskt einkaleyfi}},
+ patentus = {{bandar\'{\i}skt einkaleyfi}{bandar\'{\i}skt einkaleyfi}},
+ patreq = {{ums\'okn um einkaleyfi}{ums\'okn um einkaleyfi}},
+ patreqde = {{ums\'okn um \th\'yskt einkaleyfi}{ums\'okn um \th\'yskt einkaleyfi}},
+ patreqeu = {{ums\'okn um evr\'opskt einkaleyfi}{ums\'okn um evr\'opskt einkaleyfi}},
+ patreqfr = {{ums\'okn um franskt einkaleyfi}{ums\'okn um franskt einkaleyfi}},
+ patrequk = {{ums\'okn um breskt einkaleyfi}{ums\'okn um breskt einkaleyfi}},
+ patrequs = {{ums\'okn um bandar\'{\i}skt einkaleyfi}{ums\'okn um bandar\'{\i}skt einkaleyfi}},
+ file = {{skr\'a}{skr\'a}},
+ library = {{safn}{safn}},
+ abstract = {{\'utdr\'attur}{\'utdr\'attur}},
+ annotation = {{athugagrein}{athugagrein}},
+ commonera = {{kristi\th t\'{\i}matal}{l\adddot t\adddot}},
+ beforecommonera = {{fyrir kristi\th t\'{\i}matal}{f\adddot l\adddot t\adddot}},
+ annodomini = {{eftir Krist}{e\adddot Kr\adddot}},
+ beforechrist = {{fyrir Krist}{f\adddot Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{f\adddot h\adddot}{f\adddot h\adddot}},
+ pm = {{e\adddot h\adddot}{e\adddot h\adddot}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/italian.lbx b/macros/latex/contrib/biblatex/latex/lbx/italian.lbx
new file mode 100644
index 0000000000..07339b2653
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/italian.lbx
@@ -0,0 +1,465 @@
+\ProvidesFile{italian.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{italian}{italian}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \def\mkbibordinal{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{\stripzeros{#1}\textsuperscript{o}}%
+ \protected\def\mkbibfemord#1{\stripzeros{#1}\textsuperscript{a}}%
+ \protected\def\mkbibneutord{\mkbibmascord}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\@bsphack % ignore day when auto-capitalizing month name
+ \stripzeros{\thefield{#3}}%
+ \@esphack % ignore day when auto-capitalizing month name
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{/}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibfemord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografia}{Bibliografia}},
+ references = {{Riferimenti bibliografici}{Riferimenti bibliografici}},
+ shorthands = {{Elenco delle sigle}{Sigle}},
+ editor = {{curatore}{cur\adddot}},
+ editors = {{curatori}{cur\adddot}},
+ compiler = {{compilatore}{comp\adddot}},
+ compilers = {{compilatori}{comp\adddot}},
+ redactor = {{redattore}{red\adddot}},
+ redactors = {{redattori}{red\adddot}},
+% reviser = {{}{}},% FIXME: missing
+% revisers = {{}{}},% FIXME: missing
+% founder = {{}{}},% FIXME: missing
+% founders = {{}{}},% FIXME: missing
+% continuator = {{}{}},% FIXME: missing
+% continuators = {{}{}},% FIXME: missing
+ collaborator = {{collaboratore}{con la collab\adddotspace di}},
+ collaborators = {{collaboratore}{con la collab\adddotspace di}},
+ translator = {{traduttore}{trad\adddot}},
+ translators = {{traduttori}{trad\adddot}},
+ commentator = {{commentatore}{comment\adddot}},
+ commentators = {{commentatori}{comment\adddot}},
+ annotator = {{annotatore}{annot\adddot}},
+ annotators = {{annotatore}{annot\adddot}},
+ commentary = {{commenti}{comm\adddot}},
+ annotations = {{annotazioni}{annot\adddot}},
+ introduction = {{introduzione}{introd\adddot}},
+ foreword = {{prefazione}{pref\adddot}},
+ afterword = {{postfazione}{postf\adddot}},
+% editortr = {{}{}},% FIXME: missing
+% editorstr = {{}{}},% FIXME: missing
+% editorco = {{}{}},% FIXME: missing
+% editorsco = {{}{}},% FIXME: missing
+% editoran = {{}{}},% FIXME: missing
+% editorsan = {{}{}},% FIXME: missing
+% editorin = {{}{}},% FIXME: missing
+% editorsin = {{}{}},% FIXME: missing
+% editorfo = {{}{}},% FIXME: missing
+% editorsfo = {{}{}},% FIXME: missing
+% editoraf = {{}{}},% FIXME: missing
+% editorsaf = {{}{}},% FIXME: missing
+% editortrco = {{}{}},% FIXME: missing
+% editorstrco = {{}{}},% FIXME: missing
+% editortran = {{}{}},% FIXME: missing
+% editorstran = {{}{}},% FIXME: missing
+% editortrin = {{}{}},% FIXME: missing
+% editorstrin = {{}{}},% FIXME: missing
+% editortrfo = {{}{}},% FIXME: missing
+% editorstrfo = {{}{}},% FIXME: missing
+% editortraf = {{}{}},% FIXME: missing
+% editorstraf = {{}{}},% FIXME: missing
+% editorcoin = {{}{}},% FIXME: missing
+% editorscoin = {{}{}},% FIXME: missing
+% editorcofo = {{}{}},% FIXME: missing
+% editorscofo = {{}{}},% FIXME: missing
+% editorcoaf = {{}{}},% FIXME: missing
+% editorscoaf = {{}{}},% FIXME: missing
+% editoranin = {{}{}},% FIXME: missing
+% editorsanin = {{}{}},% FIXME: missing
+% editoranfo = {{}{}},% FIXME: missing
+% editorsanfo = {{}{}},% FIXME: missing
+% editoranaf = {{}{}},% FIXME: missing
+% editorsanaf = {{}{}},% FIXME: missing
+% editortrcoin = {{}{}},% FIXME: missing
+% editorstrcoin = {{}{}},% FIXME: missing
+% editortrcofo = {{}{}},% FIXME: missing
+% editorstrcofo = {{}{}},% FIXME: missing
+% editortrcoaf = {{}{}},% FIXME: missing
+% editorstrcoaf = {{}{}},% FIXME: missing
+% editortranin = {{}{}},% FIXME: missing
+% editorstranin = {{}{}},% FIXME: missing
+% editortranfo = {{}{}},% FIXME: missing
+% editorstranfo = {{}{}},% FIXME: missing
+% editortranaf = {{}{}},% FIXME: missing
+% editorstranaf = {{}{}},% FIXME: missing
+% translatorco = {{}{}},% FIXME: missing
+% translatorsco = {{}{}},% FIXME: missing
+% translatoran = {{}{}},% FIXME: missing
+% translatorsan = {{}{}},% FIXME: missing
+% translatorin = {{}{}},% FIXME: missing
+% translatorsin = {{}{}},% FIXME: missing
+% translatorfo = {{}{}},% FIXME: missing
+% translatorsfo = {{}{}},% FIXME: missing
+% translatoraf = {{}{}},% FIXME: missing
+% translatorsaf = {{}{}},% FIXME: missing
+% translatorcoin = {{}{}},% FIXME: missing
+% translatorscoin = {{}{}},% FIXME: missing
+% translatorcofo = {{}{}},% FIXME: missing
+% translatorscofo = {{}{}},% FIXME: missing
+% translatorcoaf = {{}{}},% FIXME: missing
+% translatorscoaf = {{}{}},% FIXME: missing
+% translatoranin = {{}{}},% FIXME: missing
+% translatorsanin = {{}{}},% FIXME: missing
+% translatoranfo = {{}{}},% FIXME: missing
+% translatorsanfo = {{}{}},% FIXME: missing
+% translatoranaf = {{}{}},% FIXME: missing
+% translatorsanaf = {{}{}},% FIXME: missing
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{di}{di}},
+ byeditor = {{a cura di}{a cura di}},
+ bycompiler = {{compilato da}{comp\adddotspace da}},
+ byredactor = {{redatto da}{red\adddotspace da}},
+% byreviser = {{}{}},% FIXME: missing
+% byreviewer = {{}{}},% FIXME: missing
+% byfounder = {{}{}},% FIXME: missing
+% bycontinuator = {{}{}},% FIXME: missing
+% bycollaborator = {{}{}},% FIXME: missing
+ bytranslator = {{tradotto \lbx@lfromlang\ da}{trad\adddot\ \lbx@sfromlang\ da}},
+ bycommentator = {{commentato da}{comm\adddot\ da}},
+ byannotator = {{annotato da}{annot\adddot\ da}},
+ withcommentator = {{con commenti di}{con comm\adddot\ di}},
+ withannotator = {{con annotazioni di}{con annot\adddot\ di}},
+ withintroduction = {{con introduzione di}{con introd\adddot\ di}},
+ withforeword = {{con prefazione di}{con pref\adddot\ di}},
+ withafterword = {{con postfazione di}{con postf\adddot\ di}},
+ byeditortr = {{curato e tradotto \lbx@lfromlang\ da}%
+ {cur\adddotspace e trad\adddot\ \lbx@sfromlang\ da}},
+ byeditorco = {{curato e commentato da}%
+ {cur\adddotspace e comm\adddot\ da}},
+ byeditoran = {{curato e annotato da}%
+ {cur\adddotspace e annot\adddot\ da}},
+ byeditorin = {{a cura e con introduzione di}%
+ {a cura e con introd\adddot\ di}},
+ byeditorfo = {{a cura e con prefazione di}%
+ {a cura e con pref\adddot\ di}},
+ byeditoraf = {{a cura e con postfazione di}%
+ {a cura e con postf\adddot\ di}},
+ byeditortrco = {{curato, tradotto \lbx@lfromlang\ e commentato da}%
+ {cur.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e comm\adddot\ da}},
+ byeditortran = {{curato, tradotto \lbx@lfromlang\ e annotato da}%
+ {cur.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e annot\adddot\ da}},
+ byeditortrin = {{edizione, traduzione \lbx@lfromlang\ e introduzione di}%
+ {ed., trad\adddot\ \lbx@sfromlang\ e introd\adddot\ di}},
+ byeditortrfo = {{edizione, traduzione \lbx@lfromlang\ e prefazione di}%
+ {ed., trad\adddot\ \lbx@sfromlang\ e pref\adddot\ di}},
+ byeditortraf = {{edizione, traduzione \lbx@lfromlang\ e postfazione di}%
+ {ed., trad\adddot\ \lbx@sfromlang\ e postf\adddot\ di}},
+ byeditorcoin = {{edizione, commenti e introduzione di}%
+ {ed., comm\adddot\ e introduzione di}},
+ byeditorcofo = {{edizione, commenti e prefazione di}%
+ {ed., comm\adddot\ e prefazione di}},
+ byeditorcoaf = {{edizione, commenti e postfazione di}%
+ {ed., comm\adddot\ e postfazione di}},
+ byeditoranin = {{edizione, annotazioni e introduzione di}%
+ {ed., annot\adddot\ e introduzione di}},
+ byeditoranfo = {{edizione, annotazioni e prefazione di}%
+ {ed., annot\adddot\ e prefazione di}},
+ byeditoranaf = {{edizione, annotazioni e postfazione di}%
+ {ed., annot\adddot\ e postfazione di}},
+ byeditortrcoin = {{edizione, traduzione \lbx@lfromlang, commenti e introduzione di}%
+ {ed., trad\adddot\ \lbx@sfromlang, comm\adddot\ e introd\adddot\ di}},
+ byeditortrcofo = {{edizione, traduzione \lbx@lfromlang, commenti e prefazione di}%
+ {ed., trad\adddot\ \lbx@sfromlang, comm\adddot\ e pref\adddot\ di}},
+ byeditortrcoaf = {{edizione, traduzione \lbx@lfromlang, commenti e postfazione di}%
+ {ed., trad\adddot\ \lbx@sfromlang, comm\adddot\ e postf\adddot\ di}},
+ byeditortranin = {{edizione, traduzione \lbx@lfromlang, annotazioni e introduzione di}%
+ {ed., trad\adddot\ \lbx@sfromlang, annot\adddot\ e introd\adddot\ di}},
+ byeditortranfo = {{edizione, traduzione \lbx@lfromlang, annotazioni e prefazione di}%
+ {ed., trad\adddot\ \lbx@sfromlang, annot\adddot\ e pref\adddot\ di}},
+ byeditortranaf = {{edizione, traduzione \lbx@lfromlang, annotazioni e postfazione di}%
+ {ed., trad\adddot\ \lbx@sfromlang, annot\adddot\ e postf\adddot\ di}},
+ bytranslatorco = {{tradotto \lbx@lfromlang\ e commentato da}%
+ {trad\adddot\ \lbx@sfromlang\ e comm\adddot\ da}},
+ bytranslatoran = {{tradotto \lbx@lfromlang\ e annotato da}%
+ {trad\adddot\ \lbx@sfromlang\ e annot\adddot\ da}},
+ bytranslatorin = {{traduzione \lbx@lfromlang\ e introduzione di}%
+ {trad\adddot\ \lbx@sfromlang\ e introd\adddot\ di}},
+ bytranslatorfo = {{traduzione \lbx@lfromlang\ e prefazione di}%
+ {trad\adddot\ \lbx@sfromlang\ e pref\adddot\ di}},
+ bytranslatoraf = {{traduzione \lbx@lfromlang\ e postfazione di}%
+ {trad\adddot\ \lbx@sfromlang\ e postf\adddot\ di}},
+ bytranslatorcoin = {{traduzione \lbx@lfromlang, commenti e introduzione di}%
+ {trad\adddot\ \lbx@sfromlang, comm\adddot\ e introd\adddot\ di}},
+ bytranslatorcofo = {{traduzione \lbx@lfromlang, commenti e prefazione di}%
+ {trad\adddot\ \lbx@sfromlang, comm\adddot\ e pref\adddot\ di}},
+ bytranslatorcoaf = {{traduzione \lbx@lfromlang, commenti e postfazione di}%
+ {trad\adddot\ \lbx@sfromlang, comm\adddot\ e postf\adddot\ di}},
+ bytranslatoranin = {{traduzione \lbx@lfromlang, annotazioni e introduzione di}%
+ {trad\adddot\ \lbx@sfromlang, annot\adddot\ e introd\adddot\ di}},
+ bytranslatoranfo = {{traduzione \lbx@lfromlang, annotazioni e prefazione di}%
+ {trad\adddot\ \lbx@sfromlang, annot\adddot\ e pref\adddot\ di}},
+ bytranslatoranaf = {{traduzione \lbx@lfromlang, annotazioni e postfazione di}%
+ {trad\adddot\ \lbx@sfromlang, annot\adddot\ e postf\adddot\ di}},
+ and = {{e}{e}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{volume}{vol\adddot}},
+ volumes = {{volumi}{voll\adddot}},
+ involumes = {{in}{in}},% FIXME: unsure
+ jourvol = {{volume}{vol\adddot}},
+ jourser = {{serie}{ser\adddot}},
+% book = {{}{}},% FIXME: missing
+% part = {{}{}},% FIXME: missing
+% issue = {{}{}},% FIXME: missing
+ newseries = {{nuova serie}{nuova ser\adddot}},
+ oldseries = {{vecchia serie}{vecchia ser\adddot}},
+ edition = {{edizione}{ed\adddot}},
+ reprint = {{ristampa}{rist\adddotspace}},
+ reprintof = {{ristampa di}{rist\adddotspace di}},
+% reprintas = {{}{}},% FIXME: missing
+% reprintfrom = {{}{}},% FIXME: missing
+% translationof = {{}{}},% FIXME: missing
+% translationas = {{}{}},% FIXME: missing
+% translationfrom = {{}{}},% FIXME: missing
+% reviewof = {{}{}},% FIXME: missing
+% origpubas = {{}{}},% FIXME: missing
+% origpubin = {{}{}},% FIXME: missing
+% astitle = {{}{}},% FIXME: missing
+% bypublisher = {{}{}},% FIXME: missing
+ nodate = {{senza\space data}{{}n\adddot d\adddot}},
+ page = {{pagina}{p\adddot}},
+ pages = {{pagine}{pp\adddot}},
+ column = {{colonna}{col\adddot}},
+ columns = {{colonne}{coll\adddot}},
+ line = {{riga}{r\adddot}},
+ lines = {{righe}{rr\adddot}},
+ verse = {{verso}{v\adddot}},
+ verses = {{versi}{vv\adddot}},
+% section = {{}{\S}},% FIXME: missing
+% sections = {{}{\S\S}},% FIXME: missing
+ paragraph = {{paragrafo}{par\adddot}},
+ paragraphs = {{paragrafi}{par\adddot}},
+ pagetotal = {{pagina}{p\adddot}},
+ pagetotals = {{pagine}{pp\adddot}},
+ columntotal = {{colonna}{col\adddot}},
+ columntotals = {{colonne}{coll\adddot}},
+ linetotal = {{riga}{r\adddot}},
+ linetotals = {{righe}{rr\adddot}},
+ versetotal = {{verso}{v\adddot}},
+ versetotals = {{versi}{vv\adddot}},
+% sectiontotal = {{}{}},% FIXME: missing
+% sectiontotals = {{}{}},% FIXME: missing
+ paragraphtotal = {{paragrafo}{par\adddot}},
+ paragraphtotals = {{paragrafi}{par\adddot}},
+ in = {{in}{in}},
+ inseries = {{in}{in}},
+ ofseries = {{di}{di}},
+ number = {{numero}{n\adddot}},
+ chapter = {{capitolo}{cap\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{tesi di laurea magistrale}{tesi di laurea mag\adddot}},
+ phdthesis = {{tesi di dottorato}{tesi di dott\adddot}},
+% candthesis = {{}{}},% FIXME: missing
+ resreport = {{rapporto di ricerca}{rapporto di ricerca}},
+ techreport = {{rapporto tecnico}{rapp\adddotspace tecn\adddot}},
+% software = {{}{}},% FIXME: missing
+% datacd = {{}{}},% FIXME: missing
+% audiocd = {{}{}},% FIXME: missing
+ version = {{versione}{ver\adddot}},
+ url = {{indirizzo}{indirizzo}},
+% urlfrom = {{}{}},% FIXME: missing
+ urlseen = {{visitato il}{visitato il}},
+% inpreparation = {{}{}},% FIXME: missing
+% submitted = {{}{}},% FIXME: missing
+% forthcoming = {{}{}},% FIXME: missing
+ inpress = {{in stampa}{in stampa}},
+% prepublished = {{}{}},% FIXME: missing
+ citedas = {{citato come}{cit\adddotspace come}},
+% thiscite = {{}{}},% FIXME: missing
+ seenote = {{vedi nota}{v\adddotspace nota}},
+ quotedin = {{citato da}{cit\adddotspace da}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{cit\adddot}{cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{s\adddot}{s\adddot}},
+ sequentes = {{ss\adddot}{ss\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{vedi\adddot}{v\adddot}},
+ seealso = {{vedi anche}{v\adddot~anche}},
+ backrefpage = {{citato a pagina}{cit\adddotspace a p\adddot}},
+ backrefpages = {{citato alle pagine}{cit\adddotspace alle pp\adddot}},
+ january = {{gennaio}{gen\adddot}},
+ february = {{febbraio}{feb\adddot}},
+ march = {{marzo}{mar\adddot}},
+ april = {{aprile}{apr\adddot}},
+ may = {{maggio}{mag\adddot}},
+ june = {{giugno}{giu\adddot}},
+ july = {{luglio}{lug\adddot}},
+ august = {{agosto}{ago\adddot}},
+ september = {{settembre}{set\adddot}},
+ october = {{ottobre}{ott\adddot}},
+ november = {{novembre}{nov\adddot}},
+ december = {{dicembre}{dic\adddot}},
+ langamerican = {{americano}{americano}},
+ langbrazilian = {{brasiliano}{brasiliano}},
+ langbulgarian = {{bulgaro}{bulgaro}},
+ langcatalan = {{catalano}{catalano}},
+ langcroatian = {{croato}{croato}},
+ langczech = {{ceco}{ceco}},
+ langdanish = {{danese}{danese}},
+ langdutch = {{olandese}{olandese}},
+ langenglish = {{inglese}{inglese}},
+ langestonian = {{estone}{estone}},
+ langfinnish = {{finlandese}{finlandese}},
+ langfrench = {{francese}{francese}},
+ langgalician = {{galiziano}{galiziano}},
+ langgerman = {{tedesco}{tedesco}},
+ langgreek = {{greco}{greco}},
+ langhungarian = {{ungherese}{ungherese}},
+ langitalian = {{italiano}{italiano}},
+ langlatin = {{latino}{latino}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{norvegese}{norvegese}},
+ langpolish = {{polacco}{polacco}},
+ langportuguese = {{portoghese}{portoghese}},
+ langrussian = {{russo}{russo}},
+% langslovak = {{}{}},% FIXME: missing
+ langslovene = {{sloveno}{sloveno}},
+ langspanish = {{spagnolo}{spagnolo}},
+ langswedish = {{svedese}{svedese}},
+ fromamerican = {{dall'americano}{dall'americano}},
+ frombrazilian = {{dall brasiliano}{dall brasiliano}},
+ frombulgarian = {{dal bulgaro}{dal bulgaro}},
+ fromcatalan = {{dal catalano}{dal catalano}},
+ fromcroatian = {{dal croato}{dal croato}},
+ fromczech = {{dal ceco}{dal ceco}},
+ fromdanish = {{dal danese}{dal danese}},
+ fromdutch = {{dall'olandese}{dall'olandese}},
+ fromenglish = {{dall'inglese}{dall'inglese}},
+ fromestonian = {{dall'estone}{dall'estone}},
+ fromfinnish = {{dal finlandese}{dal finlandese}},
+ fromfrench = {{dal francese}{dal francese}},
+ fromgalician = {{dal galiziano}{dal galiziano}},
+ fromgerman = {{dal tedesco}{dal tedesco}},
+ fromgreek = {{dal greco}{dal greco}},
+ fromhungarian = {{dall'ungherese}{dall'ungherese}},
+ fromitalian = {{dall'italiano}{dall'italiano}},
+ fromlatin = {{dal latino}{dal latino}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{dal norvegese}{dal norvegese}},
+ frompolish = {{dal polacco}{dal polacco}},
+ fromportuguese = {{dall portoghese}{dall portoghese}},
+ fromrussian = {{dal russo}{dal russo}},
+% fromslovak = {{}{}},% FIXME: missing
+ fromslovene = {{dallo sloveno}{dallo sloveno}},
+ fromspanish = {{dallo spagnolo}{dallo spagnolo}},
+ fromswedish = {{dal svedese}{dal svedese}},
+ countryde = {{Germania}{DE}},
+ countryep = {{Unione Europea}{EP}},
+ countryeu = {{Unione Europea}{EU}},
+ countryfr = {{Francia}{FR}},
+ countryuk = {{Regno Unito}{GB}},
+ countryus = {{Stati Uniti d'America}{US}},
+ patent = {{brevetto}{brev\adddot}},
+ patentde = {{brevetto tedesco}{brev\adddot\ tedesco}},
+ patenteu = {{brevetto europeo}{brev\adddot\ europeo}},
+ patentfr = {{brevetto francese}{brev\adddot\ francese}},
+ patentuk = {{brevetto britannico}{brev\adddot\ britannico}},
+ patentus = {{brevetto americano}{brev\adddot\ americano}},
+ patreq = {{brevetto richiesto}{brev\adddot\ rich\adddot}},
+ patreqde = {{brevetto tedesco richiesto}{brev\adddot\ tedesco rich\adddot}},
+ patreqeu = {{brevetto europeo richiesto}{brev\adddot\ europeo rich\adddot}},
+ patreqfr = {{brevetto francese richiesto}{brev\adddot\ francese rich\adddot}},
+ patrequk = {{brevetto britannico richiesto}{brev\adddot\ britannico rich\adddot}},
+ patrequs = {{brevetto U.S.A\adddot\ richiesto}{brev\adddot\ U.S.A\adddot\ rich\adddot}},
+ file = {{file}{file}},
+ library = {{biblioteca}{biblioteca}},
+ abstract = {{abstract}{abstract}},
+ annotation = {{annotazione}{annotazione}},
+ commonera = {{Era Volgare}{E\adddot V\adddot}},
+ beforecommonera = {{avanti Era Volgare}{a\adddot E\adddot V\adddot}},
+ annodomini = {{d\adddot C\adddot}{d\adddot C\adddot}},
+ beforechrist = {{a\adddot C\adddot}{a\adddot C\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/latvian.lbx b/macros/latex/contrib/biblatex/latex/lbx/latvian.lbx
new file mode 100644
index 0000000000..33a95360cb
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/latvian.lbx
@@ -0,0 +1,787 @@
+\ProvidesFile{latvian.lbx}
+[\abx@lbxid]
+
+\ifundef{\lbx@lv@loadinfo}
+ {\blx@warning@noline{%
+ Latvian localisation module for biblatex loaded.\MessageBreak
+ This module changes more definitions than usual.\MessageBreak
+ Please refer to the documentation for hints and\MessageBreak
+ check the output carefully, especially with non-\MessageBreak
+ standard styles or customisations to field formats.\MessageBreak
+ This warning can be disabled by calling\MessageBreak
+ '\string\BiblatexLatvianWarningOff'\MessageBreak
+ after 'biblatex' has been loaded, but before\MessageBreak
+ the localisation is loaded for the first time}%
+ \global\let\lbx@lv@loadinfo\@empty}
+ {}
+
+\DeclareRedundantLanguages{latvian}{latvian}
+
+\NewBibliographyString{%
+ locjanuary,
+ locfebruary,
+ locmarch,
+ locapril,
+ locmay,
+ locjune,
+ locjuly,
+ locaugust,
+ locseptember,
+ lococtober,
+ locnovember,
+ locdecember,
+ locspring,
+ locsummer,
+ locautumn,
+ locwinter,
+ locdateyear,
+ dateyear}
+
+\DeclareBibliographyExtras{%
+ \providetoggle{lbx@lv@datewhen}%
+ \providecommand*{\lbx@lv@requestwhendate}{\toggletrue{lbx@lv@datewhen}}%
+ \DeclareCapitalPunctuation{.!?}%
+ \protected\def\bibrangedash{%
+ \textemdash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#1}
+ {}
+ {\iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}%
+ \ifboolexpr{test {\iffieldundef{#2}} and test {\iffieldundef{#3}}}
+ {\iftoggle{lbx@lv@datewhen}
+ {\mkbibordinal{\thefield{#1}}\addspace\bibstring{locdateyear}}
+ {\stripzeros{\thefield{#1}}}}
+ {\mkbibordinal{\thefield{#1}}\addspace\bibstring{dateyear}\space}}}%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\iftoggle{lbx@lv@datewhen}
+ {\lbx@lv@mkbibdatemonthwhen{\thefield{#2}}}
+ {\mkbibmonth{\thefield{#2}}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}\adddot}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}%
+ \ifboolexpr{test {\iffieldundef{#2}} and test {\iffieldundef{#3}}}
+ {}
+ {\adddot}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \iffieldundef{#1}
+ {}
+ {\iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}%
+ \iffieldundef{#2}
+ {\iftoggle{lbx@lv@datewhen}
+ {\mkbibordinal{\thefield{#1}}\addspace\bibstring{locdateyear}}
+ {\stripzeros{\thefield{#1}}}}
+ {\mkbibordinal{\thefield{#1}}\addspace\bibstring{dateyear}\space}}}%
+ \iftoggle{lbx@lv@datewhen}
+ {\mkbibseason{date\thefield{#2}}}
+ {\mkbibseason{\thefield{#2}}}}%
+ \let\mkbibseasondatelong\mkbibseasondateshort
+ \savecommand\mkdaterangecomp
+ \savecommand\mkdaterangecompextra
+ \protected\def\mkdaterangecomp{%
+ \lbx@lv@mkdaterangetrunc@long{long}}%
+ \protected\def\mkdaterangecompextra{%
+ \lbx@lv@mkdaterangetruncextra@long{long}}%
+ \def\lbx@lv@makewhendate@i#1{%
+ \expandafter\savecommand\csname abx@ffd@#1@\lbx@lv@whendate@date\endcsname
+ \cspreto{abx@ffd@#1@\lbx@lv@whendate@date}{\lbx@lv@requestwhendate}}%
+ \providecommand*{\lbx@lv@makewhendate}[2][*]{%
+ \def\lbx@lv@whendate@date{#2}%
+ \def\lbx@lv@whendate@formats{#1}%
+ \expandafter\forcsvlist
+ \expandafter\lbx@lv@makewhendate@i
+ \expandafter{\lbx@lv@whendate@formats}}%
+ %\lbx@lv@makewhendate{eventdate}%
+ \def\lbx@lv@mkdottednormrange@i#1{%
+ \ifinteger{#1}
+ {\mkbibordinal{#1}}
+ {#1}}
+ \protected\def\lbx@lv@mkdottednormrange#1{%
+ \mknormrange*[\@firstofone][\lbx@lv@mkdottednormrange@i]{#1}}%
+ % this redefines \mkpageprefix to put the page number as suffix
+ \savecommand\blx@mkpageprefix
+ \protected\long\def\blx@mkpageprefix#1[#2]#3{%
+ \blx@mkpageprefix@i[#2]{#3}%
+ \ifnumeral{#3}
+ {\ppspace\bibstring{#1}}
+ {\ifnumerals{#3}
+ {\ppspace\bibstring{#1s}}
+ {\def\pno{\bibstring{#1}}%
+ \def\ppno{\bibstring{#1s}}}}}%
+ % NOTE: a few field formats are redefined here, this overrides
+ % corresponding style and preamble definitions.
+ % If you want to overwrite the changes made here, use
+ % \DefineBibliographyExtras{magyar}{...}
+ % Do not forget to make these changes undone with
+ % \UndefineBibliographyExtras{magyar}{...}
+ % to avoid them spilling out later.
+ \savefieldformat{pages}%
+ \DeclareFieldFormat{pages}{%
+ \mkpageprefix[bookpagination][\lbx@lv@mkdottednormrange]{#1}}%
+ \savefieldformat{postnote}%
+ \DeclareFieldFormat{postnote}{%
+ \mkpageprefix[bookpagination][\lbx@lv@mkdottednormrange]{#1}}%
+ \savefieldformat{volcitepages}%
+ \DeclareFieldFormat{volcitepages}{%
+ \mkpageprefix[pagination][\lbx@lv@mkdottednormrange]{#1}}%
+ \savefieldformat{multipostnote}%
+ \DeclareFieldFormat{multipostnote}{%
+ \mkpageprefix[pagination][\lbx@lv@mkdottednormrange]{#1}}%
+ \savefieldformat{chapter}%
+ \DeclareFieldFormat{chapter}{%
+ \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+ \addnbspace
+ \bibstring{chapter}}%
+ \savefieldformat{volume}%
+ \DeclareFieldFormat{volume}{%
+ \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+ \addnbspace
+ \bibstring{volume}}%
+ \savefieldformat{part}%
+ \DeclareFieldFormat{part}{%
+ \addcomma\space% <- this is *really* bad, don't try this at home
+ % In general leading or trailing punctuation in field formats should be
+ % avoided and should instead be dealt with in the appropriate bibmacros.
+ % The part field is special because its standard definition is '.#1'.
+ % Additionally, \printfield{part} is called all over the place, so we
+ % can't simply redefine a macro here.
+ \ifnumerals{#1}{\mkbibordinal{#1}}{#1}%
+ \addnbspace
+ \bibstring{part}}%
+ \savefieldformat{version}%
+ \DeclareFieldFormat{version}{%
+ \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+ \addnbspace
+ \bibstring{version}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \def\lbx@lv@restorewhendate@i#1{%
+ \expandafter\restorecommand
+ \csname abx@ffd@#1@\lbx@lv@whendate@date\endcsname}%
+ \providecommand*{\lbx@lv@restorewhendate}[2][*]{%
+ \def\lbx@lv@whendate@date{#2}%
+ \def\lbx@lv@whendate@formats{#1}%
+ \expandafter\forcsvlist
+ \expandafter\lbx@lv@restorewhendate@i
+ \expandafter{\lbx@lv@whendate@formats}}%
+ %\lbx@lv@restorewhendate{eventdate}%
+ \restorecommand\mkdaterangecomp
+ \restorecommand\mkdaterangecompextra
+ \restorecommand\mknormrange
+ \restorecommand\blx@mkpageprefix
+ \restorefieldformat{pages}%
+ \restorefieldformat{postnote}%
+ \restorefieldformat{volcitepages}%
+ \restorefieldformat{multipostnote}%
+ \restorefieldformat{chapter}%
+ \restorefieldformat{volume}%
+ \restorefieldformat{part}%
+ \restorefieldformat{version}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliogr\={a}fija}{Bibliogr\={a}fija}},
+ references = {{Literat\={u}ras saraksts}{Literat\={u}ras saraksts}},
+ shorthands = {{Sa\={\i}sin\={a}jumu saraksts}{Sa\={\i}sin\={a}jumi}},
+ % FIXME: not sure if correct, the standard editor translation seems to be the same as redactor
+ editor = {{izdev\={e}js}{izdev\adddot}},
+ editors = {{izdev\={e}ji}{izdev\adddot}},
+ compiler = {{sast\={a}d\={\i}t\={a}js}{sast\={a}d\adddot}},
+ compilers = {{sast\={a}d\={\i}t\={a}ji}{sast\={a}d\adddot}},
+ redactor = {{redaktors}{redakt\adddot}},
+ redactors = {{redaktori}{radakt\adddot}},
+ reviser = {{revidents}{revid\adddot}},
+ revisers = {{revidenti}{revid\adddot}},
+ founder = {{dibin\={a}t\={a}js}{dib\adddot}},
+ founders = {{dibin\={a}t\={a}ji}{dib\adddot}},
+ continuator = {{turpin\={a}t\={a}js}{turp\adddot}},
+ continuators = {{turpin\={a}t\={a}ji}{turp\adddot}},
+ collaborator = {{l\={\i}dzstr\={a}dnieks}{l\={\i}dzstr\adddot}},
+ collaborators = {{l\={\i}dzstr\={a}dnieki}{l\={\i}dzstr\adddot}},
+ translator = {{tulkot\={a}js}{tulk\adddot}},
+ translators = {{tulkot\={a}ji}{tulk\adddot}},
+ commentator = {{koment\={e}t\={a}js}{koment\adddot}},
+ commentators = {{koment\={e}t\={a}ji}{koment\adddot}},
+ annotator = {{anot\={a}cijas autors}{anot\adddotspace autors}},
+ annotators = {{anot\={a}cijas autori}{anot\adddotspace autori}},
+ commentary = {{koment\={a}rs}{koment\adddot}},
+ annotations = {{anot\={a}cijas}{anot\={a}c\adddot}},
+ introduction = {{ievads}{ievads}},
+ foreword = {{priek\v{s}v\={a}rds}{priek\v{s}v\adddot}},
+ afterword = {{p\={e}cv\={a}rds}{p\={e}cv\adddot}},
+ editortr = {{izdev\={e}js un tulkot\={a}js}{izdev\adddotspace un tulk\adddot}},
+ editorstr = {{izdev\={e}ji un tulkot\={a}ji}{izdev\adddotspace un tulk\adddot}},
+ editorco = {{izdev\={e}js un koment\={e}t\={a}js}{izdev\adddotspace un koment\adddot}},
+ editorsco = {{izdev\={e}ji un koment\={e}t\={a}ji}{izdev\adddotspace un koment\adddot}},
+ editoran = {{izdev\={e}js un anot\={a}cijas autors}%
+ {izdev\adddotspace un anot\adddotspace autors}},
+ editorsan = {{izdev\={e}ji un anot\={a}cijas autori}%
+ {izdev\adddotspace un anot\adddotspace autori}},
+ editorin = {{izdev\={e}js un ievada autors}{izdev\adddotspace un ievada autors}},
+ editorsin = {{izdev\={e}ji un ievada autori}{izdev\adddotspace un ievada autori}},
+ editorfo = {{izdev\={e}js un priek\v{s}v\={a}rda autors}%
+ {izdev\adddotspace un priek\v{s}v\adddotspace autors}},
+ editoraf = {{izdev\={e}js un p\={e}cv\={a}rda autors}%
+ {izdev\adddotspace un p\={e}cv\adddotspace autors}},
+ editorsaf = {{izdev\={e}ji un p\={e}cv\={a}rda autori}%
+ {izdev\adddotspace un p\={e}cv\adddotspace autori}},
+ editortrco = {{izdev\={e}js, tulkot\={a}js un koment\={e}t\={a}js}%
+ {izdev\adddot, tulk\adddotspace un koment\adddot}},
+ editorstrco = {{izdev\={e}ji, tulkot\={a}ji un koment\={e}t\={a}ji}%
+ {izdev\adddot, tulk\adddotspace un koment\adddot}},
+ editortran = {{izdev\={e}js, tulkot\={a}js un anot\={a}cijas autors}%
+ {izdev\adddot, tulk\adddotspace un anot\adddotspace autors}},
+ editorstran = {{izdev\={e}ji, tulkot\={a}ji un anot\={a}cijas autori}%
+ {izdev\adddot, tulk\adddotspace un anot\adddotspace autori}},
+ editortrin = {{izdev\={e}js, tulkot\={a}js un ievada autors}%
+ {izdev\adddot, tulk\adddotspace un ievada autors}},
+ editorstrin = {{izdev\={e}ji, tulkot\={a}ji un ievada autori}%
+ {izdev\adddot, tulk\adddotspace un ievada autori}},
+ editortrfo = {{izdev\={e}js, tulkot\={a}js un priek\v{s}v\={a}rds autors}%
+ {izdev\adddot, tulk\adddotspace un priek\v{s}v\adddotspace autors}},
+ editorstrfo = {{izdev\={e}ji, tulkot\={a}ji un priek\v{s}v\={a}rds autori}%
+ {izdev\adddot, tulk\adddotspace un priek\v{s}v\adddotspace autori}},
+ editortraf = {{izdev\={e}js, tulkot\={a}js un p\={e}cv\={a}rda autors}%
+ {izdev\adddot, tulk\adddotspace un p\={e}cv\adddotspace autors}},
+ editorstraf = {{izdev\={e}ji, tulkot\={a}ji un p\={e}cv\={a}rda autori}%
+ {izdev\adddot, tulk\adddotspace un p\={e}cv\adddotspace autori}},
+ editorcoin = {{izdev\={e}js, koment\={e}t\={a}js un ievada autors}%
+ {izdev\adddot, koment\adddotspace un ievada autors}},
+ editorscoin = {{izdev\={e}ji, koment\={e}t\={a}ji un ievada autori}%
+ {izdev\adddot, koment\adddotspace un ievada autori}},
+ editorcofo = {{izdev\={e}js, koment\={e}t\={a}js un priek\v{s}v\={a}rds autors}%
+ {izdev\adddot, koment\adddotspace un priek\v{s}v\adddotspace autors}},
+ editorscofo = {{izdev\={e}ji, koment\={e}t\={a}ji un priek\v{s}v\={a}rds autori}%
+ {izdev\adddot, koment\adddotspace un priek\v{s}v\adddotspace autori}},
+ editorcoaf = {{izdev\={e}js, koment\={e}t\={a}js un p\={e}cv\={a}rda autors}%
+ {izdev\adddot, koment\adddotspace un p\={e}cv\adddotspace autors}},
+ editorscoaf = {{izdev\={e}ji, koment\={e}t\={a}ji un p\={e}cv\={a}rda autori}%
+ {izdev\adddot, koment\adddotspace un p\={e}cv\adddotspace autori}},
+ editoranin = {{izdev\={e}js, anot\={a}cijas un ievada autors}%
+ {izdev\adddot, anot\adddotspace un ievada autors}},
+ editorsanin = {{izdev\={e}ji, anot\={a}cijas un ievada autori}%
+ {izdev\adddot, anot\adddotspace un ievada autori}},
+ editoranfo = {{izdev\={e}js, anot\={a}cijas un priek\v{s}v\={a}rda autors}%
+ {izdev\adddot, anot\adddotspace un priek\v{s}v\adddotspace autors}},
+ editorsanfo = {{izdev\={e}ji, anot\={a}cijas un priek\v{s}v\={a}rda autori}%
+ {izdev\adddot, anot\adddotspace un priek\v{s}v\adddotspace autori}},
+ editoranaf = {{izdev\={e}js, anot\={a}cijas un p\={e}cv\={a}rda autors}%
+ {izdev\adddot, anot\adddotspace un p\={e}cv\adddotspace autors}},
+ editorsanaf = {{izdev\={e}ji, anot\={a}cijas un p\={e}cv\={a}rda autori}%
+ {izdev\adddot, anot\adddotspace un p\={e}cv\adddotspace autori}},
+ editortrcoin = {{izdev\={e}js, tulkot\={a}js, koment\={e}t\={a}js un ievada autors}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un ievada autors}},
+ editorstrcoin = {{izdev\={e}ji, tulkot\={a}ji, koment\={e}t\={a}ji un ievada autori}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un ievada autori}},
+ editortrcofo = {{izdev\={e}js, tulkot\={a}js, koment\={e}t\={a}js un priek\v{s}v\={a}rda autors}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace autors}},
+ editorstrcofo = {{izdev\={e}ji, tulkot\={a}ji, koment\={e}t\={a}ji un priek\v{s}v\={a}rda autori}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace autori}},
+ editortrcoaf = {{izdev\={e}js, tulkot\={a}js, koment\={e}t\={a}js un p\={e}cv\={a}rda autors}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace autors}},
+ editorstrcoaf = {{izdev\={e}ji, tulkot\={a}ji, koment\={e}t\={a}ji un p\={e}cv\={a}rda autori}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace autori}},
+ editortranin = {{izdev\={e}js, koment\={e}t\={a}js, anot\={a}cijas un ievada autors}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un ievada autors}},
+ editorstranin = {{izdev\={e}ji, koment\={e}t\={a}ji, anot\={a}cijas un ievada autori}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un ievada autori}},
+ editortranfo = {{izdev\={e}js, koment\={e}t\={a}js, anot\={a}cijas un priek\v{s}v\={a}rda autors}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un priek\v{s}v\adddotspace autors}},
+ editorstranfo = {{izdev\={e}ji, koment\={e}t\={a}ji, anot\={a}cijas un priek\v{s}v\={a}rda autori}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un priek\v{s}v\adddotspace autori}},
+ editortranaf = {{izdev\={e}js, koment\={e}t\={a}js, anot\={a}cijas un p\={e}cv\={a}rda autors}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un p\={e}cv\adddotspace autors}},
+ editorstranaf = {{izdev\={e}ji, koment\={e}t\={a}ji, anot\={a}cijas un p\={e}cv\={a}rda autori}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un p\={e}cv\adddotspace autori}},
+ translatorco = {{tulkot\={a}js un koment\={e}t\={a}js}{tulk\adddotspace un koment\adddot}},
+ translatorsco = {{tulkot\={a}ji un koment\={e}t\={a}ji}{tulk\adddotspace un koment\adddot}},
+ translatoran = {{tulkot\={a}js un anot\={a}cijas autors}%
+ {tulk\adddotspace un anot\adddotspace autors}},
+ translatorsan = {{tulkot\={a}ji un anot\={a}cijas autori}%
+ {tulk\adddotspace un anot\adddotspace autori}},
+ translatorin = {{tulkot\={a}js un ievada autors}{tulk\adddotspace un ievada autors}},
+ translatorsin = {{tulkot\={a}ji un ievada autori}{tulk\adddotspace un ievada autori}},
+ translatorfo = {{tulkot\={a}js un priek\v{s}v\={a}rda autors}%
+ {tulk\adddotspace un priek\v{s}v\adddotspace autors}},
+ translatorsfo = {{tulkot\={a}ji un priek\v{s}v\={a}rda autori}%
+ {tulk\adddotspace un priek\v{s}v\adddotspace autori}},
+ translatoraf = {{tulkot\={a}js un p\={e}cv\={a}rda autors}%
+ {tulk\adddotspace un p\={e}cv\adddotspace autors}},
+ translatorsaf = {{tulkot\={a}ji un p\={e}cv\={a}rda autori}%
+ {tulk\adddotspace un p\={e}cv\adddotspace autori}},
+ translatorcoin = {{tulkot\={a}js, koment\={e}t\={a}js un ievada autors}%
+ {tulk\adddot, koment\adddotspace un ievada autors}},
+ translatorscoin = {{tulkot\={a}ji, koment\={e}t\={a}ji un ievada autori}%
+ {tulk\adddot, koment\adddotspace un ievada autori}},
+ translatorcofo = {{tulkot\={a}js, koment\={e}t\={a}js un priek\v{s}v\={a}rda autors}%
+ {tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace autors}},
+ translatorscofo = {{tulkot\={a}ji, koment\={e}t\={a}ji un priek\v{s}v\={a}rda autori}%
+ {tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace autori}},
+ translatorcoaf = {{tulkot\={a}js, koment\={e}t\={a}js un p\={e}cv\={a}rda autors}%
+ {tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace autors}},
+ translatorscoaf = {{tulkot\={a}ji, koment\={e}t\={a}ji un p\={e}cv\={a}rda autori}%
+ {tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace autori}},
+ translatoranin = {{tulkot\={a}js, anot\={a}cijas un ievada autors}%
+ {tulk\adddot, anot\adddotspace un ievada autors}},
+ translatorsanin = {{tulkot\={a}ji, anot\={a}cijas un ievada autori}%
+ {tulk\adddot, anot\adddotspace un ievada autori}},
+ translatoranfo = {{tulkot\={a}js, anot\={a}cijas un priek\v{s}v\={a}rda autors}%
+ {tulk\adddot, anot\adddotspace un priek\v{s}v\adddotspace autors}},
+ translatorsanfo = {{tulkot\={a}ji, anot\={a}cijas un priek\v{s}v\={a}rda autori}%
+ {tulk\adddot, anot\adddotspace un priek\v{s}v\adddotspace autori}},
+ translatoranaf = {{tulkot\={a}js, anot\={a}cijas un p\={e}cv\={a}rda autors}%
+ {tulk\adddot, anot\adddotspace un p\={e}cv\adddotspace autors}},
+ translatorsanaf = {{tulkot\={a}ji, anot\={a}cijas un p\={e}cv\={a}rda autori}%
+ {tulk\adddot, anot\adddotspace un p\={e}cv\adddotspace autori}},
+ organizer = {{organiz\={e}t\={a}js}{organiz\adddot}},
+ organizers = {{organiz\={e}t\={a}ji}{organiz\adddot}},
+ % FIXME: currently by* strings can appear akward if they're followed by multiple
+ % words connected by "and" or feminine nouns and abbreviate=false is used
+ byorganizer = {{organiz\={e}jis}{organiz\adddot}},
+ byauthor = {{sarakst\={\i}jis}{sarakst\adddot}},
+ byeditor = {{izdevis}{izdevis}},
+ bycompiler = {{sast\={a}d\={\i}jis}{sast\={a}d\adddot}},
+ byredactor = {{redi\v{g}\={e}jis}{redi\v{g}\adddot}},
+ byreviser = {{revid\={e}jis}{revid\adddot}},
+ byreviewer = {{recenz\={e}jis}{recenz\adddot}},
+ byfounder = {{dibin\={a}jis}{dib\adddot}},
+ bycontinuator = {{turpin\={a}jis}{turpin\adddot}},
+ bycollaborator = {{ar sadarb\={\i}bu no}{ar sadarb\={\i}bu no}},
+ bytranslator = {{tulkojis}{tulk\adddot}},
+ bycommentator = {{koment\={e}jis}{koment\adddot}},
+ byannotator = {{anot\={a}ciju sast\={a}d\={\i}jis}{anot\adddotspace sast\={a}d\adddot}},
+ withcommentator = {{ar koment\={a}riem no}{ar koment\adddotspace no}},
+ withannotator = {{ar anot\={a}ciju no}{ar anot\adddotspace no}},
+ withintroduction = {{ar ievadu no}{ar ievadu no}},
+ withforeword = {{ar priek\v{s}v\={a}rdu no}{ar priek\v{s}v\adddotspace no}},
+ withafterword = {{ar p\={e}cv\={a}rdu no}{ar p\={e}cv\adddotspace no}},
+ byeditortr = {{izdevis un tulkojis}{izdev\adddotspace un tulk\adddot}},
+ byeditorco = {{izdevis un koment\={e}jis}{izdev\adddotspace un koment\adddot}},
+ byeditoran = {{izdevis un anot\={a}ciju sast\={a}d\={\i}jis}%
+ {izdev\adddotspace un anot\adddotspace sast\={a}d\adddot}},
+ byeditorin = {{izdevis un ievadu sast\={a}d\={\i}jis}%
+ {izdev\adddotspace un ievadu sast\={a}d\adddot}},
+ byeditorfo = {{izdevis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ byeditoraf = {{izdevis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ byeditortrco = {{izdevis, tulkojis un koment\={e}jis}%
+ {izdev\adddot, tulk\adddotspace un koment\adddot}},
+ byeditortran = {{izdevis, tulkojis un anot\={a}ciju sast\={a}d\={\i}jis}%
+ {izdev\adddot, tulk\adddotspace un anot\adddotspace sast\={a}d\adddot}},
+ byeditortrin = {{izdevis, tulkojis un ievadu sast\={a}d\={\i}jis}%
+ {izdev\adddot, tulk\adddotspace un ievadu sast\={a}d\adddot}},
+ byeditortrfo = {{izdevis, tulkojis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, tulk\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ byeditortraf = {{izdevis, tulkojis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, tulk\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ byeditorcoin = {{izdevis, koment\={e}jis un ievadu sast\={a}d\={\i}jis}%
+ {izdev\adddot, koment\adddotspace un ievadu sast\={a}d\adddot}},
+ byeditorcofo = {{izdevis, koment\={e}jis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, koment\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ byeditorcoaf = {{izdevis, koment\={e}jis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, koment\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ byeditoranin = {{izdevis, anot\={a}ciju un ievadu sast\={a}d\={\i}jis}%
+ {izdev\adddot, anot\adddotspace un ievadu sast\={a}d\adddot}},
+ byeditoranfo = {{izdevis, anot\={a}ciju un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, anot\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ byeditoranaf = {{izdevis, anot\={a}ciju un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, anot\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ byeditortrcoin = {{izdevis, tulkojis, koment\={e}jis un ievadu sast\={a}d\={\i}jis}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un ievadu sast\={a}d\adddot}},
+ byeditortrcoin = {{izdevis, tulkojis, koment\={e}jis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ byeditortrcoaf = {{izdevis, tulkojis, koment\={e}jis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ byeditortranin = {{izdevis, koment\={e}jis, anot\={a}ciju un ievadu sast\={a}d\={\i}jis}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un ievadu sast\={a}d\adddot}},
+ byeditortranfo = {{izdevis, koment\={e}jis, anot\={a}ciju priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ byeditortranaf = {{izdevis, koment\={e}jis, anot\={a}ciju un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {izdev\adddot, koment\adddot, anot\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ bytranslatorco = {{tulkojis un koment\={e}jis}{tulk\adddotspace un koment\adddot}},
+ bytranslatoran = {{tulkojis un anot\={a}ciju sast\={a}d\={\i}jis}%
+ {tulk\adddotspace un anot\adddotspace sast\={a}d\adddot}},
+ bytranslatorin = {{tulkojis un ievadu sast\={a}d\={\i}jis}%
+ {tulk\adddotspace un ievadu sast\={a}d\adddot}},
+ bytranslatorfo = {{tulkojis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {tulk\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ bytranslatoraf = {{tulkojis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {tulk\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ bytranslatorcoin = {{tulkojis, koment\={e}jis un ievadu sast\={a}d\={\i}jis}%
+ {tulk\adddot, koment\adddotspace un ievadu sast\={a}d\adddot}},
+ bytranslatorcofo = {{tulkojis, koment\={e}jis un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {tulk\adddot, koment\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ bytranslatorcoaf = {{tulkojis, koment\={e}jis un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {tulk\adddot, koment\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ bytranslatoranin = {{tulkojis, anot\={a}ciju un ievadu sast\={a}d\={\i}jis}%
+ {tulk\adddot, anot\adddotspace un ievadu sast\={a}d\adddot}},
+ bytranslatoranfo = {{tulkojis, anot\={a}ciju un priek\v{s}v\={a}rdu sast\={a}d\={\i}jis}%
+ {tulk\adddot, anot\adddotspace un priek\v{s}v\adddotspace sast\={a}d\adddot}},
+ bytranslatoranaf = {{tulkojis, anot\={a}ciju un p\={e}cv\={a}rdu sast\={a}d\={\i}jis}%
+ {tulk\adddot, anot\adddotspace un p\={e}cv\adddotspace sast\={a}d\adddot}},
+ and = {{un}{un}},
+ andothers = {{un citi}{u\adddotspace c\adddot}},
+ andmore = {{un t\={a} t\={a}l\={a}k}{utt\adddot}},
+ volume = {{s\={e}jums}{s\={e}jums}},
+ volumes = {{s\={e}jumi}{s\={e}jumi}},
+ % FIXME: should be after the volume count not before, e.g. "10 s\={e}jumos"
+ % involumes = {{s\={e}jumos}{s\={e}jumos}},
+ jourvol = {{izdevums}{izdev\adddot}},
+ jourser = {{s\={e}rija}{s\={e}rija}},
+ book = {{gr\={a}mata}{gr\={a}m\adddot}},
+ part = {{da\c{l}a}{da\c{l}a}},
+ issue = {{izdevums}{izdev\adddot}},
+ newseries = {{jaun\={a}s s\={e}rijas}{jaun\={a}s s\={e}r\adddot}},
+ oldseries = {{vec\={a}s s\={e}rijas}{vec\={a}s s\={e}rijas}},
+ edition = {{izdevums}{izdev\adddot}},
+ reprint = {{atk\={a}rtots izdevums}{atk\={a}rt\adddotspace izdev\adddot}},
+ reprintof = {{atk\={a}rtots izdevums no}{atk\={a}rt\adddotspace izdev\adddotspace no}},
+ reprintas = {{atk\={a}rtoti izdots k\={a}}{atk\={a}rt\adddotspace izdots k\={a}}},
+ reprintfrom = {{atk\={a}rtots izdevums no}{atk\={a}rt\adddotspace izdev\adddotspace no}},
+ translationof = {{tulkojums no}{tulk\adddotspace no}},
+ translationas = {{tulkots k\={a}}{tulk\adddotspace k\={a}}},
+ translationfrom = {{tulkots no}{tulk\adddotspace no}},
+ reviewof = {{recenzija}{recenz\adddot}},
+ origpubas = {{ori\v{g}in\={a}li public\={e}ts k\={a}}{ori\v{g}\adddotspace public\adddotspace k\={a}}},
+ origpubin = {{ori\v{g}in\={a}li public\={e}ts}{ori\v{g}\adddotspace public\adddot}},
+ astitle = {{k\={a}}{k\={a}}},
+ bypublisher = {{no}{no}},
+ nodate = {{bez datuma}{bez dat\adddot}},
+ page = {{lappuse}{lpp\adddot}},
+ pages = {{lappuses}{lpp\adddot}},
+ column = {{sleja}{sleja}},
+ columns = {{slejas}{slejas}},
+ line = {{rinda}{rinda}},
+ lines = {{rindas}{rindas}},
+ verse = {{pants}{pants}},
+ verses = {{panti}{panti}},
+ section = {{noda\c{l}a}{nod\adddot}},
+ sections = {{noda\c{l}as}{nod\adddot}},
+ paragraph = {{rindkopa}{rindk\adddot}},
+ paragraphs = {{rindkopas}{rindk\adddot}},
+ pagetotal = {{lappuse}{lpp\adddot}},
+ pagetotals = {{lappuses}{lpp\adddot}},
+ columntotal = {{sleja}{sleja}},
+ columntotals = {{slejas}{slejas}},
+ linetotal = {{rinda}{rinda}},
+ linetotals = {{rindas}{rindas}},
+ versetotal = {{pants}{pants}},
+ versetotals = {{panti}{panti}},
+ sectiontotal = {{noda\c{l}a}{nod\adddot}},
+ sectiontotals = {{noda\c{l}as}{nod\adddot}},
+ paragraphtotal = {{rindkopa}{rindk\adddot}},
+ paragraphtotals = {{rindkopas}{rindk\adddot}},
+ in = {{}{}}, % Works well as an empty string
+ inseries = {{s\={e}rij\={a}s}{s\={e}rij\={a}s}},
+ ofseries = {{s\={e}rijas}{s\={e}rijas}},
+ number = {{numurs}{nr\adddot}},
+ chapter = {{noda\c{l}a}{nod\adddot}},
+ % bathesis = {{bakalaura darbs}{bak\adddotspace darbs}},
+ mathesis = {{ma\v{g}istra darbs}{ma\v{g}\adddotspace darbs}},
+ phdthesis = {{doktora gr\={a}da disert\={a}cija}{dokt\adddotspace gr\={a}da disert\adddot}},
+ candthesis = {{kandid\={a}ta disert\={a}cija}{kand\adddotspace disert\adddot}},
+ resreport = {{p\={e}tniec\={\i}bas darba p\={a}rskats}{p\={e}tn\adddotspace darba p\={a}rsk\adddot}},
+ techreport = {{tehniskais zi\c{n}ojums}{tehn\adddotspace zi\c{n}\adddot}},
+ software = {{programmat\={u}ra}{progr\adddot}},
+ datacd = {{datu CD}{datu CD}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{versija}{versija}},
+ url = {{pieejams}{pieejams}},
+ urlfrom = {{pieejams no}{pieejams no}},
+ urlseen = {{apl\={u}kots\aftergroup\lbx@lv@requestwhendate}{apl\={u}kots\aftergroup\lbx@lv@requestwhendate}},
+ inpreparation = {{tiek gatavots}{tiek gatavots}},
+ submitted = {{iesniegts}{iesniegts}},
+ forthcoming = {{gaid\={a}mais}{gaid\={a}mais}},
+ inpress = {{pres\={e}}{pres\={e}}},
+ prepublished = {{agr\={a}k public\={e}ts}{agr\={a}k public\adddot}},% FIXME: not sure if correct
+ citedas = {{turpm\={a}k cit\={e}ts k\={a}}{turpm\={a}k cit\={e}ts k\={a}}},
+ % thiscite = {{}{}},% FIXME: missing
+ seenote = {{skat\={\i}t piez\={\i}mi}{skat\adddotspace piez\adddot}},
+ quotedin = {{cit\={e}ts}{cit\={e}ts}},
+ % idem = {{}{}},% FIXME: missing
+ % idemsf = {{}{}},% FIXME: missing
+ % idemsm = {{}{}},% FIXME: missing
+ % idemsn = {{}{}},% FIXME: missing
+ % idempf = {{}{}},% FIXME: missing
+ % idempm = {{}{}},% FIXME: missing
+ % idempn = {{}{}},% FIXME: missing
+ % idempp = {{}{}},% FIXME: missing
+ % ibidem = {{}{}},% FIXME: missing
+ % opcit = {{}{}},% FIXME: missing
+ % loccit = {{}{}},% FIXME: missing
+ % confer = {{}{}},% FIXME: missing
+ % sequens = {{}{}},% FIXME: missing
+ % sequentes = {{}{}},% FIXME: missing
+ % passim = {{}{}},% FIXME: missing
+ see = {{skat\={\i}t}{skat\adddot}},
+ seealso = {{skat\={\i}t ar\={\i}}{skat\adddotspace ar\={\i}}},
+ backrefpage = {{cit\={e}ts lappus\={e}}{cit\={e}ts lpp\adddot}},
+ backrefpages = {{cit\={e}ts lappus\={e}s}{cit\={e}ts lpp\adddot}},
+ january = {{janv\={a}ris}{janv\adddot}},
+ february = {{febru\={a}ris}{febr\adddot}},
+ march = {{marts}{marts}},
+ april = {{apr\={\i}lis}{apr\adddot}},
+ may = {{maijs}{maijs}},
+ june = {{j\={u}nijs}{j\={u}n\adddot}},
+ july = {{j\={u}lijs}{j\={u}l\adddot}},
+ august = {{augusts}{aug\adddot}},
+ september = {{septembris}{sept\adddot}},
+ october = {{oktobris}{okt\adddot}},
+ november = {{novembris}{nov\adddot}},
+ december = {{decembris}{dec\adddot}},
+ locjanuary = {{janv\={a}r\={\i}}{janv\adddot}},
+ locfebruary = {{febru\={a}r\={\i}}{febr\adddot}},
+ locmarch = {{mart\={a}}{mart\={a}}},
+ locapril = {{apr\={\i}l\={\i}}{apr\adddot}},
+ locmay = {{maij\={a}}{maij\={a}}},
+ locjune = {{j\={u}nij\={a}}{j\={u}n\adddot}},
+ locjuly = {{j\={u}lij\={a}}{j\={u}l\adddot}},
+ locaugust = {{august\={a}}{aug\adddot}},
+ locseptember = {{septembr\={\i}}{sept\adddot}},
+ lococtober = {{oktobr\={\i}}{okt\adddot}},
+ locnovember = {{novembr\={\i}}{nov\adddot}},
+ locdecember = {{decembr\={\i}}{dec\adddot}},
+ langamerican = {{amerik\={a}\c{n}u}{amerik\={a}\c{n}u}},
+ langbrazilian = {{braz\={\i}lie\v{s}u}{braz\={\i}lie\v{s}u}},
+ langbulgarian = {{bulg\={a}ru}{bulg\={a}ru}},
+ langcatalan = {{katal\={a}\c{n}u}{katal\={a}\c{n}u}},
+ langcroatian = {{horv\={a}tu}{horv\={a}tu}},
+ langczech = {{\v{c}ehu}{\v{c}ehu}},
+ langdanish = {{d\={a}\c{n}u}{d\={a}\c{n}u}},
+ langdutch = {{n\={\i}derlandie\v{s}u}{n\={\i}derlandie\v{s}u}},
+ langenglish = {{ang\c{l}u}{ang\c{l}u}},
+ langestonian = {{igau\c{n}u}{igau\c{n}u}},
+ langfinnish = {{somu}{somu}},
+ langfrench = {{fran\v{c}u}{fran\v{c}u}},
+ langgalician = {{galsie\v{s}u}{galsie\v{s}u}},
+ langgerman = {{v\={a}cu}{v\={a}cu}},
+ langgreek = {{grie\c{k}u}{grie\c{k}u}},
+ langhungarian = {{ung\={a}ru}{ung\={a}ru}},
+ langitalian = {{it\={a}\c{l}u}{it\={a}\c{l}u}},
+ langjapanese = {{jap\={a}\c{n}u}{jap\={a}\c{n}u}},
+ langlatin = {{lat\={\i}\c{n}u}{lat\={\i}\c{n}u}},
+ langlatvian = {{latvie\v{s}u}{latvie\v{s}u}},
+ langnorwegian = {{norv\={e}\v{g}u}{norv\={e}\v{g}u}},
+ langpolish = {{po\c{l}u}{po\c{l}u}},
+ langportuguese = {{portug\={a}\c{l}u}{portug\={a}\c{l}u}},
+ langrussian = {{krievu}{krievu}},
+ langslovak = {{slov\={a}ku}{slov\={a}ku}},
+ langslovene = {{slov\={e}\c{n}u}{slov\={e}\c{n}u}},
+ langspanish = {{sp\={a}\c{n}u}{sp\={a}\c{n}u}},
+ langswedish = {{zviedru}{zviedru}},
+ langukrainian = {{ukrai\c{n}u}{ukrai\c{n}u}},
+ fromamerican = {{no amerik\={a}\c{n}u}{no amerik\={a}\c{n}u}},
+ frombrazilian = {{no braz\={\i}lie\v{s}u}{no braz\={\i}lie\v{s}u}},
+ frombulgarian = {{no bulg\={a}ru}{no bulg\={a}ru}},
+ fromcatalan = {{no katal\={a}\c{n}u}{no katal\={a}\c{n}u}},
+ fromcroatian = {{no horv\={a}tu}{no horv\={a}tu}},
+ fromczech = {{no \v{c}ehu}{no \v{c}ehu}},
+ fromdanish = {{no d\={a}\c{n}u}{no d\={a}\c{n}u}},
+ fromdutch = {{no n\={\i}derlandie\v{s}u}{no n\={\i}derlandie\v{s}u}},
+ fromenglish = {{no ang\c{l}u}{no ang\c{l}u}},
+ fromestonian = {{no igau\c{n}u}{no igau\c{n}u}},
+ fromfinnish = {{no somu}{no somu}},
+ fromfrench = {{no fran\v{c}u}{no fran\v{c}u}},
+ fromgalician = {{no galsie\v{s}u}{no galsie\v{s}u}},
+ fromgerman = {{no v\={a}cu}{no v\={a}cu}},
+ fromgreek = {{no grie\c{k}u}{no grie\c{k}u}},
+ fromhungarian = {{no ung\={a}ru}{no ung\={a}ru}},
+ fromitalian = {{no it\={a}\c{l}u}{no it\={a}\c{l}u}},
+ fromjapanese = {{no jap\={a}\c{n}u}{no jap\={a}\c{n}u}},
+ fromlatin = {{no lat\={\i}\c{n}u}{no lat\={\i}\c{n}u}},
+ fromlatvian = {{no latvie\v{s}u}{no latvie\v{s}u}},
+ fromnorwegian = {{no norv\={e}\v{g}u}{no norv\={e}\v{g}u}},
+ frompolish = {{no po\c{l}u}{no po\c{l}u}},
+ fromportuguese = {{no portug\={a}\c{l}u}{no portug\={a}\c{l}u}},
+ fromrussian = {{no krievu}{no krievu}},
+ fromslovak = {{no slov\={a}ku}{no slov\={a}ku}},
+ fromslovene = {{no slov\={e}\c{n}u}{no slov\={e}\c{n}u}},
+ fromspanish = {{no sp\={a}\c{n}u}{no sp\={a}\c{n}u}},
+ fromswedish = {{no zviedru}{no zviedru}},
+ fromukrainian = {{no ukrai\c{n}u}{no ukrai\c{n}u}},
+ countryde = {{V\={a}cija}{DE}},
+ countryeu = {{Eiropas Savien\={\i}ba}{ES}},
+ countryep = {{Eiropas Parlaments}{EP}},
+ countryfr = {{Francija}{FR}},
+ countryuk = {{Lielbrit\={a}nija}{GB}},
+ countryus = {{Amerikas Savienot\={a}s Valstis}{ASV}},
+ patent = {{patents}{patents}},
+ patentde = {{v\={a}cu patents}{v\={a}cu pat\adddot}},
+ patenteu = {{Eiropas patents}{Eiropas pat\adddot}},
+ patentfr = {{fran\v{c}u patents}{fran\v{c}u pat\adddot}},
+ patentuk = {{ang\c{l}u patents}{ang\c{l}u pat\adddot}},
+ patentus = {{ASV patents}{ASV pat\adddot}},
+ patreq = {{patenta piepras\={\i}jums}{pat\adddotspace piepras\adddot}},
+ patreqde = {{v\={a}cu patenta piepras\={\i}jums}{V\={a}cu pat\adddotspace piepras\adddot}},
+ patreqeu = {{Eiropas patenta piepras\={\i}jums}{Eiropas pat\adddotspace piepras\adddot}},
+ patreqfr = {{fran\v{c}u patenta piepras\={\i}jums}{fran\v{c}u pat\adddotspace piepras\adddot}},
+ patrequk = {{ang\c{l}u patenta piepras\={\i}jums}{ang\c{l}u pat\adddotspace piepras\adddot}},
+ patrequs = {{ASV patenta piepras\={\i}jums}{ASV pat\adddotspace piepras\adddot}},
+ file = {{fails}{fails}},
+ library = {{bibliot\={e}ka}{bibliot\={e}ka}},
+ abstract = {{atrefer\={e}jums}{atref\adddot}},
+ annotation = {{anot\={a}cija}{anot\={a}cija}},
+ commonera = {{m\={u}su \={e}ra}{m\adddotspace \={e}\adddot}},
+ beforecommonera = {{pirms m\={u}su \={e}ras}{p\adddotspace m\adddotspace \={e}\adddot}},
+ annodomini = {{p\={e}c Kristus dzim\v{s}anas}{AD}},
+ beforechrist = {{pirms Kristus dzim\v{s}anas}{BC}},
+ circa = {{ap}{ap}},
+ spring = {{pavasaris}{pav\adddot}},
+ summer = {{vasara}{vas\adddot}},
+ autumn = {{rudens}{rud\adddot}},
+ winter = {{ziema}{ziema}},
+ locspring = {{pavasar\={\i}}{pav\adddot}},
+ locsummer = {{vasar\={a}}{vas\adddot}},
+ locautumn = {{ruden\={\i}}{rud\adddot}},
+ locwinter = {{ziem\={a}}{ziem\={a}}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+ dateyear = {{gada}{g\adddot}},
+ locdateyear = {{gad\={a}}{g\adddot}},
+}
+
+\protected\gdef\lbx@lv@mkbibdatemonthwhen#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{locjanuary}%
+ \or\abx@bibmonth{locfebruary}%
+ \or\abx@bibmonth{locmarch}%
+ \or\abx@bibmonth{locapril}%
+ \or\abx@bibmonth{locmay}%
+ \or\abx@bibmonth{locjune}%
+ \or\abx@bibmonth{locjuly}%
+ \or\abx@bibmonth{locaugust}%
+ \or\abx@bibmonth{locseptember}%
+ \or\abx@bibmonth{lococtober}%
+ \or\abx@bibmonth{locnovember}%
+ \or\abx@bibmonth{locdecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\protected\gdef\lbx@lv@mkdaterangetrunc@long#1#2{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefull{#1}{#2}}
+ {\lbx@lv@mkdaterangetrunc@long@i{#1}{#2}}}
+
+\protected\gdef\lbx@lv@mkdaterangetrunc@long@i#1#2{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{#2year}{}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}%
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateeraprint{#2year}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2endseason}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\protected\gdef\lbx@lv@mkdaterangetruncextra@long#1#2{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefullextra{#1}{#2}}
+ {\lbx@lv@mkdaterangetruncextra@long@i{#1}{#2}}}
+
+\protected\gdef\lbx@lv@mkdaterangetruncextra@long@i#1#2{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[#2date]{%
+ \datecircaprint
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{#2year}{}{#2day}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}%
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateeraprint{#2year}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {\printfield{extradate}}
+ {\iffieldequalstr{#2endyear}{}
+ {\printfield{extradate}%
+ \mbox{\bibdaterangesep}}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2endseason}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \printfield{extradate}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/magyar.lbx b/macros/latex/contrib/biblatex/latex/lbx/magyar.lbx
new file mode 100644
index 0000000000..f94e50eaa8
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/magyar.lbx
@@ -0,0 +1,733 @@
+\ProvidesFile{magyar.lbx}
+[\abx@lbxid]
+
+\ifundef{\lbx@hu@loadinfo}
+ {\blx@warning@noline{%
+ Hungarian localisation module for biblatex loaded.\MessageBreak
+ This module changes more definitions than usual.\MessageBreak
+ Please refer to the documentation for hints and\MessageBreak
+ check the output carefully, especially with non-\MessageBreak
+ standard styles or customisations to field formats.\MessageBreak
+ This warning can be disabled by calling\MessageBreak
+ '\string\BiblatexHungarianWarningOff'\MessageBreak
+ after 'biblatex' has been loaded, but before\MessageBreak
+ the localisation is loaded for the first time}%
+ \global\let\lbx@hu@loadinfo\@empty}
+ {}
+
+\DeclareRedundantLanguages{magyar}{magyar,hungarian}
+
+\DeclareBibliographyExtras{%
+ \DeclareCapitalPunctuation{.!?}%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \savecommand\bibdaterangesep
+ \protected\def\bibdaterangesep{\space\textendash\space}%
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \let\lbx@hu@dayrange\@secondoftwo
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#1}
+ {}
+ {\iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}%
+ \iffieldundef{#2}{\thefield{#1}}
+ {\mkbibordinal{\thefield{#1}}}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#3}{}{\nobreakspace}}%
+ \iffieldundef{#3}
+ {}
+ {\lbx@hu@dayrange{\thefield{#3}}{\mkbibordinal{\thefield{#3}}}}%
+ }%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#1}
+ {}
+ {\iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}%
+ \iffieldundef{#2}{\thefield{#1}}
+ {\mkbibordinal{\thefield{#1}}}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}\adddot
+ \iffieldundef{#3}{}{\nobreakspace}}%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\lbx@hu@dayrange{}{\adddot}}%
+ }%
+ \let\mkbibseasondatelong\mkbibseasondateshort
+ \savecommand\mkdaterangecomp
+ \savecommand\mkdaterangecompextra
+ \savecommand\mkdaterangeterse
+ \savecommand\mkdaterangeterseextra
+ \protected\def\mkdaterangecomp{%
+ \lbx@hu@mkdaterangetrunc{long}}%
+ \protected\def\mkdaterangeterse{%
+ \lbx@hu@mkdaterangetrunc{short}}%
+ \protected\def\mkdaterangecompextra{%
+ \lbx@hu@mkdaterangetruncextra{long}}%
+ \protected\def\mkdaterangeterseextra{%
+ \lbx@hu@mkdaterangetruncextra{short}}%
+\expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \csletcs{mkbibtime12h}{mkbibtime24h}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}%
+ \iffieldundef{#1}{}{\adddot\space}
+ \mkbibseason{\thefield{#2}}%
+ }%
+ \let\mkbibseasondatelong\mkbibseasondateshort
+ \savecommand\lbx@lfromlang
+ \savecommand\lbx@sfromlang
+ \def\lbx@lfromlang{%
+ \iflistundef{origlanguage}
+ {}
+ {\printlist[lfromoriglanguage]{origlanguage}\space}}%
+ \def\lbx@sfromlang{%
+ \iflistundef{origlanguage}
+ {}
+ {\printlist[sfromoriglanguage]{origlanguage}\space}}%
+ % Page numbers and ranges
+ % convenient shorthand for page range normalisation
+ \protected\def\lbx@hu@mkdottednormrange{\mknormrange*[\mkbibordinal]}%
+ % this redefines \mkpageprefix to put the page number as suffix
+ \savecommand\blx@mkpageprefix
+ \protected\long\def\blx@mkpageprefix#1[#2]#3{%
+ \blx@mkpageprefix@i[#2]{#3}%
+ \ifnumeral{#3}
+ {\ppspace\bibstring{#1}}
+ {\ifnumerals{#3}
+ {\ppspace\bibstring{#1s}}
+ {\def\pno{\bibstring{#1}}%
+ \def\ppno{\bibstring{#1s}}}}}%
+ % NOTE: a few field formats are redefined here, this overrides
+ % corresponding style and preamble definitions.
+ % If you want to overwrite the changes made here, use
+ % \DefineBibliographyExtras{magyar}{...}
+ % Do not forget to make these changes undone with
+ % \UndefineBibliographyExtras{magyar}{...}
+ % to avoid them spilling out later.
+ \savefieldformat{pages}%
+ \DeclareFieldFormat{pages}{%
+ \mkpageprefix[bookpagination][\lbx@hu@mkdottednormrange]{#1}}%
+ \savefieldformat{postnote}%
+ \DeclareFieldFormat{postnote}{%
+ \mkpageprefix[pagination][\lbx@hu@mkdottednormrange]{#1}}%
+ \savefieldformat{volcitepages}%
+ \DeclareFieldFormat{volcitepages}{%
+ \mkpageprefix[pagination][\lbx@hu@mkdottednormrange]{#1}}%
+ \savefieldformat{multipostnote}%
+ \DeclareFieldFormat{multipostnote}{%
+ \mkpageprefix[pagination][\lbx@hu@mkdottednormrange]{#1}}%
+ \savefieldformat{chapter}%
+ \DeclareFieldFormat{chapter}{%
+ \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+ \addnbspace
+ \bibstring{chapter}}%
+ \savefieldformat{volume}%
+ \DeclareFieldFormat{volume}{%
+ \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+ \addnbspace
+ \bibstring{volume}}%
+ \savefieldformat{part}%
+ \DeclareFieldFormat{part}{%
+ \addcomma\space% <- this is *really* bad, don't try this at home
+ % In general leading or trailing punctuation in field formats should be
+ % avoided and should instead be dealt with in the appropriate bibmacros.
+ % The part field is special because its standard definition is '.#1'.
+ % Additionally, \printfield{part} is called all over the place, so we
+ % can't simply redefine a macro here.
+ \ifnumerals{#1}{\mkbibordinal{#1}}{#1}%
+ \addnbspace
+ \bibstring{part}}%
+ \savefieldformat{version}%
+ \DeclareFieldFormat{version}{%
+ \ifnumerals{#1}{\mkbibordinal{#1}}{#1}
+ \addnbspace
+ \bibstring{version}}%
+}
+
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\bibdaterangesep
+ \restorecommand\mkdaterangecomp
+ \restorecommand\mkdaterangecompextra
+ \restorecommand\mkdaterangeterse
+ \restorecommand\mkdaterangeterseextra
+ \restorecommand\lbx@lfromlang
+ \restorecommand\lbx@sfromlang
+ \restorecommand\mknormrange
+ \restorecommand\blx@mkpageprefix
+ \restorefieldformat{pages}%
+ \restorefieldformat{postnote}%
+ \restorefieldformat{volcitepages}%
+ \restorefieldformat{multipostnote}%
+ \restorefieldformat{chapter}%
+ \restorefieldformat{volume}%
+ \restorefieldformat{part}%
+ \restorefieldformat{version}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Irodalomjegyz\'ek}{Irodalom}},
+ references = {{Hivatkoz\'asok}{Hivatkoz\'asok}},
+ shorthands = {{R\"ovid\'it\'esek jegyz\'eke}{R\"ovid\'it\'esek}},
+ editor = {{szerkeszt\H{o}}{szerk\adddot}},
+ editors = {{szerkeszt\H{o}k}{szerk\adddot}},
+ compiler = {{\"ossze\'all\'it\'o}{\"ossze\'all\adddot}},
+ compilers = {{\"ossze\'all\'it\'ok}{\"ossze\'all\adddot}},
+ redactor = {{sajt\'o al\'a rendez\H{o}}{kiad\adddot}},
+ redactors = {{sajt\'o al\'a rendez\H{o}k}{kiad\adddot}},
+ reviser = {{korrektor}{korr\adddot}},
+ revisers = {{korrektorok}{korr\adddot}},
+ founder = {{alap\'it\'o}{alap\adddot}},
+ founders = {{alap\'it\'ok}{alap\adddot}},
+ %continuator = {{}{}},% FIXME missing
+ %continuators = {{}{}},% FIXME missing
+ collaborator = {{k\"ozrem\H{u}k\"od\H{o}}{km\adddot}},
+ collaborators = {{k\"ozrem\H{u}k\"od\H{o}k}{km\adddot}},
+ translator = {{ford\'it\'o}{ford\adddot}},
+ translators = {{ford\'it\'ok}{ford\adddot}},
+ commentator = {{komment\'ator}{komm\adddot}},
+ commentators = {{komment\'atorok}{komm\adddot}},
+ annotator = {{jegyzetek \'ir\'oja}{jegyz\adddot}},
+ annotators = {{jegyzetek \'ir\'oi}{jegyz\adddot}},
+ commentary = {{komment\'ar}{komm\adddot}},
+ annotations = {{jegyzetek}{jegyz\adddot}},
+ introduction = {{bevezet\'es}{bev\adddot}},
+ foreword = {{el\H{o}sz\'o}{el\H{o}sz\'o}},
+ afterword = {{ut\'osz\'o}{ut\'osz\'o}},
+ editortr = {{szerkeszt\H{o} \'es ford\'it\'o}%
+ {szerk\adddotspace \'es ford\adddot}},
+ editorstr = {{szerkeszt\H{o}k \'es ford\'it\'ok}%
+ {szerk\adddotspace \'es ford\adddot}},,
+ editorco = {{szerkeszt\H{o} \'es komment\'ar}%
+ {szerk\adddotspace \'es komm\adddot}},
+ editorsco = {{szerkeszt\H{o} \'es komment\'ar}%
+ {szerk\adddotspace \'es komm\adddot}},
+ editoran = {{szerkeszt\H{o} \'es jegyzet}%
+ {szerk\adddotspace \'es jegyz\adddot}},
+ editorsan = {{szerkeszt\H{o} \'es jegyzet}%
+ {szerk\adddotspace \'es jegyz\adddot}},
+ editorin = {{szerkeszt\H{o} \'es bevezet\H{o}}%
+ {szerk\adddotspace \'es bev\adddot}},
+ editorsin = {{szerkeszt\H{o}k \'es bevezet\H{o}}%
+ {szerk\adddotspace \'es bev\adddot}},
+ editorfo = {{szerkeszt\H{o} \'es el\H{o}sz\'o}%
+ {szerk\adddotspace \'es el\H{o}sz\'o}},
+ editorsfo = {{szerkeszt\H{o}k \'es el\H{o}sz\'o}%
+ {szerk\adddotspace \'es el\H{o}sz\'o}},
+ editoraf = {{szerkeszt\H{o} \'es ut\'osz\'o}
+ {szerk\adddotspace \'es ut\'osz\'o}},
+ editorsaf = {{szerkeszt\H{o}k \'es ut\'osz\'o}%
+ {szerk\adddotspace \'es ut\'osz\'o}},
+ editortrco = {{szerkeszt\H{o}, ford\'it\'o \'es komment\'ar}%
+ {szerk\adddot, ford\adddotspace \'es komm\adddot}},
+ editorstrco = {{szerkeszt\H{o}, ford\'it\'o \'es komment\'ar}%
+ {szerk\adddot, ford\adddotspace \'es komm\adddot}},
+ editortran = {{szerkeszt\H{o}, ford\'it\'o \'es jegyzet}%
+ {szerk\adddot, ford\adddotspace \'es jegyz\adddot}},
+ editorstran = {{szerkeszt\H{o}, ford\'it\'o \'es jegyzet}%
+ {szerk\adddot, ford\adddotspace \'es jegyz\adddot}},
+ editortrin = {{szerkeszt\H{o}, ford\'it\'o \'es bevezet\H{o}}%
+ {szerk\adddot, ford\adddotspace \'es bev\adddot}},
+ editorstrin = {{szerkeszt\H{o}, ford\'it\'o \'es bevezet\H{o}}%
+ {szerk\adddot, ford\adddotspace \'es bev\adddot}},
+ editortrfo = {{szerkeszt\H{o}, ford\'it\'o \'es el\H{o}sz\'o}%
+ {szerk\adddot, ford\adddotspace \'es el\H{o}sz\'o}},
+ editorstrfo = {{szerkeszt\H{o}, ford\'it\'o \'es el\H{o}sz\'o}%
+ {szerk\adddot, ford\adddotspace \'es el\H{o}sz\'o}},
+ editortraf = {{szerkeszt\H{o}, ford\'it\'o \'es ut\'osz\'o}%
+ {szerk\adddot, ford\adddotspace \'es ut\'osz\'o}},
+ editorstraf = {{szerkeszt\H{o}, ford\'it\'o \'es ut\'osz\'o}%
+ {szerk\adddot, ford\adddotspace \'es ut\'osz\'o}},
+ editorcoin = {{szerkeszt\H{o}, komment\'ar \'es bevezet\H{o}}%
+ {szerk\adddot, komm\adddotspace \'es bev\adddot}},
+ editorscoin = {{szerkeszt\H{o}, komment\'ar \'es bevezet\H{o}}%
+ {szerk\adddot, komm\adddotspace \'es bev\adddot}},
+ editorcofo = {{szerkeszt\H{o}, komment\'ar \'es el\H{o}sz\'o}%
+ {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ editorscofo = {{szerkeszt\H{o}, komment\'ar \'es el\H{o}sz\'o}%
+ {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ editorcoaf = {{szerkeszt\H{o}, komment\'ar \'es ut\'osz\'o}%
+ {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ editorscoaf = {{szerkeszt\H{o}, komment\'ar \'es ut\'osz\'o}%
+ {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ editoranin = {{szerkeszt\H{o}, jegyzetek \'es bevezet\H{o}}%
+ {szerk\adddot, jegyz\adddotspace \'es bev\adddot}},
+ editorsanin = {{szerkeszt\H{o}, jegyzetek \'es bevezet\H{o}}%
+ {szerk\adddot, jegyz\adddotspace \'es bev\adddot}},
+ editoranfo = {{szerkeszt\H{o}, jegyzetek \'es el\H{o}sz\'o}%
+ {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ editorsanfo = {{szerkeszt\H{o}, jegyzetek \'es el\H{o}sz\'o}%
+ {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ editoranaf = {{szerkeszt\H{o}, jegyzetek \'es ut\'osz\'o}%
+ {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ editorsanaf = {{szerkeszt\H{o}, jegyzetek \'es ut\'osz\'o}%
+ {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ editortrcoin = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es bevezet\H{o}}%
+ {szerk\adddot, ford\adddot, komm\adddotspace \'es bev\adddot}},
+ editorstrcoin = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es bevezet\H{o}}%
+ {szerk\adddot, ford\adddot, komm\adddotspace \'es bev\adddot}},
+ editortrcofo = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}%
+ {szerk\adddot, ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ editorstrcofo = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}%
+ {szerk\adddot, ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ editortrcoaf = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es ut\'osz\'o}%
+ {szerk\adddot, ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ editorstrcoaf = {{szerkeszt\H{o}, ford\'it\'o, komment\'ar \'es ut\'osz\'o}%
+ {szerk\adddot, ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ editortranin = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es bevezet\H{o}}%
+ {szerk\adddot, ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+ editorstranin = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es bevezet\H{o}}%
+ {szerk\adddot, ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+ editortranfo = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}%
+ {szerk\adddot, ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ editorstranfo = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}%
+ {szerk\adddot, ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ editortranaf = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es ut\'osz\'o}%
+ {szerk\adddot, ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ editorstranaf = {{szerkeszt\H{o}, ford\'it\'o, jegyzetek \'es ut\'osz\'o}%
+ {szerk\adddot, ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ translatorco = {{ford\'it\'o \'es komment\'ar}%
+ {ford\adddotspace \'es komm\adddot}},
+ translatorsco = {{ford\'it\'o \'es komment\'ar}%
+ {ford\adddotspace \'es komm\adddot}},
+ translatoran = {{ford\'it\'o \'es jegyzetek}%
+ {ford\adddotspace \'es jegyz\adddot}},
+ translatorsan = {{ford\'it\'o \'es jegyzetek}%
+ {ford\adddotspace \'es jegyz\adddot}},
+ translatorin = {{ford\'it\'o \'es bevezet\H{o}}%
+ {ford\adddotspace \'es bev\adddot}},
+ translatorsin = {{ford\'it\'o \'es bevezet\H{o}}%
+ {ford\adddotspace \'es bev\adddot}},
+ translatorfo = {{ford\'it\'o \'es el\H{o}sz\'o}%
+ {ford\adddotspace \'es el\H{o}sz\'o}},
+ translatorsfo = {{ford\'it\'o \'es el\H{o}sz\'o}%
+ {ford\adddotspace \'es el\H{o}sz\'o}},
+ translatoraf = {{ford\'it\'o \'es ut\'osz\'o}%
+ {ford\adddotspace \'es ut\'osz\'o}},
+ translatorsaf = {{ford\'it\'o \'es ut\'osz\'o}%
+ {ford\adddotspace \'es ut\'osz\'o}},
+ translatorcoin = {{ford\'it\'o, komment\'ar \'es bevezet\H{o}}%
+ {ford\adddot, komm\adddotspace \'es bev\adddot}},
+ translatorscoin = {{ford\'it\'o, komment\'ar \'es bevezet\H{o}}%
+ {ford\adddot, komm\adddotspace \'es bev\adddot}},
+ translatorcofo = {{ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}%
+ {ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ translatorscofo = {{ford\'it\'o, komment\'ar \'es el\H{o}sz\'o}%
+ {ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ translatorcoaf = {{ford\'it\'o, komment\'ar \'es ut\'osz\'o}%
+ {ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ translatorscoaf = {{ford\'it\'o, komment\'ar \'es ut\'osz\'o}%
+ {ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ translatoranin = {{ford\'it\'o, jegyzetek \'es bevezet\H{o}}%
+ {ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+ translatorsanin = {{ford\'it\'o, jegyzetek \'es bevezet\H{o}}%
+ {ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+ translatoranfo = {{ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}%
+ {ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ translatorsanfo = {{ford\'it\'o, jegyzetek \'es el\H{o}sz\'o}%
+ {ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ translatoranaf = {{ford\'it\'o, jegyzetek \'es ut\'osz\'o}%
+ {ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ translatorsanaf = {{ford\'it\'o, jegyzetek \'es ut\'osz\'o}%
+ {ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ organizer = {{szervez\H{o}}{szerv\adddot}},
+ organizers = {{szervez\H{o}k}{szerv\adddot}},
+ byorganizer = {{szervezte}{szerv\adddot}},
+ byauthor = {{\'irta}{\'irta}},
+ byeditor = {{szerkesztette}{szerk\adddot}},
+ bycompiler = {{\"ossze\'all\'itotta}{\"ossze\'all\adddot}},
+ byredactor = {{sajt\'o al\'a rendezte}{kiad\adddot}},
+ byreviser = {{jav\'itotta}{jav\adddot}},
+ byreviewer = {{b\'ir\'alta}{b\'ir\adddot}},
+ byfounder = {{alap\'itotta}{alap\adddot}},
+% bycontinuator = {{}{}},% FIXME missing
+ bycollaborator = {{k\"ozrem\H{u}k\"od\"ott}{km\adddot}},
+ bytranslator = {{\lbx@lfromlang ford\'itotta}{\lbx@sfromlang ford\adddot}},
+ bycommentator = {{komment\'alta}{komm\adddot}},
+ byannotator = {{jegyzetekkel ell\'atta}{jegyz\adddot}},
+ withcommentator = {{komment\'arral ell\'atta}{komm\adddot}},
+ withannotator = {{jegyzetekkel ell\'atta}{jegyz\adddot}},
+ withintroduction = {{bevezet\H{o}vel ell\'atta}{bev\adddot}},
+ withforeword = {{el\H{o}sz\'oval ell\'atta}{el\H{o}sz\'o:}},
+ withafterword = {{ut\'osz\'oval ell\'atta}{ut\'osz\'o:}},
+ byeditortr = {{szerkesztette \'es \lbx@lfromlang ford\'itotta}%
+ {szerk\adddotspace \'es \lbx@sfromlang ford\adddot}},
+ byeditorco = {{szerkesztette \'es komment\'alta}%
+ {szerk\adddotspace \'es komm\adddot}},
+ byeditoran = {{szerkesztette \'es jegyzetekkel ell\'atta}%
+ {szerk\adddotspace \'es jegyz\adddot}},
+ byeditorin = {{szerkesztette \'es bevezet\H{o}vel ell\'atta}%
+ {szerk\adddotspace \'es jegyz\adddot}},
+ byeditorfo = {{szerkesztette \'es el\H{o}sz\'oval ell\'atta}%
+ {szerk\adddotspace \'es el\H{o}sz\'o}},
+ byeditoraf = {{szerkesztette \'es ut\'osz\'oval ell\'atta}%
+ {szerk\adddotspace \'es ut\'osz\'o}},
+ byeditortrco = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es komment\'alta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es komm\adddot}},
+ byeditortran = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es jegyzetekkel ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es jegyz\adddot}},
+ byeditortrin = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es bevezet\H{o}vel ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es bev\adddot}},
+ byeditortrfo = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es el\H{o}sz\'oval ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es el\H{o}sz\'o}},
+ byeditortraf = {{szerkesztette, \lbx@lfromlang ford\'itotta \'es ut\'osz\'oval ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddotspace \'es ut\'osz\'o}},
+ byeditorcoin = {{szerkesztette, komment\'alta \'es bevezet\H{o}vel ell\'atta}%
+ {szerk\adddot, komm\adddotspace \'es bev\adddot}},
+ byeditorcofo = {{szerkesztette, komment\'alta \'es el\H{o}sz\'oval ell\'atta}%
+ {szerk\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ byeditorcoaf = {{szerkesztette, komment\'alta \'es ut\'osz\'oval ell\'atta}%
+ {szerk\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ byeditoranin = {{szerkesztette, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}%
+ {szerk\adddot, jegyz\adddotspace \'es bev\adddot}},
+ byeditoranfo = {{szerkesztette, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}%
+ {szerk\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ byeditoranaf = {{szerkesztette, jegyzetekkel \'es ut\'osz\'oval ell\'atta}%
+ {szerk\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ byeditortrcoin = {{szerkesztette, \lbx@lfromlang ford\'itotta, komment\'alta \'es bevezet\H{o}vel ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddot, komm\adddotspace \'es bev\adddot}},
+ byeditortrcofo = {{szerkesztette, \lbx@lfromlang ford\'itotta, komment\'alta \'es el\H{o}sz\'oval ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ byeditortrcoaf = {{szerkesztette, \lbx@lfromlang ford\'itotta, komment\'alta \'es ut\'osz\'oval ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ byeditortranin = {{szerkesztette, \lbx@lfromlang ford\'itotta, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+ byeditortranfo = {{szerkesztette, \lbx@lfromlang ford\'itotta, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ byeditortranaf = {{szerkesztette, \lbx@lfromlang ford\'itotta, jegyzetekkel \'es ut\'osz\'oval ell\'atta}%
+ {szerk\adddot, \lbx@sfromlang ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ bytranslatorco = {{\lbx@lfromlang ford\'itotta \'es komment\'alta}%
+ {\lbx@sfromlang ford\adddotspace \'es komm\adddot}},
+ bytranslatoran = {{\lbx@lfromlang ford\'itotta \'es jegyzetekkel ell\'atta}%
+ {\lbx@sfromlang ford\adddotspace \'es jegyz\adddot}},
+ bytranslatorin = {{\lbx@lfromlang ford\'itotta \'es bevezet\H{o}vel ell\'atta}%
+ {\lbx@sfromlang ford\adddotspace \'es bev\adddot}},
+ bytranslatorfo = {{\lbx@lfromlang ford\'itotta \'es el\H{o}sz\'oval ell\'atta}%
+ {\lbx@sfromlang ford\adddotspace \'es el\H{o}sz\'o}},
+ bytranslatoraf = {{\lbx@lfromlang ford\'itotta \'es ut\'osz\'oval ell\'atta}%
+ {\lbx@sfromlang ford\adddotspace \'es ut\'osz\'o}},
+ bytranslatorcoin = {{\lbx@lfromlang ford\'itotta, komment\'alta \'es bevezet\H{o}vel ell\'atta}%
+ {\lbx@sfromlang ford\adddot, komm\adddotspace \'es bev\adddot}},
+ bytranslatorcofo = {{\lbx@lfromlang ford\'itotta, komment\'alta \'es el\H{o}sz\'oval ell\'atta}%
+ {\lbx@sfromlang ford\adddot, komm\adddotspace \'es el\H{o}sz\'o}},
+ bytranslatorcoaf = {{\lbx@lfromlang ford\'itotta, komment\'alta \'es ut\'osz\'oval ell\'atta}%
+ {\lbx@sfromlang ford\adddot, komm\adddotspace \'es ut\'osz\'o}},
+ bytranslatoranin = {{\lbx@lfromlang ford\'itotta, jegyzetekkel \'es bevezet\H{o}vel ell\'atta}%
+ {\lbx@sfromlang ford\adddot, jegyz\adddotspace \'es bev\adddot}},
+ bytranslatoranfo = {{\lbx@lfromlang ford\'itotta, jegyzetekkel \'es el\H{o}sz\'oval ell\'atta}%
+ {\lbx@sfromlang ford\adddot, jegyz\adddotspace \'es el\H{o}sz\'o}},
+ bytranslatoranaf = {{\lbx@lfromlang ford\'itotta, jegyzetekkel \'es ut\'osz\'oval ell\'atta}%
+ {\lbx@sfromlang ford\adddot, jegyz\adddotspace \'es ut\'osz\'o}},
+ and = {{\'es}{\'es}},
+ andothers = {{\'es m\'asok}{\'es tsai\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{k\"otet}{k\"ot\adddot}},
+ volumes = {{k\"otetek}{k\"ot\adddot}},
+ involumes = {{}{}},
+ jourvol = {{\'evfolyam}{\'evf\adddot}},
+ jourser = {{sorozat}{sor\adddot}},
+ book = {{k\"onyv}{k\"onyv}},
+ part = {{r\'esz}{r\'esz}},
+ issue = {{sz\'am}{sz\adddot}},
+ newseries = {{\'uj sorozat}{\'uj sor\adddot}},
+ oldseries = {{r\'egi sorozat}{r\'egi sor\adddot}},
+ edition = {{kiad\'as}{kiad\adddot}},
+ reprint = {{ut\'annyom\'as}{ut\'anny\adddot}},
+ reprintof = {{ut\'annyom\'asa}{ut\'anny\adddot}},% FIXME swap word order
+ reprintas = {{ut\'annyom\'as c\'ime}{ut\'anny\adddotspace c\'ime}},
+% reprintfrom = {{}{}},% FIXME need example
+ translationof = {{ford\'it\'asa}{ford\adddot}},% FIXME swap word order
+ translationas = {{ford\'it\'as c\'ime}{ford\adddotspace c\'ime}},
+% translationfrom = {{}{}},% FIXME need example
+ reviewof = {{recenzi\'oja}{rec\adddot}},% FIXME swap word order
+ origpubas = {{eredeti c\'ime}{ered\adddotspace c\'im}},
+ origpubin = {{eredeti kiad\'as}{ered\adddotspace kiad\adddotspace}},
+% astitle = {{}{}},% FIXME need example
+% bypublisher = {{\addcomma}{\addcomma}},% FIXME: this is a cludge that can not be guaranteed to work in most situations, so it stays commented out
+ nodate = {{\'ev n\'elk\"ul}{\'e\adddotspace n\adddot}},
+ page = {{oldal}{old\adddot}},
+ pages = {{oldal}{old\adddot}},
+ column = {{has\'ab}{has\adddot}},
+ columns = {{has\'ab}{has\adddot}},
+ line = {{sor}{sor}},
+ lines = {{sor}{sor}},
+ verse = {{versszak}{vsz\adddot}},
+ verses = {{versszak}{vsz\adddot}},
+ section = {{paragrafus}{\S}},
+ sections = {{paragrafus}{\S\S}},
+ paragraph = {{bekezd\'es}{bek\adddot}},
+ paragraphs = {{bekezd\'es}{bek\adddot}},
+ pagetotal = {{oldal}{old\adddot}},
+ pagetotals = {{oldal}{old\adddot}},
+ columntotal = {{has\'ab}{has\adddot}},
+ columntotals = {{has\'ab}{has\adddot}},
+ linetotal = {{sor}{sor}},
+ linetotals = {{sor}{sor}},
+ versetotal = {{versszak}{vsz\adddot}},
+ versetotals = {{versszak}{vsz\adddot}},
+ sectiontotal = {{paragrafus}{\S}},
+ sectiontotals = {{paragrafus}{\S}},
+ paragraphtotal = {{bekezd\'es}{bek\adddot}},
+ paragraphtotals = {{bekezd\'es}{bek\adddot}},
+ in = {{}{}},
+% inseries = {{}{}},% FIXME need example
+% ofseries = {{}{}},% FIXME need example
+ number = {{sz\'am}{sz\adddot}},
+ chapter = {{fejezet}{fej\adddot}},
+ bathesis = {{szakdolgozat}{szakd\adddot}},
+ mathesis = {{diplomaterv}{dipl\adddot}},
+ phdthesis = {{disszert\'aci\'o}{dissz\adddot}},
+ candthesis = {{disszert\'aci\'o}{dissz\adddot}},
+ resreport = {{kutat\'asi jelent\'es}{kut\adddotspace jel\adddot}},
+ techreport = {{technikai jelent\'es}{techn\adddotspace jel\adddot}},
+ software = {{szoftver}{szoftver}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{CD}},
+ version = {{verzi\'o}{verzi\'o}},
+ url = {{c\'im}{c\'im}},
+ urlfrom = {{el\'erhet\H{o}}{el\'erh\adddot}},
+ urlseen = {{el\'er\'es d\'atuma}{el\'er\'es d\'atuma}},
+ inpreparation = {{el\H{o}k\'esz\'it\'es alatt}{el\H{o}k\adddotspace alatt}},
+ submitted = {{bek\"uld\"ott}{bek\"uld\"ott}},
+ forthcoming = {{elfogadott}{elfogadott}},
+ inpress = {{nyomd\'aban}{nyomd\adddot}},
+ prepublished = {{preprint}{preprint}},
+ citedas = {{tov\'abbiakban}{tov\'abbiakban}},
+ thiscite = {{itt}{itt}},
+ seenote = {{l\'asd}{ld\adddot}},
+ quotedin = {{id\'ezte}{id\'ezte}},
+ idem = {{ugyan\H{o}}{u\H{o}}},
+ idemsf = {{ugyan\H{o}}{u\H{o}}},
+ idemsm = {{ugyan\H{o}}{u\H{o}}},
+ idemsn = {{ugyan\H{o}}{u\H{o}}},
+ idempf = {{ugyan\H{o}k}{u\H{o}k}},
+ idempm = {{ugyan\H{o}k}{u\H{o}k}},
+ idempn = {{ugyan\H{o}k}{u\H{o}k}},
+ idempp = {{ugyan\H{o}k}{u\H{o}k}},
+ ibidem = {{ugyanitt}{uitt}},
+ opcit = {{id\'ezett m\H{u}}{i\adddotspace m\adddot}},
+ loccit = {{id\'ezett hely}{i\adddotspace h\adddot}},
+ confer = {{v\"o\adddot}{v\"o\adddot}},
+ sequens = {{sk\adddot}{sk\adddot}},
+ sequentes = {{skk\adddot}{skk\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{l\'asd}{ld\adddot}},
+ seealso = {{l\'asd m\'eg}{ld\adddotspace m\'eg}},
+ backrefpage = {{hivatkoz\'asi oldal}{hiv\adddotspace old\adddot}},
+ backrefpages = {{hivatkoz\'asi oldalak}{hiv\adddotspace old\adddot}},
+ january = {{janu\'ar}{jan\adddot}},
+ february = {{febru\'ar}{febr\adddot}},
+ march = {{m\'arcius}{m\'arc\adddot}},
+ april = {{\'aprilis}{\'apr\adddot}},
+ may = {{m\'ajus}{m\'aj\adddot}},
+ june = {{j\'unius}{j\'un\adddot}},
+ july = {{j\'ulius}{j\'ul\adddot}},
+ august = {{augusztus}{aug\adddot}},
+ september = {{szeptember}{szept\adddot}},
+ october = {{okt\'ober}{okt\adddot}},
+ november = {{november}{nov\adddot}},
+ december = {{december}{dec\adddot}},
+ langamerican = {{angol}{angol}},
+ langbrazilian = {{brazil}{brazil}},
+ langbulgarian = {{bolg\'ar}{bolg\'ar}},
+ langcatalan = {{katal\'an}{katal\'an}},
+ langcroatian = {{horv\'at}{horv\'at}},
+ langczech = {{cseh}{cseh}},
+ langdanish = {{d\'an}{d\'an}},
+ langdutch = {{holland}{holland}},
+ langenglish = {{angol}{angol}},
+ langestonian = {{\'eszt}{\'eszt}},
+ langfinnish = {{finn}{finn}},
+ langfrench = {{francia}{francia}},
+ langgalician = {{gal\'iciai}{gal\'iciai}},
+ langgerman = {{n\'emet}{n\'emet}},
+ langgreek = {{g\"or\"og}{g\"or\"og}},
+ langhungarian = {{magyar}{magyar}},
+ langitalian = {{olasz}{olasz}},
+ langjapanese = {{jap\'an}{jap\'an}},
+ langlatin = {{latin}{latin}},
+ langlatvian = {{lett}{lett}},
+ langnorwegian = {{norv\'eg}{norv\'eg}},
+ langpolish = {{lengyel}{lengyel}},
+ langportuguese = {{portug\'al}{portug\'al}},
+ langrussian = {{orosz}{orosz}},
+ langslovak = {{szlov\'ak}{szlov\'ak}},
+ langslovene = {{szlov\'en}{szlov\'en}},
+ langspanish = {{spanyol}{spanyol}},
+ langswedish = {{sv\'ed}{sv\'ed}},
+ langukrainian = {{ukr\'an}{ukr\'an}},
+ fromamerican = {{angolb\'ol}{angolb\'ol}},
+ frombrazilian = {{brazilb\'ol}{brazilb\'ol}},
+ frombulgarian = {{brazilb\'ol}{brazilb\'ol}},
+ fromcatalan = {{katal\'anb\'ol}{katal\'anb\'ol}},
+ fromcroatian = {{horv\'atb\'ol}{horv\'atb\'ol}},
+ fromczech = {{csehb\H{o}l}{csehb\H{o}l}},
+ fromdanish = {{d\'anb\'ol}{d\'anb\'ol}},
+ fromdutch = {{hollandb\'ol}{hollandb\'ol}},
+ fromenglish = {{angolb\'ol}{angolb\'ol}},
+ fromestonian = {{\'esztb\H{o}l}{\'esztb\H{o}l}},
+ fromfinnish = {{finnb\H{o}l}{finnb\H{o}l}},
+ fromfrench = {{franci\'ab\'ol}{franci\'ab\'ol}},
+ fromgalician = {{gal\'iciaib\'ol}{gal\'iciaib\'ol}},
+ fromgerman = {{n\'emetb\H{o}l}{n\'emetb\H{o}l}},
+ fromgreek = {{g\"or\"ogb\H{o}l}{g\"or\"ogb\H{o}l}},
+ fromhungarian = {{magyarb\'ol}{magyarb\'ol}},
+ fromitalian = {{olaszb\'ol}{olaszb\'ol}},
+ fromjapanese = {{jap\'anb\'ol}{jap\'anb\'ol}},
+ fromlatin = {{latinb\'ol}{latinb\'ol}},
+ fromlatvian = {{lettb\H{o}l}{lettb\H{o}l}},
+ fromnorwegian = {{norv\'egb\'ol}{norv\'egb\'ol}},
+ frompolish = {{lengyelb\H{o}l}{lengyelb\H{o}l}},
+ fromportuguese = {{portug\'alb\'ol}{portug\'alb\'ol}},
+ fromrussian = {{oroszb\'ol}{oroszb\'ol}},
+ fromslovak = {{szlov\'akb\'ol}{szlov\'akb\'ol}},
+ fromslovene = {{szlov\'enb\'ol}{szlov\'enb\'ol}},
+ fromspanish = {{spanyolb\'ol}{spanyolb\'ol}},
+ fromswedish = {{sv\'edb\H{o}l}{sv\'edb\H{o}l}},
+ fromukrainian = {{ukr\'anb\'ol}{ukr\'anb\'ol}},
+ countryde = {{N\'emetorsz\'ag}{DE}},
+ countryep = {{Eur\'opai Uni\'o}{EP}},
+ countryeu = {{Eur\'opai Uni\'o}{EU}},
+ countryfr = {{Franciaorsz\'ag}{FR}},
+ countryuk = {{Egyes\"ult Kir\'alys\'ag}{GB}},
+ countryus = {{Amerikai Egyes\"ult \'Allamok}{US}},
+ patent = {{szabadalom}{szabadalom}},
+ patentde = {{n\'emet szabadalom}{n\'em\adddotspace szabadalom}},
+ patenteu = {{eur\'opai szabadalom}{eur\adddotspace szabadalom}},
+ patentfr = {{francia szabadalom}{fr\adddotspace szabadalom}},
+ patentuk = {{brit szabadalom}{brit szabadalom}},
+ patentus = {{amerikai szabadalom}{USA szabadalom}},
+ patreq = {{szabadalmi k\'erelem}{szabad\adddotspace k\'erelem}},
+ patreqde = {{n\'emet szabadalmi k\'erelem}{n\'em\adddotspace szabad\adddotspace k\'erelem}},
+ patreqeu = {{eur\'opai szabadalmi k\'erelem}{eur\adddotspace szabad\adddotspace k\'erelem}},
+ patreqfr = {{francia szabadalmi k\'erelem}{fr\adddotspace szabad\adddotspace k\'erelem}},
+ patrequk = {{brit szabadalmi k\'erelem}{brit szabad\adddotspace k\'erelem}},
+ patrequs = {{amerikai szabadalmi k\'erelem}{amerikai szabad\adddotspace k\'erelem}},
+ file = {{f\'ajl}{f\'ajl}},
+ library = {{k\"onyvt\'ar}{k\"onyvt\'ar}},
+ abstract = {{kivonat}{kivonat}},
+ annotation = {{jegyzet}{jegyzet}},
+ commonera = {{id\H{o}sz\'am\'it\'asunk szerint}{i\adddotspace sz\adddot}},
+ beforecommonera = {{id\H{o}sz\'am\'it\'asunk el\H{o}tt}{i\adddotspace e\adddot}},
+ annodomini = {{Krisztus ut\'an}{Kr\adddotspace u\adddot}},
+ beforechrist = {{Krisztus el\H{o}tt}{Kr\adddotspace e\adddot}},
+ circa = {{k\"or\"ulbel\"ul}{kb\adddot}},
+ spring = {{tavasz}{tavasz}},
+ summer = {{ny\'ar}{ny\'ar}},
+ autumn = {{\H{o}sz}{\H{o}sz}},
+ winter = {{t\'el}{t\'el}},
+ am = {{d\'elel\H{o}tt}{de\adddot}},
+ pm = {{d\'elut\'an}{du\adddot}},
+}
+
+\protected\gdef\lbx@hu@dayrange@i#1{%
+ \ifboolexpr{not test {\iffieldundef{#1endyear}}
+ and test {\iffieldsequal{#1year}{#1endyear}}
+ and test {\iffieldsequal{#1month}{#1endmonth}}
+ and (test {\iffieldundef{#1hour}}
+ or not togl {blx@#1dateusetime})}}
+
+\protected\gdef\lbx@hu@mkdaterangetrunc#1#2{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefull{#1}{#2}}
+ {\lbx@hu@mkdaterangetrunc@i{#1}{#2}}}
+
+\protected\gdef\lbx@hu@mkdaterangetrunc@i#1#2{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \edef\lbx@hu@dayrange{\lbx@hu@dayrange@i{#2}}%
+ \iffieldundef{#2year}
+ {}
+ {\printtext[#2date]{%
+ \datecircaprint
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \blx@printtime{#2}{}}%
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateeraprint{#2year}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mbox{\bibdaterangesep}}
+ {\lbx@hu@dayrange{\bibrangedash}{\bibdaterangesep}%
+ \let\lbx@hu@dayrange\@secondoftwo
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{}{}{#2endday}}
+ {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}%
+ \blx@printtime{#2}{end}}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibseasondate#1}{}{#2endseason}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\protected\gdef\lbx@hu@mkdaterangetruncextra#1#2{%
+ \blx@if@printanytimes{#2}
+ {\mkdaterangefullextra{#1}{#2}}
+ {\lbx@hu@mkdaterangetruncextra@i{#1}{#2}}}
+
+\protected\gdef\lbx@hu@mkdaterangetruncextra@i#1#2{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \edef\lbx@hu@dayrange{\lbx@hu@dayrange@i{#2}}%
+ \iffieldundef{#2year}
+ {}
+ {\printtext[#2date]{%
+ \datecircaprint
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \blx@printtime{#2}{}}%
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateeraprint{#2year}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {\printfield{extradate}}
+ {\iffieldequalstr{#2endyear}{}
+ {\printfield{extradate}%
+ \mbox{\bibdaterangesep}}
+ {\lbx@hu@dayrange{\bibrangedash}{\bibdaterangesep}%
+ \let\lbx@hu@dayrange\@secondoftwo
+ \enddatecircaprint
+ \iffieldundef{#2season}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{}{}{#2endday}}
+ {\csuse{mkbibdate#1}{}{#2endmonth}{#2endday}}}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}%
+ \blx@printtime{#2}{end}}
+ {\iffieldsequal{#2year}{#2endyear}
+ {\csuse{mkbibseasondate#1}{}{#2endseason}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \printfield{extradate}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/naustrian.lbx b/macros/latex/contrib/biblatex/latex/lbx/naustrian.lbx
new file mode 100644
index 0000000000..bcd2181858
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/naustrian.lbx
@@ -0,0 +1,22 @@
+\ProvidesFile{naustrian.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{german}
+
+\DeclareBibliographyStrings{%
+ inherit = {german},
+ citedas = {{im Folgenden zitiert als}{im Folgenden zit\adddotspace als}},
+ january = {{J\"anner}{J\"an\adddot}},
+% alternative spelling, uncomment to enable:
+% section = {{Paragraf}{\S}},
+% sections = {{Paragrafen}{\S\S}},
+% sectiontotal = {{Paragraf}{\S}},
+% sectiontotals = {{Paragrafen}{\S\S}},
+}
+
+\DeclareHyphenationExceptions{%
+ Pa-tent-an-mel-dung
+ Pa-tent-an-meld
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/newzealand.lbx b/macros/latex/contrib/biblatex/latex/lbx/newzealand.lbx
new file mode 100644
index 0000000000..bef64fed9a
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/newzealand.lbx
@@ -0,0 +1,30 @@
+\ProvidesFile{newzealand.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{british}
+\DeclareBibliographyExtras{%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\InheritBibliographyStrings{english}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/ngerman.lbx b/macros/latex/contrib/biblatex/latex/lbx/ngerman.lbx
new file mode 100644
index 0000000000..e8e26aedf6
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/ngerman.lbx
@@ -0,0 +1,21 @@
+\ProvidesFile{ngerman.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{german}
+
+\DeclareBibliographyStrings{%
+ inherit = {german},
+ citedas = {{im Folgenden zitiert als}{im Folgenden zit\adddotspace als}},
+% alternative spelling, uncomment to enable:
+% section = {{Paragraf}{\S}},
+% sections = {{Paragrafen}{\S\S}},
+% sectiontotal = {{Paragraf}{\S}},
+% sectiontotals = {{Paragrafen}{\S\S}},
+}
+
+\DeclareHyphenationExceptions{%
+ Pa-tent-an-mel-dung
+ Pa-tent-an-meld
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/norsk.lbx b/macros/latex/contrib/biblatex/latex/lbx/norsk.lbx
new file mode 100644
index 0000000000..c03ddca2da
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/norsk.lbx
@@ -0,0 +1,532 @@
+\ProvidesFile{norsk.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{norsk}{norwegian,nynorsk}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\adddot}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografi}{Bibliografi}},
+ references = {{Referanser}{Referanser}},
+ shorthands = {{Forkortelser}{Forkortelser}},
+ editor = {{redakt{\o}r}{red\adddot}},
+ editors = {{redakt{\o}rer}{red\adddot}},
+ compiler = {{kompilator}{komp\adddot}},
+ compilers = {{kompilatorer}{komp\adddot}},
+ redactor = {{bearbeidelse}{bearb\adddot}},
+ redactors = {{bearbeidelse}{bearb\adddot}},
+ reviser = {{revisjon}{rev\adddot}},
+ revisers = {{revisjon}{rev\adddot}},
+ founder = {{grunnlegger}{grunnl\adddot}},
+ founders = {{grunnleggere}{grunnl\adddot}},
+ continuator = {{videref{\o}ring}{videref\adddot}},
+ continuators = {{videref{\o}ring}{videref\adddot}},
+ collaborator = {{samarbeid}{samarb\adddot}},
+ collaborators = {{samarbeid}{samarb\adddot}},
+ translator = {{oversetter}{overs\adddot}},
+ translators = {{oversettere}{overs\adddot}},
+ commentator = {{kommentarer}{komm\adddot}},
+ commentators = {{kommentarer}{komm\adddot}},
+ annotator = {{forklaringer}{forkl\adddot}},
+ annotators = {{forklaringer}{forkl\adddot}},
+ commentary = {{kommentarer}{komm\adddot}},
+ annotations = {{forklaringer}{forkl\adddot}},
+ introduction = {{innledning}{innl\adddot}},
+ foreword = {{forord}{forord}},
+ afterword = {{etterord}{etterord}},
+ editortr = {{redakt{\o}r og oversetter}%
+ {red\adddotspace og overs\adddot}},
+ editorstr = {{redakt{\o}rer og oversettere}%
+ {red\adddotspace og overs\adddot}},
+ editorco = {{redakt{\o}r og kommentarer}
+ {red\adddotspace og komm\adddot}},
+ editorsco = {{redakt{\o}rer og kommentarer}
+ {red\adddotspace og komm\adddot}},
+ editoran = {{redakt{\o}r og forklaringer}%
+ {red\adddotspace og forkl\adddot}},
+ editorsan = {{redakt{\o}rer og forklaringer}%
+ {red\adddotspace og forkl\adddot}},
+ editorin = {{redakt{\o}r og innledning}%
+ {red\adddotspace og innl\adddot}},
+ editorsin = {{redakt{\o}rer og innledning}%
+ {red\adddotspace og innl\adddot}},
+ editorfo = {{redakt{\o}r og forord}%
+ {red\adddotspace og forord}},
+ editorsfo = {{redakt{\o}rer og forord}%
+ {red\adddotspace og forord}},
+ editoraf = {{redakt{\o}r og etterord}%
+ {red\adddotspace og etterord}},
+ editorsaf = {{redakt{\o}rer og etterord}%
+ {red\adddotspace og etterord}},
+ editortrco = {{redakt{\o}r, oversetter og kommentarer}%
+ {red.,\addabbrvspace overs\adddotspace og komm\adddot}},
+ editorstrco = {{redakt{\o}rer, oversettere og kommentarer}%
+ {red.,\addabbrvspace overs\adddotspace og komm\adddot}},
+ editortran = {{redakt{\o}r, oversetter og forklaringer}%
+ {red.,\addabbrvspace overs\adddotspace og forkl\adddot}},
+ editorstran = {{redakt{\o}rer, oversettere og forklaringer}%
+ {red.,\addabbrvspace overs\adddotspace og forkl\adddot}},
+ editortrin = {{redakt{\o}r, oversetter og innledning}%
+ {red.,\addabbrvspace overs\adddotspace og innl\adddot}},
+ editorstrin = {{redakt{\o}rer, oversettere og innledning}%
+ {red.,\addabbrvspace overs\adddotspace og innl\adddot}},
+ editortrfo = {{redakt{\o}r, oversetter og forord}%
+ {red.,\addabbrvspace overs\adddotspace og forord}},
+ editorstrfo = {{redakt{\o}rer, oversettere og forord}%
+ {red.,\addabbrvspace overs\adddotspace og forord}},
+ editortraf = {{redakt{\o}r, oversetter og etterord}%
+ {red.,\addabbrvspace overs\adddotspace og etterord}},
+ editorstraf = {{redakt{\o}rer, oversettere og etterord}%
+ {red.,\addabbrvspace overs\adddotspace og etterord}},
+ editorcoin = {{redakt{\o}r, kommentarer og innledning}%
+ {red.,\addabbrvspace komm\adddotspace og innl\adddot}},
+ editorscoin = {{redakt{\o}rer, kommentarer og innledning}%
+ {red.,\addabbrvspace komm\adddotspace og innl\adddot}},
+ editorcofo = {{redakt{\o}r, kommentarer og forord}%
+ {red.,\addabbrvspace komm\adddotspace og forord}},
+ editorscofo = {{redakt{\o}rer, kommentarer og forord}%
+ {red.,\addabbrvspace komm\adddotspace og forord}},
+ editorcoaf = {{redakt{\o}r, kommentarer og etterord}%
+ {red.,\addabbrvspace komm\adddotspace og etterord}},
+ editorscoaf = {{redakt{\o}rer, kommentarer og etterord}%
+ {red.,\addabbrvspace komm\adddotspace og etterord}},
+ editoranin = {{redakt{\o}r, forklaringer og innledning}%
+ {red.,\addabbrvspace forkl\adddotspace og innl\adddot}},
+ editorsanin = {{redakt{\o}rer, forklaringer og innledning}%
+ {red.,\addabbrvspace forkl\adddotspace og innl\adddot}},
+ editoranfo = {{redakt{\o}r, forklaringer og forord}%
+ {red.,\addabbrvspace forkl\adddotspace og forord}},
+ editorsanfo = {{redakt{\o}rer, forklaringer og forord}%
+ {red.,\addabbrvspace forkl\adddotspace og forord}},
+ editoranaf = {{redakt{\o}r, forklaringer og etterord}%
+ {red.,\addabbrvspace forkl\adddotspace og etterord}},
+ editorsanaf = {{redakt{\o}rer, forklaringer og etterord}%
+ {red.,\addabbrvspace forkl\adddotspace og etterord}},
+ editortrcoin = {{redakt{\o}r, oversetter, kommentarer og innledning}%
+ {red.,\addabbrvspace overs., komm\adddotspace og innl\adddot}},
+ editorstrcoin = {{redakt{\o}rer, oversettere, kommentarer og innledning}%
+ {red.,\addabbrvspace overs., komm\adddotspace og innl\adddot}},
+ editortrcofo = {{redakt{\o}r, oversetter, kommentarer og forord}%
+ {red.,\addabbrvspace overs., komm\adddotspace og forord}},
+ editorstrcofo = {{redakt{\o}rer, oversettere, kommentarer og forord}%
+ {red.,\addabbrvspace overs., komm\adddotspace og forord}},
+ editortrcoaf = {{redakt{\o}r, oversetter, kommentarer og etterord}%
+ {red.,\addabbrvspace overs., komm\adddotspace og etterord}},
+ editorstrcoaf = {{redakt{\o}rer, oversettere, kommentarer og etterord}%
+ {red.,\addabbrvspace overs., komm\adddotspace og etterord}},
+ editortranin = {{redakt{\o}r, oversetter, forklaringer og innledning}%
+ {red.,\addabbrvspace overs., forkl\adddotspace og innl\adddot}},
+ editorstranin = {{redakt{\o}rer, oversettere, forklaringer og innledning}%
+ {red.,\addabbrvspace overs., forkl\adddotspace og innl\adddot}},
+ editortranfo = {{redakt{\o}r, oversetter, forklaringer og forord}%
+ {red.,\addabbrvspace overs., forkl\adddotspace og forord}},
+ editorstranfo = {{redakt{\o}rer, oversettere, forklaringer og forord}%
+ {red.,\addabbrvspace overs., forkl\adddotspace og forord}},
+ editortranaf = {{redakt{\o}r, oversetter, forklaringer og etterord}%
+ {red.,\addabbrvspace overs., forkl\adddotspace og etterord}},
+ editorstranaf = {{redakt{\o}rer, oversettere, forklaringer og etterord}%
+ {red.,\addabbrvspace overs., forkl\adddotspace og etterord}},
+ translatorco = {{oversetter og kommentarer}%
+ {overs\adddotspace og komm\adddot}},
+ translatorsco = {{oversettere og kommentarer}%
+ {overs\adddotspace og komm\adddot}},
+ translatoran = {{oversetter og forklaringer}%
+ {overs\adddotspace og forkl\adddot}},
+ translatorsan = {{oversettere og forklaringer}%
+ {overs\adddotspace og forkl\adddot}},
+ translatorin = {{oversetter og innledning}%
+ {overs\adddotspace og innl\adddot}},
+ translatorsin = {{oversettere og innledning}%
+ {overs\adddotspace og innl\adddot}},
+ translatorfo = {{oversetter og forord}%
+ {overs\adddotspace og forord}},
+ translatorsfo = {{oversettere og forord}%
+ {overs\adddotspace og forord}},
+ translatoraf = {{oversetter og etterord}%
+ {overs\adddotspace og etterord}},
+ translatorsaf = {{oversettere og etterord}%
+ {overs\adddotspace og etterord}},
+ translatorcoin = {{oversetter, kommentarer og innledning}%
+ {overs., komm\adddotspace og innl\adddot}},
+ translatorscoin = {{oversettere, kommentarer og innledning}%
+ {overs., komm\adddotspace og innl\adddot}},
+ translatorcofo = {{oversetter, kommentarer og forord}%
+ {overs., komm\adddotspace og forord}},
+ translatorscofo = {{oversettere, kommentarer og forord}%
+ {overs., komm\adddotspace og forord}},
+ translatorcoaf = {{oversetter, kommentarer og etterord}%
+ {overs., komm\adddotspace og etterord}},
+ translatorscoaf = {{oversettere, kommentarer og etterord}%
+ {overs., komm\adddotspace og etterord}},
+ translatoranin = {{oversetter, forklaringer og innledning}%
+ {overs., forkl\adddotspace og innl\adddot}},
+ translatorsanin = {{oversettere, forklaringer og innledning}%
+ {overs., forkl\adddotspace og innl\adddot}},
+ translatoranfo = {{oversetter, forklaringer og forord}%
+ {overs., forkl\adddotspace og forord}},
+ translatorsanfo = {{oversettere, forklaringer og forord}%
+ {overs., forkl\adddotspace og forord}},
+ translatoranaf = {{oversetter, forklaringer og etterord}%
+ {overs., forkl\adddotspace og etterord}},
+ translatorsanaf = {{oversettere, forklaringer og etterord}%
+ {overs., forkl\adddotspace og etterord}},
+ organizer = {{organisator}{org\adddot}},
+ organizers = {{organisatorer}{org\adddot}},
+ byorganizer = {{organisert av}{org\adddotspace av}},
+ byauthor = {{av}{av}},
+ byeditor = {{redigert av}{red\adddotspace av}},
+ bycompiler = {{kompilert av}{komp\adddotspace av}},
+ byredactor = {{bearbeidet av}{bearb\adddotspace av}},
+ byreviser = {{revidert av}{rev\adddotspace av}},
+ byreviewer = {{kritikk ved}{krit\adddotspace ved}},
+ byfounder = {{grunnlagt av}{grunnl\adddotspace av}},
+ bycontinuator = {{videref{\o}rt av}{videref\adddotspace av}},
+ bycollaborator = {{i samarbeid med}{i samarb\adddotspace med}},
+ bytranslator = {{oversatt \lbx@lfromlang\ av}{overs\adddot\ \lbx@sfromlang\ av}},
+ bycommentator = {{kommentert av}{komm\adddot\ av}},
+ byannotator = {{forklart av}{forkl\adddot\ av}},
+ withcommentator = {{med kommentarer av}{med komm\adddot\ av}},
+ withannotator = {{med forklaringer av}{med forkl\adddot\ av}},
+ withintroduction = {{med innledning av}{med innl\adddot\ av}},
+ withforeword = {{med forord av}{med forord av}},
+ withafterword = {{med etterord av}{med etterord av}},
+ byeditortr = {{redigert og oversatt \lbx@lfromlang\ av}%
+ {red\adddotspace og overs\adddot\ \lbx@sfromlang\ av}},
+ byeditorco = {{redigert og kommentert av}%
+ {red\adddotspace og komm\adddot\ av}},
+ byeditoran = {{redigert og forklart av}%
+ {red\adddotspace og forkl\adddot\ av}},
+ byeditorin = {{redigert, med innledning, av}%
+ {red.,\addabbrvspace med innl., av}},
+ byeditorfo = {{redigert, med forord, av}%
+ {red.,\addabbrvspace med forord, av}},
+ byeditoraf = {{redigert, med etterord, av}%
+ {red.,\addabbrvspace med etterord, av}},
+ byeditortrco = {{redigert, oversatt \lbx@lfromlang\ og kommentert av}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm\adddot\ av}},
+ byeditortran = {{redigert, oversatt \lbx@lfromlang\ og forklart av}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forkl\adddot\ av}},
+ byeditortrin = {{redigert og oversatt \lbx@lfromlang, med innledning, av}%
+ {red\adddotspace og overs\adddot\ \lbx@sfromlang, med innl., av}},
+ byeditortrfo = {{redigert og oversatt \lbx@lfromlang, med forord, av}%
+ {red\adddotspace og overs\adddot\ \lbx@sfromlang, med forord, av}},
+ byeditortraf = {{redigert og oversatt \lbx@lfromlang, med etterord, av}%
+ {red\adddotspace og overs\adddot\ \lbx@sfromlang, med etterord, av}},
+ byeditorcoin = {{redigert og kommentert, med innledning, av}%
+ {red\adddotspace og komm., med innl., av}},
+ byeditorcofo = {{redigert og kommentert, med forord, av}%
+ {red\adddotspace og komm., med forord, av}},
+ byeditorcoaf = {{redigert og kommentert, med etterord, av}%
+ {red\adddotspace og komm., med etterord, av}},
+ byeditoranin = {{redigert og forklart, med innledning, av}%
+ {red\adddotspace og forkl., med innl., av}},
+ byeditoranfo = {{redigert og forklart, med forord, av}%
+ {red\adddotspace og forkl., med forord, av}},
+ byeditoranaf = {{redigert og forklart, med etterord, av}%
+ {red\adddotspace og forkl., med etterord, av}},
+ byeditortrcoin = {{redigert, oversatt \lbx@lfromlang\ og kommentert, med innledning, av}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm., med innl., av}},
+ byeditortrcofo = {{redigert, oversatt \lbx@lfromlang\ og kommentert, med forord, av}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm., med forord, av}},
+ byeditortrcoaf = {{redigert, oversatt \lbx@lfromlang\ og kommentert, med etterord, av}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og komm., med etterord, av}},
+ byeditortranin = {{redigert, oversatt \lbx@lfromlang\ og forklart, med innledning, av}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forkl., med innl., av}},
+ byeditortranfo = {{redigert, oversatt \lbx@lfromlang\ og forklart, med forord, av}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forkl., med forord, av}},
+ byeditortranaf = {{redigert, oversatt \lbx@lfromlang\ og forklart, med etterord, av}%
+ {red.,\addabbrvspace overs\adddot\ \lbx@sfromlang\ og forkl., med etterord, av}},
+ bytranslatorco = {{oversatt \lbx@lfromlang\ og kommentert av}%
+ {overs\adddot\ \lbx@sfromlang\ og komm\adddot\ av}},
+ bytranslatoran = {{oversatt \lbx@lfromlang\ og forklart av}%
+ {overs\adddot\ \lbx@sfromlang\ og forkl\adddot\ av}},
+ bytranslatorin = {{oversatt \lbx@lfromlang, med innledning, av}%
+ {overs\adddot\ \lbx@sfromlang, med innl., av}},
+ bytranslatorfo = {{oversatt \lbx@lfromlang, med forord, av}%
+ {overs\adddot\ \lbx@sfromlang, med forord, av}},
+ bytranslatoraf = {{oversatt \lbx@lfromlang, med etterord, av}%
+ {overs\adddot\ \lbx@sfromlang, med etterord, av}},
+ bytranslatorcoin = {{oversatt \lbx@lfromlang\ og kommentert, med innledning, av}%
+ {overs\adddot\ \lbx@sfromlang\ og komm., med innl., av}},
+ bytranslatorcofo = {{oversatt \lbx@lfromlang\ og kommentert, med forord, av}%
+ {overs\adddot\ \lbx@sfromlang\ og komm., med forord, av}},
+ bytranslatorcoaf = {{oversatt \lbx@lfromlang\ og kommentert, med etterord, av}%
+ {overs\adddot\ \lbx@sfromlang\ og komm., med etterord, av}},
+ bytranslatoranin = {{oversatt \lbx@lfromlang\ og forklart, med innledning, av}%
+ {overs\adddot\ \lbx@sfromlang\ og forkl., med innl., av}},
+ bytranslatoranfo = {{oversatt \lbx@lfromlang\ og forklart, med forord, av}%
+ {overs\adddot\ \lbx@sfromlang\ og forkl., med forord, av}},
+ bytranslatoranaf = {{oversatt \lbx@lfromlang\ og forklart, med etterord, av}%
+ {overs\adddot\ \lbx@sfromlang\ og forkl., med etterord, av}},
+ and = {{og}{og}},
+ andothers = {{med flere}{mfl\adddot}},
+ andmore = {{med mer}{m.m\adddot}},
+ volume = {{bind}{bd\adddot}},
+ volumes = {{bind}{bd\adddot}},
+ involumes = {{i}{i}},
+ jourvol = {{{\aa}rgang}{{\aa}rg\adddot}},
+ jourser = {{serie}{ser\adddot}},
+ book = {{bok}{bok}},
+ part = {{del}{del}},
+ issue = {{nummer}{nr\adddot}},
+ newseries = {{ny serie}{ny ser\adddot}},
+ oldseries = {{gammel serie}{gl\adddotspace ser\adddot}},
+ edition = {{utgave}{utg\adddot}},
+ reprint = {{opptrykk}{opptr\adddot}},
+ reprintof = {{opptrykk av}{opptr\adddotspace av}},
+ reprintas = {{trykt om som}{tr\adddotspace om som}},
+ reprintfrom = {{opptrykk fra}{opptr\adddotspace fra}},
+ translationof = {{oversettelse av}{overs\adddotspace av}},
+ translationas = {{oversatt som}{overs\adddotspace som}},
+ translationfrom = {{oversatt fra}{overs\adddotspace fra}},
+ reviewof = {{kritikk av}{krit\adddotspace av}},
+ origpubas = {{opprinnelig utgitt som}{oppr\adddot\ utg\adddot\ som}},
+ origpubin = {{opprinnelig utgitt i}{oppr\adddot\ utg\adddot\ i}},
+ astitle = {{som}{som}},
+ bypublisher = {{av}{av}},
+ nodate = {{udatert}{udatert}},
+ page = {{side}{s\adddot}},
+ pages = {{sider}{s\adddot}},
+ column = {{spalte}{sp\adddot}},
+ columns = {{spalter}{sp\adddot}},
+ line = {{linje}{l\adddot}},
+ lines = {{linjer}{l\adddot}},
+ verse = {{vers}{v\adddot}},
+ verses = {{vers}{v\adddot}},
+ section = {{avsnitt}{avsn\adddot}},
+ sections = {{avsnitt}{avsn\adddot}},
+ paragraph = {{avsnitt}{avsn\adddot}},
+ paragraphs = {{avsnitt}{avsn\adddot}},
+ pagetotal = {{side}{s\adddot}},
+ pagetotals = {{sider}{s\adddot}},
+ columntotal = {{spalte}{sp\adddot}},
+ columntotals = {{spalter}{sp\adddot}},
+ linetotal = {{linje}{l\adddot}},
+ linetotals = {{linjer}{l\adddot}},
+ versetotal = {{vers}{v\adddot}},
+ versetotals = {{vers}{v\adddot}},
+ sectiontotal = {{avsnitt}{avsn\adddot}},
+ sectiontotals = {{avsnitt}{avsn\adddot}},
+ paragraphtotal = {{avsnitt}{avsn\adddot}},
+ paragraphtotals = {{avsnitt}{avsn\adddot}},
+ in = {{i}{i}},
+ inseries = {{i}{i}},
+ ofseries = {{av}{av}},
+ number = {{nummer}{nr\adddot}},
+ chapter = {{kapittel}{kap\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{masteroppgave}{masteroppg\adddot}},
+ phdthesis = {{ph.d.-avhandling}{ph.d.-avh\adddot}},
+ candthesis = {{hovedoppgave}{hovedoppg\adddot}},
+ resreport = {{forskningsrapport}{forskn.rapp\adddot}},
+ techreport = {{teknisk rapport}{tekn\adddotspace rapp\adddot}},
+ software = {{programvare}{programvare}},
+ datacd = {{data-cd}{data-cd}},
+ audiocd = {{lyd-cd}{lyd-cd}},
+ version = {{versjon}{versjon}},
+ url = {{adresse}{adresse}},
+ urlfrom = {{tilgjengelig fra}{tilgj\adddotspace fra}},
+ urlseen = {{sjekket}{sjekket}},
+ inpreparation = {{under utarbeidelse}{under utarb\adddot}},
+ submitted = {{innsendt}{innsendt}},
+ forthcoming = {{under utgivelse}{under utgiv\adddot}},
+ inpress = {{i trykken}{i trykken}},
+ prepublished = {{prepublisert}{prepubl\adddot}},
+ citedas = {{heretter sitert som}{heretter sit\adddotspace som}},
+ thiscite = {{her}{her}},
+ seenote = {{se note}{se n\adddot}},
+ quotedin = {{sitert i}{sit\adddotspace i}},
+ idem = {{den samme}{d.s\adddot}},
+ idemsf = {{den samme}{d.s\adddot}},
+ idemsm = {{den samme}{d.s\adddot}},
+ idemsn = {{det samme}{d.s\adddot}},
+ idempf = {{de samme}{d.s\adddot}},
+ idempm = {{de samme}{d.s\adddot}},
+ idempn = {{de samme}{d.s\adddot}},
+ idempp = {{de samme}{d.s\adddot}},
+ ibidem = {{samme sted}{sst\adddot}},
+ opcit = {{samme sted}{sst\adddot}},
+ loccit = {{samme sted}{sst\adddot}},
+ confer = {{jamf{\o}r}{jf\adddot}},
+ sequens = {{f\adddot}{f\adddot}},
+ sequentes = {{ff\adddot}{ff\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{se}{se}},
+ seealso = {{se ogs{\aa}}{se ogs{\aa}}},
+ backrefpage = {{se side}{se s\adddot}},
+ backrefpages = {{se sidene}{se s\adddot}},
+ january = {{januar}{jan\adddot}},
+ february = {{februar}{feb\adddot}},
+ march = {{mars}{mar\adddot}},
+ april = {{april}{apr\adddot}},
+ may = {{mai}{mai}},
+ june = {{juni}{jun\adddot}},
+ july = {{juli}{jul\adddot}},
+ august = {{august}{aug\adddot}},
+ september = {{september}{sep\adddot}},
+ october = {{oktober}{okt\adddot}},
+ november = {{november}{nov\adddot}},
+ december = {{desember}{des\adddot}},
+ langamerican = {{amerikansk-engelsk}{amerikansk-engelsk}},
+ langbrazilian = {{brasiliansk-portugisisk}{brasiliansk-portugisisk}},
+ langbulgarian = {{bulgarsk}{bulgarsk}},
+ langcatalan = {{katalansk}{katalansk}},
+ langcroatian = {{kroatisk}{kroatisk}},
+ langczech = {{tsjekkisk}{tsjekkisk}},
+ langdanish = {{dansk}{dansk}},
+ langdutch = {{nederlandsk}{nederlandsk}},
+ langenglish = {{engelsk}{engelsk}},
+ langestonian = {{estisk}{estisk}},
+ langfinnish = {{finsk}{finsk}},
+ langfrench = {{fransk}{fransk}},
+ langgalician = {{galisisk}{galisisk}},
+ langgerman = {{tysk}{tysk}},
+ langgreek = {{gresk}{gresk}},
+% langhungarian = {{}{}}, % FIXME: missing
+ langitalian = {{italiensk}{italiensk}},
+ langjapanese = {{japansk}{japansk}},
+ langlatin = {{latin}{latin}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{norsk}{norsk}},
+ langpolish = {{polsk}{polsk}},
+ langportuguese = {{portugisisk}{portugisisk}},
+ langrussian = {{russisk}{russisk}},
+ langslovak = {{slovakisk}{slovakisk}},
+ langslovene = {{slovensk}{slovensk}},
+ langspanish = {{spansk}{spansk}},
+ langswedish = {{svensk}{svensk}},
+ langukrainian = {{ukrainsk}{ukrainsk}},
+ fromamerican = {{fra amerikansk-engelsk}{fra amerikansk-engelsk}},
+ frombrazilian = {{fra brasiliansk-portugisisk}{fra brasiliansk-portugisisk}},
+ frombulgarian = {{fra bulgarsk}{fra bulgarsk}},
+ fromcatalan = {{fra katalansk}{fra katalansk}},
+ fromcroatian = {{fra kroatisk}{fra kroatisk}},
+ fromczech = {{fra tsjekkisk}{fra tsjekkisk}},
+ fromdanish = {{fra dansk}{fra dansk}},
+ fromdutch = {{fra nederlandsk}{fra nederlandsk}},
+ fromenglish = {{fra engelsk}{fra engelsk}},
+ fromestonian = {{fra estisk}{fra estisk}},
+ fromfinnish = {{fra finsk}{fra finsk}},
+ fromfrench = {{fra fransk}{fra fransk}},
+ fromgalician = {{fra galisisk}{fra galisisk}},
+ fromgerman = {{fra tysk}{fra tysk}},
+ fromgreek = {{fra gresk}{fra gresk}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{fra italiensk}{fra italiensk}},
+ fromjapanese = {{fra japansk}{fra japansk}},
+ fromlatin = {{fra latin}{fra latin}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{fra norsk}{fra norsk}},
+ frompolish = {{fra polsk}{fra polsk}},
+ fromportuguese = {{fra portugisisk}{fra portugisisk}},
+ fromrussian = {{fra russisk}{fra russisk}},
+ fromslovak = {{fra slovakisk}{fra slovakisk}},
+ fromslovene = {{fra slovensk}{fra slovensk}},
+ fromspanish = {{fra spansk}{fra spansk}},
+ fromswedish = {{fra svensk}{fra svensk}},
+ fromukrainian = {{fra ukrainsk}{fra ukrainsk}},
+ countryde = {{Tyskland}{DE}},
+ countryeu = {{Den europeiske union}{EU}},
+ countryep = {{Den europeiske union}{EP}},
+ countryfr = {{Frankrike}{FR}},
+ countryuk = {{Storbritannia}{GB}},
+ countryus = {{USA}{US}},
+ patent = {{patent}{patent}},
+ patentde = {{tysk patent}{ty\adddotspace pat\adddot}},
+ patenteu = {{europeisk patent}{eur\adddotspace pat\adddot}},
+ patentfr = {{fransk patent}{fr\adddotspace pat\adddot}},
+ patentuk = {{britisk patent}{br\adddotspace pat\adddot}},
+ patentus = {{amerikansk patent}{am\adddotspace pat\adddot}},
+ patreq = {{patents{\o}knad}{pat.s{\o}kn\adddot}},
+ patreqde = {{tysk patents{\o}knad}%
+ {ty\adddotspace pat.s{\o}kn\adddot}},
+ patreqeu = {{europeisk patents{\o}knad}%
+ {eur\adddotspace pat.s{\o}kn\adddot}},
+ patreqfr = {{fransk patents{\o}knad}%
+ {fr\adddotspace pat.s{\o}kn\adddot}},
+ patrequk = {{britisk patents{\o}knad}%
+ {br\adddotspace pat.s{\o}kn\adddot}},
+ patrequs = {{amerikansk patents{\o}knad}%
+ {am\adddotspace pat.s{\o}kn\adddot}},
+ file = {{fil}{fil}},
+ library = {{bibliotek}{bibliotek}},
+ abstract = {{sammendrag}{sammendrag}},
+ annotation = {{merknad}{merknad}},
+ commonera = {{etter v{\aa}r tidsregning}{evt\adddot}},
+ beforecommonera = {{f{\o}r v{\aa}r tidsregning}{fvt\adddot}},
+ annodomini = {{etter Kristus}{e\adddot Kr\adddot}},
+ beforechrist = {{f{\o}r Kristus}{f\adddot Kr\adddot}},
+ circa = {{cirka}{ca\adddot}},
+ spring = {{v{\aa}r}{v{\aa}r}},
+ summer = {{sommer}{sommer}},
+ autumn = {{h{\o}st}{h{\o}st}},
+ winter = {{vinter}{vinter}},
+ am = {{a\adddot m\adddot}{a\adddot m\adddot}},
+ pm = {{p\adddot m\adddot}{p\adddot m\adddot}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/nswissgerman.lbx b/macros/latex/contrib/biblatex/latex/lbx/nswissgerman.lbx
new file mode 100644
index 0000000000..f54a078b26
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/nswissgerman.lbx
@@ -0,0 +1,30 @@
+\ProvidesFile{nswissgerman.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{german}
+
+% Swiss time sep is a dot
+\DeclareBibliographyExtras{%
+ \protected\def\bibtimesep{.}%
+}
+
+% One point where Swiss German spelling
+% differs from Austrian and German German
+% is the (non-)use of \ss
+\DeclareBibliographyStrings{%
+ inherit = {german},
+ citedas = {{im Folgenden zitiert als}{im Folgenden zit\adddotspace als}},
+ countryuk = {{Grossbritannien}{GB}},
+% alternative spelling, uncomment to enable:
+% section = {{Paragraf}{\S}},
+% sections = {{Paragrafen}{\S\S}},
+% sectiontotal = {{Paragraf}{\S}},
+% sectiontotals = {{Paragrafen}{\S\S}},
+}
+
+\DeclareHyphenationExceptions{%
+ Pa-tent-an-mel-dung
+ Pa-tent-an-meld
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/nynorsk.lbx b/macros/latex/contrib/biblatex/latex/lbx/nynorsk.lbx
new file mode 100644
index 0000000000..39ebe59e36
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/nynorsk.lbx
@@ -0,0 +1,317 @@
+\ProvidesFile{nynorsk.lbx}
+[\abx@lbxid]
+
+% Remarks by translators:
+%
+% Since "nynorsk" inherits "norsk" (bokm\aa l) only strings that are
+% different in the two languages are included. In particular, this
+% means that no language or month name strings are listed below.
+%
+
+\InheritBibliographyExtras{norsk}
+
+\DeclareBibliographyStrings{%
+ inherit = {norsk},
+ references = {{Referansar}{Referansar}},
+ shorthands = {{Forkortingar}{Forkortingar}},
+ editors = {{redakt{\o}rar}{red\adddot}},
+ compilers = {{kompilatorar}{komp\adddot}},
+ redactor = {{omarbeiding}{omarb\adddot}},
+ redactors = {{omarbeiding}{omarb\adddot}},
+ founder = {{grunnleggjar}{grunnl\adddot}},
+ founders = {{grunnleggjarar}{grunnl\adddot}},
+ continuator = {{vidaref{\o}ring}{vidaref\adddot}},
+ continuators = {{vidaref{\o}ring}{vidaref\adddot}},
+ translator = {{omsetjar}{oms\adddot}},
+ translators = {{omsetjarar}{oms\adddot}},
+ commentator = {{kommentarar}{komm\adddot}},
+ commentators = {{kommentarar}{komm\adddot}},
+ annotator = {{forklaringar}{forkl\adddot}},
+ annotators = {{forklaringar}{forkl\adddot}},
+ commentary = {{kommentarar}{komm\adddot}},
+ annotations = {{forklaringar}{forkl\adddot}},
+ introduction = {{innleiing}{innl\adddot}},
+ foreword = {{f{\o}reord}{f{\o}reord}},
+ editortr = {{redakt{\o}r og omsetjar}%
+ {red\adddotspace og oms\adddot}},
+ editorstr = {{redakt{\o}rar og omsetjarar}%
+ {red\adddotspace og oms\adddot}},
+ editorco = {{redakt{\o}r og kommentarar}%
+ {red\adddotspace og komm\adddot}},
+ editorsco = {{redakt{\o}rar og kommentarar}%
+ {red\adddotspace og komm\adddot}},
+ editoran = {{redakt{\o}r og forklaringar}%
+ {red\adddotspace og forkl\adddot}},
+ editorsan = {{redakt{\o}rar og forklaringar}%
+ {red\adddotspace og forkl\adddot}},
+ editorin = {{redakt{\o}r og innleiing}%
+ {red\adddotspace og innl\adddot}},
+ editorsin = {{redakt{\o}rar og innleiing}%
+ {red\adddotspace og innl\adddot}},
+ editorfo = {{redakt{\o}r og f{\o}reord}%
+ {red\adddotspace og f{\o}reord}},
+ editorsfo = {{redakt{\o}rar og f{\o}reord}%
+ {red\adddotspace og f{\o}reord}},
+ editorsaf = {{redakt{\o}rar og etterord}%
+ {red\adddotspace og etterord}},
+ editortrco = {{redakt{\o}r, omsetjar og kommentarar}%
+ {red.,\addabbrvspace oms\adddotspace og komm\adddot}},
+ editorstrco = {{redakt{\o}rar, omsetjarar og kommentarar}%
+ {red.,\addabbrvspace oms\adddotspace og komm\adddot}},
+ editortran = {{redakt{\o}r, omsetjar og forklaringar}%
+ {red.,\addabbrvspace oms\adddotspace og forkl\adddot}},
+ editorstran = {{redakt{\o}rar, omsetjarar og forklaringar}%
+ {red.,\addabbrvspace oms\adddotspace og forkl\adddot}},
+ editortrin = {{redakt{\o}r, omsetjar og innleiing}%
+ {red.,\addabbrvspace oms\adddotspace og innl\adddot}},
+ editorstrin = {{redakt{\o}rar, omsetjarar og innleiing}%
+ {red.,\addabbrvspace oms\adddotspace og innl\adddot}},
+ editortrfo = {{redakt{\o}r, omsetjar og f{\o}reord}%
+ {red.,\addabbrvspace oms\adddotspace og f{\o}reord}},
+ editorstrfo = {{redakt{\o}rar, omsetjarar og f{\o}reord}%
+ {red.,\addabbrvspace oms\adddotspace og f{\o}reord}},
+ editortraf = {{redakt{\o}r, omsetjar og etterord}%
+ {red.,\addabbrvspace oms\adddotspace og etterord}},
+ editorstraf = {{redakt{\o}rar, omsetjarar og etterord}%
+ {red.,\addabbrvspace oms\adddotspace og etterord}},
+ editorcoin = {{redakt{\o}r, kommentarar og innleiing}%
+ {red.,\addabbrvspace komm\adddotspace og innl\adddot}},
+ editorscoin = {{redakt{\o}rar, kommentarar og innleiing}%
+ {red.,\addabbrvspace komm\adddotspace og innl\adddot}},
+ editorcofo = {{redakt{\o}r, kommentarar og f{\o}reord}%
+ {red.,\addabbrvspace komm\adddotspace og f{\o}reord}},
+ editorscofo = {{redakt{\o}rar, kommentarar og f{\o}reord}%
+ {red.,\addabbrvspace komm\adddotspace og f{\o}reord}},
+ editorcoaf = {{redakt{\o}r, kommentarar og etterord}%
+ {red.,\addabbrvspace komm\adddotspace og etterord}},
+ editorscoaf = {{redakt{\o}rar, kommentarar og etterord}%
+ {red.,\addabbrvspace komm\adddotspace og etterord}},
+ editoranin = {{redakt{\o}r, forklaringar og innleiing}%
+ {red.,\addabbrvspace forkl\adddotspace og innl\adddot}},
+ editorsanin = {{redakt{\o}rar, forklaringar og innleiing}%
+ {red.,\addabbrvspace forkl\adddotspace og innl\adddot}},
+ editoranfo = {{redakt{\o}r, forklaringar og f{\o}reord}%
+ {red.,\addabbrvspace forkl\adddotspace og f{\o}reord}},
+ editorsanfo = {{redakt{\o}rar, forklaringar og f{\o}reord}%
+ {red.,\addabbrvspace forkl\adddotspace og f{\o}reord}},
+ editoranaf = {{redakt{\o}r, forklaringar og etterord}%
+ {red.,\addabbrvspace forkl\adddotspace og etterord}},
+ editorsanaf = {{redakt{\o}rar, forklaringar og etterord}%
+ {red.,\addabbrvspace forkl\adddotspace og etterord}},
+ editortrcoin = {{redakt{\o}r, omsetjar, kommentarar og innleiing}%
+ {red.,\addabbrvspace oms., komm\adddotspace og innl\adddot}},
+ editorstrcoin = {{redakt{\o}rar, omsetjarar, kommentarar og innleiing}%
+ {red.,\addabbrvspace oms., komm\adddotspace og innl\adddot}},
+ editortrcofo = {{redakt{\o}r, omsetjar, kommentarar og f{\o}reord}%
+ {red.,\addabbrvspace oms., komm\adddotspace og f{\o}reord}},
+ editorstrcofo = {{redakt{\o}rar, omsetjarar, kommentarar og f{\o}reord}%
+ {red.,\addabbrvspace oms., komm\adddotspace og f{\o}reord}},
+ editortrcoaf = {{redakt{\o}r, omsetjar, kommentarar og etterord}%
+ {red.,\addabbrvspace oms., komm\adddotspace og etterord}},
+ editorstrcoaf = {{redakt{\o}rar, omsetjarar, kommentarar og etterord}%
+ {red.,\addabbrvspace oms., komm\adddotspace og etterord}},
+ editortranin = {{redakt{\o}r, omsetjar, forklaringar og innleiing}%
+ {red.,\addabbrvspace oms., forkl\adddotspace og innl\adddot}},
+ editorstranin = {{redakt{\o}rar, omsetjarar, forklaringar og innleiing}%
+ {red.,\addabbrvspace oms., forkl\adddotspace og innl\adddot}},
+ editortranfo = {{redakt{\o}r, omsetjar, forklaringar og f{\o}reord}%
+ {red.,\addabbrvspace oms., forkl\adddotspace og f{\o}reord}},
+ editorstranfo = {{redakt{\o}rar, omsetjarar, forklaringar og f{\o}reord}%
+ {red.,\addabbrvspace oms., forkl\adddotspace og f{\o}reord}},
+ editortranaf = {{redakt{\o}r, omsetjar, forklaringar og etterord}%
+ {red.,\addabbrvspace oms., forkl\adddotspace og etterord}},
+ editorstranaf = {{redakt{\o}rar, omsetjarar, forklaringar og etterord}%
+ {red.,\addabbrvspace oms., forkl\adddotspace og etterord}},
+ translatorco = {{omsetjar og kommentarar}%
+ {oms\adddotspace og komm\adddot}},
+ translatorsco = {{omsetjarar og kommentarar}%
+ {oms\adddotspace og komm\adddot}},
+ translatoran = {{omsetjar og forklaringar}%
+ {oms\adddotspace og forkl\adddot}},
+ translatorsan = {{omsetjarar og forklaringar}%
+ {oms\adddotspace og forkl\adddot}},
+ translatorin = {{omsetjar og innleiing}%
+ {oms\adddotspace og innl\adddot}},
+ translatorsin = {{omsetjarar og innleiing}%
+ {oms\adddotspace og innl\adddot}},
+ translatorfo = {{omsetjar og f{\o}reord}%
+ {oms\adddotspace og f{\o}reord}},
+ translatorsfo = {{omsetjarar og f{\o}reord}%
+ {oms\adddotspace og f{\o}reord}},
+ translatoraf = {{omsetjar og etterord}%
+ {oms\adddotspace og etterord}},
+ translatorsaf = {{omsetjarar og etterord}%
+ {oms\adddotspace og etterord}},
+ translatorcoin = {{omsetjar, kommentarar og innleiing}%
+ {oms., komm\adddotspace og innl\adddot}},
+ translatorscoin = {{omsetjarar, kommentarar og innleiing}%
+ {oms., komm\adddotspace og innl\adddot}},
+ translatorcofo = {{omsetjar, kommentarar og f{\o}reord}%
+ {oms., komm\adddotspace og f{\o}reord}},
+ translatorscofo = {{omsetjarar, kommentarar og f{\o}reord}%
+ {oms., komm\adddotspace og f{\o}reord}},
+ translatorcoaf = {{omsetjar, kommentarar og etterord}%
+ {oms., komm\adddotspace og etterord}},
+ translatorscoaf = {{omsetjarar, kommentarar og etterord}%
+ {oms., komm\adddotspace og etterord}},
+ translatoranin = {{omsetjar, forklaringar og innleiing}%
+ {oms., forkl\adddotspace og innl\adddot}},
+ translatorsanin = {{omsetjarar, forklaringar og innleiing}%
+ {oms., forkl\adddotspace og innl\adddot}},
+ translatoranfo = {{omsetjar, forklaringar og f{\o}reord}%
+ {oms., forkl\adddotspace og f{\o}reord}},
+ translatorsanfo = {{omsetjarar, forklaringar og f{\o}reord}%
+ {oms., forkl\adddotspace og f{\o}reord}},
+ translatoranaf = {{omsetjar, forklaringar og etterord}%
+ {oms., forkl\adddotspace og etterord}},
+ translatorsanaf = {{omsetjarar, forklaringar og etterord}%
+ {oms., forkl\adddotspace og etterord}},
+ organizers = {{organisatorar}{org\adddot}},
+ byredactor = {{omarbeidd av}{omarb\adddotspace av}},
+ bycontinuator = {{vidaref{\o}rt av}{vidaref\adddotspace av}},
+ bytranslator = {{omsett \lbx@lfromlang\ av}%
+ {oms\adddot\ \lbx@sfromlang\ av}},
+ withcommentator = {{med kommentarar av}{med komm\adddot\ av}},
+ withannotator = {{med forklaringar av}{med forkl\adddot\ av}},
+ withintroduction = {{med innleiing av}{med innl\adddot\ av}},
+ withforeword = {{med f{\o}reord av}{med f{\o}reord av}},
+ byeditortr = {{redigert og omsett \lbx@lfromlang\ av}%
+ {red\adddotspace og oms\adddot\ \lbx@sfromlang\ av}},
+ byeditorin = {{redigert, med innleiing, av}%
+ {red.,\addabbrvspace med innl., av}},
+ byeditorfo = {{redigert, med f{\o}reord, av}%
+ {red.,\addabbrvspace med f{\o}reord, av}},
+ byeditortrco = {{redigert, omsett \lbx@lfromlang\ og kommentert av}%
+ {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og komm\adddot\ av}},
+ byeditortran = {{redigert, omsett \lbx@lfromlang\ og forklart av}%
+ {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og forkl\adddot\ av}},
+ byeditortrin = {{redigert og omsett \lbx@lfromlang, med innleiing, av}%
+ {red\adddotspace og oms\adddot\ \lbx@sfromlang, med innl., av}},
+ byeditortrfo = {{redigert og omsett \lbx@lfromlang, med f{\o}reord, av}%
+ {red\adddotspace og oms\adddot\ \lbx@sfromlang, med f{\o}reord, av}},
+ byeditortraf = {{redigert og omsett \lbx@lfromlang, med etterord, av}%
+ {red\adddotspace og oms\adddot\ \lbx@sfromlang, med etterord, av}},
+ byeditorcoin = {{redigert og kommentert, med innleiing, av}%
+ {red\adddotspace og komm., med innl., av}},
+ byeditorcofo = {{redigert og kommentert, med f{\o}reord, av}%
+ {red\adddotspace og komm., med f{\o}reord, av}},
+ byeditoranin = {{redigert og forklart, med innleiing, av}%
+ {red\adddotspace og forkl., med innl., av}},
+ byeditoranfo = {{redigert og forklart, med f{\o}reord, av}%
+ {red\adddotspace og forkl., med f{\o}reord, av}},
+ byeditortrcoin = {{redigert, omsett \lbx@lfromlang\ og kommentert, med innleiing, av}%
+ {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og komm., med innl., av}},
+ byeditortrcofo = {{redigert, omsett \lbx@lfromlang\ og kommentert, med f{\o}reord, av}%
+ {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og komm., med f{\o}reord, av}},
+ byeditortrcoaf = {{redigert, omsett \lbx@lfromlang\ og kommentert, med etterord, av}%
+ {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og komm., med etterord, av}},
+ byeditortranin = {{redigert, omsett \lbx@lfromlang\ og forklart, med innleiing, av}%
+ {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og forkl., med innl., av}},
+ byeditortranfo = {{redigert, omsett \lbx@lfromlang\ og forklart, med f{\o}reord, av}%
+ {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og forkl., med f{\o}reord, av}},
+ byeditortranaf = {{redigert, omsett \lbx@lfromlang\ og forklart, med etterord, av}%
+ {red.,\addabbrvspace oms\adddot\ \lbx@sfromlang\ og forkl., med etterord, av}},
+ bytranslatorco = {{omsett \lbx@lfromlang\ og kommentert av}%
+ {oms\adddot\ \lbx@sfromlang\ og komm\adddot\ av}},
+ bytranslatoran = {{omsett \lbx@lfromlang\ og forklart av}%
+ {oms\adddot\ \lbx@sfromlang\ og forkl\adddot\ av}},
+ bytranslatorin = {{omsett \lbx@lfromlang, med innleiing, av}%
+ {oms\adddot\ \lbx@sfromlang, med innl., av}},
+ bytranslatorfo = {{omsett \lbx@lfromlang, med f{\o}reord, av}%
+ {oms\adddot\ \lbx@sfromlang, med f{\o}reord, av}},
+ bytranslatoraf = {{omsett \lbx@lfromlang, med etterord, av}%
+ {oms\adddot\ \lbx@sfromlang, med etterord, av}},
+ bytranslatorcoin = {{omsett \lbx@lfromlang\ og kommentert, med innleiing, av}%
+ {oms\adddot\ \lbx@sfromlang\ og komm., med innl., av}},
+ bytranslatorcofo = {{omsett \lbx@lfromlang\ og kommentert, med f{\o}reord, av}%
+ {oms\adddot\ \lbx@sfromlang\ og komm., med f{\o}reord, av}},
+ bytranslatorcoaf = {{omsett \lbx@lfromlang\ og kommentert, med etterord, av}%
+ {oms\adddot\ \lbx@sfromlang\ og komm., med etterord, av}},
+ bytranslatoranin = {{omsett \lbx@lfromlang\ og forklart, med innleiing, av}%
+ {oms\adddot\ \lbx@sfromlang\ og forkl., med innl., av}},
+ bytranslatoranfo = {{omsett \lbx@lfromlang\ og forklart, med f{\o}reord, av}%
+ {oms\adddot\ \lbx@sfromlang\ og forkl., med f{\o}reord, av}},
+ bytranslatoranaf = {{omsett \lbx@lfromlang\ og forklart, med etterord, av}%
+ {oms\adddot\ \lbx@sfromlang\ og forkl., med etterord, av}},
+ andothers = {{med fleire}{mfl\adddot}},
+ andmore = {{med meir}{m.m\adddot}},
+ oldseries = {{gamal serie}{gl\adddotspace ser\adddot}},
+ edition = {{utg{\aa}ve}{utg\adddot}},
+ reprintfrom = {{opptrykk fr{\aa}}{opptr\adddotspace fr{\aa}}},
+ translationof = {{omsetjing av}{oms\adddotspace av}},
+ translationas = {{omsett som}{oms\adddotspace som}},
+ translationfrom = {{omsett fr{\aa}}{oms\adddotspace fr{\aa}}},
+ origpubas = {{opphavleg utgitt som}{opph\adddot\ utg\adddot\ som}},
+ origpubin = {{opphavleg utgitt i}{opph\adddot\ utg\adddot\ i}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{masteroppg{\aa}ve}{masteroppg\adddot}},
+ candthesis = {{hovudoppg{\aa}ve}{hovudoppg\adddot}},
+ resreport = {{forskingsrapport}{forsk.rapp\adddot}},
+ url = {{adresse}{adresse}},
+ urlfrom = {{tilgjengeleg fr{\aa}}{tilgj\adddotspace fr{\aa}}},
+ urlseen = {{sjekka}{sjekka}},
+ inpreparation = {{under utarbeiding}{under utarb\adddot}},
+ forthcoming = {{under utgiving}{under utgiv\adddot}},
+ citedas = {{heretter sitert som}{heretter sit\adddotspace som}},
+ seenote = {{sj{\aa} note}{sj{\aa} n\adddot}},
+ idem = {{den same}{d.s\adddot}},
+ idemsf = {{den same}{d.s\adddot}},
+ idemsm = {{den same}{d.s\adddot}},
+ idemsn = {{det same}{d.s\adddot}},
+ idempf = {{dei same}{d.s\adddot}},
+ idempm = {{dei same}{d.s\adddot}},
+ idempn = {{dei same}{d.s\adddot}},
+ idempp = {{dei same}{d.s\adddot}},
+ ibidem = {{same staden}{sst\adddot}},
+ opcit = {{same staden}{sst\adddot}},
+ loccit = {{same staden}{sst\adddot}},
+ see = {{sj{\aa}}{sj{\aa}}},
+ seealso = {{sj{\aa} \`{o}g}{sj{\aa} \`{o}g}},
+ backrefpage = {{sj{\aa} side}{sj{\aa} s\adddot}},
+ backrefpages = {{sj{\aa} sidene}{sj{\aa} s\adddot}},
+ fromamerican = {{fr{\aa} amerikansk-engelsk}{fr{\aa} amerikansk-engelsk}},
+ frombrazilian = {{fr{\aa} brasiliansk-portugisisk}{fr{\aa} brasiliansk-portugisisk}},
+ frombulgarian = {{fr{\aa} bulgarsk}{fr{\aa} bulgarsk}},
+ fromcatalan = {{fr{\aa} katalansk}{fr{\aa} katalansk}},
+ fromcroatian = {{fr{\aa} kroatisk}{fr{\aa} kroatisk}},
+ fromczech = {{fr{\aa} tsjekkisk}{fr{\aa} tsjekkisk}},
+ fromdanish = {{fr{\aa} dansk}{fr{\aa} dansk}},
+ fromdutch = {{fr{\aa} nederlandsk}{fr{\aa} nederlandsk}},
+ fromenglish = {{fr{\aa} engelsk}{fr{\aa} engelsk}},
+ fromestonian = {{fr{\aa} estisk}{fr{\aa} estisk}},
+ fromfinnish = {{fr{\aa} finsk}{fr{\aa} finsk}},
+ fromfrench = {{fr{\aa} fransk}{fr{\aa} fransk}},
+ fromgalician = {{fr{\aa} galisisk}{fr{\aa} galisisk}},
+ fromgerman = {{fr{\aa} tysk}{fr{\aa} tysk}},
+ fromgreek = {{fr{\aa} gresk}{fr{\aa} gresk}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{fr{\aa} italiensk}{fr{\aa} italiensk}},
+ fromjapanese = {{fr{\aa} japansk}{fr{\aa} japansk}},
+ fromlatin = {{fr{\aa} latin}{fr{\aa} latin}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{fr{\aa} norsk}{fr{\aa} norsk}},
+ frompolish = {{fr{\aa} polsk}{fr{\aa} polsk}},
+ fromportuguese = {{fr{\aa} portugisisk}{fr{\aa} portugisisk}},
+ fromrussian = {{fr{\aa} russisk}{fr{\aa} russisk}},
+ fromslovene = {{fr{\aa} slovakisk}{fr{\aa} slovakisk}},
+ fromslovak = {{fr{\aa} slovensk}{fr{\aa} slovensk}},
+ fromspanish = {{fr{\aa} spansk}{fr{\aa} spansk}},
+ fromswedish = {{fr{\aa} svensk}{fr{\aa} svensk}},
+ fromukrainian = {{fr{\aa} ukrainsk}{fr{\aa} ukrainsk}},
+ countryeu = {{Den europeiske unionen}{EU}},
+ countryep = {{Den europeiske unionen}{EP}},
+ abstract = {{samandrag}{samandrag}},
+ commonera = {{vesterlandsk tidsrekning}{v\adddot t\adddot}},
+ beforecommonera = {{f{\o}r vesterlandsk tidsrekning}{f\adddot v\adddot t\adddot}},
+ annodomini = {{e\adddot Kr\adddot}{e\adddot Kr\adddot}},
+ beforechrist = {{f\adddot Kr\adddot}{f\adddot Kr\adddot}},
+ circa = {{cirka}{ca\adddot}},
+ spring = {{v{\aa}r}{v{\aa}r}},
+ summer = {{sommar}{sommar}},
+ autumn = {{haust}{haust}},
+ winter = {{vinter}{vinter}},
+ am = {{a\adddot m\adddot}{a\adddot m\adddot}},
+ pm = {{p\adddot m\adddot}{p\adddot m\adddot}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/polish.lbx b/macros/latex/contrib/biblatex/latex/lbx/polish.lbx
new file mode 100644
index 0000000000..7618a69ec5
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/polish.lbx
@@ -0,0 +1,572 @@
+\ProvidesFile{polish.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{polish}{polish}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}%
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\iffieldundef{#3}
+ {\mkbibmonth{\thefield{#2}}}
+ {\lbx@pl@mkbibmonth{\thefield{#2}}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot
+ \iffieldundef{#2}{}{\thinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldundef{#3}{/}{\adddot\thinspace}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibneutord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\NewBibliographyString{% Month name variants used after day
+ datejanuary,
+ datefebruary,
+ datemarch,
+ dateapril,
+ datemay,
+ datejune,
+ datejuly,
+ dateaugust,
+ dateseptember,
+ dateoctober,
+ datenovember,
+ datedecember%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografia}{Bibliografia}},
+ references = {{Bibliografia}{Bibliografia}},
+ shorthands = {{lista skr\'{o}t\'{o}w}{skr\'{o}ty}},
+ editor = {{redaktor}{red\adddot}},
+ editors = {{redaktorzy}{red\adddot}},
+ compiler = {{redaktor}{red\adddot}},
+ compilers = {{redaktorzy}{red\adddot}},
+ redactor = {{redaktor}{red\adddot}},
+ redactors = {{redaktorzy}{red\adddot}},
+ reviser = {{korektor}{kor\adddot}},
+ revisers = {{korektorzy}{kor\adddot}},
+ founder = {{za\l o\.{z}yciel}{za\l \adddot}},
+ founders = {{za\l o\.{z}yciele}{za\l \adddot}},
+ continuator = {{nast\c{e}pca}{nast\adddot}},
+ continuators = {{nast\c{e}pcy}{nast\adddot}},
+ collaborator = {{uczestnik}{ucz\adddot}},
+ collaborators = {{uczestnicy}{ucz\adddot}},
+ translator = {{t\l umacz}{t\l um\adddot}},
+ translators = {{t\l umacze}{t\l um\adddot}},
+ commentator = {{komentator}{kom\adddot}},
+ commentators = {{komentatorzy}{kom\adddot}},
+ annotator = {{uwaga}{uw\adddot}},
+ annotators = {{uwagi}{uw\adddot}},
+ commentary = {{komentarz}{kom\adddot}},
+ annotations = {{komentarze}{kom\adddot}},
+ introduction = {{wst\c{e}p}{wst\adddot}},
+ foreword = {{przedmowa}{przedm\adddot}},
+ afterword = {{pos\l owie}{pos\l \adddot}},
+ editortr = {{redaktor i t\l umacz}{red\adddotspace i per\adddot}},
+ editorstr = {{redaktorzy i t\l umacze}{red\adddotspace i per\adddot}},
+ editorco = {{redaktor i komentator}{red\adddotspace i kom\adddot}},
+ editorsco = {{redaktorzy i komentatorzy}%
+ {red\adddotspace i kom\adddot}},% FIXME: check
+ editoran = {{redaktor i autor uwag}%
+ {red\adddotspace i aut\adddotspace uw\adddot}},
+ editorsan = {{redaktorzy i autorzy uwag}%
+ {red\adddotspace i aut\adddotspace uw\adddot}},
+ editorin = {{redaktor i autor wst\c{e}pu}%
+ {red\adddotspace i aut\adddotspace wst\adddot}},
+ editorsin = {{redaktorzy i autorzy wst\c{e}pu}%
+ {red\adddotspace i aut\adddotspace wst\adddot}},
+ editorfo = {{redaktor i autor przedmowy}%
+ {red\adddotspace i aut\adddotspace przedm\adddot}},
+ editorsfo = {{redaktorzy i autorzy przedmowy}%
+ {red\adddotspace i aut\adddotspace przedm\adddot}},
+ editoraf = {{redaktor i autor pos\l owia}%
+ {red\adddotspace i aut\adddotspace pos\l \adddot}},
+ editorsaf = {{redaktorzy i autorzy pos\l owia}%
+ {red\adddotspace i aut\adddotspace pos\l \adddot}},
+ editortrco = {{redaktor, t\l umacz i komentator}%
+ {red., t\l um\adddotspace i kom\adddot}},
+ editorstrco = {{redaktorzy, t\l umacze i komentatory}%
+ {red., t\l um\adddotspace i kom\adddot}},
+ editortran = {{redaktor, t\l umacz i autor uwag}%
+ {red., t\l um\adddotspace i aut\adddotspace uw\adddot}},
+ editorstran = {{redaktorzy, t\l umacze i autorzy uwag}%
+ {red., t\l um\adddotspace i aut\adddotspace uw\adddot}},
+ editortrin = {{redaktor, t\l umacz i autor wst\c{e}pu}%
+ {red., t\l um\adddotspace i aut\adddotspace wst\adddot}},
+ editorstrin = {{redaktorzy, t\l umacze i autorzy wst\c{e}pu}%
+ {red., t\l um\adddotspace i aut\adddotspace wst\adddot}},
+ editortrfo = {{redaktor, t\l umacz i autor przedmowy}%
+ {red., t\l um\adddotspace i aut\adddotspace przedm\adddot}},
+ editorstrfo = {{redaktorzy, t\l umacze i autorzy przedmowy}%
+ {red., t\l um\adddotspace i aut\adddotspace przedm\adddot}},
+ editortraf = {{redaktor, t\l umacz i autor pos\l owia}%
+ {red., t\l um\adddotspace i aut\adddotspace pos\l \adddot}},
+ editorstraf = {{redaktorzy, t\l umacze i autorzy pos\l owia}%
+ {red., t\l um\adddotspace i aut\adddotspace pos\l \adddot}},
+ editorcoin = {{redaktor, komentator i autor wst\c{e}pu}%
+ {red., kom\adddotspace i aut\adddotspace wst\adddot}},
+ editorscoin = {{redaktorzy, komentatorzy i autorzy wst\c{e}pu}%
+ {red., kom\adddotspace i aut\adddotspace wst\adddot}},
+ editorcofo = {{redaktor, komentator i autor przedmowy}%
+ {red., kom\adddotspace i aut\adddotspace przedm\adddot}},
+ editorscofo = {{redaktorzy, komentatorzy i autorzy przedmowy}%
+ {red., kom\adddotspace i aut\adddotspace przedm\adddot}},
+ editorcoaf = {{redaktor, komentator i autor pos\l owia}%
+ {red., kom\adddotspace i aut\adddotspace pos\l \adddot}},
+ editorscoaf = {{redaktorzy, komentatorzy i autorzy pos\l owia}%
+ {red., kom\adddotspace i aut\adddotspace pos\l \adddot}},
+ editoranin = {{redaktor, autor uwag i autor wst\c{e}pu}%
+ {red., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}},
+ editorsanin = {{redaktorzy, autorzy uwag i autorzy wst\c{e}pu}%
+ {red., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}},
+ editoranfo = {{redaktor, autor uwag i autor przedmowy}%
+ {red., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}},
+ editorsanfo = {{redaktorzy, autorzy uwag i autorzy przedmowy}%
+ {red., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}},
+ editoranaf = {{redaktor, autor uwag i autor pos\l owia}%
+ {red., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}},
+ editorsanaf = {{redaktorzy, autorzy uwag i autorzy pos\l owia}%
+ {red., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}},
+ editortrcoin = {{redaktor, t\l umacz, komentator i autor wst\c{e}pu}%
+ {red., t\l um., kom\adddotspace i aut\adddotspace wst\adddot}},
+ editorstrcoin = {{redaktorzy, t\l umacze, komentatorzy i autorzy wst\c{e}pu}%
+ {red., t\l um., kom\adddotspace i aut\adddotspace wst\adddot}},
+ editortrcofo = {{redaktor, t\l umacz, komentator i autor przedmowy}%
+ {red., t\l um., kom\adddotspace i aut\adddotspace przedm\adddot}},
+ editorstrcofo = {{redaktorzy, t\l umacze, komentatorzy i autorzy przedmowy}%
+ {red., t\l um., kom\adddotspace i aut\adddotspace przedm\adddot}},
+ editortrcoaf = {{redaktor, t\l umacz, komentator i autor pos\l owia}%
+ {red., t\l um., kom\adddotspace i aut\adddotspace pos\l \adddot}},
+ editorstrcoaf = {{redaktorzy, t\l umacze, komentatorzy i autorzy pos\l owia}%
+ {red., t\l um., kom\adddotspace i aut\adddotspace pos\l \adddot}},
+ editortranin = {{redaktor, t\l umacz, autor uwag i autor wst\c{e}pu}%
+ {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}},
+ editorstranin = {{redaktorzy, t\l umacze, autorzy uwag i autorzy wst\c{e}pu}%
+ {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}},
+ editortranfo = {{redaktor, t\l umacz, autor uwag i autor przedmowy}%
+ {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}},
+ editorstranfo = {{redaktorzy, t\l umacze, autorzy uwag i autorzy przedmowy}%
+ {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}},
+ editortranaf = {{redaktor, t\l umacz, autor uwag i autor pos\l owia}%
+ {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}},
+ editorstranaf = {{redaktorzy, t\l umacze, autorzy uwag i autorzy pos\l owia}%
+ {red., t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}},
+ translatorco = {{t\l umacz i komentator}{t\l um\adddotspace i kom\adddot}},
+ translatorsco = {{t\l umacze i komentatorzy}{t\l um\adddotspace i kom\adddot}},
+ translatoran = {{t\l umacz i autor uwag}%
+ {t\l um\adddotspace i aut\adddotspace uw\adddot}},
+ translatorsan = {{t\l umacze i autorzy uwag}%
+ {t\l um\adddotspace i aut\adddotspace uw\adddot}},
+ translatorin = {{t\l umacz i autor wst\c{e}pu}%
+ {t\l um\adddotspace i aut\adddotspace wst\adddot}},
+ translatorsin = {{t\l umacze i autorzy wst\c{e}pu}%
+ {t\l um\adddotspace i aut\adddotspace wst\adddot}},
+ translatorfo = {{t\l umacz i autor przedmowy}%
+ {t\l um\adddotspace i aut\adddotspace przedm\adddot}},
+ translatorsfo = {{t\l umacze i autorzy przedmowy}%
+ {t\l um\adddotspace i aut\adddotspace przedm\adddot}},
+ translatoraf = {{t\l umacz i autor pos\l owia}%
+ {t\l um\adddotspace i aut\adddotspace pos\l \adddot}},
+ translatorsaf = {{t\l umacze i autorzy pos\l owia}%
+ {t\l um\adddotspace i aut\adddotspace pos\l \adddot}},
+ translatorcoin = {{t\l umacz, autor uwag i autor wst\c{e}pu}%
+ {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}},
+ translatorscoin = {{t\l umacze, autorzy uwag i autorzy wst\c{e}pu}%
+ {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}},
+ translatorcofo = {{t\l umacz, autor uwag i autor przedmowy}%
+ {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}},
+ translatorscofo = {{t\l umacze, autorzy uwag i autorzy przedmowy}%
+ {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace przedm\adddot}},
+ translatorcoaf = {{t\l umacz, autor uwag i autor pos\l owia}%
+ {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}},
+ translatorscoaf = {{t\l umacze, autorzy uwag i autorzy posowia}%
+ {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace pos\l \adddot}},
+ translatoranin = {{t\l umacz, autor uwag i autor wst\c{e}pu}%
+ {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}},
+ translatorsanin = {{t\l umacze, autorzy uwag i autorzy wst\c{e}pu}%
+ {t\l um., aut\adddotspace uw\adddotspace i aut\adddotspace wst\adddot}},
+ translatoranfo = {{t\l umacz, autor komentarzy i autor wst\c{e}pu}%
+ {t\l um., aut\adddotspace kom\adddotspace i aut\adddotspace wst\adddot}},
+ translatorsanfo = {{t\l umacze, autorzy komentarzy i autorzy przedmowy}%
+ {t\l um., aut\adddotspace kom\adddotspace i aut\adddotspace przedm\adddot}},
+ translatoranaf = {{t\l umacz, autor komentarzy i autor pos\l owia}%
+ {t\l um., aut\adddotspace kom\adddotspace i aut\adddotspace pos\l \adddot}},
+ translatorsanaf = {{t\l umacze, autorzy komentarzy i autorzy pos\l owia}%
+ {t\l um., aut\adddotspace kom\adddotspace i aut\adddotspace pos\l \adddot}},
+ organizer = {{organizator}{org\adddot}},
+ organizers = {{organizatorzy}{org\adddot}},
+ byorganizer = {{organizowane}{org\adddot}},
+ byauthor = {{autorstwo}{aut\adddot}},
+ byeditor = {{redagowa\l}{red\adddot}},
+ bycompiler = {{u\l o\.{z}y\l }{u\l \adddot}},
+ byredactor = {{zredagowano}{zred\adddot}},
+ byreviser = {{poprawione}{popr\adddot}},
+ byreviewer = {{recenzja}{rec\adddot}},
+ byfounder = {{za\l o\.{z}one}{za\l \adddot}},
+ bycontinuator = {{przej\c{e}te}{przej\adddot}},
+ bycollaborator = {{przy wsp\'{o}\l pracy}{przy wsp\adddot}},
+ bytranslator = {{t\l umaczenie \lbx@lfromlang}{t\l um\adddotspace \lbx@sfromlang}},
+ bycommentator = {{skomentowane przez}{skom\adddot}},
+ byannotator = {{uwagi od}{uw\adddot}},
+ withcommentator = {{komentarze}{kom\adddot}},
+ withannotator = {{uwagi}{uw\adddot}},
+ withintroduction = {{wst\c{e}p}{wst\adddot}},
+ withforeword = {{przedmowa}{przedm\adddot}},
+ withafterword = {{pos\l owie}{pos\l \adddot}},
+ byeditortr = {{t\l umaczenie \lbx@lfromlang, zredagowany przez}%
+ {t\l um\adddotspace \lbx@sfromlang, zred\adddotspace przez}},
+ byeditorco = {{zredagowany i skomentowany przez}%
+ {zred\adddotspace i skom\adddotspace przez}},
+ byeditoran = {{zredagowany i z uwagami}{zredag\adddotspace i z uw\adddot}},
+ byeditorin = {{zredagowany, z wst\c{e}pem}{zred., z wst\adddot}},
+ byeditorfo = {{zredagowany, z przedmow\c{a}}{zred., z przedm\adddot}},
+ byeditoraf = {{zredagowany, z pos\l owiem}{zred., z pos\l \adddot}},
+ byeditortrco = {{zredagowany, t\l umaczenie \lbx@lfromlang i komentarze}%
+ {zred., t\l um\adddotspace \lbx@sfromlang i kom\adddot}},
+ byeditortran = {{zredagowany, t\l umaczenie \lbx@lfromlang i uwagi}%
+ {zred., t\l um\adddotspace \lbx@sfromlang i uw\adddot}},
+ byeditortrin = {{zredagowany, t\l umaczenie \lbx@lfromlang, wst\c{e}p}%
+ {zred., t\l um\adddotspace \lbx@sfromlang, wst\adddot}},
+ byeditortrfo = {{zredagowany, t\l umaczenie \lbx@lfromlang, przedmowa}%
+ {zred., t\l um\adddotspace \lbx@sfromlang, przedm\adddot}},
+ byeditortraf = {{zredagowany, t\l umaczenie \lbx@lfromlang, pos\l owie}%
+ {zred\adddotspace t\l um\adddotspace \lbx@sfromlang, pos\l \adddot}},
+ byeditorcoin = {{zredagowany, komentarze i wst\c{e}p}{zred., kom\adddotspace i wst\adddot}},
+ byeditorcofo = {{zredagowany, komentarze i przedmowa}{zred., kom\adddotspace i przedm\adddot}},
+ byeditorcoaf = {{zredagowany, komentarze i pos\l owie}{zred., kom\adddotspace i pos\l \adddot}},
+ byeditoranin = {{zredagowany, uwagi i wst\c{e}p}{zred., uw\adddotspace i wst\adddot}},
+ byeditoranfo = {{zredagowany, uwagi i przedmowa}{zred., uw\adddotspace i przedm\adddot}},
+ byeditoranaf = {{zredagowany, uwagi i pos\l owie}{zred., uw\adddotspace i pos\l \adddot}},
+ byeditortrcoin = {{zredagowany, t\l umaczenie \lbx@lfromlang, komentarze i wst\c{e}p}%
+ {zred., t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i wst\c{e}p\adddot}},
+ byeditortrcofo = {{zredagowany, t\l umaczenie \lbx@lfromlang, komentarze i przedmowa}%
+ {zred., t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i przedm\adddot}},
+ byeditortrcoaf = {{zredagowany, t\l umaczenie \lbx@lfromlang, komentarze i pos\l owie}%
+ {zred., t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i pos\l \adddot}},
+ byeditortranin = {{zredagowany, t\l umaczenie \lbx@lfromlang, uwagi i wst\c{e}p}%
+ {zred., t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i wst\adddot}},
+ byeditortranfo = {{zredagowany, t\l umaczenie \lbx@lfromlang, uwagi i przedmowa}%
+ {zred., t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i przedm\adddot}},
+ byeditortranaf = {{zredagowany, t\l umaczenie \lbx@lfromlang, uwagi i pos\l owie}%
+ {zred., t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i pos\l \adddot}},
+ bytranslatorco = {{t\l umaczenie \lbx@lfromlang i komentarze}%
+ {t\l um\adddotspace \lbx@sfromlang i kom\adddot}},
+ bytranslatoran = {{t\l umaczenie \lbx@lfromlang i uwagi}%
+ {t\l um\adddotspace \lbx@sfromlang i uw\adddot}},
+ bytranslatorin = {{t\l umaczenie \lbx@lfromlang i wst\c{e}p}%
+ {t\l um\adddotspace \lbx@sfromlang i wst\adddot}},
+ bytranslatorfo = {{t\l umaczenie \lbx@lfromlang i przedmowa}%
+ {t\l um\adddotspace \lbx@sfromlang i przedm\adddot}},
+ bytranslatoraf = {{t\l umaczenie \lbx@lfromlang i pos\l owie}%
+ {t\l um\adddotspace \lbx@sfromlang i pos\l \adddot}},
+ bytranslatorcoin = {{t\l umaczenie \lbx@lfromlang, komentarze i wst\c{e}p}%
+ {t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i wst\adddot}},
+ bytranslatorcofo = {{t\l umaczenie \lbx@lfromlang, komentarze i przedmowa}%
+ {t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i przedm\adddot}},
+ bytranslatorcoaf = {{t\l umaczenie \lbx@lfromlang, komentarze i pos\l owie}%
+ {t\l um\adddotspace \lbx@sfromlang, kom\adddotspace i pos\l \adddot}},
+ bytranslatoranin = {{t\l umaczenie \lbx@lfromlang, uwagi i wst\c{e}p}%
+ {t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i wst\adddot}},
+ bytranslatoranfo = {{t\l umaczenie \lbx@lfromlang, uwagi i przedmowa}%
+ {t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i przedm\adddot}},
+ bytranslatoranaf = {{t\l umaczenie \lbx@lfromlang, uwagi i pos\l owie}%
+ {t\l um\adddotspace \lbx@sfromlang, uw\adddotspace i pos\l \adddot}},
+ and = {{i}{i}},
+ andothers = {{i inni}{i in\adddot}},
+ andmore = {{i inni}{i in\adddot}},
+ volume = {{tom}{t\adddot}},
+ volumes = {{tomy}{t\adddot}},
+ involumes = {{w}{w}},
+ jourvol = {{tom}{t\adddot}},
+ jourser = {{seria}{ser\adddot}},
+ book = {{ksi\c{a}\.{z}ka}{ks\adddot}},
+ part = {{cz\c{e}\'{s}\'{c}}{cz\adddot}},
+ issue = {{wydanie}{wyd\adddot}},
+ newseries = {{nowa seria}{now\adddotspace ser\adddot}},
+ oldseries = {{stara seria}{star\adddotspace ser\adddot}},
+ edition = {{wydruk}{wyd\adddot}},
+ reprint = {{przedruk}{przedr\adddot}},
+ reprintof = {{przedruk}{przedr\adddot}},
+ reprintas = {{przedrukowano jako}{przedr\adddotspace jako}},
+ reprintfrom = {{przedrukowano z}{przedr\adddotspace z}},
+ translationof = {{t\l umaczenie}{t\l um\adddot}},
+ translationas = {{t\l umaczenie jako}{t\l um\adddotspace jako}},
+ translationfrom = {{t\l umaczenie z}{t\l um\adddotspace z}},
+ reviewof = {{recenzja na\addcolon}{rec\adddotspace na\addcolon}},
+ origpubas = {{pierwodruk wydano jako}%
+ {pierw\adddotspace wyd\adddotspace jako}},
+ origpubin = {{pierwodruk wydano w}{pierw\adddotspace wyd\adddotspace w}},
+ astitle = {{pod tytu\l em}{pod tyt\adddot}},
+ bypublisher = {{przez wydawc\c{e}}{prz\adddotspace wyd\adddot}},
+ page = {{strona}{s\adddot}},
+ pages = {{strony}{s\adddot}},
+ column = {{kolumna}{kol\adddot}},
+ columns = {{kolumny}{kol\adddot}},
+ line = {{linijka}{l\adddot}},
+ lines = {{linijki}{l\adddot}},
+ nodate = {{bez daty}{b\adddot d\adddot}},
+ verse = {{werset}{wer\adddot}},
+ verses = {{wersety}{wer\adddot}},
+ section = {{paragraf}{par\adddot}},
+ sections = {{paragrafy}{par\adddot}},
+ paragraph = {{akapit}{akap\adddot}},
+ paragraphs = {{akapity}{akap\adddot}},
+ pagetotal = {{strona}{s\adddot}},
+ pagetotals = {{strony}{s\adddot}},
+ columntotal = {{kolumna}{kol\adddot}},
+ columntotals = {{kolumny}{kol\adddot}},
+ linetotal = {{wers}{wer\adddot}},
+ linetotals = {{wersy}{wer\adddot}},
+ versetotal = {{wiersz}{wier\adddot}},
+ versetotals = {{wiersze}{wier\adddot}},
+ sectiontotal = {{paragraf}{par\adddot}},
+ sectiontotals = {{paragrafy}{par\adddot}},
+ paragraphtotal = {{akapit}{akap\adddot}},
+ paragraphtotals = {{akapit}{akap\adddot}},
+ in = {{w}{w}},
+ inseries = {{w}{w}},
+ ofseries = {{z}{z}},
+ number = {{numer}{nr\adddot}},% FIXME: check
+ chapter = {{rozdzia\l }{rozd\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{praca magisterska}{prac\adddotspace mag\adddot}},
+ phdthesis = {{praca doktorska}{prac\adddotspace dokt\adddot}},
+ candthesis = {{praca kandydacka}%
+ {prac\adddotspace kand\adddot}},% FIXME: unsure
+ resreport = {{sprawozdanie naukowe}{spraw\adddotspace nau\adddot}},
+ techreport = {{sprawozdanie techniczne}{spraw\adddotspace tech\adddot}},
+ software = {{oprogramowanie}{opr\adddot}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{wersja}{wer\adddot}},
+ url = {{adres}{adr\adddot}},
+ urlfrom = {{dost\c{e}pne z}{dost\adddotspace z}},
+ urlseen = {{termin wizyty}{term\adddotspace wiz\adddot}},
+ inpreparation = {{przygotowanie}{przyg\adddot}},
+ submitted = {{prezentacja}{prez\adddot}},
+ forthcoming = {{przygotowanie}{przyg\adddot}},% FIXME: unsure
+ inpress = {{wydrukowane}{wydruk\adddot}},
+ prepublished = {{przedwydanie}{przedw\adddot}},
+ citedas = {{cytowane dalej jako}{cyt\adddotspace dal\adddotspace jako}},
+ thiscite = {{tutaj}{tut\adddot}},
+ seenote = {{patrz uwag\c{e}}{patrz uw\adddot}},
+ quotedin = {{cytat wed\l ug}{cyt\adddotspace wg\adddot}},
+ idem = {{ten\.{z}e}{ten\.{z}e}},
+ idemsm = {{ten\.{z}e}{ten\.{z}e}},
+ idemsf = {{ta\.{z} sama}{ta\.{z} sama}},
+ idemsn = {{ten sam}{ten sam}},
+ idempm = {{ci sami}{ci sami}},
+ idempf = {{ci sami}{ci sami}},
+ idempn = {{ci sami}{ci sami}},
+ idempp = {{ci sami}{ci sami}},
+ ibidem = {{tam\.{z}e}{tam\.{z}e}},
+ opcit = {{praca cytowana}{prac\adddotspace cyt\adddot}},
+ loccit = {{miejsce cytowane}{miej\adddotspace cyt\adddot}},
+ confer = {{por\'{o}wnaj}{por\adddot}},
+ sequens = {{i nast\c{e}pna}{i nast\adddot}},
+ sequentes = {{i nast\c{e}pni}{i nast\adddot}},
+ passim = {{wsz\c{e}dzie}{wsz\c{e}dzie}},
+ see = {{patrz}{p\adddot}},
+ seealso = {{ratrz r\'{o}wnie\.{z}}{p\adddotspace r\'{o}wn\adddot}},
+ backrefpage = {{cytowane na stronie}{cyt\adddotspace na s\adddot}},
+ backrefpages = {{cytowane na stronach}{cyt\adddotspace na s\adddot}},
+ january = {{stycze\'{n}}{sty\adddot}},
+ february = {{luty}{lut\adddot}},
+ march = {{marzec}{mar\adddot}},
+ april = {{kwiecie\'{n}}{kw\adddot}},
+ may = {{maj}{maj}},
+ june = {{czerwiec}{czer\adddot}},
+ july = {{lipiec}{lip\adddot}},
+ august = {{sierpie\'{n}}{sierp\adddot}},
+ september = {{wrzesie\'{n}}{wrz\adddot}},
+ october = {{pa\'{z}dziernik}{pa\'{z}\adddot}},
+ november = {{listopad}{list\adddot}},
+ december = {{grudzie\'{n}}{grud\adddot}},
+ datejanuary = {{stycznia}{sty\adddot}},
+ datefebruary = {{lutego}{lut\adddot}},
+ datemarch = {{marca}{mar\adddot}},
+ dateapril = {{kwietnia}{kw\adddot}},
+ datemay = {{maja}{maj\adddot}},
+ datejune = {{czerwca}{czer\adddot}},
+ datejuly = {{lipca}{lip\adddot}},
+ dateaugust = {{sierpnia}{sierp\adddot}},
+ dateseptember = {{wrze\'{s}nia}{wrz\adddot}},
+ dateoctober = {{pa\'{z}dziernika}{pa\'{z}\adddot}},
+ datenovember = {{listopada}{list\adddot}},
+ datedecember = {{grudnia}{grud\adddot}},
+ langamerican = {{ameryka\'{n}ski}{ameryka\'{n}ski}},
+ langbrazilian = {{brazylijski}{brazylijski}},
+ langbulgarian = {{bu\l garski}{bu\l garski}},
+ langcatalan = {{katalo\'{n}ski}{katalo\'{n}ski}},
+ langcroatian = {{chorwacki}{chorwacki}},
+ langczech = {{czeski}{czeski}},
+ langdanish = {{du\'{n}ski}{du\'{n}ski}},
+ langdutch = {{holenderski}{holenderski}},
+ langenglish = {{angielski}{angielski}},
+ langestonian = {{esto\'{n}ski}{esto\'{n}ski}},
+ langfinnish = {{fi\'{n}ski}{fi\'{n}ski}},
+ langfrench = {{francuski}{francuski}},
+ langgalician = {{galicyjski}{galicyjski}},
+ langgerman = {{niemiecki}{niemiecki}},
+ langgreek = {{grecki}{grecki}},
+ langhungarian = {{w\c{e}gierski}{w\c{e}gierski}},
+ langitalian = {{w\l oski}{w\l oski}},
+ langlatin = {{\l acina}{\l acina}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{norweski}{norweski}},
+ langpolish = {{polski}{polski}},
+ langportuguese = {{portugalski}{portugalski}},
+ langrussian = {{rosyjski}{rosyjski}},
+% langslovak = {{}{}},% FIXME: missing
+ langslovene = {{s\l owe\'{n}ski}{s\l owe\'{n}ski}},
+ langspanish = {{hiszpa\'{n}ski}{hiszpa\'{n}ski}},
+ langswedish = {{szwedzki}{szwedzki}},
+ fromamerican = {{z ameryka\'{n}skiego}{z amer\adddot}},
+ frombrazilian = {{z brazylijskiego}{z braz\adddot}},
+ frombulgarian = {{z bu\l garskiego}{z bu\l g\adddot}},
+ fromcatalan = {{z katalo\'{n}skiego}{z katal\adddot}},
+ fromcroatian = {{z chorwackiego}{z chorw\adddot}},
+ fromczech = {{z czeskiego}{z czesk.}},
+ fromdanish = {{z du\'{n}skiego}{z du\'{n}\adddot}},
+ fromdutch = {{z niderla\'{n}skiego}{z nid\adddot}},
+ fromenglish = {{z angielskiego}{z ang\adddot}},
+ fromestonian = {{z esto\'{n}skiego}{z est\adddot}},
+ fromfinnish = {{z fi\'{n}skiego}{z fi\'{n}\adddot}},
+ fromfrench = {{z francuzkiego}{z fran\adddot}},
+ fromgalician = {{z galicyjzkiego}{z gal\adddot}},
+ fromgerman = {{z niemieckiego}{z niem\adddot}},
+ fromgreek = {{z greckiego}{z grec\adddot}},
+ fromhungarian = {{z w\c{e}gierskiego}{z w\c{e}gierskiego}},
+ fromitalian = {{z w\l oskiego}{z w\l os\adddot}},
+ fromlatin = {{z \l aciny}{z \l at\adddot}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{z norweskiego}{z norw\adddot}},
+ frompolish = {{z polskiego}{z pol\adddot}},
+ fromportuguese = {{z portugalskiego}{z port\adddot}},
+ fromrussian = {{z rosyjskiego}{z ros\adddot}},
+% fromslovak = {{}{}},% FIXME: missing
+ fromslovene = {{z s\l owe\'{n}skiego}{z s\l owe\'{n}\adddot}},
+ fromspanish = {{z hiszpa\'{n}skiego}{z hiszp\adddot}},
+ fromswedish = {{ze szwedskiego}{ze szw\adddot}},
+ countryde = {{Niemcy}{DE}},
+ countryeu = {{Unia Europejska}{EU}},
+ countryep = {{Unia Europejska}{EP}},
+ countryfr = {{Francja}{FR}},
+ countryuk = {{Wielka Brytania}{GB}},
+ countryus = {{Stany Zjednoczone Ameryki}{US}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{patent Niemiec}{pat\adddotspace Niemiec}},
+ patenteu = {{patent Europy}{pat\adddotspace Europy}},
+ patentfr = {{patent Francji}{pat\adddotspace Francji}},
+ patentuk = {{patent Wielkiej Brytanji}{pat\adddotspace Wielkiej Brytanji}},
+ patentus = {{patent USA}{pat\adddotspace USA}},
+ patreq = {{podanie na patent}{podanie na pat\adddot}},
+ patreqde = {{podanie na patent Niemiec}%
+ {podanie na pat\adddotspace Niemiec}},
+ patreqeu = {{podanie na patent Europy}{podanie na pat\adddotspace Europy}},
+ patreqfr = {{podanie na patent Francji}%
+ {podanie na pat\adddotspace Francji}},
+ patrequk = {{podanie na patent Wielkiej Brytanji}%
+ {podanie na pat\adddotspace Wielkiej Brytanji}},
+ patrequs = {{podanie na patent USA}{podanie na pat\adddotspace USA}},
+ file = {{plik}{plik}},
+ library = {{bibloteka}{bibl\adddot}},
+ abstract = {{podsumowanie}{pod\adddot}},
+ annotation = {{adnotacja}{adn\adddot}},
+ commonera = {{CE}{CE}},
+ beforecommonera = {{BCE}{BCE}},
+ annodomini = {{n\adddot e\adddot}{n\adddot e\adddot}},
+ beforechrist = {{p\adddot n\adddot e\adddot}{p\adddot n\adddot e\adddot}},
+ circa = {{oko\l o}{ok\adddot}},
+ spring = {{wiosna}{wiosna}},
+ summer = {{lato}{lato}},
+ autumn = {{jesie\'{n}}{jesie\'{n}}},
+ winter = {{zima}{zima}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\protected\gdef\lbx@pl@mkbibmonth#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{datejanuary}%
+ \or\abx@bibmonth{datefebruary}%
+ \or\abx@bibmonth{datemarch}%
+ \or\abx@bibmonth{dateapril}%
+ \or\abx@bibmonth{datemay}%
+ \or\abx@bibmonth{datejune}%
+ \or\abx@bibmonth{datejuly}%
+ \or\abx@bibmonth{dateaugust}%
+ \or\abx@bibmonth{dateseptember}%
+ \or\abx@bibmonth{dateoctober}%
+ \or\abx@bibmonth{datenovember}%
+ \or\abx@bibmonth{datedecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/portuges.lbx b/macros/latex/contrib/biblatex/latex/lbx/portuges.lbx
new file mode 100644
index 0000000000..8e19b10701
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/portuges.lbx
@@ -0,0 +1,7 @@
+\ProvidesFile{portuges.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{portuguese}
+\InheritBibliographyStrings{portuguese}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/portuguese.lbx b/macros/latex/contrib/biblatex/latex/lbx/portuguese.lbx
new file mode 100644
index 0000000000..3526b7968f
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/portuguese.lbx
@@ -0,0 +1,537 @@
+\ProvidesFile{portuguese.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{portuguese}{portuges,brazil}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \def\mkbibordinal{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{%
+ \stripzeros{#1}\textordmasculine}% \textordmasculine -> textcomp.sty
+ \protected\def\mkbibfemord#1{%
+ \stripzeros{#1}\textordfeminine}% \textordfeminine -> textcomp.sty
+ \protected\def\mkbibneutord{\mkbibmascord}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace de\space}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\nobreakspace de\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{/}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{/}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibfemord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliografia}{Bibliografia}},
+ references = {{Refer\^encias}{Refer\^encias}},
+ shorthands = {{Lista de Abreviaturas}{Abreviaturas}},
+ editor = {{editor}{ed\adddot}},
+ editors = {{editores}{eds\adddot}},
+ compiler = {{compilador}{comp\adddot}},
+ compilers = {{compiladores}{comp\adddot}},
+ redactor = {{redator}{red\adddot}},
+ redactors = {{redatores}{red\adddot}},
+ reviser = {{revisor}{rev\adddot}},
+ revisers = {{revisores}{rev\adddot}},
+ founder = {{fundador}{fund\adddot}},
+ founders = {{fundadores}{fund\adddot}},
+ continuator = {{continuador}{cont\adddot}},
+ continuators = {{continuadores}{cont\adddot}},
+ collaborator = {{colaborador}{col\adddot}},
+ collaborators = {{colaboradores}{col\adddot}},
+ translator = {{tradutor}{trad\adddot}},
+ translators = {{tradutores}{trad\adddot}},
+ commentator = {{comentador}{coment\adddot}},
+ commentators = {{comentadores}{coment\adddot}},
+ annotator = {{anotador}{anot\adddot}},
+ annotators = {{anotadores}{anot\adddot}},
+ commentary = {{coment\'ario}{coment\adddot}},
+ annotations = {{notas}{notas}},
+ introduction = {{introdu\c{c}\~ao}{introd\adddot}},
+ foreword = {{pref\'acio}{pref\adddot}},
+ afterword = {{posf\'acio}{posf\adddot}},
+ editortr = {{editor e tradutor}%
+ {ed\adddotspace e trad\adddot}},
+ editorstr = {{editores e tradutores}%
+ {eds\adddotspace e trad\adddot}},
+ editorco = {{editor e comentador}%
+ {ed\adddotspace e coment\adddot}},
+ editorsco = {{editores e comentadores}%
+ {eds\adddotspace e coment\adddot}},
+ editoran = {{editor e anotador}%
+ {ed\adddotspace e anot\adddot}},
+ editorsan = {{editores e anotadores}%
+ {eds\adddotspace e anot\adddot}},
+ editorin = {{editor e introdu\c{c}\~ao}%
+ {ed\adddotspace e introd\adddot}},
+ editorsin = {{editores e introdu\c{c}\~ao}%
+ {eds\adddotspace e introd\adddot}},
+ editorfo = {{editor e pref\'acio}%
+ {ed\adddotspace e pref\adddot}},
+ editorsfo = {{editores e pref\'acio}%
+ {eds\adddotspace e pref\adddot}},
+ editoraf = {{editor e posf\'acio}%
+ {ed\adddotspace e posf\adddot}},
+ editorsaf = {{editores e posf\'acio}%
+ {eds\adddotspace e posf\adddot}},
+ editortrco = {{editor, tradutor e comentador}%
+ {ed., trad\adddot\ e coment\adddot}},
+ editorstrco = {{editores, tradutores e comentadores}%
+ {eds., trad\adddot\ e coment\adddot}},
+ editortran = {{editor, tradutor e anotador}%
+ {ed., trad\adddot\ e anot\adddot}},
+ editorstran = {{editores, tradutores e anotadores}%
+ {eds., trad\adddot\ e anot\adddot}},
+ editortrin = {{editor, tradutor e introdu\c{c}\~ao}%
+ {ed., trad\adddot\ e introd\adddot}},
+ editorstrin = {{editores, tradutores e introdu\c{c}\~ao}%
+ {eds., trad\adddot\ e introd\adddot}},
+ editortrfo = {{editor, tradutor e pref\'acio}%
+ {ed., trad\adddot\ e pref\adddot}},
+ editorstrfo = {{editores, tradutores e pref\'acio}%
+ {eds., trad\adddot\ e pref\adddot}},
+ editortraf = {{editor, tradutor e posf\'acio}%
+ {ed., trad\adddot\ e posf\adddot}},
+ editorstraf = {{editores, tradutores e posf\'acio}%
+ {eds., trad\adddot\ e posf\adddot}},
+ editorcoin = {{editor, comentador e introdu\c{c}\~ao}%
+ {ed., coment\adddot\ e introd\adddot}},
+ editorscoin = {{editores, comentadores e introdu\c{c}\~ao}%
+ {eds., coment\adddot\ e introd\adddot}},
+ editorcofo = {{editor, comentador e pref\'acio}%
+ {ed., coment\adddot\ e pref\adddot}},
+ editorscofo = {{editores, comentadores e pref\'acio}%
+ {eds., coment\adddot\ e pref\adddot}},
+ editorcoaf = {{editor, comentador e posf\'acio}%
+ {ed., coment\adddot\ e posf\adddot}},
+ editorscoaf = {{editores, comentadores e posf\'acio}%
+ {eds., coment\adddot\ e posf\adddot}},
+ editoranin = {{editor, anotador e introdu\c{c}\~ao}%
+ {ed., anot\adddot\ e introd\adddot}},
+ editorsanin = {{editores, anotadores e introdu\c{c}\~ao}%
+ {eds., anot\adddot\ e introd\adddot}},
+ editoranfo = {{editor, anotador e pref\'acio}%
+ {ed., anot\adddot\ e pref\adddot}},
+ editorsanfo = {{editores, anotadores e pref\'acio}%
+ {eds., anot\adddot\ e pref\adddot}},
+ editoranaf = {{editor, anotador e posf\'acio}%
+ {ed., anot\adddot\ e posf\adddot}},
+ editorsanaf = {{editores, anotadores e posf\'acio}%
+ {eds., anot\adddot\ e posf\adddot}},
+ editortrcoin = {{editor, tradutor, comentador e introdu\c{c}\~ao}%
+ {ed., trad., coment\adddot\ e introd\adddot}},
+ editorstrcoin = {{editores, tradutores, comentadores e introdu\c{c}\~ao}%
+ {eds., trad., coment\adddot\ e introd\adddot}},
+ editortrcofo = {{editor, tradutor, comentador e pref\'acio}%
+ {ed., trad., coment\adddot\ e pref\adddot}},
+ editorstrcofo = {{editores, tradutores, comentadores e pref\'acio}%
+ {eds., trad., coment\adddot\ e pref\adddot}},
+ editortrcoaf = {{editor, tradutor, comentador e posf\'acio}%
+ {ed., trad., coment\adddot\ e posf\adddot}},
+ editorstrcoaf = {{editores, tradutores, comentadores e posf\'acio}%
+ {eds., trad., coment\adddot\ e posf\adddot}},
+ editortranin = {{editor, tradutor, anotador e introdu\c{c}\~ao}%
+ {ed., trad., anot\adddot\ e introd\adddot}},
+ editorstranin = {{editores, tradutores, anotadores e introdu\c{c}\~ao}%
+ {eds., trad., anot\adddot\ e introd\adddot}},
+ editortranfo = {{editor, tradutor, anotador e pref\'acio}%
+ {ed., trad., anot\adddot\ e pref\adddot}},
+ editorstranfo = {{editores, tradutores, anotadores e pref\'acio}%
+ {eds., trad., anot\adddot\ e pref\adddot}},
+ editortranaf = {{editor, tradutor, anotador e posf\'acio}%
+ {ed., trad., anot\adddot\ e posf\adddot}},
+ editorstranaf = {{editores, tradutores, anotadores e posf\'acio}%
+ {eds., trad., anot\adddot\ e posf\adddot}},
+ translatorco = {{tradutor e comentador}%
+ {trad\adddot\ e coment\adddot}},
+ translatorsco = {{tradutores e comentadores}%
+ {trad\adddot\ e coment\adddot}},
+ translatoran = {{tradutor e anotador}%
+ {trad\adddot\ e anot\adddot}},
+ translatorsan = {{tradutores e anotadores}%
+ {trad\adddot\ e anot\adddot}},
+ translatorin = {{tradu\c{c}\~ao e introdu\c{c}\~ao}%
+ {trad\adddot\ e introd\adddot}},
+ translatorsin = {{tradu\c{c}\~ao e introdu\c{c}\~ao}%
+ {trad\adddot\ e introd\adddot}},
+ translatorfo = {{tradu\c{c}\~ao e pref\'acio}%
+ {trad\adddot\ e pref\adddot}},
+ translatorsfo = {{tradu\c{c}\~ao e pref\'acio}%
+ {trad\adddot\ e pref\adddot}},
+ translatoraf = {{tradu\c{c}\~ao e posf\'acio}%
+ {trad\adddot\ e posf\adddot}},
+ translatorsaf = {{tradu\c{c}\~ao e posf\'acio}%
+ {trad\adddot\ e posf\adddot}},
+ translatorcoin = {{tradu\c{c}\~ao, coment\'ario e introdu\c{c}\~ao}%
+ {trad., coment\adddot\ e introd\adddot}},
+ translatorscoin = {{tradu\c{c}\~ao, coment\'ario e introdu\c{c}\~ao}%
+ {trad., coment\adddot\ e introd\adddot}},
+ translatorcofo = {{tradu\c{c}\~ao, coment\'ario e pref\'acio}%
+ {trad., coment\adddot\ e pref\adddot}},
+ translatorscofo = {{tradu\c{c}\~ao, coment\'ario e pref\'acio}%
+ {trad., coment\adddot\ e pref\adddot}},
+ translatorcoaf = {{tradu\c{c}\~ao, coment\'ario e posf\'acio}%
+ {trad., coment\adddot\ e posf\adddot}},
+ translatorscoaf = {{tradu\c{c}\~ao, coment\'ario e posf\'acio}%
+ {trad., coment\adddot\ e posf\adddot}},
+ translatoranin = {{tradu\c{c}\~ao, notas e introdu\c{c}\~ao}%
+ {trad., notas e introd\adddot}},
+ translatorsanin = {{tradu\c{c}\~ao, notas e introdu\c{c}\~ao}%
+ {trad., notas e introd\adddot}},
+ translatoranfo = {{tradu\c{c}\~ao, notas e pref\'acio}%
+ {trad., notas e pref\adddot}},
+ translatorsanfo = {{tradu\c{c}\~ao, notas e pref\'acio}%
+ {trad., notas e pref\adddot}},
+ translatoranaf = {{tradu\c{c}\~ao, notas e posf\'acio}%
+ {trad., notas e posf\adddot}},
+ translatorsanaf = {{tradu\c{c}\~ao, notas e posf\'acio}%
+ {trad., notas e posf\adddot}},
+ organizer = {{organizador}{org\adddot}},
+ organizers = {{organizadores}{orgs\adddot}},
+ byorganizer = {{organizado por}{org\adddotspace por}},
+ byauthor = {{por}{por}},
+ byeditor = {{editado por}{ed\adddotspace por}},
+ bycompiler = {{compilado por}{comp\adddotspace por}},
+ byredactor = {{redigido por}{red\adddotspace por}},
+ byreviser = {{revisto por}{rev\adddotspace por}},
+ byreviewer = {{resenhado por}{res\adddotspace por}},% FIXME: check
+ byfounder = {{fundado por}{fund\adddotspace por}},
+ bycontinuator = {{continuado por}{cont\adddotspace por}},
+ bycollaborator = {{em colabora\c{c}\~ao com}{em col\adddotspace com}},
+ bytranslator = {{traduzido \lbx@lfromlang\ por}{trad\adddot\ \lbx@sfromlang\ por}},
+ bycommentator = {{comentado por}{coment\adddot\ por}},
+ byannotator = {{notas de}{notas de}},
+ withcommentator = {{com coment\'arios de}{com coment\adddot\ de}},
+ withannotator = {{com notas de}{com notas de}},
+ withintroduction = {{com introdu\c{c}\~ao de}{com introd\adddot\ de}},
+ withforeword = {{com pref\'acio de}{com pref\adddot\ de}},
+ withafterword = {{com posf\'acio de}{com posf\adddot\ de}},
+ byeditortr = {{editado e traduzido \lbx@lfromlang\ por}%
+ {ed\adddotspace e trad\adddot\ \lbx@sfromlang\ por}},
+ byeditorco = {{editado e comentado por}%
+ {ed\adddotspace e coment\adddot\ por}},
+ byeditoran = {{editado e anotado por}%
+ {ed\adddotspace e anot\adddot\ por}},
+ byeditorin = {{editado e introduzido por}%
+ {ed\adddotspace e introd\adddot\ por}},
+ byeditorfo = {{editado e prefaciado por}%
+ {ed\adddotspace e pref\adddot\ por}},
+ byeditoraf = {{editado e posfaciado por}%
+ {ed\adddotspace e posf\adddot\ por}},
+ byeditortrco = {{editado, traduzido \lbx@lfromlang\ e comentado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e coment\adddot\ por}},
+ byeditortran = {{editado, traduzido \lbx@lfromlang\ e anotado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}},
+ byeditortrin = {{editado, traduzido \lbx@lfromlang\ e introduzido por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e introd\adddot\ por}},
+ byeditortrfo = {{editado, traduzido \lbx@lfromlang\ e prefaciado por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e pref\adddot\ por}},
+ byeditortraf = {{editado, traduzido \lbx@lfromlang\ e posfaciado por}%
+ {ed.,\addabbrvspace trad. \lbx@sfromlang\ e posf\adddot\ por}},
+ byeditorcoin = {{editado, comentado e introduzido por}%
+ {ed.,\addabbrvspace coment\adddot\ e introd\adddot\ por}},
+ byeditorcofo = {{editado, comentado e prefaciado por}%
+ {ed.,\addabbrvspace coment\adddot\ e pref\adddot\ por}},
+ byeditorcoaf = {{editado, comentado e posfaciado por}%
+ {ed.,\addabbrvspace coment\adddot\ e posf\adddot\ por}},
+ byeditoranin = {{editado, anotado e introduzido por}%
+ {ed.,\addabbrvspace anot\adddot\ e introd\adddot\ por}},
+ byeditoranfo = {{editado, anotado e prefaciado por}%
+ {ed.,\addabbrvspace anot\adddot\ e pref\adddot\ por}},
+ byeditoranaf = {{editado, anotado e posfaciado por}%
+ {ed.,\addabbrvspace anot\adddot\ e posf\adddot\ por}},
+ byeditortrcoin = {{editado, traduzido \lbx@lfromlang, comentado e introduzido por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e introd\adddot\ por}},
+ byeditortrcofo = {{editado, traduzido \lbx@lfromlang, comentado e prefaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e pref\adddot\ por}},
+ byeditortrcoaf = {{editado, traduzido \lbx@lfromlang, comentado e posfaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, coment\adddot\ e posf\adddot\ por}},
+ byeditortranin = {{editado, traduzido \lbx@lfromlang, anotado e introduzido por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}},
+ byeditortranfo = {{editado, traduzido \lbx@lfromlang, anotado e prefaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}},
+ byeditortranaf = {{editado, traduzido \lbx@lfromlang, anotado e posfaciado por}%
+ {ed.,\addabbrvspace trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}},
+ bytranslatorco = {{traduzido \lbx@lfromlang\ e comentado por}%
+ {trad\adddot\ \lbx@sfromlang\ e coment\adddot\ por}},
+ bytranslatoran = {{traduzido \lbx@lfromlang\ e anotado por}%
+ {trad\adddot\ \lbx@sfromlang\ e anot\adddot\ por}},
+ bytranslatorin = {{traduzido \lbx@lfromlang\ e introduzido por}%
+ {trad\adddot\ \lbx@sfromlang\ e introd\adddot\ por}},
+ bytranslatorfo = {{traduzido \lbx@lfromlang\ e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang\ e pref\adddot\ por}},
+ bytranslatoraf = {{traduzido \lbx@lfromlang\ e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang\ e posf\adddot\ por}},
+ bytranslatorcoin = {{traduzido \lbx@lfromlang, comentado e introduzido por}%
+ {trad\adddot\ \lbx@sfromlang, coment\adddot\ e introd\adddot\ por}},
+ bytranslatorcofo = {{traduzido \lbx@lfromlang, comentado e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang, coment\adddot\ e pref\adddot\ por}},
+ bytranslatorcoaf = {{traduzido \lbx@lfromlang, comentado e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang, coment\adddot\ e posf\adddot\ por}},
+ bytranslatoranin = {{traduzido \lbx@lfromlang, anotado e introduzido por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e introd\adddot\ por}},
+ bytranslatoranfo = {{traduzido \lbx@lfromlang, anotado e prefaciado por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e pref\adddot\ por}},
+ bytranslatoranaf = {{traduzido \lbx@lfromlang, anotado e posfaciado por}%
+ {trad\adddot\ \lbx@sfromlang, anot\adddot\ e posf\adddot\ por}},
+ and = {{e}{e}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{volume}{vol\adddot}},
+ volumes = {{volumes}{vols\adddot}},
+ involumes = {{em}{em}},
+ jourvol = {{volume}{vol\adddot}},
+ jourser = {{s\'erie}{s\'er\adddot}},
+ book = {{livro}{livro}},
+ part = {{parte}{parte}},
+ issue = {{n\'umero}{n\'umero}},
+ newseries = {{nova s\'erie}{nova s\'er\adddot}},
+ oldseries = {{s\'erie antiga}{s\'er\adddot\ antiga}},
+ edition = {{edi\c{c}\~ao}{ed\adddot}},
+ reprint = {{reimpress\~ao}{reimpr\adddot}},
+ reprintof = {{reimpress\~ao de}{reimpr\adddotspace de}},
+ reprintas = {{reimpresso como}{reimpr\adddotspace como}},
+ reprintfrom = {{reimpresso}{reimpr\adddot}},% FIXME: check
+ translationof = {{tradu\c{c}\~ao de}{trad\adddotspace de}},% FIXME: check
+ translationas = {{traduzido como}{trad\adddotspace como}},% FIXME: check
+ translationfrom = {{traduzido do}{trad\adddotspace do}},% FIXME: check
+ reviewof = {{resenha de}{res\adddotspace de}},% FIXME: check
+ origpubas = {{originalmente publicado como}{orig\adddotspace pub\adddotspace como}},% FIXME: check
+ origpubin = {{originalmente publicado em}{orig\adddotspace pub\adddotspace em}},% FIXME: check
+ astitle = {{como}{como}},% FIXME: check
+ bypublisher = {{por}{por}},% FIXME: check
+ nodate = {{sem data}{s\adddot d\adddot}},% FIXME: latin: sine die
+ page = {{p\'agina}{p\adddot}},
+ pages = {{p\'aginas}{pp\adddot}},
+ column = {{coluna}{col\adddot}},
+ columns = {{colunas}{cols\adddot}},
+ line = {{linha}{l\adddot}},
+ lines = {{linhas}{ll\adddot}},% FIXME: check
+ verse = {{verso}{v\adddot}},
+ verses = {{versos}{vv\adddot}},% FIXME: check
+ section = {{se\c{c}\~ao}{\S}},
+ sections = {{se\c{c}\~oes}{\S\S}},
+ paragraph = {{par\'agrafo}{par\adddot}},
+ paragraphs = {{par\'agrafo}{par\adddot}},
+ pagetotal = {{p\'agina}{p\adddot}},
+ pagetotals = {{p\'aginas}{pp\adddot}},
+ columntotal = {{coluna}{col\adddot}},
+ columntotals = {{colunas}{cols\adddot}},
+ linetotal = {{linha}{l\adddot}},
+ linetotals = {{linhas}{ll\adddot}},% FIXME: check
+ versetotal = {{verso}{v\adddot}},
+ versetotals = {{versos}{vv\adddot}},% FIXME: check
+ sectiontotal = {{se\c{c}\~ao}{\S}},
+ sectiontotals = {{se\c{c}\~oes}{\S\S}},
+ paragraphtotal = {{par\'agrafo}{par\adddot}},
+ paragraphtotals = {{par\'agrafo}{par\adddot}},
+ in = {{em}{em}},
+ inseries = {{em}{em}},
+ ofseries = {{de}{de}},
+ number = {{n\'umero}{n\adddot\textordmasculine}},
+ chapter = {{cap\'\i tulo}{cap\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{tese de mestrado}{tese de mestrado}},
+ phdthesis = {{tese de doutoramento}{tese de doutoramento}},
+ candthesis = {{proposta de tese}{proposta de tese}},
+ resreport = {{relat\'orio de pesquisa}{rel\adddotspace de pesquisa}},
+ techreport = {{relat\'orio t\'ecnico}{rel\adddotspace t\'ec\adddot}},
+ software = {{software}{software}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{CD \'audio}{CD \'audio}},
+ version = {{vers\~ao}{vers\~ao}},
+ url = {{URL}{URL}},
+ urlfrom = {{URL}{URL}},
+ urlseen = {{acedido em}{acedido em}},
+ inpreparation = {{em prepara\c{c}\~ao}{em prep\adddot}},
+ submitted = {{submetido}{subm\adddot}},
+ forthcoming = {{no prelo}{no prelo}},
+ inpress = {{no prelo}{no prelo}},
+ prepublished = {{pr\'e publicado}{pr\'e pub\adddot}},% FIXME: check
+ citedas = {{doravante citado como}{doravante citado como}},
+ thiscite = {{especialmente}{esp\adddot}},% FIXME: check
+ seenote = {{ver nota}{ver nota}},
+ quotedin = {{apud}{apud}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{ver}{ver}},
+ seealso = {{ver tamb\'em}{ver tamb\'em}},
+ backrefpage = {{ver p\'agina}{ver p\adddot}},
+ backrefpages = {{ver p\'aginas}{ver pp\adddot}},
+ january = {{janeiro}{jan\adddot}},
+ february = {{fevereiro}{fev\adddot}},
+ march = {{mar\c{c}o}{mar\adddot}},
+ april = {{abril}{abr\adddot}},
+ may = {{maio}{mai\adddot}},
+ june = {{junho}{jun\adddot}},
+ july = {{julho}{jul\adddot}},
+ august = {{agosto}{ago\adddot}},
+ september = {{setembro}{set\adddot}},
+ october = {{outubro}{out\adddot}},
+ november = {{novembro}{nov\adddot}},
+ december = {{dezembro}{dez\adddot}},
+ langamerican = {{ingl\^es}{ingl\^es}},
+ langbrazilian = {{portugu{\^e}s}{portugu{\^e}s}},
+ langbulgarian = {{b\'ulgaro}{b\'ulgaro}},
+ langcatalan = {{catal\~ao}{catal\~ao}},
+ langcroatian = {{croata}{croata}},
+ langczech = {{checo}{checo}},
+ langdanish = {{dinamarqu\^es}{dinamarqu\^es}},
+ langdutch = {{holand{\^e}s}{holand{\^e}s}},
+ langenglish = {{ingl\^es}{ingl\^es}},
+ langestonian = {{est\'onio}{est\'onio}},% FIXME: check
+ langfinnish = {{finland\^es}{finland\^es}},
+ langfrench = {{franc\^es}{franc\^es}},
+ langgalician = {{galego}{galego}},
+ langgerman = {{alem\~ao}{alem\~ao}},
+ langgreek = {{grego}{grego}},
+% langhungarian = {{}{}}, % FIXME: missing
+ langitalian = {{italiano}{italiano}},
+ langjapanese = {{japon\^es}{japon\^es}},
+ langlatin = {{latim}{latim}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{noruegu\^es}{noruegu\^es}},
+ langpolish = {{polaco}{polaco}},
+ langportuguese = {{portugu{\^e}s}{portugu{\^e}s}},
+ langrussian = {{russo}{russo}},
+ langslovak = {{eslovaco}{eslovaco}},
+ langslovene = {{esloveno}{esloveno}},
+ langspanish = {{espanhol}{espanhol}},
+ langswedish = {{sueco}{sueco}},
+ fromamerican = {{do ingl\^es}{do ingl\^es}},
+ frombrazilian = {{do portugu{\^e}s}{do portugu{\^e}s}},
+ frombulgarian = {{do b\'ulgaro}{do b\'ulgaro}},
+ fromcatalan = {{do catal\~ao}{do catal\~ao}},
+ fromcroatian = {{do croata}{do croata}},
+ fromczech = {{do checo}{do checo}},
+ fromdanish = {{do dinamarqu\^es}{do dinamarqu\^es}},
+ fromdutch = {{do holand{\^e}s}{do holand{\^e}s}},
+ fromenglish = {{do ingl\^es}{do ingl\^es}},
+ fromestonian = {{do est\'onio}{do est\'onio}},% FIXME: check
+ fromfinnish = {{do finland\^es}{do finland\^es}},
+ fromfrench = {{do franc\^es}{do franc\^es}},
+ fromgalician = {{do galego}{do galego}},
+ fromgerman = {{do alem\~ao}{do alem\~ao}},
+ fromgreek = {{do grego}{do grego}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{do italiano}{do italiano}},
+ fromjapanese = {{do japon\^es}{do japon\^es}},
+ fromlatin = {{do latim}{do latim}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{do noruegu\^es}{do noruegu\^es}},
+ frompolish = {{do polaco}{do polaco}},
+ fromportuguese = {{do portugu{\^e}s}{do portugu{\^e}s}},
+ fromrussian = {{do russo}{do russo}},
+ fromslovak = {{do eslovaco}{do eslovaco}},
+ fromslovene = {{do esloveno}{do esloveno}},
+ fromspanish = {{do espanhol}{do espanhol}},
+ fromswedish = {{do sueco}{do sueco}},
+ countryde = {{Alemanha}{DE}},% FIXME: abbrev.: ISO 3166 or translated?
+ countryeu = {{Uni\~ao Europeia}{EU}},% FIXME: abbrev.: ISO 3166 or translated?
+ countryep = {{Uni\~ao Europeia}{EP}},% FIXME: check
+ countryfr = {{Fran\c{c}a}{FR}},% FIXME: abbrev.: ISO 3166 or translated?
+ countryuk = {{Reino Unido}{GB}},% FIXME: abbrev.: ISO 3166 or translated?
+ countryus = {{Estados Unidos da Am\'erica}{US}},% FIXME: abbrev.: ISO 3166 or translated?
+ patent = {{patente}{pat\adddot}},
+ patentde = {{patente alem\~a}{pat\adddot\ alem\~a}},
+ patenteu = {{patente europeia}{pat\adddot\ europeia}},
+ patentfr = {{patente francesa}{pat\adddot\ francesa}},
+ patentuk = {{patente brit\^anica}{pat\adddot\ brit\^anica}},
+ patentus = {{patente americana}{pat\adddot\ americana}},
+ patreq = {{pedido de patente}{ped\adddot\ de pat\adddot}},
+ patreqde = {{pedido de patente alem\~a}{ped\adddot\ de pat\adddot\ alem\~a}},
+ patreqeu = {{pedido de patente europeia}{ped\adddot\ de pat\adddot\ europeia}},
+ patreqfr = {{pedido de patente francesa}{ped\adddot\ de pat\adddot\ francesa}},
+ patrequk = {{pedido de patente brit\^anica}{ped\adddot\ de pat\adddot\ brit\^anica}},
+ patrequs = {{pedido de patente americana}{ped\adddot\ de pat\adddot\ americana}},
+ file = {{arquivo}{arq\adddot}},
+ library = {{biblioteca}{bibl\adddot}},
+ abstract = {{resumo}{res\adddot}},
+ annotation = {{anota\c{c}\~ao}{anot\adddot}},
+ commonera = {{Era Comum}{EC}},
+ beforecommonera = {{antes da Era Comum}{AEC}},
+ annodomini = {{depois de Cristo}{d\adddot C\adddot}},
+ beforechrist = {{antes de Cristo}{a\adddot C\adddot}},
+ circa = {{circa}{ca}},% FIXME: latin: circa. pt: cerca de ...(data)
+ spring = {{primavera}{primavera}},
+ summer = {{ver\~ao}{ver\~ao}},
+ autumn = {{outono}{outono}},
+ winter = {{inverno}{inverno}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/russian.lbx b/macros/latex/contrib/biblatex/latex/lbx/russian.lbx
new file mode 100644
index 0000000000..bc7817c546
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/russian.lbx
@@ -0,0 +1,602 @@
+\ProvidesFile{russian.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{russian}{russian}
+
+% This file requires UTF-8 support!
+
+\lbx@ifutfinput
+ {}
+ {\PackageError{biblatex}
+ {Russian requires UTF-8 support}
+ {The 'russian.lbx' file requires UTF-8 encoding but you
+ seem\MessageBreak to be using a different encoding.
+ This is a fatal error. I will\MessageBreak abort loading
+ russian.lbx now.}%
+ \endinput}
+
+\NewBibliographyString{% Used only Russian for month checks
+ datejanuary,
+ datefebruary,
+ datemarch,
+ dateapril,
+ datemay,
+ datejune,
+ datejuly,
+ dateaugust,
+ dateseptember,
+ dateoctober,
+ datenovember,
+ datedecember%
+}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textemdash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{#1-й}%
+ \protected\def\mkbibfemord#1{#1-я}%
+ \protected\def\mkbibneutord#1{#1-е}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\iffieldundef{#3}
+ {\mkbibmonth{\thefield{#2}}}
+ {\lbx@ru@mkbibdatemonth{\thefield{#2}}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\adddot}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\adddot}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibneutord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Список литературы}{Список литературы}},%book-like (chapter)
+ references = {{Список литературы}{Список литературы}},%article-like (section)
+ shorthands = {{Список сокращений}{Сокращения}},
+ editor = {{редактор}{ред\adddot}},
+ editors = {{редакторы}{ред\adddot}},
+ compiler = {{составитель}{сост\adddot}},
+ compilers = {{составители}{сост\adddot}},
+ redactor = {{редактор}{ред\adddot}},% FIXME: unsure
+ redactors = {{редакторы}{ред\adddot}},% FIXME: unsure
+ reviser = {{ревизионный корректор}{ревиз\adddotspace кор\adddot}},
+ revisers = {{ревизионные корректоры}{ревиз\adddotspace кор\adddot}},
+ founder = {{основатель}{осн\adddot}},
+ founders = {{основатели}{осн\adddot}},
+ continuator = {{продолжатель}{прод\adddot}},% FIXME: unsure
+ continuators = {{продолжатели}{прод\adddot}},% FIXME: unsure
+ collaborator = {{участник}{участ\adddot}},% FIXME: unsure
+ collaborators = {{участники}{участ\adddot}},% FIXME: unsure
+ translator = {{переводчик}{пер\adddot}},
+ translators = {{переводчики}{пер\adddot}},
+ commentator = {{комментатор}{коммент\adddot}},
+ commentators = {{комментаторы}{коммент\adddot}},
+ annotator = {{примечания}{примеч\adddot}},
+ annotators = {{примечания}{примеч\adddot}},
+ commentary = {{комментарий}{коммент\adddot}},
+ annotations = {{примечания}{примеч\adddot}},
+ introduction = {{вступительная статья}{вступ\adddotspace ст\adddot}},
+ foreword = {{предисловие}{предисл\adddot}},
+ afterword = {{послесловие}{послесл\adddot}},
+ editortr = {{редактор и переводчик}%
+ {ред\adddotspace и пер\adddot}},
+ editorstr = {{редакторы и переводчики}%
+ {ред\adddotspace и пер\adddot}},
+ editorco = {{редактор и комментатор}%
+ {ред\adddotspace и коммент\adddot}},
+ editorsco = {{редакторы и комментаторы}%
+ {ред\adddotspace и коммент\adddot}},
+ editoran = {{редактор и составитель примечаний}%
+ {ред\adddotspace и сост\adddotspace примеч\adddot}},
+ editorsan = {{редакторы и составители примечаний}%
+ {ред\adddotspace и сост\adddotspace примеч\adddot}},
+ editorin = {{редактор и автор вступительной статьи}%
+ {ред\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorsin = {{редакторы и авторы вступительной статьи}%
+ {ред\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorfo = {{редактор и автор предисловия}%
+ {ред\adddotspace и авт\adddotspace предисл\adddot}},
+ editorsfo = {{редакторы и авторы предисловия}%
+ {ред\adddotspace и авт\adddotspace предисл\adddot}},
+ editoraf = {{редактор и автор послесловия}%
+ {ред\adddotspace и авт\adddotspace послесл\adddot}},
+ editorsaf = {{редакторы и авторы послесловия}%
+ {ред\adddotspace и авт\adddotspace послесл\adddot}},
+ editortrco = {{редактор, переводчик и автор комментариев}%
+ {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace коммент\adddot}},
+ editorstrco = {{редакторы, переводчики и авторы комментариев}%
+ {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace коммент\adddot}},
+ editortran = {{редактор, переводчик и составитель примечаний}%
+ {ред.,\addabbrvspace пер\adddotspace и сост\adddotspace примеч\adddot}},
+ editorstran = {{редакторы, переводчики и составители примечаний}%
+ {ред.,\addabbrvspace пер\adddotspace и сост\adddotspace примеч\adddot}},
+ editortrin = {{редактор, переводчик и автор вступительной статьи}%
+ {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorstrin = {{редакторы, переводчики и авторы вступительной статьи}%
+ {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ editortrfo = {{редактор, переводчик и автор предисловия}%
+ {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace предисл\adddot}},
+ editorstrfo = {{редакторы, переводчики и авторы предисловия}%
+ {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace предисл\adddot}},
+ editortraf = {{редактор, переводчик и автор послесловия}%
+ {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace послесловия\adddot}},
+ editorstraf = {{редакторы, переводчики и авторы послесловия}%
+ {ред.,\addabbrvspace пер\adddotspace и авт\adddotspace послесл\adddot}},
+ editorcoin = {{редактор, автор комментариев и вступительной статьи}%
+ {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ editorscoin = {{редакторы, авторы комментариев и вступительной статьи}%
+ {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ editorcofo = {{редактор, автор комментариев и предисловия}%
+ {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}},
+ editorscofo = {{редакторы, авторы комментариев и предисловия}%
+ {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}},
+ editorcoaf = {{редактор, автор комментариев и послесловия}%
+ {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}},
+ editorscoaf = {{редакторы, авторы комментариев и послесловия}%
+ {ред.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}},
+ editoranin = {{редактор, составитель примечаний и автор вступительной статьи}%
+ {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorsanin = {{редакторы, составители примечаний и авторы вступительной статьи}%
+ {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ editoranfo = {{редактор, составитель примечаний и автор предисловия}%
+ {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace предисл\adddot}},
+ editorsanfo = {{редакторы, составители примечаний и авторы предисловия}%
+ {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace предисл\adddot}},
+ editoranaf = {{редактор, составитель примечаний и автор послесловия}%
+ {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace послесл\adddot}},
+ editorsanaf = {{редакторы, составители примечаний и авторы послесловия}%
+ {ред.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace послесл\adddot}},
+ editortrcoin = {{редактор, переводчик, автор комментариев и вступительной статьи}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ editorstrcoin = {{редакторы, переводчики, авторы комментариев и вступительной статьи}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ editortrcofo = {{редактор, переводчик, автор комментариев и предисловия}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}},
+ editorstrcofo = {{редакторы, переводчики, авторы комментариев и предисловия}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}},
+ editortrcoaf = {{редактор, переводчик, автор комментариев и послесловия}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}},
+ editorstrcoaf = {{редакторы, переводчики, авторы комментариев и послесловия}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}},
+ editortranin = {{редактор, переводчик, составитель примечаний и автор вступительной статьи}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorstranin = {{редакторы, переводчики, составители примечаний и авторы вступительной статьи}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ editortranfo = {{редактор, переводчик, составитель примечаний и автор предисловия}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace предисл\adddot}},
+ editorstranfo = {{редакторы, переводчики, составители примечаний и авторы предисловия}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace предисл\adddot}},
+ editortranaf = {{редактор, переводчик, составитель примечаний и автор послесловия}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace послесл\adddot}},
+ editorstranaf = {{редакторы, переводчики, составители примечаний и авторы послесловия}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace сост\adddotspace примеч\adddotspace и авт\adddotspace послесл\adddot}},
+ translatorco = {{переводчик и автор комментариев}%
+ {пер\adddotspace и авт\adddotspace коммент\adddot}},
+ translatorsco = {{переводчики и авторы комментариев}%
+ {пер\adddotspace и авт\adddotspace коммент\adddot}},
+ translatoran = {{переводчик и автор примечаний}%
+ {пер\adddotspace и сост\adddotspace примеч\adddot}},
+ translatorsan = {{переводчики и составители примечаний}%
+ {пер\adddotspace и сост\adddotspace примеч\adddot}},
+ translatorin = {{переводчик и автор вступительной статьи}%
+ {пер\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ translatorsin = {{переводчики и авторы вступительной статьи}%
+ {пер\adddotspace и авт\adddotspace вступ\adddotspace ст\adddot}},
+ translatorfo = {{переводчик и автор предисловия}%
+ {пер\adddotspace и авт\adddotspace предисл\adddot}},
+ translatorsfo = {{переводчики и авторы предисловия}%
+ {пер\adddotspace и авт\adddotspace предисл\adddot}},
+ translatoraf = {{переводчик и автор послесловия}%
+ {пер\adddotspace и авт\adddotspace послесл\adddot}},
+ translatorsaf = {{переводчики и авторы послесловия}%
+ {пер\adddotspace и авт\adddotspace послесл\adddot}},
+ translatorcoin = {{переводчик, автор комментариев и вступительной статьи}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ translatorscoin = {{переводчики, авторы комментариев и вступительной статьи}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ translatorcofo = {{переводчик, автор комментариев и предисловия}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}},
+ translatorscofo = {{переводчики, авторы комментариев и предисловия}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}},
+ translatorcoaf = {{переводчик, автор комментариев и послесловия}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}},
+ translatorscoaf = {{переводчики, авторы комментариев и послесловия}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}},
+ translatoranin = {{переводчик, автор комментариев и вступительной статьим}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ translatorsanin = {{переводчики, авторы комментариев и вступительной статьи}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ translatoranfo = {{переводчик, автор комментариев и предисловия}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}},
+ translatorsanfo = {{переводчики, авторы комментариев и предисловия}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и предисл\adddot}},
+ translatoranaf = {{переводчик, автор комментариев и послесловия}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}},
+ translatorsanaf = {{переводчики, авторы комментариев и послесловия}%
+ {пер.,\addabbrvspace авт\adddotspace коммент\adddotspace и послесл\adddot}},
+ organizer = {{организатор}{орг\adddot}},
+ organizers = {{организаторы}{орг\adddot}},
+ byorganizer = {{организатор}{орг\adddot}},% FIXME: unsure
+ byauthor = {{}{}},
+ byeditor = {{под редакцией}{под\addabbrvspace ред\adddot}},
+ bycompiler = {{составитель}{сост\adddot}},
+ byredactor = {{под редакцией}{под\addabbrvspace ред\adddot}},
+ byreviser = {{исправлено}{испр\adddot}},
+ byreviewer = {{рецензия}{рец\adddot}},
+ byfounder = {{учредитель}{учр\adddot}},% FIXME: unsure
+ bycontinuator = {{продолжение}{продолж\adddot}},% FIXME: unsure
+ bycollaborator = {{при участии}{при\addabbrvspace уч\adddot}},
+ bytranslator = {{перевод \lbx@lfromlang}{пер\adddot\ \lbx@sfromlang}},
+ bycommentator = {{комментарии}{коммент\adddot}},
+ byannotator = {{примечания}{примеч\adddot}},
+ withcommentator = {{комментарии}{коммент\adddot}},
+ withannotator = {{примечания}{примеч\adddot}},
+ withintroduction = {{вступительная статья}{вступ\adddotspace ст\adddot}},
+ withforeword = {{предисловие}{предисл\adddot}},
+ withafterword = {{послесловие}{послесл\adddot}},
+ byeditortr = {{перевод \lbx@lfromlang, под редакцией}%
+ {пер\adddot\ \lbx@sfromlang, под\addabbrvspace ред\adddot}},
+ byeditorco = {{под редакцией, комментарии}%
+ {под ред.,\addabbrvspace коммент\adddot}},
+ byeditoran = {{под редакцией, примечания}%
+ {под ред.,\addabbrvspace примеч\adddot}},
+ byeditorin = {{под редакцией, вступительная статья}%
+ {под ред.,\addabbrvspace вступ\adddotspace ст\adddot}},
+ byeditorfo = {{под редакцией, предисловие}%
+ {под ред.,\addabbrvspace предисл\adddot}},
+ byeditoraf = {{под редакцией, послесловие}%
+ {под ред.,\addabbrvspace послесл\adddot}},
+ byeditortrco = {{под редакцией, перевод \lbx@lfromlang\ и комментарии}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и коммент\adddot}},
+ byeditortran = {{под редакцией, перевод \lbx@lfromlang\ и примечания}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ и примеч\adddot}},
+ byeditortrin = {{под редакцией, перевод \lbx@lfromlang, вступительная статья}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, вступ\adddotspace ст\adddot}},
+ byeditortrfo = {{под редакцией, перевод \lbx@lfromlang, предисловие}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, предисл\adddot}},
+ byeditortraf = {{под редакцией, перевод \lbx@lfromlang, послесловие}%
+ {под ред\adddotspace и пер\adddot\ \lbx@sfromlang, послесл\adddot}},
+ byeditorcoin = {{под редакцией, комментарии и вступительная статья}%
+ {под ред.,\addabbrvspace коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ byeditorcofo = {{под редакцией, комментарии и предисловие}%
+ {под ред.,\addabbrvspace коммент\adddotspace и предисл\adddot}},
+ byeditorcoaf = {{под редакцией, комментарии и послесловие}%
+ {под ред.,\addabbrvspace коммент\adddotspace и послесл\adddot}},
+ byeditoranin = {{под редакцией, примечания и вступительная статья}%
+ {под ред.,\addabbrvspace примеч\adddotspace и вступ\adddotspace ст\adddot}},
+ byeditoranfo = {{под редакцией, примечания и предисловие}%
+ {под ред.,\addabbrvspace примеч\adddotspace и предисл\adddot}},
+ byeditoranaf = {{под редакцией, примечания и послесловие}%
+ {под ред.,\addabbrvspace примеч\adddotspace и послесл\adddot}},
+ byeditortrcoin = {{под редакцией, перевод \lbx@lfromlang, комментарии и вступительная статья}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ byeditortrcofo = {{под редакцией, перевод \lbx@lfromlang, комментарии и предисловие}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, коммент\adddotspace и предисл\adddot}},
+ byeditortrcoaf = {{под редакцией, перевод \lbx@lfromlang, комментарии и послесловие}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, коммент\adddotspace и послесл\adddot}},
+ byeditortranin = {{под редакцией, перевод \lbx@lfromlang, примечания и вступительная статья}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и вступ\adddotspace ст\adddot}},
+ byeditortranfo = {{под редакцией, перевод \lbx@lfromlang, примечания и предисловие}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и предисл\adddot}},
+ byeditortranaf = {{под редакцией, перевод \lbx@lfromlang, примечания и послесловие}%
+ {под ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, примеч\adddotspace и послесл\adddot}},
+ bytranslatorco = {{перевод \lbx@lfromlang\ и комментарии}%
+ {пер\adddot\ \lbx@sfromlang\ и коммент\adddot}},
+ bytranslatoran = {{перевод \lbx@lfromlang\ и примечания}%
+ {пер\adddot\ \lbx@sfromlang\ и примеч\adddot}},
+ bytranslatorin = {{перевод \lbx@lfromlang\ и вступительная статья}%
+ {пер\adddot\ \lbx@sfromlang\ и вступ\adddotspace ст\adddot}},
+ bytranslatorfo = {{перевод \lbx@lfromlang\ и предисловие}%
+ {пер\adddot\ \lbx@sfromlang\ и предисл\adddot}},
+ bytranslatoraf = {{перевод \lbx@lfromlang\ и послесловие}%
+ {пер\adddot\ \lbx@sfromlang\ и и послесл\adddot}},
+ bytranslatorcoin = {{перевод \lbx@lfromlang, комментарии и вступительная статья}%
+ {пер\adddot\ \lbx@sfromlang, коммент\adddotspace и вступ\adddotspace ст\adddot}},
+ bytranslatorcofo = {{перевод \lbx@lfromlang, комментарии и предисловие}%
+ {пер\adddot\ \lbx@sfromlang, коммент\adddotspace и предисл\adddot}},
+ bytranslatorcoaf = {{перевод \lbx@lfromlang, комментарии и послесловие}%
+ {пер\adddot\ \lbx@sfromlang, коммент\adddotspace и послесл\adddot}},
+ bytranslatoranin = {{перевод \lbx@lfromlang, примечания и вступительная статья}%
+ {пер\adddot\ \lbx@sfromlang, примеч\adddotspace и вступ\adddotspace ст\adddot}},
+ bytranslatoranfo = {{перевод \lbx@lfromlang, примечания и предисловие}%
+ {пер\adddot\ \lbx@sfromlang, примеч\adddotspace и предисл\adddot}},
+ bytranslatoranaf = {{перевод \lbx@lfromlang, примечания и послесловие}%
+ {пер\adddot\ \lbx@sfromlang, примеч\adddotspace и послесл\adddot}},
+ and = {{и}{и}},
+ andothers = {{и\addabbrvspace др\adddot}{и\addabbrvspace др\adddot}},
+ andmore = {{и\addabbrvspace др\adddot}{и\addabbrvspace др\adddot}},
+ volume = {{том}{т\adddot}},
+ volumes = {{томах}{т\adddot}},
+ involumes = {{в}{в}},
+ jourvol = {{том}{т\adddot}},
+ jourser = {{серия}{сер\adddot}},
+ book = {{книга}{кн\adddot}},
+ part = {{часть}{ч\adddot}},
+ issue = {{выпуск}{вып\adddot}},
+ newseries = {{новая серия}{нов\adddotspace сер\adddot}},
+ oldseries = {{старая серия}{стар\adddotspace сер\adddot}},
+ edition = {{издание}{изд\adddot}},
+ reprint = {{переиздание}{переизд\adddot}},
+ reprintof = {{переиздание}{переизд\adddot}},
+ reprintas = {{переиздано как}{переизд\adddotspace как}},
+ reprintfrom = {{переиздано с}{переизд\adddotspace с}},
+ translationof = {{перевод по изданию\addcolon}{пер\adddotspace по изд\adddot\addcolon}},
+ translationas = {{перевод\addcolon}{пер\adddot\addcolon}},
+ translationfrom = {{перевод с}{пер\adddotspace с}},
+ reviewof = {{рецензия на\addcolon}{рец\adddotspace на\addcolon}},% FIXME: unsure
+ origpubas = {{первая публикация\addcolon}%
+ {перв\adddotspace публ\adddot\addcolon}},
+ origpubin = {{первая публикация в}%
+ {перв\adddotspace публ\adddotspace в}},
+ astitle = {{\addcolon}{\addcolon}},% FIXME: unsure
+ bypublisher = {{\addcomma}{\addcomma}},% FIXME: unsure
+ nodate = {{б\adddot г\adddot}{б\adddot г\adddot}},
+ page = {{страница}{с\adddot}},
+ pages = {{страницы}{с\adddot}},
+ column = {{колонка}{кол\adddot}},
+ columns = {{колонки}{кол\adddot}},
+ line = {{строка}{строка}},
+ lines = {{строки}{строка}},
+ verse = {{стих}{стих}},
+ verses = {{стихи}{стихи}},
+ section = {{параграф}{\S}},
+ sections = {{параграфы}{\S\S}},
+ paragraph = {{абзац}{абз\adddot}},
+ paragraphs = {{абзацы}{абз\adddot}},
+ pagetotal = {{страница}{с\adddot}},
+ pagetotals = {{страницы}{с\adddot}},
+ columntotal = {{колонка}{кол\adddot}},
+ columntotals = {{колонки}{кол\adddot}},
+ linetotal = {{строка}{строка}},
+ linetotals = {{строки}{строка}},
+ versetotal = {{стих}{стих}},
+ versetotals = {{стихи}{стихи}},
+ sectiontotal = {{параграф}{\S}},
+ sectiontotals = {{параграфы}{\S\S}},
+ paragraphtotal = {{абзац}{абз\adddot}},
+ paragraphtotals = {{абзацы}{абз\adddot}},
+ in = {{в}{в}},
+ inseries = {{в}{в}},
+ ofseries = {{из}{из}},
+ number = {{номер}{№}},
+ chapter = {{глава}{гл\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{дис\adddotspace\textellipsis\ маг\adddot}
+ {дис\adddotspace\textellipsis\ маг\adddot}},
+ phdthesis = {{дис\adddotspace\textellipsis\ док\adddot}
+ {дис\adddotspace\textellipsis\ док\adddot}},
+ candthesis = {{дис\adddotspace\textellipsis\ канд\adddot}
+ {дис\adddotspace\textellipsis\ канд\adddot}},
+ resreport = {{научный отчёт}{науч\adddotspace отч\adddot}},
+ techreport = {{технический отчёт}{тех\adddotspace отч\adddot}},
+ software = {{программное обеспечение}{прогр\adddotspace обесп\adddot}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{версия}{вер\adddot}},
+ url = {{url}{url}},
+ urlfrom = {{режим доступа}{режим доступа}},
+ urlseen = {{дата обращения}{дата\addabbrvspace обр\adddot}},
+ inpreparation = {{в\addabbrvspace подготовке}{в подг\adddot}},
+ submitted = {{представлено}{предст\adddot}},
+ forthcoming = {{в печати}{в печ\adddot}},
+ inpress = {{в\addabbrvspace печати}{в печ\adddot}},
+ prepublished = {{предварительная публикация}{пред\adddotspace пуб\adddot}},% FIXME: unsure
+ citedas = {{далее цитируется как}{далее цит\addabbrvspace как}},
+ thiscite = {{здесь}{здесь}},
+ seenote = {{смотри сноску}{см\adddotspace сн\adddot}},
+ quotedin = {{цитируется по}{цит\adddotspace по}},
+ idem = {{он\addabbrvspace же}{он\addabbrvspace же}},
+ idemsm = {{он\addabbrvspace же}{он\addabbrvspace же}},
+ idemsf = {{она\addabbrvspace же}{она\addabbrvspace же}},
+ idemsn = {{он\addabbrvspace же}{он\addabbrvspace же}},
+ idempm = {{они\addabbrvspace же}{они\addabbrvspace же}},
+ idempf = {{они\addabbrvspace же}{они\addabbrvspace же}},
+ idempn = {{они\addabbrvspace же}{они\addabbrvspace же}},
+ idempp = {{они\addabbrvspace же}{они\addabbrvspace же}},
+ ibidem = {{там\addabbrvspace же}{там\addabbrvspace же}},
+ opcit = {{указ\adddotspace соч\adddot}{указ\adddotspace соч\adddot}},
+ loccit = {{указ\adddotspace место}{указ\adddotspace место}},
+ confer = {{сравни}{ср\adddot}},
+ sequens = {{и следующая}{и\addabbrvspace сл\adddot}},
+ sequentes = {{и следующие}{и\addabbrvspace сл\adddot}},
+ passim = {{всюду}{всюду}},
+ see = {{смотри}{см\adddot}},
+ seealso = {{смотри также}{см\adddotspace также}},
+ backrefpage = {{цитируется на странице}{цит\adddotspace на\addabbrvspace с\adddot}},
+ backrefpages = {{цитируется на страницах}{цит\adddotspace на\addabbrvspace с\adddot}},
+ january = {{январь}{янв\adddot}},
+ february = {{февраль}{февр\adddot}},
+ march = {{март}{март}},
+ april = {{апрель}{апр\adddot}},
+ may = {{май}{май}},
+ june = {{июнь}{июнь}},
+ july = {{июль}{июль}},
+ august = {{август}{авг\adddot}},
+ september = {{сентябрь}{сент\adddot}},
+ october = {{октябрь}{окт\adddot}},
+ november = {{ноябрь}{нояб\adddot}},
+ december = {{декабрь}{дек\adddot}},
+ datejanuary = {{января}{янв\adddot}},
+ datefebruary = {{февраля}{февр\adddot}},
+ datemarch = {{марта}{марта}},
+ dateapril = {{апреля}{апр\adddot}},
+ datemay = {{мая}{мая}},
+ datejune = {{июня}{июня}},
+ datejuly = {{июля}{июля}},
+ dateaugust = {{августа}{авг\adddot}},
+ dateseptember = {{сентября}{сент\adddot}},
+ dateoctober = {{октября}{окт\adddot}},
+ datenovember = {{ноября}{нояб\adddot}},
+ datedecember = {{декабря}{дек\adddot}},
+ langamerican = {{американский}{амер\adddot}},
+ langbrazilian = {{бразильский}{браз\adddot}},
+ langbulgarian = {{болгарский}{болг\adddot}},
+ langcatalan = {{каталонский}{катал\adddot}},
+ langcroatian = {{хорватский}{хорв\adddot}},
+ langczech = {{чешский}{чеш\adddot}},
+ langdanish = {{датский}{дат\adddot}},
+ langdutch = {{нидерландский}{нидерл\adddot}},
+ langenglish = {{английский}{англ\adddot}},
+ langestonian = {{эстонский}{эст\adddot}},
+ langfinnish = {{финский}{фин\adddot}},
+ langfrench = {{французский}{фр\adddot}},
+ langgalician = {{галисийский}{гал\adddot}},
+ langgerman = {{немецкий}{нем\adddot}},
+ langgreek = {{греческий}{греч\adddot}},
+ langhungarian = {{венгерский}{венг\adddot}},
+ langitalian = {{итальянский}{итал\adddot}},
+ langjapanese = {{японский}{яп\adddot}},
+ langlatin = {{латинский}{лат\adddot}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{норвежский}{норв\adddot}},
+ langpolish = {{польский}{пол\adddot}},
+ langportuguese = {{португальский}{порт\adddot}},
+ langrussian = {{русский}{рус\adddot}},
+% langslovak = {{}{}},% FIXME: missing
+ langslovene = {{словенский}{слов\adddot}},
+ langspanish = {{испанский}{исп\adddot}},
+ langswedish = {{шведский}{швед\adddot}},
+ langukrainian = {{украинский}{укр\adddot}},
+ fromamerican = {{с американского}{с\addabbrvspace амер\adddot}},
+ frombrazilian = {{с бразильского}{с\addabbrvspace браз\adddot}},
+ frombulgarian = {{с болгарского}{с\addabbrvspace болг\adddot}},
+ fromcatalan = {{с каталонского}{с\addabbrvspace катал\adddot}},
+ fromcroatian = {{с хорватского}{с\addabbrvspace хорв\adddot}},
+ fromczech = {{с чешского}{с\addabbrvspace чеш\adddot}},
+ fromdanish = {{с датского}{с\addabbrvspace дат\adddot}},
+ fromdutch = {{с нидерландского}{с\addabbrvspace нидерл\adddot}},
+ fromenglish = {{с английского}{с\addabbrvspace англ\adddot}},
+ fromestonian = {{с эстонского}{с\addabbrvspace эст\adddot}},
+ fromfinnish = {{с финского}{с\addabbrvspace фин\adddot}},
+ fromfrench = {{с французского}{с\addabbrvspace фр\adddot}},
+ fromgalician = {{c галисийского}{c\addabbrvspace гал\adddot}},
+ fromgerman = {{с немецкого}{с\addabbrvspace нем\adddot}},
+ fromgreek = {{с греческого}{с\addabbrvspace греч\adddot}},
+ fromhungarian = {{с венгерского}{с\addabbrvspace венг\adddot}},
+ fromitalian = {{с итальянского}{с\addabbrvspace итал\adddot}},
+ fromjapanese = {{с японского}{с\addabbrvspace яп\adddot}},
+ fromlatin = {{с латинского}{с\addabbrvspace лат\adddot}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{с норвежского}{с\addabbrvspace норв\adddot}},
+ frompolish = {{с польского}{с пол\adddot}},
+ fromportuguese = {{с португальского}{с\addabbrvspace порт\adddot}},
+ fromrussian = {{с русского}{с\addabbrvspace рус\adddot}},
+% fromslovak = {{}{}},% FIXME: missing
+ fromslovene = {{со словенского}{со\addabbrvspace слов\adddot}},
+ fromspanish = {{с испанского}{с\addabbrvspace исп\adddot}},
+ fromswedish = {{со шведского}{со\addabbrvspace швед\adddot}},
+ fromukrainian = {{с украинского}{с\addabbrvspace укр\adddot}},
+ countryde = {{Германия}{Германия}},
+ countryeu = {{Европейский Союз}{ЕС}},
+ countryep = {{Европейский Союз}{ЕС}},
+ countryfr = {{Франция}{Франция}},
+ countryuk = {{Великобритания}{Великобритания}},
+ countryus = {{Соединённые Штаты Америки}{США}},
+ patent = {{патент}{пат\adddot}},
+ patentde = {{патент Германии}{пат\adddotspace Германии}},
+ patenteu = {{патент Европы}{пат\adddotspace Европы}},
+ patentfr = {{патент Франции}{пат\adddotspace Франции}},
+ patentuk = {{патент Великобритании}{пат\adddotspace Великобритании}},
+ patentus = {{патент США}{пат\adddotspace США}},
+ patreq = {{заявка}{заявка}},
+ patreqde = {{заявка на патент Германии}{заявка на пат\adddotspace Германии}},
+ patreqeu = {{заявка на патент Европы}{заявка на пат\adddotspace Европы}},
+ patreqfr = {{заявка на патент Франции}{заявка на пат\adddotspace Франции}},
+ patrequk = {{заявка на патент Великобритании}{заявка на пат\adddotspace Великобритании}},
+ patrequs = {{заявка на патент США}{заявка на пат\adddotspace США}},
+ file = {{файл}{файл}},
+ library = {{библиотека}{б-ка}},
+ abstract = {{резюме}{рез\adddot}},
+ annotation = {{аннотация}{аннот\adddot}},
+ commonera = {{нашей эры}{н\adddotspace э\adddot}},
+ beforecommonera = {{до нашей эры}{до н\adddotspace э\adddot}},
+ annodomini = {{от Рождества Христова}{от Р\adddotspace Х\adddot}},
+ beforechrist = {{до Рождества Христова}{до Р\adddotspace Х\adddot}},
+ circa = {{около}{ок\adddot}},
+ spring = {{весна}{весна}},
+ summer = {{лето}{лето}},
+ autumn = {{осень}{осень}},
+ winter = {{зима}{зима}},
+ am = {{ДП}{ДП}},
+ pm = {{ПП}{ПП}},
+}
+
+\protected\gdef\lbx@ru@mkbibdatemonth#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{datejanuary}%
+ \or\abx@bibmonth{datefebruary}%
+ \or\abx@bibmonth{datemarch}%
+ \or\abx@bibmonth{dateapril}%
+ \or\abx@bibmonth{datemay}%
+ \or\abx@bibmonth{datejune}%
+ \or\abx@bibmonth{datejuly}%
+ \or\abx@bibmonth{dateaugust}%
+ \or\abx@bibmonth{dateseptember}%
+ \or\abx@bibmonth{dateoctober}%
+ \or\abx@bibmonth{datenovember}%
+ \or\abx@bibmonth{datedecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/slovak.lbx b/macros/latex/contrib/biblatex/latex/lbx/slovak.lbx
new file mode 100644
index 0000000000..4548ff67df
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/slovak.lbx
@@ -0,0 +1,724 @@
+\ProvidesFile{slovak.lbx}
+[\abx@lbxid]
+
+\DeclareBibliographyExtras{%
+ \DeclareCapitalPunctuation{.!?}%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \protected\def\bibdatedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\thinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}\adddot
+ \iffieldundef{#2}{}{\thinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}
+ {}
+ {\iffieldundef{#3}{/}{\adddot\thinspace}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Zoznam bibliografick\'{y}ch odkazov}%
+ {Bibliografia}},
+ references = {{Cit\'{a}cie}% % ISO 690 -- section 2.15
+ {Cit\'{a}cie}},
+ shorthands = {{Zoznam skratiek}%
+ {Skratky}},
+ editor = {{editor}%
+ {ed\adddot}},
+ editors = {{editori}%
+ {ed\adddot}},
+ compiler = {{zostavovate\v{l}}% % ISO 690 -- section 5.1 -- c)
+ {zost\adddot}},
+ compilers = {{zostavovatelia}%
+ {zost\adddot}},
+ redactor = {{redaktor}%
+ {red\adddot}},
+ redactors = {{redaktori}%
+ {red\adddot}},
+ reviser = {{korektor}%
+ {kor\adddot}},
+ revisers = {{korektori}%
+ {kor\adddot}},
+ founder = {{zakladate\v{l}}%
+ {zakl\adddot}},
+ founders = {{zakladatelia}%
+ {zakl\adddot}},
+ continuator = {{pokra\v{c}ovate\v{l}}%
+ {pokr\adddot}},
+ continuators = {{pokra\v{c}ovatelia}%
+ {pokr\adddot}},
+ collaborator = {{spolupracovn\'{i}k}%
+ {spoluprac\adddot}},
+ collaborators = {{spolupracovn\'{i}ci}%
+ {spoluprac\adddot}},
+ translator = {{prekladate\v{l}}%
+ {prekl\adddot}},
+ translators = {{prekladatelia}%
+ {prekl\adddot}},
+ commentator = {{koment\'{a}tor}%
+ {kom\adddot}},
+ commentators = {{koment\'{a}tori}%
+ {kom\adddot}},
+ annotator = {{anot\'{a}tor}%
+ {anot\adddot}},
+ annotators = {{anot\'{a}tori}%
+ {anot\adddot}},
+ commentary = {{koment\'{a}r}%
+ {kom\adddot}},
+ annotations = {{anot\'{a}cia}%
+ {anot\adddot}},
+ introduction = {{\'{u}vod}%
+ {\'{u}v\adddot}},
+ foreword = {{predhovor}%
+ {predh\adddot}},
+ afterword = {{doslov}%
+ {dosl\adddot}},
+ editortr = {{editor a prekladate\v{l}}%
+ {ed\adddotspace a prekl\adddot}},
+ editorstr = {{editori a prekladatelia}%
+ {ed\adddotspace a prekl\adddot}},
+ editorco = {{editor a koment\'{a}tor}%
+ {ed\adddotspace a kom\adddot}},
+ editorsco = {{editori a koment\'{a}tori}%
+ {ed\adddotspace a kom\adddot}},
+ editoran = {{editor a anot\'{a}tor}%
+ {ed\adddotspace a anot\adddot}},
+ editorsan = {{editori a anot\'{a}tori}%
+ {ed\adddotspace a anot\adddot}},
+ editorin = {{editor a \'{u}vod}%
+ {ed\adddotspace a \'{u}v\adddot}},
+ editorsin = {{editori a \'{u}vod}%
+ {ed\adddotspace a \'{u}v\adddot}},
+ editorfo = {{editor a predhovor}%
+ {ed\adddotspace a predh\adddot}},
+ editorsfo = {{editori a predhovor}%
+ {ed\adddotspace a predh\adddot}},
+ editoraf = {{editor a doslov}%
+ {ed\adddotspace a dosl\adddot}},
+ editorsaf = {{editori a doslov}%
+ {ed\adddotspace a dosl\adddot}},
+ editortrco = {{editor, prekladate\v{l}\ a koment\'{a}tor}%
+ {ed.,\addabbrvspace prekl\adddot\ a kom\adddot}},
+ editorstrco = {{editori, prekladatelia\ a koment\'{a}tori}%
+ {ed.,\addabbrvspace prekl\adddot\ a kom\adddot}},
+ editortran = {{editor, prekladate\v{l}\ a anot\'{a}tor}%
+ {ed.,\addabbrvspace prekl\adddot\ a anot\adddot}},
+ editorstran = {{editori, prekladatelia\ a anot\'{a}tori}%
+ {ed.,\addabbrvspace prekl\adddot\ a anot\adddot}},
+ editortrin = {{editor, prekladate\v{l}\ a \'{u}vod}%
+ {ed.,\addabbrvspace prekl\adddot\ a \'{u}v\adddot}},
+ editorstrin = {{editori, prekladatelia\ a \'{u}vod}%
+ {ed.,\addabbrvspace prekl\adddot\ a \'{u}v\adddot}},
+ editortrfo = {{editor, prekladate\v{l}\ a predhovor}%
+ {ed.,\addabbrvspace prekl\adddot\ a predh\adddot}},
+ editorstrfo = {{editori, prekladatelia\ a predhovor}%
+ {ed.,\addabbrvspace prekl\adddot\ a predh\adddot}},
+ editortraf = {{editor, prekladate\v{l}\ a doslov}%
+ {ed.,\addabbrvspace prekl\adddot\ a dosl\adddot}},
+ editorstraf = {{editori, prekladatelia\ a doslov}%
+ {ed.,\addabbrvspace prekl\adddot\ a dosl\adddot}},
+ editorcoin = {{editor, koment\'{a}tor\ a \'{u}vod}%
+ {ed.,\addabbrvspace kom\adddot\ a \'{u}v\adddot}},
+ editorscoin = {{editori, koment\'{a}tori\ a \'{u}vod}%
+ {ed.,\addabbrvspace kom\adddot\ a \'{u}v\adddot}},
+ editorcofo = {{editor, koment\'{a}tor\ a predhovor}%
+ {ed.,\addabbrvspace kom\adddot\ a predh\adddot}},
+ editorscofo = {{editori, koment\'{a}tori\ a predhovor}%
+ {ed.,\addabbrvspace kom\adddot\ a predh\adddot}},
+ editorcoaf = {{editor, koment\'{a}tor\ a doslov}%
+ {ed.,\addabbrvspace kom\adddot\ a dosl\adddot}},
+ editorscoaf = {{editori, koment\'{a}tori\ a doslov}%
+ {ed.,\addabbrvspace kom\adddot\ a dosl\adddot}},
+ editoranin = {{editor, anot\'{a}tor\ a \'{u}vod}%
+ {ed.,\addabbrvspace anot\adddot\ a \'{u}v\adddot}},
+ editorsanin = {{editori, anot\'{a}tori\ a \'{u}vod}%
+ {ed.,\addabbrvspace anot\adddot\ a \'{u}v\adddot}},
+ editoranfo = {{editor, anot\'{a}tor\ a predhovor}%
+ {ed.,\addabbrvspace anot\adddot\ a predh\adddot}},
+ editorsanfo = {{editori, anot\'{a}tori\ a predhovor}%
+ {ed.,\addabbrvspace anot\adddot\ a predh\adddot}},
+ editoranaf = {{editor, anot\'{a}tor\ a doslov}%
+ {ed.,\addabbrvspace anot\adddot\ a dosl\adddot}},
+ editorsanaf = {{editori, anot\'{a}tori\ a doslov}%
+ {ed.,\addabbrvspace anot\adddot\ a dosl\adddot}},
+ editortrcoin = {{editor, prekladate\v{l}, koment\'{a}tor\ a \'{u}vod}%
+ {ed.,\addabbrvspace prekl., kom\adddot\ a \'{u}v\adddot}},
+ editorstrcoin = {{editori, prekladatelia, koment\'{a}tori\ a \'{u}vod}%
+ {ed.,\addabbrvspace prekl., kom\adddot\ a \'{u}v\adddot}},
+ editortrcofo = {{editor, prekladate\v{l}, koment\'{a}tor\ a predhovor}%
+ {ed.,\addabbrvspace prekl., kom\adddot\ a predh\adddot}},
+ editorstrcofo = {{editori, prekladatelia, koment\'{a}tori\ a predhovor}%
+ {ed.,\addabbrvspace prekl., kom\adddot\ a predh\adddot}},
+ editortrcoaf = {{editor, prekladate\v{l}, koment\'{a}tor\ a doslov}%
+ {ed.,\addabbrvspace prekl., kom\adddot\ a dosl\adddot}},
+ editorstrcoaf = {{editori, prekladatelia, koment\'{a}tori\ a doslov}%
+ {ed.,\addabbrvspace prekl., kom\adddot\ a dosl\adddot}},
+ editortranin = {{editor, prekladate\v{l}, anot\'{a}tor\ a \'{u}vod}%
+ {ed.,\addabbrvspace prekl., anot\adddot\ a \'{u}v\adddot}},
+ editorstranin = {{editori, prekladatelia, anot\'{a}tori\ a \'{u}vod}%
+ {ed.,\addabbrvspace prekl., anot\adddot\ a \'{u}v\adddot}},
+ editortranfo = {{editor, prekladate\v{l}, anot\'{a}tor\ a predhovor}%
+ {ed.,\addabbrvspace prekl., anot\adddot\ a predh\adddot}},
+ editorstranfo = {{editori, prekladatelia, anot\'{a}tori\ a predhovor}%
+ {ed.,\addabbrvspace prekl., anot\adddot\ a predh\adddot}},
+ editortranaf = {{editor, prekladate\v{l}, anot\'{a}tor\ a doslov}%
+ {ed.,\addabbrvspace prekl., anot\adddot\ a dosl\adddot}},
+ editorstranaf = {{editori, prekladatelia, anot\'{a}tori\ a doslov}%
+ {ed.,\addabbrvspace prekl., anot\adddot\ a dosl\adddot}},
+ translatorco = {{prekladate\v{l} a koment\'{a}tor}%
+ {prekl\adddot\ a kom\adddot}},
+ translatorsco = {{prekladatelia a koment\'{a}tori}%
+ {prekl\adddot\ a kom\adddot}},
+ translatoran = {{prekladate\v{l} a anot\'{a}tor}%
+ {prekl\adddot\ a anot\adddot}},
+ translatorsan = {{prekladatelia a anot\'{a}tori}%
+ {prekl\adddot\ a anot\adddot}},
+ translatorin = {{prekladate\v{l} a \'{u}vod}%
+ {prekl\adddot\ a \'{u}v\adddot}},
+ translatorsin = {{prekladatelia a \'{u}vod}%
+ {prekl\adddot\ a \'{u}v\adddot}},
+ translatorfo = {{prekladate\v{l} a predhovor}%
+ {prekl\adddot\ a predh\adddot}},
+ translatorsfo = {{prekladatelia a predhovor}%
+ {prekl\adddot\ a predh\adddot}},
+ translatoraf = {{prekladate\v{l} a doslov}%
+ {prekl\adddot\ a dosl\adddot}},
+ translatorsaf = {{prekladatelia a doslov}%
+ {prekl\adddot\ a dosl\adddot}},
+ translatorcoin = {{prekladate\v{l}, koment\'{a}tor\ a \'{u}vod}%
+ {prekl., kom\adddot\ a \'{u}v\adddot}},
+ translatorscoin = {{prekladatelia, koment\'{a}tori\ a \'{u}vod}%
+ {prekl., kom\adddot\ a \'{u}v\adddot}},
+ translatorcofo = {{prekladate\v{l}, koment\'{a}tor\ a predhovor}%
+ {prekl., kom\adddot\ a predh\adddot}},
+ translatorscofo = {{prekladatelia, koment\'{a}tori\ a predhovor}%
+ {prekl., kom\adddot\ a predh\adddot}},
+ translatorcoaf = {{prekladate\v{l}, koment\'{a}tor\ a doslov}%
+ {prekl., kom\adddot\ a dosl\adddot}},
+ translatorscoaf = {{prekladatelia, koment\'{a}tori\ a doslov}%
+ {prekl., kom\adddot\ a dosl\adddot}},
+ translatoranin = {{prekladate\v{l}, anot\'{a}tor\ a \'{u}vod}%
+ {prekl., anot\adddot\ a \'{u}v\adddot}},
+ translatorsanin = {{prekladatelia, anot\'{a}tori\ a \'{u}vod}%
+ {prekl., anot\adddot\ a \'{u}v\adddot}},
+ translatoranfo = {{prekladate\v{l}, anot\'{a}tor\ a predhovor}%
+ {prekl., anot\adddot\ a predh\adddot}},
+ translatorsanfo = {{prekladatelia, anot\'{a}tori\ a predhovor}%
+ {prekl., anot\adddot\ a predh\adddot}},
+ translatoranaf = {{prekladate\v{l}, anot\'{a}tor\ a doslov}%
+ {prekl., anot\adddot\ a dosl\adddot}},
+ translatorsanaf = {{prekladatelia, anot\'{a}tori\ a doslov}%
+ {prekl., anot\adddot\ a dosl\adddot}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{}%
+ {}},
+ byeditor = {{editovan\'{e}}%
+ {ed\adddot}},
+ bycompiler = {{zostaven\'{e}}%
+ {zost\adddot}},
+ byredactor = {{redigovan\'{e}}%
+ {red\adddot}},
+ byfounder = {{zalo\v{z}en\'{e}}%
+ {zal\adddot}},
+ bycontinuator = {{pokra\v{c}ovan\'{e}}%
+ {pokr\adddot}},
+ bycollaborator = {{v\addnbspace spolupr\'{a}ci s}%
+ {v\addnbspace spol\adddotspace s}},
+ bytranslator = {{prelo\v{z}en\'{e} \lbx@lfromlang}%
+ {prel\adddot\ \lbx@sfromlang}},
+ bycommentator = {{komentovan\'{e}}%
+ {kom\adddot}},
+ byannotator = {{anotovan\'{e}}%
+ {anot\adddot}},
+ withcommentator = {{s\addnbspace koment\'{a}rom od}%
+ {s\addnbspace kom\adddotspace od}},
+ withannotator = {{s\addnbspace anot\'{a}ciami od}%
+ {s\addnbspace anot\adddot\ od}},
+ withintroduction = {{s\addnbspace \'{u}vodom od}%
+ {s\addnbspace \'{u}v\adddot\ od}},
+ withforeword = {{s\addnbspace predhovorom od}%
+ {s\addnbspace predh\adddot\ od}},
+ withafterword = {{s\addnbspace doslovom od}%
+ {s\addnbspace dosl\adddot\ od}},
+ byeditortr = {{editovan\'{e} a prelo\v{z}en\'{e} \lbx@lfromlang\ }%
+ {ed\adddotspace a prel\adddot\ \lbx@sfromlang\ }},
+ byeditorco = {{editovan\'{e} a komentovan\'{e}}%
+ {ed\adddotspace a kom\adddot\ }},
+ byeditoran = {{editovan\'{e} a anotovan\'{e}}%
+ {ed\adddotspace a anot\adddot\ }},
+ byeditorin = {{editovan\'{e}, s\addnbspace \'{u}vodom}%
+ {ed.,\addabbrvspace s\addnbspace \'{u}v\adddot}},
+ byeditorfo = {{editovan\'{e}, s\addnbspace predhovorom}%
+ {ed.,\addabbrvspace s\addnbspace predh.,}},
+ byeditoraf = {{editovan\'{e}, s\addnbspace doslovom}%
+ {ed.,\addabbrvspace s\addnbspace dosl.,}},
+ byeditortrco = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}}%
+ {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a kom\adddot\ }},
+ byeditortran = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}}%
+ {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a anot\adddot\ }},
+ byeditortrin = {{editovan\'{e} a prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace \'{u}vodom}%
+ {ed\adddotspace a prel\adddot\ \lbx@sfromlang, s\addnbspace \'{u}v\adddot}},
+ byeditortrfo = {{editovan\'{e} a prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace predhovorom}%
+ {ed\adddotspace a prel\adddot\ \lbx@sfromlang, s\addnbspace predh\adddot}},
+ byeditortraf = {{editovan\'{e} a prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace doslovom}%
+ {ed\adddotspace a prekl\adddot\ \lbx@sfromlang, s\addnbspace dosl\adddot}},
+ byeditorcoin = {{editovan\'{e} a komentovan\'{e}, s\addnbspace \'{u}vodom}%
+ {ed\adddotspace a kom., s\addnbspace \'{u}v\adddot}},
+ byeditorcofo = {{editovan\'{e} a komentovan\'{e}, s\addnbspace predhovorom}%
+ {ed\adddotspace a kom., s\addnbspace predh\adddot}},
+ byeditorcoaf = {{editovan\'{e} a komentovan\'{e}, s\addnbspace doslovom}%
+ {ed\adddotspace a kom., s\addnbspace dosl\adddot}},
+ byeditoranin = {{editovan\'{e} a anotovan\'{e}, s\addnbspace \'{u}vodom}%
+ {ed\adddotspace a anot., s\addnbspace \'{u}v\adddot}},
+ byeditoranfo = {{editovan\'{e} a anotovan\'{e}, s\addnbspace predhovorom}%
+ {ed\adddotspace a anot., s\addnbspace predh\adddot}},
+ byeditoranaf = {{editovan\'{e} a anotovan\'{e}, s\addnbspace doslovom}%
+ {ed\adddotspace a anot., s\addnbspace dosl\adddot}},
+ byeditortrcoin = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace \'{u}vodom}%
+ {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace \'{u}v\adddot}},
+ byeditortrcofo = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace predhovorom}%
+ {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace predh\adddot}},
+ byeditortrcoaf = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace doslovom}%
+ {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace dosl\adddot}},
+ byeditortranin = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace \'{u}vodom}%
+ {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a anot\adddot, s\addnbspace \'{u}v\adddot}},
+ byeditortranfo = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace predhovorom}%
+ {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a anot\adddot, s\addnbspace predh\adddot}},
+ byeditortranaf = {{editovan\'{e}, prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace doslovom}%
+ {ed.,\addabbrvspace prel\adddot\ \lbx@sfromlang\ a anot\adddot, s\addnbspace dosl\adddot}},
+ bytranslatorco = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}}%
+ {prel\adddot\ \lbx@sfromlang\ a kom\adddot}},
+ bytranslatoran = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}}%
+ {prel\adddot\ \lbx@sfromlang\ a anot\adddot}},
+ bytranslatorin = {{prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace \'{u}vodom}%
+ {prel\adddot\ \lbx@sfromlang, s\addnbspace \'{u}v\adddot}},
+ bytranslatorfo = {{prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace predhovorom}%
+ {prel\adddot\ \lbx@sfromlang, s\addnbspace predh\adddot}},
+ bytranslatoraf = {{prelo\v{z}en\'{e} \lbx@lfromlang, s\addnbspace doslovom}%
+ {prel\adddot\ \lbx@sfromlang, s\addnbspace dosl\adddot}},
+ bytranslatorcoin = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace \'{u}vodom}%
+ {prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace \'{u}v\adddot}},
+ bytranslatorcofo = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace predhovorom}%
+ {prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace predh\adddot}},
+ bytranslatorcoaf = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a komentovan\'{e}, s\addnbspace doslovom}%
+ {prel\adddot\ \lbx@sfromlang\ a kom., s\addnbspace dosl\adddot}},
+ bytranslatoranin = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace \'{u}vodom}%
+ {prel\adddot\ \lbx@sfromlang\ a anot., s\addnbspace \'{u}v\adddot}},
+ bytranslatoranfo = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace predhovorom}%
+ {prel\adddot\ \lbx@sfromlang\ a anot., s\addnbspace predh\adddot}},
+ bytranslatoranaf = {{prelo\v{z}en\'{e} \lbx@lfromlang\ a anotovan\'{e}, s\addnbspace doslovom}%
+ {prel\adddot\ \lbx@sfromlang\ a anot., s\addnbspace dosl\adddot}},
+ and = {{a}%
+ {a}},
+ andothers = {{et\addabbrvspace al\adddot}% %et\addabbrvspace alii
+ {et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}% %et\addabbrvspace alii
+ {et\addabbrvspace al\adddot}},
+ volume = {{zv\"{a}zok}%
+ {zv\adddot}},
+ volumes = {{zv\"{a}zky}%
+ {zv\adddot}},
+ involumes = {{in}%
+ {in}},
+ jourvol = {{ro\v{c}n\'{i}k}%
+ {ro\v{c}\adddot}},
+ jourser = {{ed\'{i}cia}% % ISO 690 -- section 2.17
+ {ed\adddot}},
+ book = {{kniha}%
+ {kniha}},
+ part = {{\v{c}as\v{t}}%
+ {\v{c}as\v{t}}},
+ issue = {{\v{c}\'{i}slo}%
+ {\v{c}\'{i}slo}},
+ newseries = {{nov\'{a} ed\'{i}cia}% % ISO 690 -- section 2.17
+ {n\adddotspace ed\adddot}},
+ oldseries = {{star\'{a} ed\'{i}cia}% % ISO 690 -- section 2.17
+ {st\adddotspace ed\adddot}},
+ edition = {{vydanie}%
+ {vyd\adddot}},
+ reprint = {{dotla\v{c}}%
+ {dotl\adddot}},
+ reprintof = {{dotla\v{c}}%
+ {dotl\adddot}},
+ reprintas = {{dotla\v{c}en\'{e} ako}%
+ {dotl\adddotspace ako}},
+ reprintfrom = {{dotla\v{c}en\'{e} z}%
+ {dotl\adddotspace z}},
+ reviewof = {{hodnotenie}%
+ {hodn\adddot}},
+ translationof = {{preklad}%
+ {prekl\adddot}},
+ translationas = {{prelo\v{z}en\'{e} ako}%
+ {prel\adddotspace ako}},
+ translationfrom = {{prelo\v{z}en\'{e} z}%
+ {prel\adddotspace z}},
+ origpubas = {{p\^{o}vodne vydan\'{e} ako}%
+ {p\^{o}v\adddotspace vyd\adddotspace ako}},
+ origpubin = {{p\^{o}vodne vydan\'{e} v\addnbspace roku}%
+ {p\^{o}v\adddotspace vyd\adddotspace v\addnbspace r\adddot}},
+ astitle = {{ako}%
+ {ako}},
+ bypublisher = {{}%
+ {}},
+ page = {{strana}%
+ {s\adddot}},
+ pages = {{strany}%
+ {s\adddot}},
+ column = {{st\'{l}pec}%
+ {st\'{l}p\adddot}},
+ columns = {{st\'{l}pce}%
+ {st\'{l}p\adddot}},
+ line = {{riadok}%
+ {r\adddot}},
+ lines = {{riadky}%
+ {r\adddot}},
+ nodate = {{nedatovan\'{e}}% % ISO 690 -- section 9.3.4
+ {b\adddotspace r\adddot}}, % bez roku
+ verse = {{ver\v{s}}%
+ {v\adddot}},
+ verses = {{ver\v{s}e}%
+ {v\adddot}},
+ section = {{paragraf}%
+ {\S}},
+ sections = {{paragrafy}%
+ {\S\S}},
+ paragraph = {{odsek}%
+ {ods\adddot}},
+ paragraphs = {{odseky}%
+ {ods\adddot}},
+ in = {{in}%
+ {in}},
+ inseries = {{v}%
+ {v}},
+ ofseries = {{z}%
+ {z}},
+ number = {{\v{c}\'{i}slo}%
+ {\v{c}\adddot}},
+ chapter = {{kapitola}%
+ {kap\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{diplomov\'{a} pr\'{a}ca}%
+ {dipl\adddotspace pr\adddot}},
+ phdthesis = {{dizerta\v{c}n\'{a} pr\'{a}ca}%
+ {diz\adddotspace pr\adddot}},
+ candthesis = {{kandid\'{a}tska pr\'{a}ca}%
+ {kand\adddotspace pr\adddot}},
+ resreport = {{v\'{y}skumn\'{a} spr\'{a}va}%
+ {v\'{y}sk\adddot\ spr\adddot}},
+ techreport = {{technick\'{a} spr\'{a}va}%
+ {tech\adddotspace spr\adddot}},
+ software = {{po\v{c}\'{i}ta\v{c}ov\'{y} softv\'{e}r}%
+ {soft\adddot}},
+ datacd = {{CD-ROM}%
+ {CD-ROM}},
+ audiocd = {{audio CD}%
+ {audio CD}},
+ version = {{verzia}%
+ {ver\adddot}},
+ url = {{url}%
+ {url}},
+ urlfrom = {{dostupn\'{e} z}% % ISO 690 -- section 15.2.6
+ {dostupn\'{e} z}},
+ urlseen = {{citovane\'{e}}%
+ {cit\adddot}},
+ inpreparation = {{v\addnbspace pr\'{i}prave}%
+ {v\addnbspace pr\'{i}prave}},
+ submitted = {{predlo\v{z}en\'{e}}%
+ {predl\adddot}},
+ forthcoming = {{prijat\'{e}}%
+ {prij\adddot}},
+ inpress = {{v\addnbspace tla\v{c}i}%
+ {v\addnbspace tla\v{c}i}},
+ prepublished = {{pred publikovan\'{i}m}%
+ {pred publ\adddot}},
+ citedas = {{\v{d}alej citovan\'{e} ako}%
+ {\v{d}alej cit\adddotspace ako}},
+ thiscite = {{obzvl\'{a}\v{s}\v{t}}%
+ {obzvl\adddot}},
+ seenote = {{vi\v{d} pozn\'{a}mka}%
+ {vi\v{d} pozn\adddot}},
+ quotedin = {{citovan\'{e} v}%
+ {cit\adddotspace v}},
+ idem = {{idem}%
+ {idem}},
+ idemsm = {{idem}%
+ {idem}},
+ idemsf = {{eadem}%
+ {eadem}},
+ idemsn = {{idem}%
+ {idem}},
+ idempm = {{eidem}%
+ {eidem}},
+ idempf = {{eaedem}%
+ {eaedem}},
+ idempn = {{eadem}%
+ {eadem}},
+ idempp = {{eidem}%
+ {eidem}},
+ ibidem = {{ibidem}%
+ {ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}%
+ {op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}%
+ {loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}%
+ {cf\adddot}},
+ sequens = {{sq\adddot}%
+ {sq\adddot}},
+ sequentes = {{sqq\adddot}%
+ {sqq\adddot}},
+ passim = {{passim}%
+ {pass\adddot}},
+ see = {{vi\v{d}}%
+ {vi\v{d}}},
+ seealso = {{vi\v{d} tie\v{z}}%
+ {vi\v{d} tie\v{z}}},
+ backrefpage = {{citovan\'{e} na strane}%
+ {cit\adddotspace na s\adddot}},
+ backrefpages = {{citovan\'{e} na stran\'{a}ch}%
+ {cit\adddotspace na str\adddot}},
+ january = {{janu\'{a}r}%
+ {jan\adddot}},
+ february = {{febru\'{a}r}%
+ {feb\adddot}},
+ march = {{marec}%
+ {mar\adddot}},
+ april = {{apr\'{i}l}%
+ {apr\adddot}},
+ may = {{m\'{a}j}%
+ {m\'{a}j}},
+ june = {{j\'{u}n}%
+ {j\'{u}n}},
+ july = {{j\'{u}l}%
+ {j\'{u}l}},
+ august = {{august}%
+ {aug\adddot}},
+ september = {{september}%
+ {sept\adddot}},
+ october = {{okt\'{o}ber}%
+ {okt\adddot}},
+ november = {{november}%
+ {nov\adddot}},
+ december = {{december}%
+ {dec\adddot}},
+ langamerican = {{americk\'{a} angli\v{c}tina}%
+ {am\adddot angl\adddot}},
+ langbrazilian = {{braz\'{i}lska portugal\v{c}ina}%
+ {braz\adddot portugal\adddot}},
+% langbulgarian = {{}{}},% FIXME: missing
+ langcatalan = {{katal\'{a}n\v{c}ina}%
+ {katal\adddot}},
+ langcroatian = {{chorv\'{a}t\v{c}ina}%
+ {chorv\adddot}},
+ langczech = {{\v{c}e\v{s}tina}%
+ {\v{c}e\v{s}tina}},
+ langdanish = {{d\'{a}n\v{c}ina}%
+ {d\'{a}n\adddot}},
+ langdutch = {{holand\v{c}ina}%
+ {hol\adddot}},
+ langenglish = {{angli\v{c}tina}%
+ {angl\adddot}},
+% langestonian = {{}{}},% FIXME: missing
+ langfinnish = {{f\'{i}n\v{c}ina}%
+ {f\'{i}n\adddot}},
+ langfrench = {{franc\'{u}z\v{s}tina}%
+ {franc\adddot}},
+ langgalician = {{gal\'icij\v{c}ina}%
+ {gal\adddot}},
+ langgerman = {{nem\v{c}ina}%
+ {nem\adddot}},
+ langgreek = {{gr\'{e}\v{c}tina}%
+ {gr\'{e}\v{c}tina}},
+% langhungarian = {{}{}}, % FIXME: missing
+ langitalian = {{talian\v{c}ina}%
+ {tal\adddot}},
+ langjapanese = {{japon\v{c}ina}%
+ {jap\adddot}},
+ langlatin = {{latin\v{c}ina}%
+ {lat\adddot}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{n\'{o}r\v{c}ina}%
+ {n\'{o}r\adddot}},
+ langpolish = {{po\v{l}\v{s}tina}%
+ {po\v{l}\adddot}},
+ langportuguese = {{portugal\v{c}ina}%
+ {portugal\adddot}},
+ langrussian = {{ru\v{s}tina}%
+ {ru\v{s}tina}},
+ langslovak = {{sloven\v{c}ina}%
+ {sloven\v{c}ina}},
+ langslovene = {{slovin\v{c}ina}%
+ {slovin\v{c}ina}},
+ langspanish = {{\v{s}paniel\v{c}ina}%
+ {\v{s}pan\adddot}},
+ langswedish = {{\v{s}v\'{e}d\v{c}ina}%
+ {\v{s}v\'{e}d\adddot}},
+ fromamerican = {{z\addnbspace americkej angli\v{c}tiny}%
+ {z\addnbspace amer\adddot angl\adddot}},
+ frombrazilian = {{z\addnbspace braz\'{i}lskej portugal\v{c}iny}%
+ {z\addnbspace braz\adddotspace portugal\adddot}},
+% frombulgarian = {{}{}},% FIXME: missing
+ fromcatalan = {{z\addnbspace katal\'{a}n\v{c}iny}%
+ {z\addnbspace katal\adddot}},
+ fromcroatian = {{z\addnbspace chorvat\v{c}iny}%
+ {z\addnbspace chorv\adddot}},
+ fromczech = {{z\addnbspace \v{c}e\v{s}tiny}%
+ {z\addnbspace \v{c}e\v{s}tiny}},
+ fromdanish = {{z\addnbspace d\'{a}n\v{c}iny}%
+ {z\addnbspace d\'{a}n\adddot}},
+ fromdutch = {{z\addnbspace holand\v{c}iny}%
+ {z\addnbspace hol\adddot}},
+ fromenglish = {{z\addnbspace angli\v{c}tiny}%
+ {z\addnbspace angl\adddot}},
+% fromestonian = {{}{}},% FIXME: missing
+ fromfinnish = {{z\addnbspace f\'{i}n\v{c}iny}%
+ {z\addnbspace f\'{i}n\adddot}},
+ fromfrench = {{z\addnbspace franc\'{u}z\v{s}tiny}%
+ {z\addnbspace franc\adddot}},
+ fromgalician = {{z\addnbspace gal\'icij\v{c}ina}%
+ {z\addbnspace gal\adddot}},
+ fromgerman = {{z\addnbspace nem\v{c}iny}%
+ {z\addnbspace nem\adddot}},
+ fromgreek = {{z\addnbspace gr\'{e}\v{c}tiny}%
+ {z\addnbspace gr\'{e}\v{c}tiny}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{z\addnbspace talian\v{c}iny}%
+ {z\addnbspace tal\adddot}},
+ fromjapanese = {{z\addnbspace japon\v{c}iny}%
+ {z\addnbspace jap\adddot}},
+ fromlatin = {{z\addnbspace latin\v{c}iny}%
+ {z\addnbspace lat\adddot}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{z\addnbspace n\'{o}r\v{c}iny}%
+ {z\addnbspace n\'{o}r\adddot}},
+ frompolish = {{z\addnbspace po\v{l}\v{s}tiny}%
+ {z\addnbspace po\v{l}\adddot}},
+ fromportuguese = {{z\addnbspace portugal\v{c}iny}%
+ {z\addnbspace portugal\adddot}},
+ fromrussian = {{z\addnbspace ru\v{s}tiny}%
+ {z\addnbspace ru\v{s}tiny}},
+ fromslovak = {{zo sloven\v{c}iny}%
+ {zo sloven\v{c}iny}},
+ fromslovene = {{zo slovin\v{c}iny}%
+ {zo slovin\v{c}iny}},
+ fromspanish = {{zo \v{s}paniel\v{c}iny}%
+ {zo \v{s}pan\adddot}},
+ fromswedish = {{zo \v{s}v\'{e}d\v{c}iny}%
+ {zo \v{s}v\'{e}d\adddot}},
+ countryde = {{Nemecko}%
+ {DE}},
+ countryeu = {{Eur\'{o}pska \'{u}nia}%
+ {EU}},
+ countryep = {{Eur\'{o}pska \'{u}nia}%
+ {EP}},
+ countryfr = {{Franc\'{u}zsko}%
+ {FR}},
+ countryuk = {{Ve\v{l}k\'{a} Brit\'{a}nia}%
+ {GB}},
+ countryus = {{Spojen\'{e} \v{S}t\'{a}ty Americk\'{e}}%
+ {US}},
+ patent = {{patent}%
+ {pat\adddot}},
+ patentde = {{nemeck\'{y} patent}%
+ {nem\adddot\ pat\adddot}},
+ patenteu = {{eur\'{o}psky patent}%
+ {eur\adddot\ pat\adddot}},
+ patentfr = {{franc\'{u}zsky patent}%
+ {franc\adddot\ pat\adddot}},
+ patentuk = {{britsk\'{y} patent}%
+ {britsk\'{y} pat\adddot}},
+ patentus = {{americk\'{y} patent}%
+ {US\adddotspace pat\adddot}},
+ patreq = {{patentov\'{a} \v{z}iados\v{t}}%
+ {pat\adddot\ \v{z}iad\adddot}},
+ patreqde = {{nemeck\'{a} patentov\'{a} \v{z}iados\v{t}}%
+ {nem\adddot\ pat\adddot\ \v{z}iad\adddot}},
+ patreqeu = {{eur\'{o}pska patentov\'{a} \v{z}iados\v{t}}%
+ {eur\adddot\ pat\adddot\ \v{z}iad\adddot}},
+ patreqfr = {{franc\'{u}zska patentov\'{a} \v{z}iados\v{t}}%
+ {franc\adddot\ pat\adddot\ \v{z}iad\adddot}},
+ patrequk = {{britsk\'{a} patentov\'{a} \v{z}iados\v{t}}%
+ {brit\adddot\ pat\adddot\ \v{z}iad\adddot}},
+ patrequs = {{US\adddotspace patentov\'{a} \v{z}iados\v{t}}%
+ {US\adddotspace pat\adddot\ \v{z}iad\adddot}},
+ file = {{s\'{u}bor}%
+ {s\'{u}b\adddot}},
+ library = {{kni\v{z}nica}%
+ {kni\v{z}nica}},
+ abstract = {{abstrakt}%
+ {abst\adddot}},
+ annotation = {{anot\'{a}cia}%
+ {anot\adddot}},
+ commonera = {{n\'a\v{s}ho letopo\v{c}tu}{n\adddotspace l\adddot}},
+ beforecommonera = {{pred na\v{s}\'{\i}m letopo\v{c}tom}{pred\ n\adddotspace l\adddot}},
+ annodomini = {{po Kristovi}{po\ Kr\adddot}},
+ beforechrist = {{pred Kristom}{pred\ Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/slovene.lbx b/macros/latex/contrib/biblatex/latex/lbx/slovene.lbx
new file mode 100644
index 0000000000..225361ed45
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/slovene.lbx
@@ -0,0 +1,532 @@
+\ProvidesFile{slovene.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{slovene}{slovene,slovenian}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{\textendash\penalty\hyphenpenalty}%
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkbibordinal{\thefield{#3}}%
+ \iffieldundef{#2}{}{\addnbthinspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibordinal{\thefield{#2}}%
+ \iffieldundef{#1}{}{\addnbthinspace}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibordinal}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Literatura}{Literatura}},
+ references = {{Literatura}{Literatura}},
+ shorthands = {{Kratice}{Kratice}},
+ editor = {{urednik}{ur\adddot}},
+ editors = {{uredniki}{ur\adddot}},
+ compiler = {{sestavljalec}{sest\adddot}},
+ compilers = {{sestavljalci}{sest\adddot}},
+ redactor = {{redaktor}{redaktor}},
+ redactors = {{redaktorji}{redaktorji}},
+ reviser = {{korektor}{korektor}},
+ revisers = {{korektorji}{korektorji}},
+ founder = {{snovalec}{snovalec}},
+ founders = {{snovalci}{snovalci}},
+ continuator = {{nadaljevalec}{nadaljevalec}},
+ continuators = {{nadaljevalci}{nadaljevalci}},
+ collaborator = {{sodelavec}{sod\adddot}},
+ collaborators = {{sodelavci}{sod\adddot}},
+ translator = {{prevajalec}{prev\adddot}},
+ translators = {{prevajalci}{prev\adddot}},
+ commentator = {{komentator}{komentator}},
+ commentators = {{komentatorji}{komentatorji}},
+ annotator = {{anotator}{anotator}},
+ annotators = {{anotatorji}{anotatorji}},
+ commentary = {{komentar}{komentar}},
+ annotations = {{opombe}{op\adddot}},
+ introduction = {{uvod}{uvod}},
+ foreword = {{predgovor}{predg\adddot}},
+ afterword = {{spremna beseda}{spr\adddotspace b\adddot}},
+ editortr = {{urednik in prevajalec}%
+ {ur\adddotspace in prev\adddot}},
+ editorstr = {{uredniki in prevajalci}%
+ {ur\adddotspace and prev\adddot}},
+ editorco = {{urednik in komentator}%
+ {ur\adddotspace in komentator}},
+ editorsco = {{uredniki in komentatorji}%
+ {ur\adddotspace in komentatorji}},
+ editoran = {{urednik in anotator}%
+ {ur\adddotspace in anotator}},
+ editorsan = {{uredniki in anotatorji}%
+ {ur\adddotspace in anotatorji}},
+ editorin = {{urednik in avtor uvoda}%
+ {ur\adddotspace in avt\adddotspace uvoda}},
+ editorsin = {{uredniki in avtorji uvoda}%
+ {ur\adddotspace in avt\adddotspace uvoda}},
+ editorfo = {{urednik in avtor predgovora}%
+ {ur\adddotspace in avt\adddotspace predg\adddot}},
+ editorsfo = {{uredniki in avtorji predgovora}%
+ {ur\adddotspace in avt\adddotspace predg\adddot}},
+ editoraf = {{urednik in avtor spremne besede}%
+ {ur\adddotspace in avt\adddotspace spr\adddotspace b\adddot}},
+ editorsaf = {{uredniki in avtorji spremne besede}%
+ {ur\adddotspace in avt\adddotspace spr\adddotspace b\adddot}},
+ editortrco = {{urednik, prevajalec in komentator}%
+ {ur\adddotspace, prev\adddotspace in komentator}},
+ editorstrco = {{uredniki, prevajalci in komentatorji}%
+ {ur\adddotspace, prev\adddotspace in komentatorji}},
+ editortran = {{urednik, prevajalec in anotator}%
+ {ur\adddotspace, prev\adddotspace in anotator}},
+ editorstran = {{uredniki, prevajalci in anotatorji}%
+ {ur\adddotspace, prev\adddotspace in anotatorji}},
+ editortrin = {{urednik, prevajalec in avtor uvoda}%
+ {ur\adddotspace, prev\adddotspace in avt\adddotspace uvoda}},
+ editorstrin = {{uredniki, prevajalci in avtorji uvoda}%
+ {ur\adddotspace, prev\adddotspace in avt\adddotspace uvoda}},
+ editortrfo = {{urednik, prevajalec in avtor predgovora}%
+ {ur\adddotspace, prev\adddotspace in avt\adddotspace predg\adddot}},
+ editorstrfo = {{uredniki, prevajalci in avtorji predgovora}%
+ {ur\adddotspace, prev\adddotspace in avt\adddotspace predg\adddot}},
+ editortraf = {{urednik, prevajalec in avtor spremne besede}%
+ {ur\adddotspace, prev\adddotspace in avt\adddotspace spr\adddotspace b\adddot}},
+ editorstraf = {{uredniki, prevajalci in avtorji spremne besede}%
+ {ur\adddotspace, prev\adddotspace in avt\adddotspace spr\adddotspace b\adddot}},
+ editorcoin = {{urednik, komentator in avtor uvoda}%
+ {ur\adddotspace, komentator in avt\adddotspace uvoda}},
+ editorscoin = {{uredniki, komentatorji in avtorji uvoda}%
+ {ur\adddotspace, komentatorji in avt\adddotspace uvoda}},
+ editorcofo = {{urednik, komentator in avtor predgovora}%
+ {ur\adddotspace, komentator in avt\adddotspace predg\adddot}},
+ editorscofo = {{uredniki, komentatorji in avtorji predgovora}%
+ {ur\adddotspace, komentatorji in avt\adddotspace predg\adddot}},
+ editorcoaf = {{urednik, komentator in avtor spremne besede}%
+ {ur\adddotspace, komentator in avt\adddotspace spr\adddotspace b\adddot}},
+ editorscoaf = {{uredniki, komentatorji in avtorji spremne besede}%
+ {ur\adddotspace, komentatorji in avt\adddotspace spr\adddotspace b\adddot}},
+ editoranin = {{urednik, anotator in avtor uvoda}%
+ {ur\adddotspace, anotator in avt\adddotspace uvoda}},
+ editorsanin = {{uredniki, anotatorji in avtorji uvoda}%
+ {ur\adddotspace, anotatorji in avt\adddotspace uvoda}},
+ editoranfo = {{urednik, anotator in avtor predgovora}%
+ {ur\adddotspace, anotator in avt\adddotspace predg\adddot}},
+ editorsanfo = {{uredniki, anotatorji in avtorji predgovora}%
+ {ur\adddotspace, anotatorji in avt\adddotspace predg\adddot}},
+ editoranaf = {{urednik, anotator in avtor spremne besede}%
+ {ur\adddotspace, anotator in avt\adddotspace spr\adddotspace b\adddot}},
+ editorsanaf = {{uredniki, anotatorji in avtorji spremne besede}%
+ {ur\adddotspace, anotatorji in avt\adddotspace spr\adddotspace b\adddot}},
+ editortrcoin = {{urednik, prevajalec, komentator in avtor uvoda}%
+ {ur\adddotspace, prev\adddotspace, komentator in avt\adddotspace uvoda}},
+ editorstrcoin = {{uredniki, prevajalci, komentatorji in avtorji uvoda}%
+ {ur\adddotspace, prev\adddotspace, komentatorji in avt\adddotspace uvoda}},
+ editortrcofo = {{urednik, prevajalec, komentator in avtor predgovora}%
+ {ur\adddotspace, prev\adddotspace, komentator in avt\adddotspace predg\adddot}},
+ editorstrcofo = {{uredniki, prevajalci, komentatorji in avtorji predgovora}%
+ {ur\adddotspace, prev\adddotspace, komentatorji in avt\adddotspace predg\adddot}},
+ editortrcoaf = {{urednik, prevajalec, komentator in avtor spremne besede}%
+ {ur\adddotspace, prev\adddotspace, komentator in avt\adddotspace spr\adddotspace b\adddot}},
+ editorstrcoaf = {{uredniki, prevajalci, komentatorji in avtorji spremne besede}%
+ {ur\adddotspace, prev\adddotspace, komentatorji in avt\adddotspace spr\adddotspace b\adddot}},
+ editortranin = {{urednik, prevajalec, anotator in avtor uvoda}%
+ {ur\adddotspace, prev\adddotspace, anotator in avt\adddotspace uvoda}},
+ editorstranin = {{uredniki, prevajalci, anotatorji in avtorji uvoda}%
+ {ur\adddotspace, prev\adddotspace, anotatorji in avt\adddotspace uvoda}},
+ editortranfo = {{urednik, prevajalec, anotator in avtor predgovora}%
+ {ur\adddotspace, prev\adddotspace, anotator in avt\adddotspace predg\adddot}},
+ editorstranfo = {{uredniki, prevajalci, anotatorji in avtorji predgovora}%
+ {ur\adddotspace, prev\adddotspace, anotatorji in avt\adddotspace predg\adddot}},
+ editortranaf = {{urednik, prevajalec, anotator in avtor spremne besede}%
+ {ur\adddotspace, prev\adddotspace, anotator in avt\adddotspace spr\adddotspace b\adddot}},
+ editorstranaf = {{uredniki, prevajalci, anotatorji in avtorji spremne besede}%
+ {ur\adddotspace, prev\adddotspace, anotatorji in avt\adddotspace spr\adddotspace b\adddot}},
+ translatorco = {{prevajalec in komentator}%
+ {prev\adddotspace in komentator}},
+ translatorsco = {{prevajalci in komentatorji}%
+ {prev\adddotspace in komentatorji}},
+ translatoran = {{prevajalec in anotator}%
+ {prev\adddotspace in anotator}},
+ translatorsan = {{prevajalci in anotatorji}%
+ {prev\adddotspace in anotatorji}},
+ translatorin = {{avtor prevoda in uvoda}%
+ {avt\adddotspace prev\adddotspace in uvoda}},
+ translatorsin = {{avtorji prevoda in uvoda}%
+ {avt\adddotspace prev\adddotspace in uvoda}},
+ translatorfo = {{avtor prevoda in predgovora}%
+ {avt\adddotspace prev\adddotspace in predg\adddot}},
+ translatorsfo = {{avtorji prevoda in predgovora}%
+ {avt\adddotspace prev\adddotspace in predg\adddot}},
+ translatoraf = {{avtor prevoda in spremne besede}%
+ {avt\adddotspace prev\adddotspace in spr\adddotspace b\adddot}},
+ translatorsaf = {{avtorji prevoda in spremne besede}%
+ {avt\adddotspace prev\adddotspace in spr\adddotspace b\adddot}},
+ translatorcoin = {{avtor prevoda, komentarja in uvoda}%
+ {avt\adddotspace prev\adddotspace, komentarja in uvoda}},
+ translatorscoin = {{avtorji prevoda, komentarja in uvoda}%
+ {avt\adddotspace prev\adddotspace, komentarja in uvoda}},
+ translatorcofo = {{avtor prevoda, komentarja in predgovora}%
+ {avt\adddotspace prev\adddotspace, komentarja in predg\adddot}},
+ translatorscofo = {{avtorji prevoda, komentarja in predgovora}%
+ {avt\adddotspace prev\adddotspace, komentarja in predg\adddot}},
+ translatorcoaf = {{avtor prevoda, komentarja in spremne besede}%
+ {avt\adddotspace prev\adddotspace, komentarja in spr\adddotspace b\adddot}},
+ translatorscoaf = {{avtorji prevoda, komentarja in spremne besede}%
+ {avt\adddotspace prev\adddotspace, komentarja in spr\adddotspace b\adddot}},
+ translatoranin = {{avtor prevoda, opomb in uvoda}%
+ {avt\adddotspace prev\adddotspace, opomb in uvoda}},
+ translatorsanin = {{avtorji prevoda, opomb in uvoda}%
+ {avt\adddotspace prev\adddotspace, opomb in uvoda}},
+ translatoranfo = {{avtor prevoda, opomb in predgovora}%
+ {avt\adddotspace prev\adddotspace, opomb in predg\adddot}},
+ translatorsanfo = {{avtorji prevoda, opomb in predgovora}%
+ {avt\adddotspace prev\adddotspace, opomb in predg\adddot}},
+ translatoranaf = {{avtor prevoda, opomb in spremne besede}%
+ {avt\adddotspace prev\adddotspace, opomb in spr\adddotspace b\adddot}},
+ translatorsanaf = {{avtorji prevoda, opomb in spremne besede}%
+ {avt\adddotspace prev\adddotspace, opomb in spr\adddotspace b\adddot}},
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{}{}},
+ byeditor = {{uredil}{ur\adddot}},% FIXME: unsure
+ bycompiler = {{sestavil}{sest\adddot}},% FIXME: unsure
+ byredactor = {{oblikoval}{oblik\adddot}},% FIXME: unsure
+ byreviser = {{koregiral}{koregiral}},% FIXME: unsure
+ byreviewer = {{recenziral}{recenziral}},% FIXME: unsure
+ byfounder = {{snoval}{snoval}},% FIXME: unsure
+ bycontinuator = {{nadaljeval}{nadaljeval}},% FIXME: unsure
+ bycollaborator = {{v sodelovanju z}{v sod\adddotspace z}},
+ bytranslator = {{prevedel}{prev\adddot}},% FIXME: unsure
+ bycommentator = {{komentiral}{komentiral}},% FIXME: unsure
+ byannotator = {{anotiral}{anotiral}},% FIXME: unsure
+ withcommentator = {{s komentarjem}{s komentarjem}},
+ withannotator = {{z opombami}{z opombami}},
+ withintroduction = {{z uvodom}{z uvodom}},
+ withforeword = {{s predgovorom}{s predg\adddot}},
+ withafterword = {{s spremno besedo}{s spr\adddotspace b\adddot}},
+ byeditortr = {{uredil in prevedel}%
+ {uredil in prevedel}},% FIXME: unsure
+ byeditorco = {{uredil in komentiral}%
+ {ur\adddotspace in komentiral}},% FIXME: unsure
+ byeditoran = {{uredil in anotiral}%
+ {ur\adddotspace in anotiral}},% FIXME: unsure
+ byeditorin = {{uredil, z uvodom}%
+ {ur\adddotspace z uvodom}},% FIXME: unsure
+ byeditorfo = {{uredil, s predgovorom}%
+ {ur\adddotspace s predg\adddot}},% FIXME: unsure
+ byeditoraf = {{uredil, s spremno besedo}%
+ {ur\adddotspace s sprem\adddotspace b\adddot}},% FIXME: unsure
+ byeditortrco = {{uredil, prevedel \lbx@lfromlang\ in komentiral}%
+ {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in komentiral}},% FIXME: unsure
+ byeditortran = {{uredil, prevedel \lbx@lfromlang\ in anotiral}%
+ {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in anotiral}},% FIXME: unsure
+ byeditortrin = {{uredil in prevedel \lbx@lfromlang, z uvodom}%
+ {ur\adddotspace in prev\adddot\ \lbx@sfromlang, z uvodom}},% FIXME: unsure
+ byeditortrfo = {{uredil in prevedel \lbx@lfromlang, s predgovorom}%
+ {ur\adddotspace in prev\adddot\ \lbx@sfromlang, s predg\adddot}},% FIXME: unsure
+ byeditortraf = {{uredil in prevedel \lbx@lfromlang, s spremno besedo}%
+ {ur\adddotspace in prev\adddot\ \lbx@sfromlang, s sprem\adddotspace b\adddot}},% FIXME: unsure
+ byeditorcoin = {{uredil in komentiral, z uvodom}%
+ {ur\adddotspace in komentiral, z uvodom}},% FIXME: unsure
+ byeditorcofo = {{uredil in komentiral, s predgovorom}%
+ {ur\adddotspace in komentiral, s predg\adddot}},% FIXME: unsure
+ byeditorcoaf = {{uredil in komentiral, s spremno besedo}%
+ {ur\adddotspace in komentiral, s sprem\adddotspace b\adddot}},% FIXME: unsure
+ byeditoranin = {{uredil in anotiral, z uvodom}%
+ {ur\adddotspace in anotiral, z uvodom}},% FIXME: unsure
+ byeditoranfo = {{uredil in anotiral, s predgovorom}%
+ {ur\adddotspace in anotiral, s predg\adddot}},% FIXME: unsure
+ byeditoranaf = {{uredil in anotiral, s spremno besedo}%
+ {ur\adddotspace in anotiral, s sprem\adddotspace b\adddot}},% FIXME: unsure
+ byeditortrcoin = {{uredil, prevedel \lbx@lfromlang\ in komentiral, z uvodom}%
+ {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in komentiral, z uvodom}},% FIXME: unsure
+ byeditortrcofo = {{uredil, prevedel \lbx@lfromlang\ in komentiral, s predgovorom}%
+ {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in komentiral, s predg\adddot}},% FIXME: unsure
+ byeditortrcoaf = {{uredil, prevedel \lbx@lfromlang\ in komentiral, s spremno besedo}%
+ {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in komentiral, s sprem\adddotspace b\adddot}},% FIXME: unsure
+ byeditortranin = {{uredil, prevedel \lbx@lfromlang\ in anotiral, z uvodom}%
+ {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in anotiral, z uvodom}},% FIXME: unsure
+ byeditortranfo = {{uredil, prevedel \lbx@lfromlang\ in anotiral, s predgovorom}%
+ {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in anotiral, s predg\adddot}},% FIXME: unsure
+ byeditortranaf = {{uredil, prevedel \lbx@lfromlang\ in anotiral, s spremno besedo}%
+ {ur\adddotspace prev\adddot\ \lbx@sfromlang\ in anotiral, s sprem\adddotspace b\adddot}},% FIXME: unsure
+ bytranslatorco = {{prevedel \lbx@lfromlang\ in komentiral}%
+ {prev\adddot\ \lbx@sfromlang\ in komentiral}},% FIXME: unsure
+ bytranslatoran = {{prevedel \lbx@lfromlang\ in anotiral}%
+ {prev\adddot\ \lbx@sfromlang\ in anotiral}},% FIXME: unsure
+ bytranslatorin = {{prevedel \lbx@lfromlang, z uvodom}%
+ {prev\adddot\ \lbx@sfromlang, z uvodom}},% FIXME: unsure
+ bytranslatorfo = {{prevedel \lbx@lfromlang, s predgovorom}%
+ {prev\adddot\ \lbx@sfromlang, s predg\adddot}},% FIXME: unsure
+ bytranslatoraf = {{prevedel \lbx@lfromlang, s spremno besedo}%
+ {prev\adddot\ \lbx@sfromlang, s sprem\adddotspace b\adddot}},% FIXME: unsure
+ bytranslatorcoin = {{prevedel \lbx@lfromlang\ in komentiral, z uvodom}%
+ {prev\adddot\ \lbx@sfromlang\ in komentiral, z uvodom}},% FIXME: unsure
+ bytranslatorcofo = {{prevedel \lbx@lfromlang\ in komentiral, s predgovorom}%
+ {prev\adddot\ \lbx@sfromlang\ in komentiral, s predg\adddot}},% FIXME: unsure
+ bytranslatorcoaf = {{prevedel \lbx@lfromlang\ in komentiral, s spremno besedo}%
+ {prev\adddot\ \lbx@sfromlang\ in komentiral, s sprem\adddotspace b\adddot}},% FIXME: unsure
+ bytranslatoranin = {{prevedel \lbx@lfromlang\ in anotiral, z uvodom}%
+ {prev\adddot\ \lbx@sfromlang\ in anotiral, z uvodom}},% FIXME: unsure
+ bytranslatoranfo = {{prevedel \lbx@lfromlang\ in anotiral, s predgovorom}%
+ {prev\adddot\ \lbx@sfromlang\ in anotiral, s predg\adddot}},% FIXME: unsure
+ bytranslatoranaf = {{prevedel \lbx@lfromlang\ in anotiral, s spremno besedo}%
+ {prev\adddot\ \lbx@sfromlang\ in anotiral, s sprem\adddotspace b\adddot}},% FIXME: unsure
+ and = {{in}{in}},
+ andothers = {{in sodelavci}{in sod\adddot}},
+ andmore = {{idr\adddot}{idr\adddot}},
+ volume = {{zvezek}{zv\adddot}},
+ volumes = {{zvezki}{zv\adddot}},
+ involumes = {{v}{v}},
+ jourvol = {{letnik}{let\adddot}},
+ jourser = {{zbirka}{zbirka}},
+ book = {{knjiga}{knj\adddot}},
+ part = {{del}{del}},
+ issue = {{\v{s}tevilka}{\v{s}t\adddot}},
+ newseries = {{nova zbirka}{nova zbirka}},
+ oldseries = {{stara zbirka}{stara zbirka}},
+ edition = {{izdaja}{izd\adddot}},
+ reprint = {{ponatis}{ponatis}},
+ reprintof = {{ponatis}{ponatis}},
+ reprintas = {{ponatisnjeno kot}{ponatisnjeno kot}},
+ reprintfrom = {{ponatisnjeno iz}{ponatisnjeno iz}},
+ %reviewof = {{recenzija}{recenzija}},% FIXME: unsure
+ translationof = {{prevod}{prev\adddot}},
+ translationas = {{prevedeno kot}{prev\adddotspace kot}},
+ translationfrom = {{prevedeno iz}{prev\adddotspace iz}},
+ origpubas = {{izvirna izdaja}{izvirna izd\adddot}},
+ origpubin = {{izvirno izdano v}{izvirno izdano v}},
+ astitle = {{}{}},
+ bypublisher = {{}{}},
+ nodate = {{brez datuma}{b\adddot d\adddot}},
+ page = {{stran}{str\adddot}},
+ pages = {{strani}{str\adddot}},
+ column = {{stolpec}{st\adddot}},
+ columns = {{stolpci}{st\adddot}},
+ line = {{vrstica}{v\adddot}},
+ lines = {{vrstice}{v\adddot}},
+ verse = {{verz}{v\adddot}},
+ verses = {{verzi}{v\adddot}},
+ section = {{razdelek}{\S}},
+ sections = {{razdelek}{\S\S}},
+ paragraph = {{odstavek}{odstavek}},
+ paragraphs = {{odstavki}{odstavki}},
+% pagetotal = {{}{}},% FIXME: missing
+% pagetotals = {{}{}},% FIXME: missing
+% columntotal = {{}{}},% FIXME: missing
+% columntotals = {{}{}},% FIXME: missing
+% linetotal = {{}{}},% FIXME: missing
+% linetotals = {{}{}},% FIXME: missing
+% versetotal = {{}{}},% FIXME: missing
+% versetotals = {{}{}},% FIXME: missing
+% sectiontotal = {{}{}},% FIXME: missing
+% sectiontotals = {{}{}},% FIXME: missing
+% paragraphtotal = {{}{}},% FIXME: missing
+% paragraphtotals = {{}{}},% FIXME: missing
+ in = {{v}{v}},
+ inseries = {{v zbirki}{v zbirki}},
+ ofseries = {{iz zbirke}{iz zbirke}},
+ number = {{\v{s}tevilka}{\v{s}t\adddot}},
+ chapter = {{poglavje}{pogl\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{Magistrsko delo}{Magistrsko delo}},
+ phdthesis = {{Doktorska disertacija}{Doktorska disertacija}},
+% candthesis = {{Candidate thesis}{Cand\adddotspace thesis}},% FIXME: don't know
+ resreport = {{Raziskovalno poro\v{c}ilo}{Razisk\adddotspace poro\v{c}ilo}},
+ techreport = {{Tehni\v{c}no poro\v{c}ilo}{Teh\adddotspace poro\v{c}ilo}},
+ software = {{Ra\v{c}unalni\v{s}ki program}{Ra\v{c}\adddotspace prog\adddot}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{avdio CD}{avdio CD}},
+ version = {{verzija}{ver\adddot}},
+ url = {{spletni naslov}{spletni naslov}},
+ urlfrom = {{dostopno na}{dostopno na}},
+ urlseen = {{pridobljeno}{pridobljeno}},
+ inpreparation = {{v pripravi}{v pripravi}},
+ submitted = {{poslano v objavo}{poslano v objavo}},
+ %forthcoming = {{forthcoming}{forthcoming}},% FIXME: don't know
+ inpress = {{v tisku}{v tisku}},
+ %prepublished = {{pre-published}{pre-published}},% FIXME: don't know
+ citedas = {{v nadaljevanju citirano kot}{v nadalj\adddotspace cit\adddotspace kot}},
+ thiscite = {{posebno}{posebno}},
+ seenote = {{glej opombo}{gl\adddotspace op\adddot}},
+ quotedin = {{citirano v}{cit\adddotspace v}},
+ idem = {{isti}{id\adddot}},
+ idemsm = {{isti}{id\adddot}},
+ idemsf = {{ista}{id\adddot}},
+ idemsn = {{isto}{id\adddot}},
+ idempm = {{isti}{id\adddot}},
+ idempf = {{iste}{id\adddot}},
+ idempn = {{ista}{id\adddot}},
+ idempp = {{isti}{id\adddot}},
+ ibidem = {{prav tam}{ibid\adddot}},
+% opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},% FIXME: don't know
+% loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},% FIXME: don't know
+ confer = {{primerjaj}{prim\adddot}},
+% sequens = {{sq\adddot}{sq\adddot}},% FIXME: don't know
+% sequentes = {{sqq\adddot}{sqq\adddot}},% FIXME: don't know
+% passim = {{passim}{pass\adddot}},% FIXME: don't know
+ see = {{glej}{gl\adddot}},
+ seealso = {{glej tudi}{gl\adddotspace tudi}},
+ backrefpage = {{citirano na strani}{cit\adddotspace na str\adddot}},
+ backrefpages = {{citirano na straneh}{cit\adddotspace na str\adddot}},
+ january = {{januar}{jan\adddot}},
+ february = {{februar}{feb\adddot}},
+ march = {{marec}{mar\adddot}},
+ april = {{april}{apr\adddot}},
+ may = {{maj}{maj}},
+ june = {{junij}{jun\adddot}},
+ july = {{julij}{jul\adddot}},
+ august = {{avgust}{avg\adddot}},
+ september = {{september}{sep\adddot}},
+ october = {{oktober}{okt\adddot}},
+ november = {{november}{nov\adddot}},
+ december = {{december}{dec\adddot}},
+ langamerican = {{angle\v{s}\v{c}ina}{angl\adddot}},
+ langbrazilian = {{brazil\v{s}\v{c}ina}{braz\adddot}},
+% langbulgarian = {{}{}},% FIXME: missing
+ langcatalan = {{katalon\v{s}\v{c}ina}{kat\adddot}},
+ langcroatian = {{hrva\v{s}\v{c}ina}{hrv\adddot}},
+ langczech = {{\v{c}e\v{s}\v{c}ina}{\v{c}e\v{s}\adddot}},
+ langdanish = {{dan\v{s}\v{c}ina}{dan\adddot}},
+ langdutch = {{nizozem\v{s}\v{c}ina}{niz\adddot}},
+ langenglish = {{angle\v{s}\v{c}ina}{angl\adddot}},
+% langestonian = {{}{}},% FIXME: missing
+ langfinnish = {{fin\v{s}\v{c}ina}{fin\adddot}},
+ langfrench = {{franco\v{s}\v{c}ina}{fr\adddot}},
+ langgalician = {{galicij\v{s}\v{c}ina}{gal\adddot}},
+ langgerman = {{nem\v{s}\v{c}ina}{nem\adddot}},
+ langgreek = {{gr\v{s}\v{c}ina}{gr\adddot}},
+% langhungarian = {{}{}}, % FIXME: missing
+ langitalian = {{italijan\v{s}\v{c}ina}{it\adddot}},
+ langlatin = {{latin\v{s}\v{c}ina}{lat\adddot}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{norve\v{s}\v{c}ina}{nor\adddot}},
+ langpolish = {{polj\v{s}\v{c}ina}{polj\adddot}},
+ langportuguese = {{portugal\v{s}\v{c}ina}{por\adddot}},
+ langrussian = {{ru\v{s}\v{c}ina}{ru\adddot}},
+% langslovak = {{}{}},% FIXME: missing
+ langslovene = {{sloven\v{s}\v{c}ina}{sl\adddot}},
+ langspanish = {{\v{s}pan\v{s}\v{c}ina}{\v{s}p\adddot}},
+ langswedish = {{\v{s}ved\v{s}\v{c}ina}{\v{s}ved\adddot}},
+ fromamerican = {{iz angle\v{s}\v{c}ine}{iz angl\adddot}},
+ frombrazilian = {{iz brazil\v{s}\v{c}ine}{iz braz\adddot}},
+% frombulgarian = {{}{}},% FIXME: missing
+ fromcatalan = {{iz katalon\v{s}\v{c}ine}{iz kat\adddot}},
+ fromcroatian = {{iz hrva\v{s}\v{c}ine}{iz hrv\adddot}},
+ fromczech = {{iz \v{c}e\v{s}\v{c}ine}{iz \v{c}e\v{s}\adddot}},
+ fromdanish = {{iz dan\v{s}\v{c}ine}{iz dan\adddot}},
+ fromdutch = {{iz nizozem\v{s}\v{c}ine}{iz niz\adddot}},
+ fromenglish = {{iz angle\v{s}\v{c}ine}{iz angl\adddot}},
+% fromestonian = {{}{}},% FIXME: missing
+ fromfinnish = {{iz fin\v{s}\v{c}ine}{iz fin\adddot}},
+ fromfrench = {{iz franco\v{s}\v{c}ine}{iz fr\adddot}},
+ fromgalician = {{iz galicij\v{s}\v{c}ine}{iz gal\adddot}},
+ fromgerman = {{iz nem\v{s}\v{c}ine}{iz nem\adddot}},
+ fromgreek = {{iz gr\v{s}\v{c}ine}{iz gr\adddot}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{iz italijan\v{s}\v{c}ine}{iz it\adddot}},
+ fromlatin = {{iz latin\v{s}\v{c}ine}{iz lat\adddot}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{iz norve\v{s}\v{c}ine}{iz nor\adddot}},
+ frompolish = {{iz polj\v{s}\v{c}ine}{iz polj\adddot}},
+ fromportuguese = {{iz portugal\v{s}\v{c}ine}{iz por\adddot}},
+ fromrussian = {{iz ru\v{s}\v{c}ine}{iz ru\adddot}},
+% fromslovak = {{}{}},% FIXME: missing
+ fromslovene = {{iz sloven\v{s}\v{c}ine}{iz sl\adddot}},
+ fromspanish = {{iz \v{s}pan\v{s}\v{c}ine}{iz \v{s}p\adddot}},
+ fromswedish = {{iz \v{s}ved\v{s}\v{c}ine}{iz \v{s}ved\adddot}},
+ countryde = {{Nem\v{c}ija}{Nem\v{c}ija}},
+ countryeu = {{Evropska unija}{EU}},
+ countryep = {{Evropska unija}{EP}},
+ countryfr = {{Francija}{Francija}},
+ countryuk = {{Velika Britanija}{VB}},
+ countryus = {{Zdru\v{z}ene dr\v{z}ave Amerike}{ZDA}},
+ patent = {{patent}{patent}},
+ patentde = {{nem\v{s}ki patent}{nem\v{s}ki patent}},
+ patenteu = {{evropski patent}{evropski patent}},
+ patentfr = {{francoski patent}{francoski patent}},
+ patentuk = {{britanski patent}{britanski patent}},
+ patentus = {{patent v ZDA}{patent v ZDA}},
+ patreq = {{patentna prijava}{patentna prijava}},
+ patreqde = {{prijava nem\v{s}kega patenta}{prijava nem\v{s}kega patenta}},
+ patreqeu = {{prijava evropskega patenta}{prijava evropskega patenta}},
+ patreqfr = {{prijava francoskega patenta}{prijava francoskega patenta}},
+ patrequk = {{prijava britanskega patenta}{prijava britanskega patenta}},
+ patrequs = {{prijava patenta v ZDA}{prijava patenta v ZDA}},
+ file = {{datoteka}{datoteka}},
+ library = {{knji\v{z}nica}{knji\v{z}nica}},
+ abstract = {{povzetek}{povzetek}},
+ annotation = {{opomba}{op\adddot}},
+ commonera = {{po n\adddotspace\v{s}t\adddot}{n\adddotspace\v{s}t\adddot}},
+ beforecommonera = {{pred na\v{s}im \v{s}tetjem}{pr\adddotspace n\adddotspace\v{s}t\adddot}},
+ annodomini = {{na\v{s}e \v{s}tetje}{po\ n\adddotspace\v{s}t\adddot}},
+ beforechrist = {{pred Kristusom}{pr\adddotspace Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{dop\adddot}{dop\adddot}},
+ pm = {{pop\adddot}{pop\adddot}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/slovenian.lbx b/macros/latex/contrib/biblatex/latex/lbx/slovenian.lbx
new file mode 100644
index 0000000000..69214d4032
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/slovenian.lbx
@@ -0,0 +1,7 @@
+\ProvidesFile{slovenian.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{slovene}
+\InheritBibliographyStrings{slovene}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/spanish.lbx b/macros/latex/contrib/biblatex/latex/lbx/spanish.lbx
new file mode 100644
index 0000000000..3326fe55d2
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/spanish.lbx
@@ -0,0 +1,592 @@
+\ProvidesFile{spanish.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{spanish}{spanish}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{\mbox{-}}% non-breaking hyphen
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \def\mkbibordinal{\mkbibmascord}%
+ \providecommand*{\sptext}{\textsuperscript}% \sptext -> spanish.ldf (babel)
+ \protected\def\mkbibmascord#1{\stripzeros{#1}\sptext{o}}%
+ \protected\def\mkbibfemord#1{\stripzeros{#1}\sptext{a}}%
+ \protected\def\mkbibneutord{\mkbibmascord}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace de\space}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\nobreakspace de\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\mbox{-}}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\mbox{-}}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkdaterangeterse
+ \protected\def\mkdaterangeterse{%
+ \BibliographyWarning{%
+ Date format 'terse' not applicable to\MessageBreak
+ Spanish dates. Using format 'short' instead}%
+ \mkdaterangefull{short}}%
+ \savecommand\lbx@finalnamedelim
+ \savecommand\lbx@finallistdelim
+ \ifnumgreater{\value{smartand}}{0}
+ {\let\lbx@finalnamedelim=\lbx@es@smartand
+ \let\lbx@finallistdelim=\lbx@es@smartand}
+ {}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibfemord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkdaterangeterse
+ \restorecommand\lbx@finalnamedelim
+ \restorecommand\lbx@finallistdelim
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliograf\'{\i}a}{Bibliograf\'{\i}a}},
+ references = {{Referencias}{Referencias}},
+ shorthands = {{Lista de abreviaturas}{Abreviaturas}},
+ editor = {{edici\'on}{ed\adddot}}, %% {edic'{\i}on} instead of {editor} or {editora}
+ editors = {{edici\'on}{eds\adddot}}, %% {edic'{\i}on} instead of {editores} or {editoras}
+ compiler = {{compilaci\'{o}n}{comp\adddot}}, %% {compilac\'{\i}on} instead of {compilador} or {compiladora}
+ compilers = {{compilaci\'{o}n}{comps\adddot}}, %% {compilac\'{\i}on} instead of {compiladores} or {compiladoras}
+ redactor = {{redacci\'{o}n}{red\adddot}}, %% {redacc\'{\i}on} instead of {redactor} or {redactora}
+ redactors = {{redacci\'{o}n}{reds\adddot}}, %% {redacc\'{\i}on} instead of {redactores} or {redactoras}
+ reviser = {{revisi\'{o}n}{rev\adddot}}, %% {revisi\'{\i}on} instead of {revisor} or {revisora}
+ revisers = {{revisi\'{o}n}{revs\adddot}}, %% {revisi\'{\i}on} instead of {revisores} or {revisoras}
+ founder = {{fundaci\'{o}n}{fund\adddot}}, %% {fundaci\'{o}n} instead of {fundador} or {fundadora}
+ founders = {{fundaci\'{o}n}{funds\adddot}}, %% {fundaci\'{o}n} instead of {fundadores} or {fundadoras}
+ continuator = {{continuaci\'{o}n}{cont\adddot}}, %% {continuaci\'{o}n} instead of {continuador} or {continuadora}
+ continuators = {{continuaci\'{o}n}{conts\adddot}}, %% {continuaci\'{o}n} instead of {continuadores} or {continuadoras}
+ collaborator = {{colaboraci\'{o}n}{colab\adddot}}, %% {colaboraci\'{o}n} instead of {colaborador} or {colaboradora}
+ collaborators = {{colaboraci\'{o}n}{colabs\adddot}}, %% {colaboraci\'{o}n} instead of {colaboradores} or {colaboradoras}
+ translator = {{traducci\'{o}n \lbx@sfromlang}{trad\adddotspace \lbx@sfromlang}}, %% {traducci\'{o}n} instead of {traductor} or {traductora}
+ translators = {{traducci\'{o}n \lbx@sfromlang}{trads\adddotspace \lbx@sfromlang}}, %% {traducci\'{o}n} instead of {traductores} or {traductoras}
+ commentator = {{comentario}{com\adddot}}, %% {comentario} instead of {comentador} or {comentadora}
+ commentators = {{comentarios}{coms\adddot}}, %% {comentarios} instead of {comentadores} or {comentadoras}
+ annotator = {{anotaciones}{anot\adddot}}, %% {anotaciones instead of {anotador} or {anotadora}
+ annotators = {{anotaciones}{anots\adddot}}, %% {anotaciones} instead of {anotadores} or {anotadoras}
+ commentary = {{comentario}{com\adddot}},
+ annotations = {{notas}{notas}},
+ introduction = {{introducci\'on}{intr\adddot}},
+ foreword = {{pr\'ologo}{pr\'ol\adddot}},
+ afterword = {{ep\'{i}logo}{ep\'{\i}l\adddot}},
+ editortr = {{edici\'{o}n y traducci\'{o}n \lbx@sfromlang}{ed\adddotspace y trad\adddotspace \lbx@sfromlang}}, %% {{edici\'{o}n y traducci\'{o}n} instead of {editor y traductor} or {editora y traductora}
+ editorstr = {{edici\'{o}n y traducci\'{o}n \lbx@sfromlang}{eds\adddotspace y trads\adddotspace \lbx@sfromlang}}, %% {{edici\'{o}n y traducci\'{o}n} instead of {editores y traductores} or {editoras y traductoras}
+ editorco = {{edici\'{o}n y comentario}{ed\adddotspace y com\adddot}}, %% {edici\'{o}n y comentario} instead of {editor y comentador} or {editora y comentadora}
+ editorsco = {{edici\'{o}n y comentarios}{eds\adddotspace y coms\adddot}}, %% {edici\'{o}n y comentarios} instead of {editores y comentadores} or {editoras y comentadoras}
+ editoran = {{edici\'{o}n y notas}{ed\adddotspace y anot\adddot}}, %% {edici\'{o}n y notas} instead of {editor y notas} or {editora y notas}
+ editorsan = {{edici\'{o}n y notas}{eds\adddotspace y anot\adddot}}, %% {edici\'{o}n y notas} instead of {editores y notas} or {editoras y notas}
+ editorin = {{edici\'{o}n e introducci\'{o}n}{ed\adddotspace e intr\adddot}}, %% {edici\'{o}n e introducci\'{o}n} instead of {editor e introducci\'{o}n} or {editora e introducci\'{o}n}
+ editorsin = {{edici\'{o}n e introducci\'{o}n}{eds\adddotspace e intr\adddot}}, %% {edici\'{o}n e introducci\'{o}n} instead of {editores e introducci\'{o}n} or {editoras e introducci\'{o}n}
+ editorfo = {{edici\'{o}n y pr\'{o}logo}{ed\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n y pr\'{o}logo} instead of {editor y pr\'{o}logo} or {editora y pr\'{o}logo}
+ editorsfo = {{edici\'{o}n y pr\'{o}logo}{eds\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n y pr\'{o}logo} instead of {editores y pr\'{o}logo} or {editoras y pr\'{o}logo}
+ editoraf = {{edici\'{o}n y ep\'{i}logo}{ed\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n y ep\'{\i}l\ogo} instead of {editor y ep\'{\i}l\ogo} or {editora y ep\'{\i}l\ogo}
+ editorsaf = {{edici\'{o}n y ep\'{i}logo}{eds\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n y ep\'{\i}l\ogo} instead of {editores y ep\'{\i}l\ogo} or {editoras y ep\'{\i}l\ogo}
+ editortrco = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y comentario}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y com\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y comentarios} instead of {editor, traductor y comentarios} or {editora, traductora y comentarios}
+ editorstrco = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y comentarios}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ y coms\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y comentarios} instead of {editores, traductores y comentarios} or {editoras, traductoras y comentarios}
+ editortran = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y notas}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y notas} instead of {editor, traductor y notas} or {editora, traductora y notas}
+ editorstran = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y notas}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y notas} instead of {editores, traductores y notas} or {editoras, traductoras y notas}
+ editortrin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ e introducci\'{o}n}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang e introducci\'{o}n} instead of {editor, traductor e introducci\'{o}n} or {editora, traductora e introducci\'{o}n}
+ editorstrin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ e introducci\'{o}n}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang e introducci\'{o}n} instead of {editores, traductores e introducci\'{o}n} or {editoras, traductoras e introducci\'{o}n}
+ editortrfo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y pr\'{o}logo}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y pr\'{o}logo} instead of {editor, traductor y prologuista} or {editora, traductora y prologuista}
+ editorstrfo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y pr\'{o}logo}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y pr\'{o}logo} instead of {editores, traductores y prologuista} or {editoras, traductoras y prologuistas}
+ editortraf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y ep\'{i}logo}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y ep\'{i}logo} instead of {editor, traductor y ep\'{i}logo} or {editora, traductora y ep\'{i}logo}
+ editorstraf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang\ y ep\'{i}logo}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang y ep\'{i}logo} instead of {editores, traductores y ep\'{i}logo} or {editoras, traductoras y ep\'{i}logo}
+ editorcoin = {{edici\'{o}n, comentarios e introducci\'{o}n}{ed.,\addabbrvspace com\adddotspace e intr\adddot}}, %% {edici\'{o}n, comentarios e introducci\'{o}n} instead of {editor, comentador e introducci\'{o}n} or {editora, comentadora e introducci\'{o}n}
+ editorscoin = {{edici\'{o}n, comentarios e introducci\'{o}n}{eds.,\addabbrvspace coms\adddotspace e intr\adddot}}, %% {edici\'{o}n, comentarios e introducci\'{o}n} instead of {editores, comentadores e introducci\'{o}n} or {editoras, comentadoras e introducci\'{o}n}
+ editorcofo = {{edici\'{o}n, comentarios y pr\'{o}logo}{ed.,\addabbrvspace com\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, comentarios y pr\'{o}logo} instead of {editor, comentador y pr\'{o}logo} or {editora, comentadora y pr\'{o}logo}
+ editorscofo = {{edici\'{o}n, comentarios y pr\'{o}logo}{eds.,\addabbrvspace coms\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, comentarios y pr\'{o}logo} instead of {editores, comentadores y pr\'{o}logo} or {editoras, comentadoras y pr\'{o}logo}
+ editorcoaf = {{edici\'{o}n, comentarios y ep\'{i}logo}{eds.,\addabbrvspace com\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, comentarios y ep\'{i}logo} instead of {editor, comentador y ep\'{i}logo} or {editora, comentadora y ep\'{i}logo}
+ editorscoaf = {{edici\'{o}n, comentarios y ep\'{i}logo}{eds.,\addabbrvspace coms\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, comentarios y ep\'{i}logo} instead of {editores, comentadores y ep\'{i}logo} or {editoras, comentadoras y ep\'{i}logo}
+ editoranin = {{edici\'{o}n, notas e introducci\'{o}n}{ed.,\addabbrvspace anot\adddotspace e intr\adddot}}, %% {{edici\'{o}n, notas e introducci\'{o}n} instead of {editor, notas e introducci\'{o}n} or {editora, notas e introducci\'{o}n}
+ editorsanin = {{edici\'{o}n, notas e introducci\'{o}n}{eds.,\addabbrvspace anot\adddotspace e intr\adddot}}, %% {{edici\'{o}n, notas e introducci\'{o}n} instead of {editor, notas e introducci\'{o}n} or {editora, notas e introducci\'{o}n}
+ editoranfo = {{edici\'{o}n, notas y pr\'{o}logo}{ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y pr\'{o}logo} instead of {editor, notas y pr\'{o}logo} or {editora, notas y pr\'{o}logo}
+ editorsanfo = {{edici\'{o}n, notas y pr\'{o}logo}{eds.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y pr\'{o}logo} instead of {editores, notas y pr\'{o}logo} or {editoras, notas y pr\'{o}logo}
+ editoranaf = {{edici\'{o}n, notas y ep\'{i}logo}{ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y ep\'{i}logo} instead of {editor, notas y ep\'{i}logo} or {editora, notas y ep\'{i}logo}
+ editorsanaf = {{edici\'{o}n, notas y ep\'{i}logo}{eds.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddot}}, %% {{edici\'{o}n, notas y ep\'{i}logo} instead of {editores, notas y ep\'{i}logo} or {editoras, notas y ep\'{i}logo}
+ editortrcoin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace com\adddotspace e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} instead of {editor, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} or {editora, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n}
+ editorstrcoin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace coms\adddotspace e intr\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} instead of {editores, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n} or {editoras, traducci\'{o}n \lbx@sfromlang, comentarios e introducci\'{o}n}
+ editortrcofo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace com\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} instead of {editor, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} or {editora, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo}
+ editorstrcofo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace coms\adddotspace y pr\'{o}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} instead of {editores, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo} or {editoras, traducci\'{o}n \lbx@sfromlang, comentarios y pr\'{o}logo}
+ editortrcoaf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace com\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} instead of {editor, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} or {editora, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo}
+ editorstrcoaf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace coms\adddotspace y ep\'{\i}l\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} instead of {editor, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo} or {editora, traducci\'{o}n \lbx@sfromlang, comentarios y ep\'{i}logo}
+ editortranin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace intr\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} instead of {{editor, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} or {{editora, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}
+ editorstranin = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace intr\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} instead of {{editores, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} or {{editoras, traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}
+ editortranfo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace pr\'{o}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} instead of {editor, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} or {editora, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}
+ editorstranfo = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace pr\'{o}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} instead of {editores, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} or {editoras, traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}
+ editortranaf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}{ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang,\addabbrvspace ep\'{\i}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} instead of {editor, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} or {editora, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}
+ editorstranaf = {{edici\'{o}n, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}{eds.,\addabbrvspace trads\adddotspace \lbx@sfromlang,\addabbrvspace ep\'{\i}l\adddotspace y anot\adddot}}, %% {edici\'{o}n, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} instead of {editores, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} or {editoras, traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}
+ translatorco = {{traducci\'{o}n \lbx@sfromlang\ y comentario}{trad\adddotspace \lbx@sfromlang\ y com\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y comentario} instead of {traductor y comentador} or {traductora y comentadora}
+ translatorsco = {{traducci\'{o}n \lbx@sfromlang\ y comentario}{trads\adddotspace \lbx@sfromlang\ y coms\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y comentario} instead of {traductores y comentadores} or {traductoras y comentadoras}
+ translatoran = {{traducci\'{o}n \lbx@sfromlang\ y notas}{trad\adddotspace \lbx@sfromlang\ y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y notas} instead of {traductor y anotador} or {traductora y anotadora}
+ translatorsan = {{traducci\'{o}n \lbx@sfromlang\ y notas}{trads\adddotspace \lbx@sfromlang\ y anots\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y notas} instead of {traductores y anotadores} or {traductoras y anotadoras}
+ translatorin = {{traducci\'{o}n \lbx@sfromlang\ e introducci\'{o}n}{trad\adddotspace \lbx@sfromlang\ e intr\adddot}}, %% {traducci\'{o}n \lbx@sfromlang e introducci\'{o}n} instead of {traductor \lbx@sfromlang e introducci\'{o}n} {traductora \lbx@sfromlang e introducci\'{o}n}
+ translatorsin = {{traducci\'{o}n \lbx@sfromlang\ e introducci\'{o}n}{trads\adddotspace \lbx@sfromlang\ e intr\adddot}}, %% {traducci\'{o}n \lbx@sfromlang e introducci\'{o}n} instead of {traductores \lbx@sfromlang e introducci\'{o}n} {traductoras \lbx@sfromlang e introducci\'{o}n}
+ translatorfo = {{traducci\'{o}n \lbx@sfromlang\ y pr\'{o}logo}{trad\adddotspace \lbx@sfromlang\ y pr\'{o}l\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y pr\'{o}logo} instead of {traductor \lbx@sfromlang y prologuista} or {traductora \lbx@sfromlang y prologuista}
+ translatorsfo = {{traducci\'{o}n \lbx@sfromlang\ y pr\'{o}logo}{trads\adddotspace \lbx@sfromlang\ y pr\'{o}l\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y pr\'{o}logo} instead of {traductores \lbx@sfromlang y prologuistas} or {traductoras \lbx@sfromlang y prologuistas}
+ translatoraf = {{traducci\'{o}n \lbx@sfromlang\ y ep\'{i}logo}{trad\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y ep\'{i}logo} instead of {traductor \lbx@sfromlang y epiloguista} or {traductora \lbx@sfromlang y epiloguista}
+ translatorsaf = {{traducci\'{o}n \lbx@sfromlang\ y ep\'{i}logo}{trads\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddot}}, %% {traducci\'{o}n \lbx@sfromlang y ep\'{i}logo} instead of {traductores \lbx@sfromlang y epiloguistas} or {traductoras \lbx@sfromlang y epiloguistas}
+ translatorcoin = {{traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentario}{trad\adddotspace \lbx@sfromlang, intr\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentario} instead of {traductor \lbx@sfromlang, introducci\'{o}n y comentario} or {traductora \lbx@sfromlang, introducci\'{o}n y comentario}
+ translatorscoin = {{traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios}{trads\adddotspace \lbx@sfromlang, intr\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx@sfromlang, introducci\'{o}n y comentarios} or {traductoras \lbx@sfromlang, introducci\'{o}n y comentarios}
+ translatorcofo = {{traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y comentario}{trad\adddotspace \lbx@sfromlang, pr\'{o}l\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentario} instead of {traductor \lbx@sfromlang, pr\'{o}logo y comentario} or {traductora \lbx@sfromlang, pr\'{o}logo y comentario}
+ translatorscofo = {{traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y comentarios}{trads\adddotspace \lbx@sfromlang, pr\'{o}l\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx@sfromlang, pr\'{o}logo y comentarios} or {traductoras \lbx@sfromlang, pr\'{o}logo y comentarios}
+ translatorcoaf = {{traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y comentario}{trad\adddotspace \lbx@sfromlang, ep\'{\i}l\adddotspace y com\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios} instead of {traductor \lbx@sfromlang, ep\'{i}logo y comentario} or {traductora \lbx@sfromlang, ep\'{i}logo y comentario}
+ translatorscoaf = {{traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y comentarios}{trads\adddotspace \lbx@sfromlang, ep\'{\i}l\adddotspace y coms\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y comentarios} instead of {traductores \lbx@sfromlang, ep\'{i}logo y comentarios} or {traductoras \lbx@sfromlang, ep\'{i}logo y comentarios}
+ translatoranin = {{traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}{trad\adddotspace \lbx@sfromlang, intr\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} instead of {traductor \lbx@sfromlang, introducci\'{o}n y notas} or {traductora \lbx@sfromlang, introducci\'{o}n y notas}
+ translatorsanin = {{traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas}{trads\adddotspace \lbx@sfromlang, intr\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, introducci\'{o}n y notas} instead of {traductores \lbx@sfromlang, introducci\'{o}n y notas} or {traductoras \lbx@sfromlang, introducci\'{o}n y notas}
+ translatoranfo = {{traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}{trad\adddotspace \lbx@sfromlang, pr\'{o}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} instead of {traductor \lbx@sfromlang, pr\'{o}logo y notas} or {traductora \lbx@sfromlang, pr\'{o}logo y notas}
+ translatorsanfo = {{traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas}{trads\adddotspace \lbx@sfromlang, pr\'{o}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, pr\'{o}logo y notas} instead of {traductores \lbx@sfromlang, pr\'{o}logo y notas} or {traductoras \lbx@sfromlang, pr\'{o}logo y notas}
+ translatoranaf = {{traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}{trad\adddotspace \lbx@sfromlang, ep\'{\i}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} instead of {traductor \lbx@sfromlang, ep\'{i}logo y notas} or {traductora \lbx@sfromlang, ep\'{i}logo y notas}
+ translatorsanaf = {{traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas}{trads\adddotspace \lbx@sfromlang, ep\'{\i}l\adddotspace y anot\adddot}}, %% {traducci\'{o}n \lbx@sfromlang, ep\'{i}logo y notas} instead of {traductores \lbx@sfromlang, ep\'{i}logo y notas} or {traductora \lbx@sfromlang, ep\'{i}logo y notas}
+ organizer = {{organizaci\'on}{org\adddot}}, %% {organizaci\'on} instead of {organizador} or {organizadora}
+ organizers = {{organizaci\'on}{orgs\adddot}}, %% {organizaci\'on} instead of {organizadores} or {organizadoras}
+ byorganizer = {{organizado por}{org\adddotspace por}},
+ byauthor = {{de}{de}},
+ byeditor = {{editado por}{ed\adddotspace por}},
+ bycompiler = {{compilado por}{comp\adddotspace por}},
+ byredactor = {{redacci\'on de}{red\adddotspace de}},
+ byreviser = {{revisado por}{rev\adddotspace por}},% FIXME: unsure
+ byreviewer = {{rese\~{n}ado por}{res\adddotspace por}},% FIXME: unsure
+ byfounder = {{fundado por}{fund\adddotspace por}},
+ bycontinuator = {{continuado por}{cont\adddotspace por}},
+ bycollaborator = {{colaboraci\'{o}n de}{col\adddotspace de}},% FIXME: unsure
+ bytranslator = {{traducido \lbx@lfromlang\ por}{trad\adddot \lbx@sfromlang\ por}},
+ bycommentator = {{comentado por}{com\adddotspace por}},
+ byannotator = {{anotado por}{anot\adddotspace por}},
+ withcommentator = {{con comentario de}{con com\adddotspace de}},
+ withannotator = {{con notas de}{con notas de}},
+ withintroduction = {{con introduci\'on de}{con intr\adddotspace de}},
+ withforeword = {{con pr\'ologo de}{con pr\'ol\adddotspace de}},
+ withafterword = {{con ep\'{i}logo de}{con ep\'{\i}l\adddotspace de}},
+ byeditortr = {{editado y traducido \lbx@lfromlang\ por}%
+ {ed\adddotspace y trad\adddot \lbx@sfromlang\ por}},
+ byeditorco = {{editado y comentado por}%
+ {ed\adddotspace y com\adddotspace por}},
+ byeditoran = {{editado y anotado por}%
+ {ed\adddotspace y anot\adddotspace por}},
+ byeditorin = {{editado e introducido por}%
+ {ed\adddotspace e intr\adddotspace por}},
+ byeditorfo = {{editado y prologado por}%
+ {ed\adddotspace y pr\'ol\adddotspace por}},
+ byeditoraf = {{editado y epilogado por}%
+ {ed\adddotspace y ep\'{\i}l\adddotspace por}},
+ byeditortrco = {{editado, traducido \lbx@lfromlang\ y comentado por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y com\adddotspace por}},
+ byeditortran = {{editado, traducido \lbx@lfromlang\ y anotado por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y anot\adddotspace por}},
+ byeditortrin = {{editado, traducido \lbx@lfromlang\ e introducido por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ e intr\adddotspace por}},
+ byeditortrfo = {{editado, traducido \lbx@lfromlang\ y prologado por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y pr\'ol\adddotspace por}},
+ byeditortraf = {{editado, traducido \lbx@lfromlang\ y epilogado por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddotspace por}},
+ byeditorcoin = {{editado, comentado e introducido por}%
+ {ed.,\addabbrvspace com\adddotspace e intr\adddotspace por}},
+ byeditorcofo = {{editado, comentado y prologado por}%
+ {ed.,\addabbrvspace com\adddotspace y pr\'ol\adddotspace por}},
+ byeditorcoaf = {{editado, comentado y epilogado por}%
+ {ed.,\addabbrvspace com\adddotspace y ep\'{\i}l\adddotspace por}},
+ byeditoranin = {{editado, anotado e introducido por}%
+ {ed.,\addabbrvspace anot\adddotspace e intr\adddotspace por}},
+ byeditoranfo = {{editado, anotado y prologado por}%
+ {ed.,\addabbrvspace anot\adddotspace y pr\'ol\adddotspace por}},
+ byeditoranaf = {{editado, anotado y epilogado por}%
+ {ed.,\addabbrvspace anot\adddotspace y ep\'{\i}l\adddotspace por}},
+ byeditortrcoin = {{editado, traducido \lbx@lfromlang, comentado e introducido por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace e intr\adddotspace por}},
+ byeditortrcofo = {{editado, traducido \lbx@lfromlang, comentado y prologado por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace y pr\'ol\adddotspace por}},
+ byeditortrcoaf = {{editado, traducido \lbx@lfromlang, comentado y epilogado por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, com\adddotspace y ep\'{\i}l\adddotspace por}},
+ byeditortranin = {{editado, traducido \lbx@lfromlang, anotado e introducido por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace e intr\adddotspace por}},
+ byeditortranfo = {{editado, traducido \lbx@lfromlang, anotado y prologado por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace y pr\'ol\adddotspace por}},
+ byeditortranaf = {{editado, traducido \lbx@lfromlang, anotado y epilogado por}%
+ {ed.,\addabbrvspace trad\adddotspace \lbx@sfromlang, anot\adddotspace y ep\'{\i}l\adddotspace por}},
+ bytranslatorco = {{traducido \lbx@lfromlang\ y comentado por}%
+ {trad\adddotspace \lbx@sfromlang\ y com\adddotspace por}},
+ bytranslatoran = {{traducido \lbx@lfromlang\ y anotado por}%
+ {trad\adddotspace \lbx@sfromlang\ y anot\adddotspace por}},
+ bytranslatorin = {{traducido \lbx@lfromlang\ e introducido por}%
+ {trad\adddotspace \lbx@sfromlang\ e introd\adddotspace por}},
+ bytranslatorfo = {{traducido \lbx@lfromlang\ y prologado por}%
+ {trad\adddotspace \lbx@sfromlang\ y pr\'ol\adddotspace por}},
+ bytranslatoraf = {{traducido \lbx@lfromlang\ y epilogado por}%
+ {trad\adddotspace \lbx@sfromlang\ y ep\'{\i}l\adddotspace por}},
+ bytranslatorcoin = {{traducido \lbx@lfromlang, comentado e introducido por}%
+ {trad\adddot \lbx@sfromlang, com\adddotspace e intr\adddotspace por}},
+ bytranslatorcofo = {{traducido \lbx@lfromlang, comentado y prologado por}%
+ {trad\adddot \lbx@sfromlang, com\adddotspace y pr\'ol\adddotspace por}},
+ bytranslatorcoaf = {{traducido \lbx@lfromlang, comentado y epilogado por}%
+ {trad\adddot \lbx@sfromlang, com\adddotspace y ep\'{\i}l\adddotspace por}},
+ bytranslatoranin = {{traducido \lbx@lfromlang, anotado e introducido por}%
+ {trad\adddot \lbx@sfromlang, anot\adddotspace e intr\adddotspace por}},
+ bytranslatoranfo = {{traducido \lbx@lfromlang, anotado y prologado por}%
+ {trad\adddot \lbx@sfromlang, anot\adddotspace y pr\'ol\adddotspace por}},
+ bytranslatoranaf = {{traducido \lbx@lfromlang, anotado y epilogado por}%
+ {trad\adddot \lbx@sfromlang, anot\adddotspace y ep\'{\i}l\adddotspace por}},
+ and = {{y}{y}},
+ andothers = {{y~col\adddot}{y~col\adddot}},
+ andmore = {{et\adddotspace al\adddot}{et\adddotspace al\adddot}},
+ volume = {{volumen}{vol\adddot}},
+ volumes = {{vol\'umenes}{vols\adddot}},
+ involumes = {{en}{en}},
+ jourvol = {{volumen}{vol\adddot}},
+ jourser = {{\'epoca}{\'ep\adddot}},
+ book = {{libro}{libro}},
+ part = {{parte}{parte}},
+ issue = {{n\'umero}{n\'um\adddot}},% FIXME: unsure
+ newseries = {{nueva \'epoca}{n\adddotspace \'ep\adddot}},
+ oldseries = {{antigua \'epoca}{ant\adddotspace \'ep\adddot}},
+ edition = {{edici\'on}{ed\adddot}},
+ reprint = {{reimpresi\'{o}n}{reimp\adddot}},
+ reprintof = {{reimpresi\'{o}n de}{reimp\adddotspace de}},
+ reprintas = {{reimpreso como}{reimp\adddotspace como}},
+ reprintfrom = {{reimpresi\'{o} de}{reimp\adddotspace de}},% FIXME: unsure. What's the difference between reprintof and reprintfrom?
+ reviewof = {{rese\~{n}a de}{rese\~{n}a de}},
+ translationof = {{traducci\'{o}n de}{trad\adddotspace de}},
+ translationas = {{traducido como}{trad\adddotspace como}},
+ translationfrom = {{traducido del}{trad\adddotspace del}},% FIXME: unsure.
+ origpubas = {{publicado originalmente como}{pub\adddotspace orig\adddotspace como}},% FIXME: check
+ origpubin = {{publicado originalmente en}{pub\adddot orig\adddot en}},% FIXME: check
+ astitle = {{con el t\'{\i}tulo}{con el t\'{\i}t\adddot}},% FIXME: check
+ bypublisher = {{por la editorial}{por la ed\adddot}},
+ nodate = {{sin fecha}{{}s\adddot f\adddot}},
+ page = {{p\'agina}{p\'ag\adddot}},
+ pages = {{p\'aginas}{p\'ags\adddot}},
+ column = {{columna}{col\adddot}},
+ columns = {{columnas}{cols\adddot}},
+ line = {{l\'{\i}nea}{l\adddot}},% FIXME: abbrev. unsure. There is no standard
+ lines = {{l\'{\i}neas}{ll\adddot}},% FIXME: abbrev. unsure. There is no standard
+ verse = {{verso}{v\adddot}},
+ verses = {{versos}{vv\adddot}},
+ section = {{secci\'{o}n}{sec\adddot}},
+ sections = {{secciones}{secs\adddot}},
+ paragraph = {{p\'{a}rrafo}{p\'{a}rr\adddot}},
+ paragraphs = {{p\'{a}rrafos}{p\'{a}rrs\adddot}},
+ pagetotal = {{p\'agina}{p\'ag\adddot}},
+ pagetotals = {{p\'aginas}{p\'ags\adddot}},
+ columntotal = {{columna}{col\adddot}},
+ columntotals = {{columnas}{cols\adddot}},
+ linetotal = {{l\'{\i}nea}{l\adddot}},% FIXME: abbrev. unsure. There is no standard
+ linetotals = {{l\'{\i}neas}{ll\adddot}},% FIXME: abbrev. unsure. There is no standard
+ versetotal = {{verso}{v\adddot}},
+ versetotals = {{versos}{vv\adddot}},
+ sectiontotal = {{secci\'{o}n}{sec\adddot}},
+ sectiontotals = {{secciones}{secs\adddot}},
+ paragraphtotal = {{p\'{a}rrafo}{p\'{a}rr\adddot}},
+ paragraphtotals = {{p\'{a}rrafos}{p\'{a}rrs\adddot}},
+ in = {{en}{en}},
+ inseries = {{en}{en}},
+ ofseries = {{de}{de}},
+ number = {{n\'umero}{n\sptext{o}}},
+ chapter = {{cap\'itulo}{cap\adddot}},
+ bathesis = {{Tesis de licenciatura}{Tesis de lic\adddot}},% FIXME: unsure.
+ mathesis = {{Tesis de maestr\'{\i}a}{Tesis de mtr\'{\i}a\adddot}},
+ phdthesis = {{Tesis doctoral}{Tesis doct\adddot}},
+ candthesis = {{Tesis de candidatura doctoral}{Tesis de cand\adddotspace doct\adddot}},% FIXME: unsure
+ resreport = {{reporte de investigaci\'{o}n}{rep\adddotspace de inv\adddot}},% FIXME: unsure
+ techreport = {{informe t\'ecnico}{inf\adddotspace t\'ec\adddot}},
+ software = {{programa}{prog\adddot}},
+ datacd = {{disco de datos}{CD de datos}},% FIXME: abbrev. unsure
+ audiocd = {{disco de audio}{CD de audio}},% FIXME: abbrev. unsure
+ version = {{versi\'on}{ver\adddot}},
+ url = {{direcci\'on}{direcci\'on}},
+ urlfrom = {{disponible desde}{disp\adddotspace desde}},% FIXME: unsure
+ urlseen = {{visitado}{visitado}},
+ inpreparation = {{en preparaci\'{o}n}{en prep\adddot}},
+ submitted = {{enviado}{enviado}},
+ forthcoming = {{pr\'oximamente}{prox\adddot}},
+ inpress = {{en prensa}{en prensa}},
+ prepublished = {{previamente publicado}{prepublicado}},
+ citedas = {{citado en adelante como}{cit\adddotspace en adelante como}},
+ thiscite = {{especialmente}{esp\adddot}},
+ seenote = {{ver nota}{ver n\adddot}},
+ quotedin = {{citado en}{cit\adddotspace en}},
+ idem = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idemsf = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idemsm = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idemsn = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idempf = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idempm = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idempn = {{\'{\i}dem}{\'{\i}d\adddot}},
+ idempp = {{\'{\i}dem}{\'{\i}d\adddot}},
+ ibidem = {{ib\'{\i}dem}{ib\'{\i}d\adddot}},
+ opcit = {{\'{o}p\adddotspace cit\adddot}{\'{o}p\adddot cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddot cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{s\adddot}{s\adddot}},
+ sequentes = {{ss\adddot}{ss\adddot}},
+ passim = {{p\'assim}{p\'assim}},
+ see = {{v\'ease}{vid\adddot}},
+ seealso = {{v\'ease tambi\'en}{vid\adddotspace tambi\'en}},
+ backrefpage = {{v\'ease p\'agina}{vid\adddotspace p\'ag\adddot}},
+ backrefpages = {{v\'eanse p\'aginas}{vid\adddotspace p\'ags\adddot}},
+ january = {{enero}{ene\adddot}},
+ february = {{febrero}{feb\adddot}},
+ march = {{marzo}{mar\adddot}},
+ april = {{abril}{abr\adddot}},
+ may = {{mayo}{mayo}},
+ june = {{junio}{jun\adddot}},
+ july = {{julio}{jul\adddot}},
+ august = {{agosto}{ago\adddot}},
+ september = {{septiembre}{sep\adddot}},
+ october = {{octubre}{oct\adddot}},
+ november = {{noviembre}{nov\adddot}},
+ december = {{diciembre}{dic\adddot}},
+ langamerican = {{ingl\'{e}s americano}{ingl\'{e}s americano}},
+ langbrazilian = {{brasile\~no}{brasile\~no}},
+ langbulgarian = {{b\'ulgaro}{b\'ulgaro}},
+ langcatalan = {{catal\'{a}n}{catal\'{a}n}},
+ langcroatian = {{croata}{croata}},
+ langczech = {{checo}{checo}},
+ langdanish = {{dan\'es}{dan\'es}},
+ langdutch = {{neerland\'es}{neerland\'es}},
+ langenglish = {{ingl\'es}{ingl\'es}},
+ langestonian = {{estonio}{estonio}},
+ langfinnish = {{fin\'{e}s}{fin\'{e}s}},
+ langfrench = {{franc\'es}{franc\'es}},
+ langgalician = {{gallego}{gallego}},
+ langgerman = {{alem\'an}{alem\'an}},
+ langgreek = {{griego}{griego}},
+ langhungarian = {{h\'ungaro}{h\'ungaro}},
+ langitalian = {{italiano}{italiano}},
+ langjapanese = {{japon\'es}{japon\'es}},
+ langlatin = {{lat\'{\i}n}{lat\'{\i}n}},
+ langlatvian = {{lituano}{lituano}},
+ langnorwegian = {{noruego}{noruego}},
+ langpolish = {{polaco}{polaco}},
+ langportuguese = {{portugu\'es}{portugu\'es}},
+ langrussian = {{ruso}{ruso}},
+ langslovak = {{eslovaco}{eslovaco}},
+ langslovene = {{esloveno}{esloveno}},
+ langspanish = {{espa\~nol}{espa\~nol}},
+ langswedish = {{sueco}{sueco}},
+ langukrainian = {{ucraniano}{ucraniano}},
+ fromamerican = {{del ingl\'{e}s americano}{del ingl\'{e}s americano}},
+ frombrazilian = {{del brasile\~no}{del brasile\~no}},
+ frombulgarian = {{del b\'ulgaro}{del b\'ulgaro}},
+ fromcatalan = {{del catal\'{a}n}{del catal\'{a}n}},
+ fromcroatian = {{del croata}{del croata}},
+ fromczech = {{del checo}{del checo}},
+ fromdanish = {{del dan\'es}{del dan\'es}},
+ fromdutch = {{del neerland\'es}{del neerland\'es}},
+ fromenglish = {{del ingl\'es}{del ingl\'es}},
+ fromestonian = {{del estonio}{del estonio}},
+ fromfinnish = {{del fin\'{e}s}{del fin\'{e}s}},
+ fromfrench = {{del franc\'es}{del franc\'es}},
+ fromgalician = {{del gallego}{del gallego}},
+ fromgerman = {{del alem\'an}{del alem\'an}},
+ fromgreek = {{del griego}{del griego}},
+ fromhungarian = {{del h\'ungaro}{del h\'ungaro}},
+ fromitalian = {{del italiano}{del italiano}},
+ fromjapanese = {{del japon\'es}{del japon\'es}},
+ fromlatin = {{del lat\'{\i}n}{del lat\'{\i}n}},
+ fromlatvian = {{del lituano}{del lituano}},
+ fromnorwegian = {{del noruego}{del noruego}},
+ frompolish = {{del polaco}{del polaco}},
+ fromportuguese = {{del portugu\'es}{del portugu\'es}},
+ fromrussian = {{del ruso}{del ruso}},
+ fromslovak = {{del eslovaco}{del eslovaco}},
+ fromslovene = {{del esloveno}{del esloveno}},
+ fromspanish = {{del espa\~nol}{del espa\~nol}},
+ fromswedish = {{del sueco}{del sueco}},
+ fromukrainian = {{del ucraniano}{del ucraniano}},
+ countryde = {{Alemania}{DE}},
+ countryeu = {{Uni\'on Europea}{EU}},
+ countryep = {{Uni\'on Europea}{EP}},
+ countryfr = {{Francia}{FR}},
+ countryuk = {{Reino Unido}{GB}},% FIXME: "Reino Unido" or "Gran Breta\~na"?
+ countryus = {{Estados Unidos}{US}},% FIXME: "Estados Unidos de Am\'erica"?
+ patent = {{patente}{pat\adddot}},
+ patentde = {{patente alemana}{pat\adddotspace alemana}},
+ patenteu = {{patente europea}{pat\adddotspace europea}},
+ patentfr = {{patente francesa}{pat\adddotspace francesa}},
+ patentuk = {{patente brit\'anica}{pat\adddotspace brit\'anica}},
+ patentus = {{patente estadounidense}{pat\adddotspace estadounidense}},
+ patreq = {{solicitud de patente}{sol\adddotspace de pat\adddot}},
+ patreqde = {{solicitud de patente alemana}{sol\adddotspace de pat\adddot alemana}},
+ patreqeu = {{solicitud de patente europea}{sol\adddotspace de pat\adddot europea}},
+ patreqfr = {{solicitud de patente francesa}{sol\adddotspace de pat\adddot francesa}},
+ patrequk = {{solicitud de patente brit\'anica}{sol\adddotspace de pat\adddot brit\'anica}},
+ patrequs = {{solicitud de patente estadounidense}{sol\adddotspace de pat\adddot estadounidense}},
+ file = {{archivo}{archivo}},
+ library = {{biblioteca}{bibl\adddot}},
+ abstract = {{resumen}{resumen}},
+ annotation = {{anotaci\'{o}n}{anot\adddot}},
+ commonera = {{era com\'un}{e\adddotspace c\adddot}},
+ beforecommonera = {{antes de la era com\'un}{a\adddotspace e\adddotspace c\adddot}},
+ annodomini = {{despu\'es de Cristo}{d\adddotspace C\adddot}},
+ beforechrist = {{antes de Cristo}{a\adddotspace C\adddot}},
+ circa = {{circa}{ca\adddot}},
+ spring = {{primavera}{prim\adddot}},
+ summer = {{verano}{ver\adddot}},
+ autumn = {{oto\~no}{ot\adddot}},
+ winter = {{invierno}{inv\adddot}},
+ am = {{a\adddotspace m\adddot}{a\adddot m\adddot}},
+ pm = {{p\adddotspace m\adddot}{p\adddot m\adddot}},
+}
+
+\protected\gdef\lbx@es@smartand{%
+ \ifcase\value{smartand}%
+ \or
+ \addspace
+ \expandafter\lbx@es@smartand@i
+ \or
+ \addspace y\nobreakspace
+ \expandafter\@gobble
+ \or
+ \addspace e\nobreakspace
+ \expandafter\@gobble
+ \else
+ \addspace\bibstring{and}\space
+ \expandafter\@gobble
+ \fi}
+
+\begingroup
+\catcode`\&=3
+
+\gdef\lbx@es@smartand@i#1{%
+ \begingroup
+ \def\forceY##1{\relax}%
+ \def\forceE##1{i\relax}%
+ \def\do##1{\let##1\@firstofone}%
+ \abx@dosingleaccents
+ \abx@dodoubleaccents
+ \def\'{'}\def\i{i}\def\j{j}%
+ \let\IeC\@firstofone
+ \def\@tabacckludge##1{\if\noexpand##1''\fi}%
+ \ifnum\catcode`\'=\active
+ \uccode`\~=`\'
+ \uppercase{\def~{'}}%
+ \fi
+ \ifnum\catcode`\"=\active
+ \uccode`\~=`\"
+ \uppercase{\let~\@empty}%
+ \fi
+ \ifnum\catcode`\~=\active
+ \let~\@empty
+ \fi
+ \let\protect\noexpand
+ \edef\lbx@tempa{#1}%
+ \expandafter\futurelet
+ \expandafter\lbx@tempa
+ \expandafter\lbx@es@smartand@ii
+ \lbx@tempa&}
+
+\gdef\lbx@es@smartand@ii{%
+ \ifcat\bgroup\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@ii##1}%
+ \else\ifcat\noexpand~\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@ii}%
+ \else\ifnum 0%
+ \if h\noexpand\lbx@tempa 1\fi
+ \if H\noexpand\lbx@tempa 1\fi
+ >0 %
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@ii}%
+ \else\ifnum 0%
+ \if i\noexpand\lbx@tempa 1\fi
+ \if y\noexpand\lbx@tempa 1\fi
+ \if I\noexpand\lbx@tempa 1\fi
+ \if Y\noexpand\lbx@tempa 1\fi
+ >0 %
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@iii}%
+ \else\if '\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@iv}%
+ \else
+ \let\lbx@tempa\lbx@es@smartand@y
+ \fi\fi\fi\fi\fi
+ \lbx@tempa}
+
+\gdef\lbx@es@smartand@iii{%
+ \ifcat\bgroup\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@iii##1}%
+ \else\ifcat\noexpand~\noexpand\lbx@tempa
+ \let\lbx@tempa\lbx@es@smartand@e
+ \else\if '\noexpand\lbx@tempa
+ \def\lbx@tempa##1{\futurelet\lbx@tempa\lbx@es@smartand@iii}%
+ \else\ifnum 0%
+ \if a\noexpand\lbx@tempa 1\fi
+ \if e\noexpand\lbx@tempa 1\fi
+ \if i\noexpand\lbx@tempa 1\fi
+ \if o\noexpand\lbx@tempa 1\fi
+ \if u\noexpand\lbx@tempa 1\fi
+ \if A\noexpand\lbx@tempa 1\fi
+ \if E\noexpand\lbx@tempa 1\fi
+ \if I\noexpand\lbx@tempa 1\fi
+ \if O\noexpand\lbx@tempa 1\fi
+ \if U\noexpand\lbx@tempa 1\fi
+ >0 %
+ \let\lbx@tempa\lbx@es@smartand@y
+ \else
+ \let\lbx@tempa\lbx@es@smartand@e
+ \fi\fi\fi\fi
+ \lbx@tempa}
+
+\gdef\lbx@es@smartand@iv{%
+ \if i\lbx@tempa
+ \expandafter\lbx@es@smartand@e
+ \else
+ \expandafter\lbx@es@smartand@y
+ \fi}
+
+\gdef\lbx@es@smartand@e#1&{\endgroup e\nobreakspace}
+\gdef\lbx@es@smartand@y#1&{\endgroup y\nobreakspace}
+
+\endgroup
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/swedish.lbx b/macros/latex/contrib/biblatex/latex/lbx/swedish.lbx
new file mode 100644
index 0000000000..d0b3cf1747
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/swedish.lbx
@@ -0,0 +1,510 @@
+\ProvidesFile{swedish.lbx}
+[\abx@lbxid]
+
+% Translator's notes (Per Starb\"ack)
+%
+% One of the sources used is:
+%
+% Hedberg, Sten. Bibliografiska referenser. SIS-STG Handbok 165.
+% Stockholm: Standardiseringskommissionen i Sverige (SIS), 1991. ISBN
+% 91-7162-323-X.
+%
+% which incorporates Swedish standard SS 03 82 07 which is a
+% translation of ISO 690, Documentation -- Bibliographic references --
+% Content, form and structure, 2. ed., 1987.
+%
+% In that standard lots of things aren't translated, but left as in
+% the original works. So in the same bibliography will be a work that
+% is "2. ed." and another that is "2. Aufl.".
+%
+% I've almost only used abbrevations found in the appendix
+% "Bibliografiska f\"orkortningar" there (though not a part of the
+% standard).
+
+\DeclareRedundantLanguages{swedish}{swedish}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textendash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\stripzeros{#1}\adddot}%
+ % The following is for ordinals like "2:a" and "12:e".
+ % (Hedberg uses just "2." and "12." as above;
+ % others use "2" and "12".)
+ %\protected\def\mkbibordinal#1{%
+ % \begingroup
+ % \@tempcnta0#1\relax\number\@tempcnta\addcolon
+ % \@whilenum\@tempcnta>100\do{\advance\@tempcnta-100\relax}%
+ % \ifnum\@tempcnta>20
+ % \@whilenum\@tempcnta>9\do{\advance\@tempcnta-10\relax}%
+ % \fi
+ % \ifcase\@tempcnta e\or a\or a\else e\fi
+ % \endgroup}%
+ \protected\def\mkbibmascord{\mkbibordinal}%
+ \protected\def\mkbibfemord{\mkbibordinal}%
+ \protected\def\mkbibneutord{\mkbibordinal}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#1}
+ {}
+ {\iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \iffieldundef{#2}{}{\mbox{-}}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#3}{}{\mbox{-}}}%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}}}%
+ \savecommand\mkdaterangeterse
+ \protected\def\mkdaterangeterse{%
+ \BibliographyWarning{%
+ Date format 'terse' not applicable to\MessageBreak
+ Swedish dates. Using format 'short' instead}%
+ \mkdaterangefull{short}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkdaterangeterse
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Litteraturf\"orteckning}{Litteratur}},
+ references = {{Referenser}{Referenser}},
+ shorthands = {{F\"orkortningar}{F\"orkortningar}},
+ % editor may be "utgivare (utg.)" or "redakt\"or (red.)"
+ editor = {{utgivare}{utg\adddot}},
+ editors = {{utgivare}{utg\adddot}},
+ compiler = {{sammanst\"allare}{sammanst\adddot}},
+ compilers = {{sammanst\"allare}{sammanst\adddot}},
+ redactor = {{redakt\"or}{red\adddot}},
+ redactors = {{redakt\"orer}{red\adddot}},
+% reviser = {{}{}},% FIXME: missing
+% revisers = {{}{}},% FIXME: missing
+% founder = {{}{}},% FIXME: missing
+% founders = {{}{}},% FIXME: missing
+% continuator = {{}{}},% FIXME: missing
+% continuators = {{}{}},% FIXME: missing
+% collaborator = {{}{}},% FIXME: missing
+% collaborators = {{}{}},% FIXME: missing
+ translator = {{\"overs\"attare}{\"overs\adddot}},
+ translators = {{\"overs\"attare}{\"overs\adddot}},
+ commentator = {{kommentar}{komm\adddot}},% "commentator" awkward, we use "commentary"
+ commentators = {{kommentar}{komm\adddot}},% "commentator" awkward, we use "commentary"
+ annotator = {{f\"orklaringar}{f\"orkl\adddot}},% "annotator" awkward, we use "annotations"
+ annotators = {{f\"orklaringar}{f\"orkl\adddot}},% "annotator" awkward, we use "annotations"
+ commentary = {{kommentar}{komm\adddot}},
+ annotations = {{f\"orklaringar}{f\"orkl\adddot}},
+ introduction = {{inledning}{inl\adddot}},
+ foreword = {{f\"orord}{f\"orord}},
+ afterword = {{efterord}{efterord}},
+ editortr = {{utgivare och \"overs\"attare}{utg\adddot\ och \"overs\adddot}},
+ editorstr = {{utgivare och \"overs\"attare}{utg\adddot\ och \"overs\adddot}},
+% editorco = {{}{}},% FIXME: missing
+% editorsco = {{}{}},% FIXME: missing
+% editoran = {{}{}},% FIXME: missing
+% editorsan = {{}{}},% FIXME: missing
+% editorin = {{}{}},% FIXME: missing
+% editorsin = {{}{}},% FIXME: missing
+% editorfo = {{}{}},% FIXME: missing
+% editorsfo = {{}{}},% FIXME: missing
+% editoraf = {{}{}},% FIXME: missing
+% editorsaf = {{}{}},% FIXME: missing
+% editortrco = {{}{}},% FIXME: missing
+% editorstrco = {{}{}},% FIXME: missing
+% editortran = {{}{}},% FIXME: missing
+% editorstran = {{}{}},% FIXME: missing
+% editortrin = {{}{}},% FIXME: missing
+% editorstrin = {{}{}},% FIXME: missing
+% editortrfo = {{}{}},% FIXME: missing
+% editorstrfo = {{}{}},% FIXME: missing
+% editortraf = {{}{}},% FIXME: missing
+% editorstraf = {{}{}},% FIXME: missing
+% editorcoin = {{}{}},% FIXME: missing
+% editorscoin = {{}{}},% FIXME: missing
+% editorcofo = {{}{}},% FIXME: missing
+% editorscofo = {{}{}},% FIXME: missing
+% editorcoaf = {{}{}},% FIXME: missing
+% editorscoaf = {{}{}},% FIXME: missing
+% editoranin = {{}{}},% FIXME: missing
+% editorsanin = {{}{}},% FIXME: missing
+% editoranfo = {{}{}},% FIXME: missing
+% editorsanfo = {{}{}},% FIXME: missing
+% editoranaf = {{}{}},% FIXME: missing
+% editorsanaf = {{}{}},% FIXME: missing
+% editortrcoin = {{}{}},% FIXME: missing
+% editorstrcoin = {{}{}},% FIXME: missing
+% editortrcofo = {{}{}},% FIXME: missing
+% editorstrcofo = {{}{}},% FIXME: missing
+% editortrcoaf = {{}{}},% FIXME: missing
+% editorstrcoaf = {{}{}},% FIXME: missing
+% editortranin = {{}{}},% FIXME: missing
+% editorstranin = {{}{}},% FIXME: missing
+% editortranfo = {{}{}},% FIXME: missing
+% editorstranfo = {{}{}},% FIXME: missing
+% editortranaf = {{}{}},% FIXME: missing
+% editorstranaf = {{}{}},% FIXME: missing
+% translatorco = {{}{}},% FIXME: missing
+% translatorsco = {{}{}},% FIXME: missing
+% translatoran = {{}{}},% FIXME: missing
+% translatorsan = {{}{}},% FIXME: missing
+% translatorin = {{}{}},% FIXME: missing
+% translatorsin = {{}{}},% FIXME: missing
+% translatorfo = {{}{}},% FIXME: missing
+% translatorsfo = {{}{}},% FIXME: missing
+% translatoraf = {{}{}},% FIXME: missing
+% translatorsaf = {{}{}},% FIXME: missing
+% translatorcoin = {{}{}},% FIXME: missing
+% translatorscoin = {{}{}},% FIXME: missing
+% translatorcofo = {{}{}},% FIXME: missing
+% translatorscofo = {{}{}},% FIXME: missing
+% translatorcoaf = {{}{}},% FIXME: missing
+% translatorscoaf = {{}{}},% FIXME: missing
+% translatoranin = {{}{}},% FIXME: missing
+% translatorsanin = {{}{}},% FIXME: missing
+% translatoranfo = {{}{}},% FIXME: missing
+% translatorsanfo = {{}{}},% FIXME: missing
+% translatoranaf = {{}{}},% FIXME: missing
+% translatorsanaf = {{}{}},% FIXME: missing
+% organizer = {{}{}},% FIXME: missing
+% organizers = {{}{}},% FIXME: missing
+% byorganizer = {{}{}},% FIXME: missing
+ byauthor = {{av}{av}},
+ byeditor = {{utgiven av}{utg\adddotspace av}},
+ bycompiler = {{sammanst\"alld av}{sammanst\adddotspace av}},
+ byredactor = {{bearbetad av}{bearb\adddotspace av}},
+ byreviser = {{reviderad av}{rev\adddotspace av}},
+% byreviewer = {{}{}},% FIXME: missing
+% byfounder = {{}{}},% FIXME: missing
+% bycontinuator = {{}{}},% FIXME: missing
+% bycollaborator = {{}{}},% FIXME: missing
+ bytranslator = {{\"oversatt \lbx@lfromlang\ av}{\"overs\adddot\ \lbx@sfromlang\ av}},
+ bycommentator = {{kommenterad av}{kommenterad av}},
+ byannotator = {{f\"orklarad av}{f\"orklarad av}},
+ withcommentator = {{med kommentarer av}{med kommentarer av}},
+ withannotator = {{med f\"orklaringar av}{med f\"orklaringar av}},
+ withintroduction = {{med inledning av}{med inl\adddot\ av}},
+ withforeword = {{med f\"orord av}{med f\"orord av}},
+ withafterword = {{med efterord av}{med efterord av}},
+ byeditortr = {{utgiven och \"oversatt \lbx@lfromlang\ av}%
+ {utg\adddotspace och \"overs\adddot\ \lbx@sfromlang\ av}},
+ byeditorco = {{utgiven och kommenterad av}%
+ {utg\adddotspace och kommenterad av}},
+ byeditoran = {{utgiven och f\"orklarad av}%
+ {utg\adddotspace och f\"orklarad av}},
+ byeditorin = {{utgiven och f\"orsedd med inledning av}%
+ {utg\adddotspace och med inl\adddot\ av}},
+ byeditorfo = {{utgiven och f\"orsedd med f\"orord av}%
+ {utg\adddotspace och med f\"orord av}},
+ byeditoraf = {{utgiven och f\"orsedd med efterord av}%
+ {utg\adddotspace och med efterord av}},
+ byeditortrco = {{utgiven, \"oversatt \lbx@lfromlang\ och kommenterad av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och kommenterad av}},
+ byeditortran = {{utgiven, \"oversatt \lbx@lfromlang\ och f\"orklarad av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och f\"orklarad av}},
+ byeditortrin = {{utgiven, \"oversatt \lbx@lfromlang\ och f\"orsedd med inledning av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och med inl\adddot\ av}},
+ byeditortrfo = {{utgiven, \"oversatt \lbx@lfromlang\ och f\"orsedd med f\"orord av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och med f\"orord av}},
+ byeditortraf = {{utgiven, \"oversatt \lbx@lfromlang\ och f\"orsedd med efterord av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang\ och med efterord av}},
+ byeditorcoin = {{utgiven, kommenterad och f\"orsedd med inledning av}%
+ {utg.,\addabbrvspace kommenterad och med inl\adddot\ av}},
+ byeditorcofo = {{utgiven, kommenterad och f\"orsedd med f\"orord av}%
+ {utg.,\addabbrvspace kommenterad och med f\"orord av}},
+ byeditorcoaf = {{utgiven, kommenterad och f\"orsedd med efterord av}%
+ {utg.,\addabbrvspace kommenterad och med efterord av}},
+ byeditoranin = {{utgiven, f\"orklarad och f\"orsedd med inledning av}%
+ {utg.,\addabbrvspace f\"orklarad och med inl\adddot\ av}},
+ byeditoranfo = {{utgiven, f\"orklarad och f\"orsedd med f\"orord av}%
+ {utg.,\addabbrvspace f\"orklarad och med f\"orord av}},
+ byeditoranaf = {{utgiven, f\"orklarad och f\"orsedd med efterord av}%
+ {utg.,\addabbrvspace f\"orklarad och med efterord av}},
+ byeditortrcoin = {{utgiven, \"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med inledning av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, kommenterad och med inl\adddot\ av}},
+ byeditortrcofo = {{utgiven, \"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med f\"orord av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, kommenterad och med f\"orord av}},
+ byeditortrcoaf = {{utgiven, \"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med efterord av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, kommenterad och med efterord av}},
+ byeditortranin = {{utgiven, \"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med inledning av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, f\"orklarad och med inl\adddot\ av}},
+ byeditortranfo = {{utgiven, \"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med f\"orord av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, f\"orklarad och med f\"orord av}},
+ byeditortranaf = {{utgiven, \"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med efterord av}%
+ {utg.,\addabbrvspace \"overs\adddot\ \lbx@sfromlang, f\"orklarad och med efterord av}},
+ bytranslatorco = {{\"oversatt \lbx@lfromlang\ och kommenterad av}%
+ {\"overs\adddot\ \lbx@sfromlang\ och kommenterad av}},
+ bytranslatoran = {{\"oversatt \lbx@lfromlang\ och f\"orklarad av}%
+ {\"overs\adddot\ \lbx@sfromlang\ och f\"orklarad av}},
+ bytranslatorin = {{\"oversatt \lbx@lfromlang\ och f\"orsedd med inledning av}%
+ {\"overs\adddot\ \lbx@sfromlang\ och med inl\adddot\ av}},
+ bytranslatorfo = {{\"oversatt \lbx@lfromlang\ och f\"orsedd med f\"orord av}%
+ {\"overs\adddot\ \lbx@sfromlang\ och med f\"orord av}},
+ bytranslatoraf = {{\"oversatt \lbx@lfromlang\ och f\"orsedd med efterord av}%
+ {\"overs\adddot\ \lbx@sfromlang\ och med efterord av}},
+ bytranslatorcoin = {{\"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med inledning av}%
+ {\"overs\adddot\ \lbx@sfromlang, kommenterad och med inl\adddot\ av}},
+ bytranslatorcofo = {{\"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med f\"ordord av}%
+ {\"overs\adddot\ \lbx@sfromlang, kommenterad och med f\"ordord av}},
+ bytranslatorcoaf = {{\"oversatt \lbx@lfromlang, kommenterad och f\"orsedd med efterord av}%
+ {\"overs\adddot\ \lbx@sfromlang, kommenterad och med efterord av}},
+ bytranslatoranin = {{\"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med inledning av}%
+ {\"overs\adddot\ \lbx@sfromlang, f\"orklarad med inledning\ av}},
+ bytranslatoranfo = {{\"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med f\"orord av}%
+ {\"overs\adddot\ \lbx@sfromlang, f\"orklarad med f\"orord av}},
+ bytranslatoranaf = {{\"oversatt \lbx@lfromlang, f\"orklarad och f\"orsedd med efterord av}%
+ {\"overs\adddot\ \lbx@sfromlang, f\"orklarad med efterord av}},
+ and = {{och}{och}},
+ % Hedberg uses "et al.", but in an all-Swedish lists "m.fl." may be used
+ andothers = {{m.\,fl\adddot}{m.\,fl\adddot}},
+ andmore = {{m.\,fl\adddot}{m.\,fl\adddot}},
+ volume = {{volym}{vol\adddot}},
+ volumes = {{volymer}{vol\adddot}},
+ involumes = {{i}{i}},
+ jourvol = {{\aa rg\aa ng}{\aa rg\adddot}},
+ jourser = {{serie}{ser\adddot}},
+ book = {{bok}{bok}},
+ part = {{del}{del}},
+% issue = {{}{}},% FIXME: missing
+ % Both "ny serie (N.S.)" and "ny f\"oljd (N.F.)" are common
+ newseries = {{ny f\"oljd}{N.\,F\adddot}},
+ oldseries = {{gammal f\"oljd}{gammal f\"oljd}},
+ % In Swedish books both "upplaga" and "utg\aa va" are common.
+ % Hedberg (p. 82f.) uses the later in the terminology section
+ % (but uses whatever is given in a particular book otherwise).
+% edition = {{upplaga}{uppl\adddot}},
+ edition = {{utg\aa van}{utg\adddot}},
+ reprint = {{nytryck}{nytr\adddot}},
+ reprintof = {{nytryck av}{nytr\adddotspace av}},
+ reprintas = {{nytryckt som}{nytr\adddotspace som}},
+ reprintfrom = {{nytryckt fr\aa n}{nytryckt fr\aa n}},% FIXME: check
+ translationof = {{\"overs\"attning av}{\"overs\adddot\ av}},
+ translationas = {{\"overs\"attning som}{\"overs\adddot\ som}},
+ translationfrom = {{\"overs\"attning fr\aa n}{\"overs\adddotspace fr\aa n}},
+ reviewof = {{recension av}{recension av}},
+ origpubas = {{ursprungligen publicerad som}{ursprunglingen publ\adddot\ som}},
+ origpubin = {{ursprungligen publicerad}{ursprungligen publ\adddot}},
+ astitle = {{som}{som}},
+ bypublisher = {{av}{av}},
+ nodate = {{u\adddot d\adddot}{n\adddot d\adddot}},%FIXME
+ page = {{sidan}{s\adddot}},
+ pages = {{sidorna}{s\adddot}},
+ column = {{spalt}{sp\adddot}},
+ columns = {{spalterna}{sp\adddot}},
+ line = {{rad}{r\adddot}},
+ lines = {{raderna}{r\adddot}},
+ verse = {{vers}{v\adddot}},
+ verses = {{verserna}{v\adddot}},
+ section = {{paragraf}{\S}},
+ sections = {{paragraferna}{\S}},
+ % "paragraph" is "stycke" in Swedish, but this is probably
+ % more suitable for works referenced by paragraphs
+ paragraph = {{paragraf}{\S}},
+ paragraphs = {{paragraferna}{\S}},
+ pagetotal = {{sida}{s\adddot}},
+ pagetotals = {{sidor}{s\adddot}},
+ columntotal = {{spalt}{sp\adddot}},
+ columntotals = {{spalter}{sp\adddot}},
+ linetotal = {{rad}{r\adddot}},
+ linetotals = {{rader}{r\adddot}},
+ versetotal = {{vers}{v\adddot}},
+ versetotals = {{verser}{v\adddot}},
+ sectiontotal = {{paragraf}{\S}},
+ sectiontotals = {{paragrafer}{\S}},
+ paragraphtotal = {{paragraf}{\S}},
+ paragraphtotals = {{paragrafer}{\S}},
+ in = {{i}{i}},
+ inseries = {{i}{i}},
+ ofseries = {{i}{i}},
+ number = {{nummer}{nr}},
+ chapter = {{kapitel}{kap\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{examensarbete}{examensarb\adddot}},
+ phdthesis = {{doktorsavhandling}{diss\adddot}},
+ candthesis = {{kandidatavhandling}{kand.avh}},% FIXME: unsure
+ resreport = {{forskningsrapport}{forskn.rapport}},
+ techreport = {{teknisk rapport}{tekn\adddotspace rapport}},
+ % Hedberg (p. 57) uses "Datafil" and adds that it's possible to
+ % render more precisely "[Programfil] resp [Textfil] e. dyl."
+ software = {{datorprogram}{datorprogram}},
+ datacd = {{data-cd}{data-cd}},
+ audiocd = {{ljud-cd}{ljud-cd}},
+ version = {{version}{version}},
+ url = {{webbadress}{URL}},
+ urlfrom = {{tillg\"anglig fr\aa n}{tillg\"anglig fr\aa n}},
+ urlseen = {{senast h\"amtad}{h\"amtad}},
+% inpreparation = {{}{}},% FIXME: missing
+% submitted = {{}{}},% FIXME: missing
+% forthcoming = {{}{}},% FIXME: missing
+% inpress = {{}{}},% FIXME: missing
+% prepublished = {{}{}},% FIXME: missing
+ citedas = {{h\"adanefter citerad som}{h\"adanefter cit\adddotspace som}},
+% thiscite = {{}{}},% FIXME: missing
+ seenote = {{se not}{se not}},
+ quotedin = {{citerad i}{cit\adddotspace i}},
+ idem = {{densamma}{dens\adddot}},% or Latin: idem
+ idemsf = {{densamma}{dens\adddot}},
+ idemsm = {{densamme}{dens\adddot}},
+ idemsn = {{densamma}{dens\adddot}},
+ idempf = {{desamma}{desamma}},
+ idempm = {{desamma}{desamma}},
+ idempn = {{desamma}{desamma}},
+ idempp = {{desamma}{desamma}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{a.\,a\adddot}{a.\,a\adddot}},% or Latin: op. cit.
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{j\"amf\"or}{jfr}},
+ sequens = {{f\adddot}{f\adddot}},
+ sequentes = {{ff\adddot}{ff\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{se}{se}},
+ seealso = {{se \"aven}{se \"aven}},
+ backrefpage = {{se sidan}{se s\adddot}},
+ backrefpages = {{se sidorna}{se s\adddot}},
+ january = {{januari}{jan\adddot}},
+ february = {{februari}{febr\adddot}},
+ march = {{mars}{mars}},
+ april = {{april}{april}},
+ may = {{maj}{maj}},
+ june = {{juni}{juni}},
+ july = {{juli}{juli}},
+ august = {{augusti}{aug\adddot}},
+ september = {{september}{sept\adddot}},
+ october = {{oktober}{okt\adddot}},
+ november = {{november}{nov\adddot}},
+ december = {{december}{dec\adddot}},
+ langamerican = {{amerikanska}{amerikanska}},
+% langbrazilian = {{}{}},% FIXME: missing
+% langbulgarian = {{}{}},% FIXME: missing
+ langcatalan = {{katalanska}{katalanska}},
+ langcroatian = {{kroatiska}{kroatiska}},
+ langczech = {{tjeckiska}{tjeckiska}},
+ langdanish = {{danska}{danska}},
+ langdutch = {{nederl\"andska}{nederl\"andska}},
+ langenglish = {{engelska}{engelska}},
+% langestonian = {{}{}},% FIXME: missing
+ langfinnish = {{finska}{finska}},
+ langfrench = {{franska}{franska}},
+ langgalician = {{galiciska}{galiciska}},
+ langgerman = {{tyska}{tyska}},
+ langgreek = {{grekiska}{grekiska}},
+% langhungarian = {{}{}}, % FIXME: missing
+ langitalian = {{italienska}{italienska}},
+ langlatin = {{latin}{latin}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{norska}{norska}},
+ langpolish = {{polska}{polska}},
+ langportuguese = {{portugisiska}{portugisiska}},
+ langrussian = {{ryska}{ryska}},
+% langslovene = {{}{}},% FIXME: missing
+ langspanish = {{spanska}{spanska}},
+ langswedish = {{svenska}{svenska}},
+ fromamerican = {{fr\aa n amerikanska}{fr\aa n amerikanska}},
+% frombrazilian = {{}{}},% FIXME: missing
+% frombulgarian = {{}{}},% FIXME: missing
+ fromcatalan = {{fr\aa n katalanska}{fr\aa n katalanska}},
+ fromcroatian = {{fr\aa n kroatiska}{fr\aa n kroatiska}},
+ fromczech = {{fr\aa n tjeckiska}{fr\aa n tjeckiska}},
+ fromdanish = {{fr\aa n danska}{fr\aa n danska}},
+ fromdutch = {{fr\aa n nederl\"andska}{fr\aa n nederl\"andska}},
+ fromenglish = {{fr\aa n engelska}{fr\aa n engelska}},
+% fromestonian = {{}{}},% FIXME: missing
+ fromfinnish = {{fr\aa n finska}{fr\aa n finska}},
+ fromfrench = {{fr\aa n franska}{fr\aa n franska}},
+ fromgalician = {{fr\aa n galiciska}{fr\aa n galiciska}},
+ fromgerman = {{fr\aa n tyska}{fr\aa n tyska}},
+ fromgreek = {{fr\aa n grekiska}{fr\aa n grekiska}},
+% fromhungarian = {{}{}}, % FIXME: missing
+ fromitalian = {{fr\aa n italienska}{fr\aa n italienska}},
+ fromlatin = {{fr\aa n latin}{fr\aa n latin}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{fr\aa n norska}{fr\aa n norska}},
+ frompolish = {{fr\aa n polska}{fr\aa n polska}},
+ fromportuguese = {{fr\aa n portugisiska}{fr\aa n portugisiska}},
+ fromrussian = {{fr\aa n ryska}{fr\aa n ryska}},
+% fromslovak = {{}{}},% FIXME: missing
+% fromslovene = {{}{}},% FIXME: missing
+ fromspanish = {{fr\aa n spanska}{fr\aa n spanska}},
+ fromswedish = {{fr\aa n svenska}{fr\aa n svenska}},
+ countryde = {{Tyskland}{DE}},
+ countryep = {{Europeiska unionen}{EP}},
+ countryeu = {{Europeiska unionen}{EU}},
+ countryfr = {{Frankrike}{FR}},
+ countryuk = {{Storbritannien}{GB}},
+ countryus = {{USA}{US}},
+ patent = {{patent}{patent}},
+ patentde = {{tyskt patent}{tyskt patent}},
+ patenteu = {{europeiskt patent}{europeiskt patent}},
+ patentfr = {{franskt patent}{franskt patent}},
+ patentuk = {{brittiskt patent}{brittiskt patent}},
+ patentus = {{amerikanskt patent}{amerikanskt patent}},
+ patreq = {{patentans\"okan}{patentans\"okan}},
+ patreqde = {{ans\"okan om tyskt patent}{ans\"okan om tyskt patent}},
+ patreqeu = {{ans\"okan om europeiskt patent}{ans\"okan om europeiskt patent}},
+ patreqfr = {{ans\"okan om franskt patent}{ans\"okan om franskt patent}},
+ patrequk = {{ans\"okan om brittiskt patent}{ans\"okan om brittiskt patent}},
+ patrequs = {{ans\"okan om amerikanskt patent}{ans\"okan om amerikanskt patent}},
+ file = {{fil}{fil}},
+ library = {{bibliotek}{bibliotek}},
+ abstract = {{sammandrag}{sammandrag}},
+ annotation = {{anm\"arkning}{anm\adddot}},
+ commonera = {{v\"asterl\"andsk tider\"akning}{v\adddot t\adddot}},
+ beforecommonera = {{f\"ore v\"asterl\"andsk tider\"akning}{f\adddot v\adddot t\adddot}},
+ annodomini = {{efter Kristus}{e\adddot Kr\adddot}},
+ beforechrist = {{f\"ore Kristus}{f\adddot Kr\adddot}},
+% circa = {{}{}},% FIXME: missing
+% spring = {{}{}},% FIXME: missing
+% summer = {{}{}},% FIXME: missing
+% autumn = {{}{}},% FIXME: missing
+% winter = {{}{}},% FIXME: missing
+ am = {{fm}{fm}},
+ pm = {{em}{em}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/swissgerman.lbx b/macros/latex/contrib/biblatex/latex/lbx/swissgerman.lbx
new file mode 100644
index 0000000000..f82ad9b057
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/swissgerman.lbx
@@ -0,0 +1,24 @@
+\ProvidesFile{swissgerman.lbx}
+[\abx@lbxid]
+
+\InheritBibliographyExtras{german}
+
+% Swiss time sep is a dot
+\DeclareBibliographyExtras{%
+ \protected\def\bibtimesep{.}%
+}
+
+% One point where Swiss German spelling
+% differs from Austrian and German German
+% is the (non-)use of \ss
+\DeclareBibliographyStrings{%
+ inherit = {german},
+ countryuk = {{Grossbritannien}{GB}},
+}
+
+\DeclareHyphenationExceptions{%
+ Pa-tent-an-mel-dung
+ Pa-tent-an-meld
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex/latex/lbx/ukrainian.lbx b/macros/latex/contrib/biblatex/latex/lbx/ukrainian.lbx
new file mode 100644
index 0000000000..b5be8984c5
--- /dev/null
+++ b/macros/latex/contrib/biblatex/latex/lbx/ukrainian.lbx
@@ -0,0 +1,602 @@
+\ProvidesFile{ukrainian.lbx}
+[\abx@lbxid]
+
+\DeclareRedundantLanguages{ukrainian}{ukrainian}
+
+% This file requires UTF-8 support!
+
+\lbx@ifutfinput
+ {}
+ {\PackageError{biblatex}
+ {Ukrainian requires UTF-8 support}
+ {The 'ukrainian.lbx' file requires UTF-8 encoding but you
+ seem\MessageBreak to be using a different encoding.
+ This is a fatal error. I will\MessageBreak abort loading
+ ukrainian.lbx now.}%
+ \endinput}
+
+\NewBibliographyString{% Used only Ukrainian for month checks
+ datejanuary,
+ datefebruary,
+ datemarch,
+ dateapril,
+ datemay,
+ datejune,
+ datejuly,
+ dateaugust,
+ dateseptember,
+ dateoctober,
+ datenovember,
+ datedecember%
+}
+
+\DeclareBibliographyExtras{%
+ \protected\def\bibrangedash{%
+ \textemdash\penalty\hyphenpenalty}% breakable dash
+ \let\finalandcomma=\empty
+ \let\finalandsemicolon=\empty
+ \protected\def\mkbibordinal#1{\mkbibmascord}%
+ \protected\def\mkbibmascord#1{#1-й}%
+ \protected\def\mkbibfemord#1{#1-я}%
+ \protected\def\mkbibneutord#1{#1-е}%
+ \protected\def\mkbibdatelong#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\nobreakspace}}%
+ \iffieldundef{#2}
+ {}
+ {\iffieldundef{#3}
+ {\mkbibmonth{\thefield{#2}}}
+ {\lbx@ru@mkbibdatemonth{\thefield{#2}}}%
+ \iffieldundef{#1}{}{\space}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\adddot}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\adddot}}%
+ \iffieldbibstring{#1}
+ {\bibstring{\thefield{#1}}}
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+ \savecommand\mkbibordedition
+ \savecommand\mkbibordseries
+ \def\mkbibordedition{\mkbibneutord}%
+ \def\mkbibordseries{\mkbibfemord}%
+ \expandafter\protected\expandafter\def\csname mkbibtime24h\endcsname#1#2#3#4{%
+ \iffieldundef{#1}{}
+ {\printtext{\mktimezeros{\thefield{#1}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#2}{}
+ {\printtext{\mktimezeros{\thefield{#2}}}\setunit{\bibtimesep}}%
+ \iffieldundef{#3}{}
+ {\printtext{\mktimezeros{\thefield{#3}}}}%
+ \setunit{}%
+ \iffieldundef{#4}{}
+ {\bibtimezonesep
+ \mkbibtimezone{\thefield{#4}}}}%
+ \expandafter\protected\expandafter\def\csname mkbibtime12h\endcsname#1#2#3#4{%
+ \stripzeros{\mktimehh{\thefield{#1}}}\bibtimesep
+ \forcezerosmdt{\thefield{#2}}%
+ \iffieldundef{#3}{}
+ {\bibtimesep
+ \forcezerosmdt{\thefield{#3}}}%
+ \space
+ \ifnumless{\thefield{#1}}{12}
+ {\bibstring{am}}
+ {\bibstring{pm}}%
+ \iffieldundef{#4}{}
+ {\space\bibtimezonesep
+ \parentext{\mkbibtimezone{\thefield{#4}}}}}%
+ \protected\def\mkbibseasondateshort#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+ \protected\def\mkbibseasondatelong#1#2{%
+ \mkbibseason{\thefield{#2}}%
+ \iffieldundef{#1}{}{\space}%
+ \dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}%
+}
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkbibordedition
+ \restorecommand\mkbibordseries
+}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Перелік літератури}{Література}},%book-like (chapter)
+ references = {{Перелік літератури}{Література}},%article-like (section)
+ shorthands = {{Перелік скорочень}{Скорочення}},
+ editor = {{редактор}{ред\adddot}},
+ editors = {{редактори}{ред\adddot}},
+ compiler = {{укладач}{уклад\adddot}},
+ compilers = {{укладачі}{уклад\adddot}},
+ redactor = {{редактор}{ред\adddot}},% FIXME: unsure
+ redactors = {{редактори}{ред\adddot}},% FIXME: unsure
+ reviser = {{ревізійний коректор}{ревіз\adddotspace кор\adddot}},
+ revisers = {{ревізійні коректори}{ревіз\adddotspace кор\adddot}},
+ founder = {{засновник}{засн\adddot}},
+ founders = {{засновник}{засн\adddot}},
+ continuator = {{продовжувач}{прод\adddot}},% FIXME: unsure
+ continuators = {{продовжувачі}{прод\adddot}},% FIXME: unsure
+ collaborator = {{учасник}{учас\adddot}},% FIXME: unsure
+ collaborators = {{учасники}{учас\adddot}},% FIXME: unsure
+ translator = {{перекладач}{пер\adddot}},
+ translators = {{перекладачі}{пер\adddot}},
+ commentator = {{коментатор}{комент\adddot}},
+ commentators = {{коментатори}{комент\adddot}},
+ annotator = {{примітки}{прим\adddot}},
+ annotators = {{примітки}{прим\adddot}},
+ commentary = {{коментар}{комент\adddot}},
+ annotations = {{примітки}{прим\adddot}},
+ introduction = {{вступна стаття}{вступ\adddotspace ст\adddot}},
+ foreword = {{передмова}{передм\adddot}},
+ afterword = {{післямова}{післям\adddot}},
+ editortr = {{редактор та перекладач}%
+ {ред\adddotspace та пер\adddot}},
+ editorstr = {{редактори та перекладачі}%
+ {ред\adddotspace та пер\adddot}},
+ editorco = {{редактор та коментатор}%
+ {ред\adddotspace та комент\adddot}},
+ editorsco = {{редактори та коментатори}%
+ {ред\adddotspace та комент\adddot}},
+ editoran = {{редактор та укладач приміток}%
+ {ред\adddotspace та укл\adddotspace прим\adddot}},
+ editorsan = {{редактори та укладачі приміток}%
+ {ред\adddotspace та укл\adddotspace прим\adddot}},
+ editorin = {{редактор та автор вступної статті}%
+ {ред\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorsin = {{редактори та автори вступної статті}%
+ {ред\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorfo = {{редактор та автор передмови}%
+ {ред\adddotspace та авт\adddotspace передм\adddot}},
+ editorsfo = {{редактори та автори передмови}%
+ {ред\adddotspace та авт\adddotspace передм\adddot}},
+ editoraf = {{редактор та автор післямови}%
+ {ред\adddotspace та авт\adddotspace післям\adddot}},
+ editorsaf = {{редактори та автори післямови}%
+ {ред\adddotspace та авт\adddotspace післям\adddot}},
+ editortrco = {{редактор, перекладач та автор коментарів}%
+ {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace комент\adddot}},
+ editorstrco = {{редактори, перекладачі та автори коментарів}%
+ {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace комент\adddot}},
+ editortran = {{редактор, перекладач та укладач приміток}%
+ {ред.,\addabbrvspace пер\adddotspace та укл\adddotspace прим\adddot}},
+ editorstran = {{редактори, перекладачі та укладачі приміток}%
+ {ред.,\addabbrvspace пер\adddotspace та укл\adddotspace прим\adddot}},
+ editortrin = {{редактор, перекладач та автор вступної статті}%
+ {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorstrin = {{редактори, перекладачі та автори вступної статті}%
+ {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ editortrfo = {{редактор, перекладач та автор передмови}%
+ {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace передм\adddot}},
+ editorstrfo = {{редактори, перекладачі та автори передмови}%
+ {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace передм\adddot}},
+ editortraf = {{редактор, перекладач та автор післямови}%
+ {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace післямови\adddot}},
+ editorstraf = {{редактори, перекладачі та автори післямови}%
+ {ред.,\addabbrvspace пер\adddotspace та авт\adddotspace післям\adddot}},
+ editorcoin = {{редактор, автор коментарів та вступної статті}%
+ {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ editorscoin = {{редактори, автори коментарів та вступної статті}%
+ {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ editorcofo = {{редактор, автор коментарів та передмови}%
+ {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}},
+ editorscofo = {{редактори, автори коментарів та передмови}%
+ {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}},
+ editorcoaf = {{редактор, автор коментарів та післямови}%
+ {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}},
+ editorscoaf = {{редактори, автори коментарів та післямови}%
+ {ред.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}},
+ editoranin = {{редактор, укладач приміток та автор вступної статті}%
+ {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorsanin = {{редактори, укладачі приміток та автори вступної статті}%
+ {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ editoranfo = {{редактор, укладач приміток та автор передмови}%
+ {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace передм\adddot}},
+ editorsanfo = {{редактори, укладачі приміток та автори передмови}%
+ {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace передм\adddot}},
+ editoranaf = {{редактор, укладач приміток та автор післямови}%
+ {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace післям\adddot}},
+ editorsanaf = {{редактори, укладачі приміток та автори післямови}%
+ {ред.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace післям\adddot}},
+ editortrcoin = {{редактор, перекладач, автор коментарів та вступної статті}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ editorstrcoin = {{редактори, перекладачі, автори коментарів та вступної статті}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ editortrcofo = {{редактор, перекладач, автор коментарів та передмови}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}},
+ editorstrcofo = {{редактори, перекладачі, автори коментарів та передмови}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}},
+ editortrcoaf = {{редактор, перекладач, автор коментарів та післямови}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}},
+ editorstrcoaf = {{редактори, перекладачі, автори коментарів та післямови}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}},
+ editortranin = {{редактор, перекладач, укладач приміток та автор вступної статті}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ editorstranin = {{редактори, перекладачі, укладачі приміток та автори вступної статті}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ editortranfo = {{редактор, перекладач, укладач приміток та автор передмови}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace передм\adddot}},
+ editorstranfo = {{редактори, перекладачі, укладачі приміток та автори передмови}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace передм\adddot}},
+ editortranaf = {{редактор, перекладач, укладач приміток та автор післямови}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace післям\adddot}},
+ editorstranaf = {{редактори, перекладачі, укладачі приміток та автори післямови}%
+ {ред.,\addabbrvspace пер.,\addabbrvspace укл\adddotspace прим\adddotspace та авт\adddotspace післям\adddot}},
+ translatorco = {{перекладач та автор коментарів}%
+ {пер\adddotspace та авт\adddotspace комент\adddot}},
+ translatorsco = {{перекладачі та автор коментарів}%
+ {пер\adddotspace та авт\adddotspace комент\adddot}},
+ translatoran = {{перекладач та автор приміток}%
+ {пер\adddotspace та укл\adddotspace прим\adddot}},
+ translatorsan = {{перекладачі та укладачі приміток}%
+ {пер\adddotspace та уклад\adddotspace прим\adddot}},
+ translatorin = {{перекладач та автор вступної статті}%
+ {пер\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ translatorsin = {{перекладачі та автори вступної статті}%
+ {пер\adddotspace та авт\adddotspace вступ\adddotspace ст\adddot}},
+ translatorfo = {{перекладач та автор передмови}%
+ {пер\adddotspace та авт\adddotspace передм\adddot}},
+ translatorsfo = {{перекладачі та автори передмови}%
+ {пер\adddotspace та авт\adddotspace передм\adddot}},
+ translatoraf = {{перекладач та автор післямови}%
+ {пер\adddotspace та авт\adddotspace післям\adddot}},
+ translatorsaf = {{перекладачі та автори післямови}%
+ {пер\adddotspace та авт\adddotspace післям\adddot}},
+ translatorcoin = {{перекладач, автор коментарів та вступної статті}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ translatorscoin = {{перекладачі, автори коментарів та вступної статті}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ translatorcofo = {{перекладач, автор коментарів та передмови}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}},
+ translatorscofo = {{перекладачі, автори коментарів та передмови}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}},
+ translatorcoaf = {{перекладач, автор коментарів та післямови}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}},
+ translatorscoaf = {{перекладачі, автори коментарів та післямови}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}},
+ translatoranin = {{перекладач, автор коментарів та вступної статті}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ translatorsanin = {{перекладачі, автори коментарів та вступної статті}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ translatoranfo = {{перекладач, автор коментарів та передмови}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}},
+ translatorsanfo = {{перекладачі, автори коментарів та передмови}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та передм\adddot}},
+ translatoranaf = {{перекладач, автор коментарів та післямови}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}},
+ translatorsanaf = {{перекладачі, автори коментарів та післямови}%
+ {пер.,\addabbrvspace авт\adddotspace комент\adddotspace та післям\adddot}},
+ organizer = {{організатор}{орг\adddot}},
+ organizers = {{організатори}{орг\adddot}},
+ byorganizer = {{організатор}{орг\adddot}},% FIXME: unsure
+ byauthor = {{згідно автора}{згідн\adddot авт\adddot}},
+ byeditor = {{за редакцією}{за\addabbrvspace ред\adddot}},
+ bycompiler = {{укладач}{уклад\adddot}},
+ byredactor = {{за редакцією}{за\addabbrvspace ред\adddot}},
+ byreviser = {{виправлено}{випр\adddot}},
+ byreviewer = {{рецензія}{рец\adddot}},
+ byfounder = {{засновник}{засн\adddot}},% FIXME: unsure
+ bycontinuator = {{продовження}{продовж\adddot}},% FIXME: unsure
+ bycollaborator = {{за участю}{за\addabbrvspace уч\adddot}},
+ bytranslator = {{переклад \lbx@lfromlang}{пер\adddot\ \lbx@sfromlang}},
+ bycommentator = {{коментарі}{комент\adddot}},
+ byannotator = {{примітки}{прим\adddot}},
+ withcommentator = {{коментарі}{комент\adddot}},
+ withannotator = {{примітки}{прим\adddot}},
+ withintroduction = {{вступна стаття}{вступ\adddotspace ст\adddot}},
+ withforeword = {{передмовие}{передм\adddot}},
+ withafterword = {{післямовие}{післям\adddot}},
+ byeditortr = {{переклад \lbx@lfromlang, за редакцією}%
+ {пер\adddot\ \lbx@sfromlang, за\addabbrvspace ред\adddot}},
+ byeditorco = {{за редакцією, коментарі}%
+ {за ред.,\addabbrvspace комент\adddot}},
+ byeditoran = {{за редакцією, примітки}%
+ {за ред.,\addabbrvspace прим\adddot}},
+ byeditorin = {{за редакцією, вступна стаття}%
+ {за ред.,\addabbrvspace вступ\adddotspace ст\adddot}},
+ byeditorfo = {{за редакцією, передмова}%
+ {за ред.,\addabbrvspace передм\adddot}},
+ byeditoraf = {{за редакцією, післямова}%
+ {за ред.,\addabbrvspace післям\adddot}},
+ byeditortrco = {{за редакцією, переклад \lbx@lfromlang\ та коментарі}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ та комент\adddot}},
+ byeditortran = {{за редакцією, переклад \lbx@lfromlang\ та примітки}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang\ та прим\adddot}},
+ byeditortrin = {{за редакцією, переклад \lbx@lfromlang, вступна стаття}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, вступ\adddotspace ст\adddot}},
+ byeditortrfo = {{за редакцією, переклад \lbx@lfromlang, передмовие}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, передм\adddot}},
+ byeditortraf = {{за редакцією, переклад \lbx@lfromlang, післямова}%
+ {за ред\adddotspace та пер\adddot\ \lbx@sfromlang, післям\adddot}},
+ byeditorcoin = {{за редакцією, коментарі та вступна стаття}%
+ {за ред.,\addabbrvspace комент\adddotspace та вступ\adddotspace ст\adddot}},
+ byeditorcofo = {{за редакцією, коментарі та передмова}%
+ {за ред.,\addabbrvspace комент\adddotspace та передм\adddot}},
+ byeditorcoaf = {{за редакцією, коментарі та післямова}%
+ {за ред.,\addabbrvspace комент\adddotspace та післям\adddot}},
+ byeditoranin = {{за редакцією, примітки та вступна стаття}%
+ {за ред.,\addabbrvspace приміт\adddotspace та вступ\adddotspace ст\adddot}},
+ byeditoranfo = {{за редакцією, примітки та передмова}%
+ {за ред.,\addabbrvspace приміт\adddotspace та передм\adddot}},
+ byeditoranaf = {{за редакцією, примітки та післямова}%
+ {за ред.,\addabbrvspace приміт\adddotspace та післям\adddot}},
+ byeditortrcoin = {{за редакцією, переклад \lbx@lfromlang, коментарі та вступна стаття}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комент\adddotspace та вступ\adddotspace ст\adddot}},
+ byeditortrcofo = {{за редакцією, переклад \lbx@lfromlang, коментарі та передмова}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комент\adddotspace та передм\adddot}},
+ byeditortrcoaf = {{за редакцією, переклад \lbx@lfromlang, коментарі та післямова}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, комент\adddotspace та післям\adddot}},
+ byeditortranin = {{за редакцією, переклад \lbx@lfromlang, примітки та вступна стаття}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, прим\adddotspace та вступ\adddotspace ст\adddot}},
+ byeditortranfo = {{за редакцією, переклад \lbx@lfromlang, примітки та передмова}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, прим\adddotspace та передм\adddot}},
+ byeditortranaf = {{за редакцією, переклад \lbx@lfromlang, примітки та післямова}%
+ {за ред.,\addabbrvspace пер\adddot\ \lbx@sfromlang, прим\adddotspace та післям\adddot}},
+ bytranslatorco = {{переклад \lbx@lfromlang\ та коментарі}%
+ {пер\adddot\ \lbx@sfromlang\ та комент\adddot}},
+ bytranslatoran = {{переклад \lbx@lfromlang\ та примітки}%
+ {пер\adddot\ \lbx@sfromlang\ та прим\adddot}},
+ bytranslatorin = {{переклад \lbx@lfromlang\ та вступна стаття}%
+ {пер\adddot\ \lbx@sfromlang\ та вступ\adddotspace ст\adddot}},
+ bytranslatorfo = {{переклад \lbx@lfromlang\ та передмова}%
+ {пер\adddot\ \lbx@sfromlang\ та передм\adddot}},
+ bytranslatoraf = {{переклад \lbx@lfromlang\ та післямова}%
+ {пер\adddot\ \lbx@sfromlang\ та післям\adddot}},
+ bytranslatorcoin = {{переклад \lbx@lfromlang, коментарі та вступна стаття}%
+ {пер\adddot\ \lbx@sfromlang, комент\adddotspace та вступ\adddotspace ст\adddot}},
+ bytranslatorcofo = {{переклад \lbx@lfromlang, коментарі та передмова}%
+ {пер\adddot\ \lbx@sfromlang, комент\adddotspace та передм\adddot}},
+ bytranslatorcoaf = {{переклад \lbx@lfromlang, коментарі та післямова}%
+ {пер\adddot\ \lbx@sfromlang, комент\adddotspace та післям\adddot}},
+ bytranslatoranin = {{переклад \lbx@lfromlang, примітки та вступна стаття}%
+ {пер\adddot\ \lbx@sfromlang, прим\adddotspace та вступ\adddotspace ст\adddot}},
+ bytranslatoranfo = {{переклад \lbx@lfromlang, примітки та передмова}%
+ {пер\adddot\ \lbx@sfromlang, прим\adddotspace та передм\adddot}},
+ bytranslatoranaf = {{переклад \lbx@lfromlang, примітки та післямова}%
+ {пер\adddot\ \lbx@sfromlang, прим\adddotspace та післям\adddot}},
+ and = {{та}{та}},
+ andothers = {{та\addabbrvspace ін\adddot}{та\addabbrvspace ін\adddot}},
+ andmore = {{та\addabbrvspace ін\adddot}{та\addabbrvspace ін\adddot}},
+ volume = {{том}{т\adddot}},
+ volumes = {{томах}{т\adddot}},
+ involumes = {{в}{в}},
+ jourvol = {{том}{т\adddot}},
+ jourser = {{серія}{сер\adddot}},
+ book = {{книга}{кн\adddot}},
+ part = {{частина}{ч\adddot}},
+ issue = {{випуск}{вип\adddot}},
+ newseries = {{нова серія}{нов\adddotspace сер\adddot}},
+ oldseries = {{стара серія}{стар\adddotspace сер\adddot}},
+ edition = {{видання}{вид\adddot}},
+ reprint = {{перевидання}{перевид\adddot}},
+ reprintof = {{перевидання}{перевид\adddot}},
+ reprintas = {{перевидано як}{перевид\adddotspace як}},
+ reprintfrom = {{перевидано з}{перевид\adddotspace з}},
+ translationof = {{переклад по виданню\addcolon}{пер\adddotspace по вид\adddot\addcolon}},
+ translationas = {{переклад\addcolon}{пер\adddot\addcolon}},
+ translationfrom = {{переклад з}{пер\adddotspace з}},
+ reviewof = {{рецензія на\addcolon}{рец\adddotspace на\addcolon}},% FIXME: unsure
+ origpubas = {{перша публикація\addcolon}%
+ {перш\adddotspace публ\adddot\addcolon}},
+ origpubin = {{перша публікация в}%
+ {перш\adddotspace публ\adddotspace в}},
+ astitle = {{\addcolon}{\addcolon}},% FIXME: unsure
+ bypublisher = {{\addcomma}{\addcomma}},% FIXME: unsure
+ nodate = {{б\adddot р\adddot}{б\adddot р\adddot}},
+ page = {{сторінка}{с\adddot}},
+ pages = {{сторінки}{с\adddot}},
+ column = {{колонка}{кол\adddot}},
+ columns = {{колонки}{кол\adddot}},
+ line = {{рядок}{рядок}},
+ lines = {{рядки}{рядки}},
+ verse = {{вірш}{вірш}},
+ verses = {{вірші}{вірші}},
+ section = {{параграф}{\S}},
+ sections = {{параграфи}{\S\S}},
+ paragraph = {{абзац}{абз\adddot}},
+ paragraphs = {{абзаци}{абз\adddot}},
+ pagetotal = {{сторінка}{с\adddot}},
+ pagetotals = {{сторінки}{с\adddot}},
+ columntotal = {{колонка}{кол\adddot}},
+ columntotals = {{колонки}{кол\adddot}},
+ linetotal = {{рядок}{рядок}},
+ linetotals = {{рядки}{рядки}},
+ versetotal = {{вірш}{вірш}},
+ versetotals = {{вірші}{вірші}},
+ sectiontotal = {{параграф}{\S}},
+ sectiontotals = {{параграфи}{\S\S}},
+ paragraphtotal = {{абзац}{абз\adddot}},
+ paragraphtotals = {{абзаци}{абз\adddot}},
+ in = {{в}{в}},
+ inseries = {{в}{в}},
+ ofseries = {{із}{із}},
+ number = {{номер}{№}},
+ chapter = {{глава}{гл\adddot}},
+% bathesis = {{}{}},% FIXME: missing
+ mathesis = {{дис\adddotspace\textellipsis\ маг\adddot}
+ {дис\adddotspace\textellipsis\ маг\adddot}},
+ phdthesis = {{дис\adddotspace\textellipsis\ док\adddot}
+ {дис\adddotspace\textellipsis\ док\adddot}},
+ candthesis = {{дис\adddotspace\textellipsis\ канд\adddot}
+ {дис\adddotspace\textellipsis\ канд\adddot}},
+ resreport = {{науковий звіт}{наук\adddotspace звіт\adddot}},
+ techreport = {{технічний звіт}{тех\adddotspace звіт\adddot}},
+ software = {{програмне забезпечення}{прогр\adddotspace забезп\adddot}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{версія}{вер\adddot}},
+ url = {{url}{url}},
+ urlfrom = {{режим доступу}{режим доступу}},
+ urlseen = {{дата звернення}{дата\addabbrvspace зверн\adddot}},
+ inpreparation = {{в\addabbrvspace підготовці}{в підг\adddot}},
+ submitted = {{представлено}{предст\adddot}},
+ forthcoming = {{в друці}{в друц\adddot}},
+ inpress = {{в\addabbrvspace друці}{в друці\adddot}},
+ prepublished = {{попередня публікация}{попер\adddotspace пуб\adddot}},% FIXME: unsure
+ citedas = {{далі цитується як}{далі цит\addabbrvspace як}},
+ thiscite = {{тут}{тут}},
+ seenote = {{дивись зноску}{див\adddotspace зн\adddot}},
+ quotedin = {{цитується за}{цит\adddotspace за}},
+ idem = {{він\addabbrvspace же}{він\addabbrvspace же}},
+ idemsm = {{він\addabbrvspace же}{він\addabbrvspace же}},
+ idemsf = {{вона\addabbrvspace же}{вона\addabbrvspace же}},
+ idemsn = {{він\addabbrvspace же}{він\addabbrvspace же}},
+ idempm = {{вони\addabbrvspace ж}{вони\addabbrvspace ж}},
+ idempf = {{вони\addabbrvspace ж}{вони\addabbrvspace ж}},
+ idempn = {{вони\addabbrvspace ж}{вони\addabbrvspace ж}},
+ idempp = {{вони\addabbrvspace ж}{вони\addabbrvspace ж}},
+ ibidem = {{там\addabbrvspace же}{там\addabbrvspace же}},
+ opcit = {{вказ\adddotspace твор\adddot}{вказ\adddotspace твор\adddot}},
+ loccit = {{вказ\adddotspace місце}{вказ\adddotspace місце}},
+ confer = {{порівняй}{порівн\adddot}},
+ sequens = {{та наступна}{та\addabbrvspace наст\adddot}},
+ sequentes = {{та наступні}{и\addabbrvspace наст\adddot}},
+ passim = {{всюди}{всюди}},
+ see = {{дивись}{див\adddot}},
+ seealso = {{дивись також}{див\adddotspace також}},
+ backrefpage = {{цитується на сторінці}{цит\adddotspace на\addabbrvspace с\adddot}},
+ backrefpages = {{цитується на сторінках}{цит\adddotspace на\addabbrvspace с\adddot}},
+ january = {{січень}{січ\adddot}},
+ february = {{лютий}{лют\adddot}},
+ march = {{березень}{бер\adddot}},
+ april = {{квітень}{квіт\adddot}},
+ may = {{травень}{трав\adddot}},
+ june = {{червень}{черв\adddot}},
+ july = {{липень}{лип\adddot}},
+ august = {{серпень}{серп\adddot}},
+ september = {{вересень}{вер\adddot}},
+ october = {{жовтень}{жовт\adddot}},
+ november = {{листопад}{листоп\adddot}},
+ december = {{грудень}{груд\adddot}},
+ datejanuary = {{січня}{січ\adddot}},
+ datefebruary = {{лютого}{лют\adddot}},
+ datemarch = {{березня}{бер\adddot}},
+ dateapril = {{квітня}{квіт\adddot}},
+ datemay = {{травня}{трав\adddot}},
+ datejune = {{червня}{черв\adddot}},
+ datejuly = {{липня}{лип\adddot}},
+ dateaugust = {{серпня}{серп\adddot}},
+ dateseptember = {{вересня}{вер\adddot}},
+ dateoctober = {{жовтня}{жовт\adddot}},
+ datenovember = {{листопда}{листоп\adddot}},
+ datedecember = {{грудня}{груд\adddot}},
+ langamerican = {{американський}{амер\adddot}},
+ langbrazilian = {{бразильський}{браз\adddot}},
+ langbulgarian = {{болгарська}{болг\adddot}},
+ langcatalan = {{каталонська}{катал\adddot}},
+ langcroatian = {{хорватська}{хорв\adddot}},
+ langczech = {{чеська}{чеськ\adddot}},
+ langdanish = {{датська}{дат\adddot}},
+ langdutch = {{нідерландська}{нід\adddot}},
+ langenglish = {{англійська}{англ\adddot}},
+ langestonian = {{естонська}{ест\adddot}},
+ langfinnish = {{фінська}{фін\adddot}},
+ langfrench = {{французька}{фр\adddot}},
+ langgalician = {{галісійський}{гал\adddot}},
+ langgerman = {{німецька}{нім\adddot}},
+ langgreek = {{грецька}{грець\adddot}},
+ langhungarian = {{угорська}{угор\adddot}},
+ langitalian = {{італійська}{італ\adddot}},
+ langjapanese = {{японська}{яп\adddot}},
+ langlatin = {{латинська}{лат\adddot}},
+% langlatvian = {{}{}},% FIXME: missing
+ langnorwegian = {{норвезька}{норв\adddot}},
+ langpolish = {{польська}{пол\adddot}},
+ langportuguese = {{португальська}{порт\adddot}},
+ langrussian = {{російська}{рос\adddot}},
+% langslovak = {{}{}},% FIXME: missing
+ langslovene = {{словенська}{слов\adddot}},
+ langspanish = {{іспанська}{ісп\adddot}},
+ langswedish = {{шведська}{швед\adddot}},
+ langukrainian = {{українська}{укр\adddot}},
+ fromamerican = {{з американської}{з\addabbrvspace амер\adddot}},
+ frombrazilian = {{з бразильської}{з\addabbrvspace браз\adddot}},
+ frombulgarian = {{з болгарскої}{з\addabbrvspace болг\adddot}},
+ fromcatalan = {{з каталонської}{з\addabbrvspace катал\adddot}},
+ fromcroatian = {{з хорватської}{з\addabbrvspace хорв\adddot}},
+ fromczech = {{з чеської}{з\addabbrvspace чеськ\adddot}},
+ fromdanish = {{з датської}{з\addabbrvspace дат\adddot}},
+ fromdutch = {{з нідерландської}{з\addabbrvspace нід\adddot}},
+ fromenglish = {{з англійскої}{з\addabbrvspace англ\adddot}},
+ fromestonian = {{з естонської}{з\addabbrvspace ест\adddot}},
+ fromfinnish = {{з фінської}{з\addabbrvspace фін\adddot}},
+ fromfrench = {{з французької}{з\addabbrvspace фр\adddot}},
+ fromgalician = {{з галісійської}{з\addabbrvspace гал\adddot}},
+ fromgerman = {{з німецької}{з\addabbrvspace нім\adddot}},
+ fromgreek = {{з грецької}{з\addabbrvspace грец\adddot}},
+ fromhungarian = {{з угорської}{з\addabbrvspace угор\adddot}},
+ fromitalian = {{з італійської}{з\addabbrvspace італ\adddot}},
+ fromjapanese = {{з японської}{з\addabbrvspace яп\adddot}},
+ fromlatin = {{з латинської}{з\addabbrvspace лат\adddot}},
+% fromlatvian = {{}{}},% FIXME: missing
+ fromnorwegian = {{з норвезької}{з\addabbrvspace норв\adddot}},
+ frompolish = {{з польської}{з\addabbrvspace пол\adddot}},
+ fromportuguese = {{з португальської}{з\addabbrvspace порт\adddot}},
+ fromrussian = {{з російської}{з\addabbrvspace рос\adddot}},
+% fromslovak = {{}{}},% FIXME: missing
+ fromslovene = {{зі словенської}{зі\addabbrvspace слов\adddot}},
+ fromspanish = {{з іспанської}{з\addabbrvspace ісп\adddot}},
+ fromswedish = {{з шведської}{з\addabbrvspace швед\adddot}},
+ fromukrainian = {{з української}{з\addabbrvspace укр\adddot}},
+ countryde = {{Німеччина}{Німеччина}},
+ countryeu = {{Європейський Союз}{ЄС}},
+ countryep = {{Європейський Союз}{ЄС}},
+ countryfr = {{Франція}{Франція}},
+ countryuk = {{Великобританія}{Великобританія}},
+ countryus = {{Сполучені Штати Америки}{США}},
+ patent = {{патент}{пат\adddot}},
+ patentde = {{патент Німеччини}{пат\adddotspace Німеччини}},
+ patenteu = {{патент Європи}{пат\adddotspace Європи}},
+ patentfr = {{патент Франції}{пат\adddotspace Франції}},
+ patentuk = {{патент Великобританії}{пат\adddotspace Великобританії}},
+ patentus = {{патент США}{пат\adddotspace США}},
+ patreq = {{заявка}{заявка}},
+ patreqde = {{заявка на патент Німеччини}{заявка на пат\adddotspace Німеччини}},
+ patreqeu = {{заявка на патент Європи}{заявка на пат\adddotspace Європи}},
+ patreqfr = {{заявка на патент Франції}{заявка на пат\adddotspace Франції}},
+ patrequk = {{заявка на патент Великобританії}{заявка на пат\adddotspace Великобританії}},
+ patrequs = {{заявка на патент США}{заявка на пат\adddotspace США}},
+ file = {{файл}{файл}},
+ library = {{бібліотека}{б-ка}},
+ abstract = {{резюме}{рез\adddot}},
+ annotation = {{анотація}{анот\adddot}},
+ commonera = {{нашої ери}{н\adddotspace е\adddot}},
+ beforecommonera = {{до нашої ери}{до н\adddotspace е\adddot}},
+ annodomini = {{від Різдва Христового}{від Р\adddotspace Х\adddot}},
+ beforechrist = {{до Різдва Христового}{до Р\adddotspace Х\adddot}},
+ circa = {{близько}{бл\adddot}},
+ spring = {{весна}{весна}},
+ summer = {{літо}{літо}},
+ autumn = {{осінь}{осінь}},
+ winter = {{зима}{зима}},
+ am = {{ДП}{ДП}},
+ pm = {{ПП}{ПП}},
+}
+
+\protected\gdef\lbx@ru@mkbibdatemonth#1{%
+ \ifcase0#1\relax
+ #1\BibliographyWarning{Month out of range}%
+ \or\abx@bibmonth{datejanuary}%
+ \or\abx@bibmonth{datefebruary}%
+ \or\abx@bibmonth{datemarch}%
+ \or\abx@bibmonth{dateapril}%
+ \or\abx@bibmonth{datemay}%
+ \or\abx@bibmonth{datejune}%
+ \or\abx@bibmonth{datejuly}%
+ \or\abx@bibmonth{dateaugust}%
+ \or\abx@bibmonth{dateseptember}%
+ \or\abx@bibmonth{dateoctober}%
+ \or\abx@bibmonth{datenovember}%
+ \or\abx@bibmonth{datedecember}%
+ \else
+ #1\BibliographyWarning{Month out of range}%
+ \fi}%
+
+\endinput