%%
%% This is file `frenchb.ldf',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% frenchb.dtx  (with options: `ldf')
%% This is a generated file of the Babel system.
%% ---------------------------------------------------------
%% 
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%   http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%% 
%% This work has the LPPL maintenance status "maintained".
%% 
%% The Current Maintainer of this work is Daniel Flipo.
%% 
%% This file may only be distributed together with a copy of the Babel
%% system. You may however distribute the Babel system without
%% such generated files.
%% 
%% The list of all files belonging to the Babel distribution is
%% given in the file `manifest.bbl'. See also `legal.bbl for additional
%% information.
%% 
%% The list of derived (unpacked) files belonging to the distribution
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% 
\ProvidesLanguage{frenchb}
         [2015/04/10 v3.1e French support from the babel system]
%%
%%  File `frenchb.ldf'
%%  Babel package for LaTeX version 2e
%%  Copyright (C) 1996 - 2015
%%            by Daniel Flipo <daniel (dot) flipo (at) free (dot) fr>
%%
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
\def\bbl@tempa{francais}
\ifx\CurrentOption\bbl@tempa
  \let\l@francais\l@french
  \def\captionsfrancais{\captionsfrench}
  \def\datefrancais{\datefrench}
  \def\extrasfrancais{\extrasfrench}
  \def\noextrasfrancais{\extrasfrench}
  \def\CurrentOption{french}
\fi
\def\bbl@tempa{frenchb}
\ifx\CurrentOption\bbl@tempa
  \let\l@frenchb\l@french
  \def\captionsfrenchb{\captionsfrench}
  \def\datefrenchb{\datefrench}
  \def\extrasfrenchb{\extrasfrench}
  \def\noextrasfrenchb{\extrasfrench}
  \def\CurrentOption{french}
\fi
\catcode`\@=\atcatcode \let\atcatcode\relax
\LdfInit\CurrentOption\captionsfrench
\def\FB@nopatterns{%
   \ifx\l@nohyphenation\@undefined
      \edef\bbl@nulllanguage{\string\language=0}%
      \adddialect\l@french0
   \else
      \adddialect\l@french\l@nohyphenation
      \edef\bbl@nulllanguage{\string\language=nohyphenation}%
   \fi
   \@nopatterns{French}}
\ifx\l@french\@undefined
   \FB@nopatterns
\fi
\newif\ifLaTeXe
\let\bbl@tempa\relax
\ifx\magnification\@undefined
   \ifx\@compatibilitytrue\@undefined
     \PackageError{frenchb.ldf}
        {LaTeX-2.09 format is no longer supported.\MessageBreak
         Aborting here}
        {Please upgrade to LaTeX2e!}
     \let\bbl@tempa\endinput
   \else
     \LaTeXetrue
   \fi
\fi
\bbl@tempa
\def\fb@error#1#2{%
    \begingroup
      \newlinechar=`\^^J
      \def\\{^^J(frenchb.ldf) }%
      \errhelp{#2}\errmessage{\\#1}%
    \endgroup}
\def\fb@warning#1{%
   \begingroup
      \newlinechar=`\^^J
      \def\\{^^J(frenchb.ldf) }%
      \message{\\#1}%
   \endgroup}
\def\fb@info#1{%
   \begingroup
      \newlinechar=`\^^J
      \def\\{^^J}%
      \wlog{#1}%
   \endgroup}
\let\bbl@tempa\relax
\ifx\babeltags\@undefined
   \let\bbl@tempa\endinput
   \ifLaTeXe
      \PackageError{frenchb.ldf}
         {frenchb requires babel v.3.9i.\MessageBreak
          Aborting here}
         {Please upgrade Babel!}
   \else
      \fb@error{frenchb requires babel v.3.9i.\\
                Aborting here}
               {Please upgrade Babel!}
   \fi
\fi
\bbl@tempa
\ifx\l@acadian\@undefined
   \ifx\l@canadien\@undefined
      \adddialect\l@acadian\l@french
      \adddialect\l@canadien\l@french
   \else
      \adddialect\l@acadian\l@canadien
   \fi
\else
  \adddialect\l@canadien\l@acadian
\fi
\def\bbl@tempa{canadien}
\ifx\CurrentOption\bbl@tempa
  \def\captionscanadien{\captionsacadian}
  \def\datecanadien{\dateacadian}
  \def\extrascanadien{\extrasacadian}
  \def\noextrascanadien{\extrasacadian}
  \def\CurrentOption{acadian}
\fi
\expandafter\providehyphenmins\expandafter{\CurrentOption}{\tw@\thr@@}
\newif\ifFBunicode
\newif\ifFBLuaTeX
\newif\ifFBXeTeX
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname luatexversion\endcsname\relax
\else
  \FBunicodetrue \FBLuaTeXtrue
\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname XeTeXrevision\endcsname\relax
\else
  \FBunicodetrue \FBXeTeXtrue
\fi
\@namedef{extras\CurrentOption}{%
     \babel@savevariable{\lccode`\'}%
     \ifFBunicode
        \babel@savevariable{\lccode"2019}%
        \lccode`\'="2019\lccode"2019="2019
     \else
        \lccode`\'=`\'
     \fi
}
\@namedef{noextras\CurrentOption}{}
\let\FB@CurOpt\CurrentOption
\newcommand*{\FB@addto}[2]{%
    \expandafter\addto\csname #1\FB@CurOpt\endcsname{#2}}
\FB@addto{extras}{\bbl@frenchspacing}
\FB@addto{noextras}{\bbl@nonfrenchspacing}
\newif\ifFBAutoSpaceGuill  \FBAutoSpaceGuilltrue
\newif\ifFB@active@punct  \FB@active@puncttrue
\newif\ifFB@luatex@punct
\ifFBLuaTeX
  \ifnum\luatexversion>75
    \FB@luatex@puncttrue\FB@active@punctfalse
  \fi
\fi
\newif\ifFB@xetex@punct
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax
\else
  \FB@xetex@puncttrue\FB@active@punctfalse
\fi
\newcommand*{\FBcolonspace}{\space}
\newcommand*{\FBthinspace}{\thinspace}
\newskip\FBcolonskip
\FBcolonskip=3.33pt plus 1.665pt minus 1.11pt \relax
\newskip\FBthinskip
\FBthinskip=1.66672pt \relax
\ifFB@luatex@punct
  \ifLaTeXe
    \AtEndOfPackage{%
       \RequirePackage{luatexbase}%
       \newluatexattribute\FB@addDPspace   \FB@addDPspace=1 \relax
       \newluatexattribute\FB@addGUILspace \FB@addGUILspace=0 \relax
    }
    \PackageInfo{frenchb.ldf}{No need for active punctuation characters%
                \MessageBreak with this version of LuaTeX!%
                \MessageBreak reported}
  \else
    \begingroup\expandafter\expandafter\expandafter\endgroup
    \expandafter\ifx\csname newluatexattribute\endcsname\relax
      \input luatexbase.sty
    \fi
    \newluatexattribute\FB@addDPspace   \FB@addDPspace=1 \relax
    \newluatexattribute\FB@addGUILspace \FB@addGUILspace=0 \relax
    \fb@info{No need for active punctuation characters\\
             with this version of LuaTeX!}
  \fi
\fi
\ifFB@luatex@punct
  \newcommand*{\FB@luatex@punct@french}{%
     \ifx\shorthandoffORI\@undefined
       \let\shorthandonORI\shorthandon
       \let\shorthandoffORI\shorthandoff
     \fi
     \def\shorthandoff##1{%
        \ifx\PackageWarning\@undefined
          \fb@warning{\noexpand\shorthandoff{;:!?} is helpless with
           LuaTeX,\\ use \noexpand\NoAutoSpacing
           *inside a group* instead.}%
        \else
          \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is
           helpless with LuaTeX,\MessageBreak use \protect\NoAutoSpacing
           \space *inside a group* instead;\MessageBreak reported}%
        \fi}%
     \def\shorthandon##1{}%
  }
  \newcommand*{\FB@luatex@punct@nonfrench}{%
     \ifx\shorthandoffORI\@undefined
     \else
       \let\shorthandon\shorthandonORI
       \let\shorthandoff\shorthandoffORI
     \fi
  }
  \FB@addto{extras}{\FB@luatex@punct@french}
  \FB@addto{noextras}{\FB@luatex@punct@nonfrench}
  \def\activate@luatexpunct{%
    \directlua{%
      FR = \the\l@french
      local path = kpse.find_file("frenchb.lua", "lua")
      if path then
      local f = dofile(path)
      luatexbase.add_to_callback("pre_linebreak_filter",
                 f, "frenchb.french_punctuation",1)
      luatexbase.add_to_callback("hpack_filter",
                 f, "frenchb.french_punctuation",1)
      else
        texio.write_nl('')
        texio.write_nl('*****************************')
        texio.write_nl('Error: frenchb.lua not found.')
        texio.write_nl('*****************************')
        texio.write_nl('')
      end
     }%
  }
\fi
\newcount\FB@interchartokenstateORI
\ifFB@xetex@punct
   \ifLaTeXe
    \PackageInfo{frenchb.ldf}{No need for active punctuation characters%
                    \MessageBreak with this version of XeTeX!%
                    \MessageBreak reported}
   \else
    \fb@info{No need for active punctuation characters\\
             with this version of XeTeX!}
   \fi
   \ifx\@for\@undefined
     \def\@nnil{\@nil}%
     \def\@empty{}%
     \def\@fornoop#1\@@#2#3{}%
     \long\def\@for#1:=#2\do#3{%
       \expandafter\def\expandafter\@fortmp\expandafter{#2}%
       \ifx\@fortmp\@empty \else
         \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}%
     \long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
       #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}%
     \long\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
            \expandafter\@fornoop \else
       #4\relax\expandafter\@iforloop\fi#2\@@#3{#4}}%
     \def\@tfor#1:={\@tf@r#1 }%
     \long\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else
         \@tforloop#2\@nil\@nil\@@#1{#3}\fi}%
     \long\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
            \expandafter\@fornoop \else
           #4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}%
   \fi
   \newXeTeXintercharclass\FB@punctthick
   \newXeTeXintercharclass\FB@punctthin
   \newXeTeXintercharclass\FB@punctnul
   \newXeTeXintercharclass\FB@guilo
   \newXeTeXintercharclass\FB@guilf
   \newXeTeXintercharclass\FB@guilnul
   \def\FB@charclassesORI{}
   \def\empty{}
   \def\FB@parse#1,#2\endparse{\def\FB@class{#1}%
        \def\FB@charclassesORI{#2}}%
   \newcommand*{\FB@xetex@punct@french}{%
     \ifx\FB@charclassesORI\empty
       \FB@interchartokenstateORI=\XeTeXinterchartokenstate
       \@for\FB@char:={`\:,`\;,`\!,`\?,"AB,"BB,%
                       `\(,`\[,`\{,`\,,`\.,`\-,`\),`\],`\},%
                       `\%,"22,"27,"60,"2019,"A0,"202F}\do
            {\edef\FB@charclassesORI{\FB@charclassesORI%
                                    \the\XeTeXcharclass\FB@char,}}%
       \let\shorthandonORI\shorthandon
       \let\shorthandoffORI\shorthandoff
     \fi
     \XeTeXinterchartokenstate=1
     \XeTeXcharclass `\: = \FB@punctthick
     \XeTeXinterchartoks \z@ \FB@punctthick = {%
                     \ifhmode\FDP@colonspace\fi}%
     \XeTeXinterchartoks \FB@guilf \FB@punctthick = {%
                     \FDP@colonspace}%
     \XeTeXinterchartoks 255 \FB@punctthick = {%
                     \ifhmode\unskip\penalty\@M\FBcolonspace\fi}%
     \@for\FB@char:={`\;,`\!,`\?}\do
          {\XeTeXcharclass\FB@char=\FB@punctthin}%
     \XeTeXinterchartoks \z@ \FB@punctthin = {%
                     \ifhmode\FDP@thinspace\fi}%
     \XeTeXinterchartoks \FB@guilf \FB@punctthin = {%
                     \FDP@thinspace}%
     \XeTeXinterchartoks 255 \FB@punctthin = {%
                     \ifhmode\unskip\penalty\@M\FBthinspace\fi}%
     \XeTeXinterchartoks \FB@guilo \z@ = {%
                \ifFBAutoSpaceGuill\FBguillspace\fi}%
     \XeTeXinterchartoks \FB@guilo 255 = {%
                \ifFBAutoSpaceGuill\FBguillspace\ignorespaces\fi}%
     \XeTeXinterchartoks \z@ \FB@guilf = {%
                \ifFBAutoSpaceGuill\FBguillspace\fi}%
     \XeTeXinterchartoks \FB@punctthin \FB@guilf = {%
                \ifFBAutoSpaceGuill\FBguillspace\fi}%
     \XeTeXinterchartoks 255 \FB@guilf = {%
                \ifFBAutoSpaceGuill\unskip\FBguillspace\fi}%
     \@for\FB@char:={`\[,`\(,"A0,"202F}\do
          {\XeTeXcharclass\FB@char=\FB@punctnul}%
     \@for\FB@char:={`\{,`\,,`\.,`\-,`\),`\],`\},`\%,%
                     "22,"27,"60,"2019}\do
          {\XeTeXcharclass\FB@char=\z@}%
      \def\shorthandoff##1{%
        \ifx\PackageWarning\@undefined
          \fb@warning{\noexpand\shorthandoff{;:!?} is helpless with
           XeTeX,\\ use \noexpand\NoAutoSpacing
           *inside a group* instead.}%
        \else
          \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is
           helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing
           \space *inside a group* instead;\MessageBreak reported}%
        \fi}%
      \def\shorthandon##1{}%
   }
   \newcommand*{\FB@xetex@punct@nonfrench}{%
     \ifx\FB@charclassesORI\empty
     \else
       \@for\FB@char:={`\:,`\;,`\!,`\?,"AB,"BB,%
                       `\(,`\[,`\{,`\,,`\.,`\-,`\),`\],`\},%
                       `\%,"22,"27,"60,"2019,"A0,"202F}\do
            {\expandafter\FB@parse\FB@charclassesORI\endparse
             \XeTeXcharclass\FB@char=\FB@class}%
       \def\FB@charclassesORI{}%
       \XeTeXinterchartokenstate=\FB@interchartokenstateORI
       \let\shorthandon\shorthandonORI
       \let\shorthandoff\shorthandoffORI
     \fi
   }
   \FB@addto{extras}{\FB@xetex@punct@french}
   \FB@addto{noextras}{\FB@xetex@punct@nonfrench}
\fi
\ifFB@active@punct
  \initiate@active@char{:}%
  \initiate@active@char{;}%
  \initiate@active@char{!}%
  \initiate@active@char{?}%
  \declare@shorthand{french}{;}{%
      \ifhmode
      \ifdim\lastskip>\z@
          \unskip\penalty\@M\FBthinspace
          \else
            \FDP@thinspace
        \fi
      \fi
      \string;}
  \declare@shorthand{french}{!}{%
      \ifhmode
        \ifdim\lastskip>\z@
          \unskip\penalty\@M\FBthinspace
        \else
          \FDP@thinspace
        \fi
      \fi
      \string!}
  \declare@shorthand{french}{?}{%
      \ifhmode
        \ifdim\lastskip>\z@
          \unskip\penalty\@M\FBthinspace
        \else
          \FDP@thinspace
        \fi
      \fi
      \string?}
  \declare@shorthand{french}{:}{%
      \ifhmode
        \ifdim\lastskip>\z@
          \unskip\penalty\@M\FBcolonspace
        \else
          \FDP@colonspace
        \fi
      \fi
      \string:}
  \declare@shorthand{system}{:}{\string:}
  \declare@shorthand{system}{!}{\string!}
  \declare@shorthand{system}{?}{\string?}
  \declare@shorthand{system}{;}{\string;}
  \FB@addto{extras}{\languageshorthands{french}%
    \bbl@activate{:}\bbl@activate{;}%
    \bbl@activate{!}\bbl@activate{?}%
  }
  \FB@addto{noextras}{%
    \bbl@deactivate{:}\bbl@deactivate{;}%
    \bbl@deactivate{!}\bbl@deactivate{?}%
  }
\fi
\newif\ifFBAutoSpacePunctuation  \FBAutoSpacePunctuationtrue
\def\autospace@beforeFDP{%
         \ifFB@luatex@punct\FB@addDPspace=1 \fi
         \def\FDP@thinspace{\penalty\@M\FBthinspace}%
         \def\FDP@colonspace{\penalty\@M\FBcolonspace}}
\def\noautospace@beforeFDP{%
         \ifFB@luatex@punct\FB@addDPspace=0 \fi
         \let\FDP@thinspace\@empty
         \let\FDP@colonspace\@empty}
\ifLaTeXe
    \def\AutoSpaceBeforeFDP{\autospace@beforeFDP
                            \FBAutoSpacePunctuationtrue}
    \def\NoAutoSpaceBeforeFDP{\noautospace@beforeFDP
                              \FBAutoSpacePunctuationfalse}
    \AtEndOfPackage{\AutoSpaceBeforeFDP}
\else
    \let\AutoSpaceBeforeFDP\autospace@beforeFDP
    \let\NoAutoSpaceBeforeFDP\noautospace@beforeFDP
    \AutoSpaceBeforeFDP
  \fi
\ifLaTeXe
    \DeclareRobustCommand\ttfamilyFB{%
         \FBAutoSpaceGuillfalse
         \ifFB@luatex@punct\FB@addGUILspace=0 \fi
         \noautospace@beforeFDP\ttfamilyORI}%
    \DeclareRobustCommand\rmfamilyFB{%
         \FBAutoSpaceGuilltrue
         \ifFB@luatex@punct\FB@addGUILspace=1 \fi
         \ifFBAutoSpacePunctuation
           \autospace@beforeFDP
         \else
           \noautospace@beforeFDP
         \fi
         \rmfamilyORI}%
    \DeclareRobustCommand\sffamilyFB{%
         \FBAutoSpaceGuilltrue
         \ifFB@luatex@punct\FB@addGUILspace=1 \fi
         \ifFBAutoSpacePunctuation
           \autospace@beforeFDP
         \else
           \noautospace@beforeFDP
         \fi
         \sffamilyORI}%
\fi
\newcommand*{\NoAutoSpacing}{\FBAutoSpaceGuillfalse
   \ifFB@active@punct\shorthandoff{;:!?}\fi
   \ifFB@xetex@punct\XeTeXinterchartokenstate=0 \fi
   \ifFB@luatex@punct\FB@addDPspace=0 \FB@addGUILspace=0 \fi
}
\newcommand*{\og}{\@empty}
\newcommand*{\fg}{\@empty}
\ifLaTeXe
\else
  \ifFBunicode
     \def\guillemotleft{{\char"00AB}}
     \def\guillemotright{{\char"00BB}}
     \def\textquotedblleft{{\char"201C}}
     \def\textquotedblright{{\char"201D}}
  \else
    \def\guillemotleft{\leavevmode\raise0.25ex
                       \hbox{$\scriptscriptstyle\ll$}}
    \def\guillemotright{\raise0.25ex
                        \hbox{$\scriptscriptstyle\gg$}}
    \def\textquotedblleft{``}
    \def\textquotedblright{''}
  \fi
  \let\xspace\relax
\fi
\newskip\FBguillskip
\FBguillskip=2.664pt plus 0.500pt minus 0.888pt \relax
\newcommand*{\FBguillspace}{\penalty\@M\hskip.8\fontdimen2\font
                                         plus.3\fontdimen3\font
                                        minus.8\fontdimen4\font}
\ifFB@luatex@punct
  \DeclareRobustCommand*{\FB@og}{\leavevmode
          \bgroup\FB@addGUILspace=1 \guillemotleft\egroup}
  \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
          \bgroup\FB@addGUILspace=1 \guillemotright\egroup\xspace}
\fi
\ifFB@xetex@punct
  \DeclareRobustCommand*{\FB@og}{\leavevmode
        \bgroup\FBAutoSpaceGuillfalse\guillemotleft\egroup
        \FBguillspace}
  \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
        \FBguillspace
        \bgroup\FBAutoSpaceGuillfalse\guillemotright\egroup\xspace}
\fi
\ifFB@active@punct
  \DeclareRobustCommand*{\FB@og}{\leavevmode
        \guillemotleft
        \FBguillspace}
  \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
        \FBguillspace
        \guillemotright\xspace}
\fi
\ifLaTeXe
  \def\bbl@frenchguillemets{\renewcommand*{\og}{\FB@og}%
                            \renewcommand*{\fg}{\FB@fg}}
  \renewcommand*{\og}{\textquotedblleft}
  \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi \textquotedblright}
\else
  \def\bbl@frenchguillemets{\let\og\FB@og
                            \let\fg\FB@fg}
  \def\og{\textquotedblleft}
  \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright}
\fi
\FB@addto{extras}{\babel@save\og \babel@save\fg \bbl@frenchguillemets}
\newcommand*{\ogi}{\FB@og}
\newcommand*{\fgi}{\FB@fg}
\newcommand*{\ogii}{\textquotedblleft}
\newcommand*{\fgii}{\textquotedblright}
\newcount\FBguill@level
\newif\ifFBcloseguill  \FBcloseguilltrue
\newif\ifFBInnerGuillSingle
\def\FBguillopen{\bgroup\NoAutoSpacing\guillemotleft\egroup}
\def\FBguillclose{\bgroup\NoAutoSpacing\guillemotright\egroup}
\let\FBguillnone\relax
\let\FBeveryparguill\FBguillopen
\ifFB@luatex@punct
   \let\FBeverylineguill\FBguillopen
\else
   \let\FBeverylineguill\FBguillnone
\fi
\ifLaTeXe
   \DeclareRobustCommand\frquote{%
       \@ifstar{\FBcloseguillfalse\fr@quote}%
               {\FBcloseguilltrue\fr@quote}}
\else
   \newcommand\frquote[1]{\fr@quote{#1}}
\fi
\newcommand{\fr@quote}[1]{%
  \bgroup
    \ifnum\FBguill@level=2
      \PackageWarning{frenchb.ldf}{%
              \protect\frquote\space accepts no more than two levels
              \MessageBreak of quotations.  Reported}
    \else
      \advance\FBguill@level by \@ne
    \fi
    \ifnum\FBguill@level=1
      \ifx\FBeveryparguill\relax
         \let\FBeverypar@quote\relax
      \else
         \def\FBeverypar@quote{\FBeveryparguill
                               \kern.8\fontdimen2\font}%
      \fi
      \ogi
      \everypar \expandafter{\the\everypar \FBeverypar@quote}%
      #1\fgi
    \else
      \ifx\FBeverylineguill\FBguillopen
         \luatexlocalleftbox{\guillemotleft\kern.8\fontdimen2\font}%
         \let\FBeverypar@quote\relax
         \FB@og #1\ifFBcloseguill\FB@fg\fi
      \else
        \ifx\FBeverylineguill\FBguillclose
           \luatexlocalleftbox{\guillemotright\kern.8\fontdimen2\font}%
           \let\FBeverypar@quote\relax
           \FB@og #1\ifFBcloseguill\FB@fg\fi
        \else
           \let\FBeverypar@quote\relax
           \ifFBInnerGuillSingle
              \def\ogii{\leavevmode
                        \guilsinglleft\FBguillspace}%
              \def\fgii{\ifdim\lastskip>\z@\unskip\fi
                        \FBguillspace\guilsinglright}%
              \ifx\FBeveryparguill\FBguillopen
                  \def\FBeverypar@quote{\guilsinglleft
                                        \kern.8\fontdimen2\font}%
              \fi
              \ifx\FBeveryparguill\FBguillclose
                  \def\FBeverypar@quote{\guilsinglright
                                        \kern.8\fontdimen2\font}%
              \fi
           \fi
           \ogii #1\ifFBcloseguill \fgii \fi
        \fi
      \fi
    \fi
  \egroup
}
\ifLaTeXe
  \def\BabelLanguages{french,acadian}
  \StartBabelCommands*{\BabelLanguages}{date}
      [unicode, fontenc=EU1 EU2, charset=utf8]
    \SetString\monthiiname{février}
    \SetString\monthviiiname{août}
    \SetString\monthxiiname{décembre}
  \StartBabelCommands*{\BabelLanguages}{date}
    \SetStringLoop{month#1name}{%
        janvier,f\'evrier,mars,avril,mai,juin,juillet,%
        ao\^ut,septembre,octobre,novembre,d\'ecembre}
    \SetString\today{{\number\day}\ifnum1=\day {\ier}\fi\space
        \csname month\romannumeral\month name\endcsname \space
        \number\year
       }
  \EndBabelCommands
\else
  \ifFBunicode
    \@namedef{date\CurrentOption}{%
      \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space
          \ifcase\month
            \or janvier\or février\or mars\or avril\or mai\or
            juin\or juillet\or août\or septembre\or
            octobre\or novembre\or décembre\fi
          \space \number\year}}
  \else
    \@namedef{date\CurrentOption}{%
      \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space
        \ifcase\month
          \or janvier\or f\'evrier\or mars\or avril\or mai\or
          juin\or juillet\or ao\^ut\or septembre\or
          octobre\or novembre\or d\'ecembre\fi
        \space \number\year}}
  \fi
\fi
\newif\ifFB@poorman
\newdimen\FB@Mht
\ifLaTeXe
  \AtEndOfPackage{\RequirePackage{scalefnt}}
  \newcommand*{\FBsupR}{-0.12}
  \newcommand*{\FBsupS}{0.65}
  \newcommand*{\FB@lc}[1]{\MakeLowercase{#1}}
  \DeclareRobustCommand*{\FB@up@fake}[1]{%
    \settoheight{\FB@Mht}{M}%
    \addtolength{\FB@Mht}{\FBsupR \FB@Mht}%
    \addtolength{\FB@Mht}{-\FBsupS ex}%
    \raisebox{\FB@Mht}{\scalefont{\FBsupS}{\FB@lc{#1}}}%
    }
  \def\FB@split#1#2#3#4\@nil{\def\FB@firstthree{#1#2#3}%
                             \def\FB@suffix{#4}}
  \def\FB@x{x}
  \def\FB@j{j}
  \DeclareRobustCommand*{\FB@up}[1]{%
    \bgroup \FB@poormantrue
      \expandafter\FB@split\f@family\@nil
      \edef\reserved@a{\lowercase{%
         \noexpand\IfFileExists{\f@encoding\FB@firstthree -sup.fd}}}%
      \reserved@a
        {\ifx\FB@suffix\FB@x \FB@poormanfalse\fi
         \ifx\FB@suffix\FB@j \FB@poormanfalse\fi
         \ifFB@poorman \FB@up@fake{#1}%
         \else         \FB@up@real{#1}%
         \fi}%
        {\FB@up@fake{#1}}%
    \egroup}
  \newcommand*{\FB@up@real}[1]{\bgroup
       \fontfamily{\FB@firstthree -sup}\selectfont \FB@lc{#1}\egroup}
  \DeclareRobustCommand*{\fup}[1]{%
    \ifx\realsuperscript\@undefined
       \FB@up{#1}%
    \else
      \bgroup\let\fakesuperscript\FB@up@fake
             \realsuperscript{\FB@lc{#1}}\egroup
    \fi}
  \providecommand*{\up}{\relax}
\else
  \providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}}
\fi
\def\ieme{\up{e}\xspace}
\def\iemes{\up{es}\xspace}
\def\ier{\up{er}\xspace}
\def\iers{\up{ers}\xspace}
\def\iere{\up{re}\xspace}
\def\ieres{\up{res}\xspace}
\newcommand*{\FrenchEnumerate}[1]{%
                       #1\up{o}\kern+.3em}
\newcommand*{\FrenchPopularEnumerate}[1]{%
                       #1\up{o})\kern+.3em}
\def\primo{\FrenchEnumerate1}
\def\secundo{\FrenchEnumerate2}
\def\tertio{\FrenchEnumerate3}
\def\quarto{\FrenchEnumerate4}
\def\fprimo){\FrenchPopularEnumerate1}
\def\fsecundo){\FrenchPopularEnumerate2}
\def\ftertio){\FrenchPopularEnumerate3}
\def\fquarto){\FrenchPopularEnumerate4}
\DeclareRobustCommand*{\No}{N\up{o}\kern+.2em}
\DeclareRobustCommand*{\no}{n\up{o}\kern+.2em}
\DeclareRobustCommand*{\Nos}{N\up{os}\kern+.2em}
\DeclareRobustCommand*{\nos}{n\up{os}\kern+.2em}
\DeclareRobustCommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt
                                           \scshape #1\endgroup}
\ifLaTeXe\else\let\scshape\relax\fi
\ifFBunicode
    \newcommand*{\at}{{\char"0040}}
    \newcommand*{\circonflexe}{{\char"005E}}
    \newcommand*{\tild}{{\char"007E}}
    \newcommand*{\boi}{\textbackslash}
    \newcommand*{\degre}{{\char"00B0}}
\else
  \ifLaTeXe
    \DeclareTextSymbol{\at}{T1}{64}
    \DeclareTextSymbol{\circonflexe}{T1}{94}
    \DeclareTextSymbol{\tild}{T1}{126}
    \DeclareTextSymbolDefault{\at}{T1}
    \DeclareTextSymbolDefault{\circonflexe}{T1}
    \DeclareTextSymbolDefault{\tild}{T1}
    \DeclareRobustCommand*{\boi}{\textbackslash}
    \DeclareRobustCommand*{\degre}{\r{}}
  \else
    \def\T@one{T1}
    \ifx\f@encoding\T@one
      \newcommand*{\degre}{{\char6}}
    \else
      \newcommand*{\degre}{{\char23}}
    \fi
    \newcommand*{\at}{{\char64}}
    \newcommand*{\circonflexe}{{\char94}}
    \newcommand*{\tild}{{\char126}}
    \newcommand*{\boi}{$\backslash$}
  \fi
\fi
\ifLaTeXe
  \newcommand*{\degres}{\degre}
  \ifFBunicode
    \DeclareRobustCommand*{\degres}{\degre}
  \else
    \def\Warning@degree@TSone{%
          \PackageWarning{frenchb.ldf}{%
             Degrees would look better in TS1-encoding:%
             \MessageBreak add \protect
             \usepackage{textcomp} to the preamble.%
             \MessageBreak Degrees used}}
    \AtBeginDocument{\ifx\DeclareEncodingSubset\@undefined
                        \DeclareRobustCommand*{\degres}{%
                           \leavevmode\hbox to 0.3em{\hss\degre\hss}%
                        \Warning@degree@TSone
                        \global\let\Warning@degree@TSone\relax}%
                     \else
                        \DeclareRobustCommand*{\degres}{%
                          \hbox{\UseTextSymbol{TS1}{\textdegree}}}%
                     \fi
                     }
  \fi
\else
  \newcommand*{\degres}{%
    \leavevmode\hbox to 0.3em{\hss\degre\hss}}
\fi
\newcount\std@mcc
\newcount\dec@mcc
\std@mcc=\mathcode`\,
\dec@mcc=\std@mcc
\@tempcnta=\std@mcc
\divide\@tempcnta by "1000
\multiply\@tempcnta by "1000
\advance\dec@mcc by -\@tempcnta
\newcommand*{\DecimalMathComma}{\iflanguage{french}%
                                 {\mathcode`\,=\dec@mcc}{}%
   \FB@addto{extras}{\mathcode`\,=\dec@mcc}%
}
\newcommand*{\StandardMathComma}{\mathcode`\,=\std@mcc
   \FB@addto{extras}{\mathcode`\,=\std@mcc}%
}
\FB@addto{noextras}{\mathcode`\,=\std@mcc}
\newcommand*{\nombre}[1]{{#1}\fb@warning{*** \noexpand\nombre
                                no longer formats numbers\string! ***}}
\let\FBstop@here\relax
\def\FBclean@on@exit{\let\ifLaTeXe\undefined
                     \let\LaTeXetrue\undefined
                     \let\LaTeXefalse\undefined}
\ifx\magnification\@undefined
\else
   \def\FBstop@here{\ifFB@luatex@punct
                       \activate@luatexpunct
                    \fi
                    \FBclean@on@exit
                    \ldf@quit\CurrentOption\endinput}
\fi
\FBstop@here
\renewcommand*{\nombre}[1]{\Warning@nombre\numprint{#1}}
\newcommand*{\Warning@nombre}{%
   \ifdefined\numprint
   \else
      \PackageWarning{frenchb.ldf}{%
         \protect\nombre\space now relies on package numprint.sty,%
         \MessageBreak add \protect
         \usepackage[autolanguage]{numprint}\MessageBreak
         to your preamble *after* loading babel,\MessageBreak
         see file numprint.pdf for more options.\MessageBreak
         \protect\nombre\space called}%
      \global\let\Warning@nombre\relax
   \fi
}
\ifx\FBfigtabshape\@undefined \let\FBfigtabshape\scshape \fi
\StartBabelCommands*{\BabelLanguages}{captions}
      [unicode, fontenc=EU1 EU2, charset=utf8]
   \SetString{\refname}{Références}
   \SetString{\abstractname}{Résumé}
   \SetString{\prefacename}{Préface}
   \SetString{\contentsname}{Table des matières}
   \SetString{\ccname}{Copie à }
   \SetString{\proofname}{Démonstration}
   \SetStringLoop{ordinal#1}{%
       Première,Deuxième,Troisième,Quatrième,Cinquième,%
       Sixième,Septième,Huitième,Neuvième,Dixième,Onzième,%
       Douzième,Treizième,Quatorzième,Quinzième,Seizième,%
       Dix-septième,Dix-huitième,Dix-neuvième,Vingtième}
\StartBabelCommands*{\BabelLanguages}{captions}
   \SetString{\refname}{R\'ef\'erences}
   \SetString{\abstractname}{R\'esum\'e}
   \SetString{\bibname}{Bibliographie}
   \SetString{\prefacename}{Pr\'eface}
   \SetString{\chaptername}{Chapitre}
   \SetString{\appendixname}{Annexe}
   \SetString{\contentsname}{Table des mati\`eres}
   \SetString{\listfigurename}{Table des figures}
   \SetString{\listtablename}{Liste des tableaux}
   \SetString{\indexname}{Index}
   \SetString{\figurename}{{\FBfigtabshape Figure}}
   \SetString{\tablename}{{\FBfigtabshape Table}}
   \SetString{\pagename}{page}
   \SetString{\seename}{voir}
   \SetString{\alsoname}{voir aussi}
   \SetString{\enclname}{P.~J. }
   \SetString{\ccname}{Copie \`a }
   \SetString{\headtoname}{}
   \SetString{\proofname}{D\'emonstration}
   \SetString{\glossaryname}{Glossaire}
   \SetStringLoop{ordinal#1}{%
       Premi\`ere,Deuxi\`eme,Troisi\`eme,Quatri\`eme,Cinqui\`eme,%
       Sixi\`eme,Septi\`eme,Huiti\`eme,Neuvi\`eme,Dixi\`eme,Onzi\`eme,%
       Douzi\`eme,Treizi\`eme,Quatorzi\`eme,Quinzi\`eme,Seizi\`eme,%
       Dix-septi\`eme,Dix-huiti\`eme,Dix-neuvi\`eme,Vingti\`eme}
   \AfterBabelCommands{%
       \DeclareRobustCommand*{\FB@emptypart}{\def\thepart{}}%
       \DeclareRobustCommand*{\FB@Rpart}{\def\thepart{\Roman{part}}}%
      }
   \SetString{\partname}{%
       \csname ordinal\romannumeral\value{part}\endcsname\space
       partie\FB@emptypart}
\EndBabelCommands
\bgroup
  \catcode`:=12 \catcode`>=12 \relax
  \long\gdef\STD@makecaption#1#2{%
    \vskip\abovecaptionskip
    \sbox\@tempboxa{#1: #2}%
    \ifdim \wd\@tempboxa >\hsize
      #1: #2\par
    \else
      \global \@minipagefalse
      \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
    \fi
    \vskip\belowcaptionskip}
\egroup
\newif\if@FBwarning@capsep
\@FBwarning@capseptrue
\newcommand{\FBWarning}[2]{\PackageWarning{#1}{#2}}
\newcommand*{\CaptionSeparator}{\space\textendash\space}
\def\FBCaption@Separator{:\space}
\long\def\FB@makecaption#1#2{%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1\FBCaption@Separator #2}%
  \ifdim \wd\@tempboxa >\hsize
    #1\FBCaption@Separator #2\par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}
\@ifclassloaded{amsart}{\@FBwarning@capsepfalse}{}
\@ifclassloaded{amsbook}{\@FBwarning@capsepfalse}{}
\@ifclassloaded{amsdtx}{\@FBwarning@capsepfalse}{}
\@ifclassloaded{amsldoc}{\@FBwarning@capsepfalse}{}
\@ifclassloaded{amproc}{\@FBwarning@capsepfalse}{}
\@ifclassloaded{smfart}{\@FBwarning@capsepfalse}{}
\@ifclassloaded{smfbook}{\@FBwarning@capsepfalse}{}
\ifFB@active@punct\else\@FBwarning@capsepfalse\fi
\newif\ifFB@koma
\@ifclassloaded{memoir}{\@FBwarning@capsepfalse}{}
\@ifclassloaded{scrartcl}{\@FBwarning@capsepfalse\FB@komatrue}{}
\@ifclassloaded{scrbook}{\@FBwarning@capsepfalse\FB@komatrue}{}
\@ifclassloaded{scrreprt}{\@FBwarning@capsepfalse\FB@komatrue}{}
\ifdefined\@makecaption\else\@FBwarning@capsepfalse\fi
\@ifpackageloaded{caption}
    {\FBWarning{frenchb.ldf}%
        {Please load the "caption" package\MessageBreak
         AFTER babel/frenchb; reported}%
     \@FBwarning@capsepfalse}%
     {}
\@ifpackageloaded{floatrow}
    {\FBWarning{frenchb.ldf}%
        {Please load the "floatrow" package\MessageBreak
         AFTER babel/frenchb; reported}%
     \@FBwarning@capsepfalse}%
     {}
\AtBeginDocument{%
  \ifx\@makecaption\STD@makecaption
      \global\let\@makecaption\FB@makecaption
      \ifFBOldFigTabCaptions
      \else
        \def\FBCaption@Separator{\iflanguage{french}{ : }{: }}%
      \fi
      \ifFBCustomiseFigTabCaptions
         \ifx\bbl@main@language\FB@french
            \def\FBCaption@Separator{\CaptionSeparator}%
         \fi
      \fi
      \@FBwarning@capsepfalse
  \fi
  \if@FBwarning@capsep
    \FBWarning{frenchb.ldf}%
       {Figures' and tables' captions might look like\MessageBreak
        `Figure 1:' which is wrong in French.\MessageBreak
        Check your class or packages to change this;\MessageBreak
        reported}%
  \fi
  \let\FB@makecaption\relax
  \let\STD@makecaption\relax
}
\ifFBunicode
  \let\FBtextellipsis\textellipsis
\else
  \DeclareTextSymbol{\FBtextellipsis}{LY1}{133}
  \DeclareTextCommandDefault{\FBtextellipsis}{%
    .\kern\fontdimen3\font.\kern\fontdimen3\font.\xspace}
\fi
\newcommand*{\Tdots@}{\@xp\textellipsis}
\newcommand*{\Mdots@}{\@xp\mdots@}
\AtBeginDocument{\DeclareRobustCommand*{\dots}{\relax
                 \csname\ifmmode M\else T\fi dots@\endcsname}%
                 \ifdefined\@xp\else\let\@xp\relax\fi
                 \ifdefined\mdots@\else\let\Mdots@\mathellipsis\fi
                }
\def\bbl@frenchdots{\babel@save\Tdots@ \let\Tdots@\FBtextellipsis}
\FB@addto{extras}{\bbl@frenchdots}
\ifFB@active@punct
   \@ifpackageloaded{listings}
      {\FBWarning{frenchb.ldf}%
          {Please load the "listings" package\MessageBreak
           AFTER babel/frenchb; reported}%
      }{}
\fi
\newif\if@FBwarning@natbib
\ifFB@active@punct
   \@ifpackageloaded{natbib}{}{\@FBwarning@natbibtrue}
\fi
\AtBeginDocument{%
   \if@FBwarning@natbib
      \@ifpackageloaded{natbib}{}{\@FBwarning@natbibfalse}%
   \fi
   \if@FBwarning@natbib
      \FBWarning{frenchb.ldf}%
         {Please load the "natbib" package\MessageBreak
          BEFORE babel/frenchb; reported}%
   \fi
}
\@ifpackageloaded{numprint}
    {\ifnprt@autolanguage
        \FBWarning{frenchb.ldf}%
           {Please load the "numprint" package\MessageBreak
             AFTER babel/frenchb; reported}%
     \fi
    }{}
\newcommand*{\frenchbsetup}[1]{%
  \setkeys{FB}{#1}%
}%
\@onlypreamble\frenchbsetup
\newif\ifFBShowOptions              \FBShowOptionsfalse
\newif\ifFBStandardLayout           \FBStandardLayouttrue
\newif\ifFBGlobalLayoutFrench       \FBGlobalLayoutFrenchtrue
\newif\ifFBReduceListSpacing        \FBReduceListSpacingfalse
\newif\ifFBListOldLayout            \FBListOldLayoutfalse
\newif\ifFBCompactItemize           \FBCompactItemizefalse
\newif\ifFBStandardItemizeEnv       \FBStandardItemizeEnvtrue
\newif\ifFBStandardEnumerateEnv     \FBStandardEnumerateEnvtrue
\newif\ifFBStandardItemLabels       \FBStandardItemLabelstrue
\newif\ifFBStandardLists            \FBStandardListstrue
\newif\ifFBIndentFirst              \FBIndentFirstfalse
\newif\ifFBFrenchFootnotes          \FBFrenchFootnotesfalse
\newif\ifFBAutoSpaceFootnotes       \FBAutoSpaceFootnotesfalse
\newif\ifFBOriginalTypewriter       \FBOriginalTypewriterfalse
\newif\ifFBThinColonSpace           \FBThinColonSpacefalse
\newif\ifFBThinSpaceInFrenchNumbers \FBThinSpaceInFrenchNumbersfalse
\newif\ifFBFrenchSuperscripts       \FBFrenchSuperscriptstrue
\newif\ifFBLowercaseSuperscripts    \FBLowercaseSuperscriptstrue
\newif\ifFBPartNameFull             \FBPartNameFulltrue
\newif\ifFBCustomiseFigTabCaptions  \FBCustomiseFigTabCaptionsfalse
\newif\ifFBOldFigTabCaptions        \FBOldFigTabCaptionsfalse
\newif\ifFBSmallCapsFigTabCaptions  \FBSmallCapsFigTabCaptionstrue
\newif\ifFBSuppressWarning          \FBSuppressWarningfalse
\newif\ifFBINGuillSpace             \FBINGuillSpacefalse
\edef\FB@french{\CurrentOption}
\AtEndOfPackage{%
  \ifx\bbl@main@language\FB@french
    \FBGlobalLayoutFrenchtrue
    \@ifclassloaded{beamer}%
      {\PackageInfo{frenchb.ldf}{%
          No list customisation for the beamer class,%
          \MessageBreak reported}}%
      {\FBReduceListSpacingtrue
       \FBStandardItemizeEnvfalse
       \FBStandardEnumerateEnvfalse
       \FBStandardItemLabelsfalse}%
    \FBIndentFirsttrue
    \FBFrenchFootnotestrue
    \FBAutoSpaceFootnotestrue
    \FBCustomiseFigTabCaptionstrue
  \else
    \FBGlobalLayoutFrenchfalse
  \fi
  \RequirePackage{keyval}%
  \define@key{FB}{ShowOptions}[true]%
                      {\csname FBShowOptions#1\endcsname}%
  \define@key{FB}{StandardLayout}[true]%
                      {\csname FBStandardLayout#1\endcsname
                       \ifFBStandardLayout
                         \FBReduceListSpacingfalse
                         \FBStandardItemizeEnvtrue
                         \FBStandardItemLabelstrue
                         \FBStandardEnumerateEnvtrue
                         \FBIndentFirstfalse
                         \FBFrenchFootnotesfalse
                         \FBAutoSpaceFootnotesfalse
                         \FBGlobalLayoutFrenchfalse
                       \else
                         \FBReduceListSpacingtrue
                         \FBStandardItemizeEnvfalse
                         \FBStandardItemLabelsfalse
                         \FBStandardEnumerateEnvfalse
                         \FBIndentFirsttrue
                         \FBFrenchFootnotestrue
                         \FBAutoSpaceFootnotestrue
                       \fi}%
  \define@key{FB}{GlobalLayoutFrench}[true]%
                      {\csname FBGlobalLayoutFrench#1\endcsname
                      \ifFBGlobalLayoutFrench
                         \ifx\bbl@main@language\FB@french
                         \else
                            \PackageWarning{frenchb.ldf}%
                              {Option `GlobalLayoutFrench' skipped:%
                               \MessageBreak French is *not*
                               babel's last option.\MessageBreak}%
                         \fi
                       \fi}%
  \define@key{FB}{ReduceListSpacing}[true]%
                      {\csname FBReduceListSpacing#1\endcsname}%
  \define@key{FB}{ListOldLayout}[true]%
                      {\csname FBListOldLayout#1\endcsname
                       \ifFBListOldLayout
                         \FBStandardEnumerateEnvtrue
                         \renewcommand*{\FrenchLabelItem}{\textendash}%
                       \fi}%
  \define@key{FB}{CompactItemize}[true]%
                      {\csname FBCompactItemize#1\endcsname
                       \ifFBCompactItemize
                         \FBStandardItemizeEnvfalse
                         \FBStandardEnumerateEnvfalse
                       \else
                         \FBStandardItemizeEnvtrue
                         \FBStandardEnumerateEnvtrue
                       \fi}%
  \define@key{FB}{StandardItemizeEnv}[true]%
                      {\csname FBStandardItemizeEnv#1\endcsname}%
  \define@key{FB}{StandardEnumerateEnv}[true]%
                      {\csname FBStandardEnumerateEnv#1\endcsname}%
  \define@key{FB}{StandardItemLabels}[true]%
                      {\csname FBStandardItemLabels#1\endcsname}%
  \define@key{FB}{ItemLabels}{%
        \renewcommand*{\FrenchLabelItem}{#1}}%
  \define@key{FB}{ItemLabeli}{%
        \renewcommand*{\Frlabelitemi}{#1}}%
  \define@key{FB}{ItemLabelii}{%
      \renewcommand*{\Frlabelitemii}{#1}}%
  \define@key{FB}{ItemLabeliii}{%
        \renewcommand*{\Frlabelitemiii}{#1}}%
  \define@key{FB}{ItemLabeliv}{%
      \renewcommand*{\Frlabelitemiv}{#1}}%
  \define@key{FB}{StandardLists}[true]%
                      {\csname FBStandardLists#1\endcsname
                       \ifFBStandardLists
                         \FBReduceListSpacingfalse
                         \FBCompactItemizefalse
                         \FBStandardItemizeEnvtrue
                         \FBStandardEnumerateEnvtrue
                         \FBStandardItemLabelstrue
                       \else
                         \FBReduceListSpacingtrue
                         \FBCompactItemizetrue
                         \FBStandardItemizeEnvfalse
                         \FBStandardEnumerateEnvfalse
                         \FBStandardItemLabelsfalse
                       \fi}%
  \define@key{FB}{IndentFirst}[true]%
                      {\csname FBIndentFirst#1\endcsname}%
  \define@key{FB}{FrenchFootnotes}[true]%
                      {\csname FBFrenchFootnotes#1\endcsname}%
  \define@key{FB}{AutoSpaceFootnotes}[true]%
                      {\csname FBAutoSpaceFootnotes#1\endcsname}%
  \define@key{FB}{AutoSpacePunctuation}[true]%
                      {\csname FBAutoSpacePunctuation#1\endcsname}%
  \define@key{FB}{OriginalTypewriter}[true]%
                      {\csname FBOriginalTypewriter#1\endcsname}%
  \define@key{FB}{ThinColonSpace}[true]%
                      {\csname FBThinColonSpace#1\endcsname}%
  \define@key{FB}{ThinSpaceInFrenchNumbers}[true]%
                     {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
  \define@key{FB}{FrenchSuperscripts}[true]%
                     {\csname FBFrenchSuperscripts#1\endcsname}
  \define@key{FB}{LowercaseSuperscripts}[true]%
                     {\csname FBLowercaseSuperscripts#1\endcsname}
  \define@key{FB}{PartNameFull}[true]%
                     {\csname FBPartNameFull#1\endcsname
                      \ifFBPartNameFull
                      \else
                        \FB@addto{captions}{%
                            \def\partname{Partie\protect\FB@Rpart}}%
                      \fi}%
  \define@key{FB}{CustomiseFigTabCaptions}[true]%
          {\csname FBCustomiseFigTabCaptions#1\endcsname}%
  \define@key{FB}{OldFigTabCaptions}[true]%
          {\csname FBOldFigTabCaptions#1\endcsname
           \ifFBOldFigTabCaptions
              \FB@addto{extras}{\babel@save\FBCaption@Separator
                       \def\FBCaption@Separator{\CaptionSeparator}}%
           \fi}%
  \define@key{FB}{SmallCapsFigTabCaptions}[true]%
          {\csname FBSmallCapsFigTabCaptions#1\endcsname
           \ifFBSmallCapsFigTabCaptions
              \let\FBfigtabshape\scshape
           \else
              \let\FBfigtabshape\relax
           \fi}%
  \define@key{FB}{SuppressWarning}[true]%
                      {\csname FBSuppressWarning#1\endcsname
                       \ifFBSuppressWarning
                         \renewcommand{\FBWarning}[2]{\relax}%
                       \fi}%
  \define@key{FB}{INGuillSpace}[true]%
                      {\csname FBINGuillSpace#1\endcsname}%
  \define@key{FB}{InnerGuillSingle}[true]%
                     {\csname FBInnerGuillSingle#1\endcsname}%
  \define@key{FB}{EveryParGuill}{\expandafter\let\expandafter
                 \FBeveryparguill\csname FBguill#1\endcsname}%
  \define@key{FB}{EveryLineGuill}{\expandafter\let\expandafter
                 \FBeverylineguill\csname FBguill#1\endcsname
                    \ifFB@luatex@punct
                    \else
                      \let\FBeverylineguill\FBguillnone
                      \PackageWarning{frenchb.ldf}%
                         {Option `EveryLineGuill' skipped:%
                          \MessageBreak this option is for
                          LuaTeX *only*.\MessageBreak Reported}%
                    \fi}%
  \define@key{FB}{og}{%
      \ifFBunicode
         \ifFB@luatex@punct
           \FB@addGUILspace=1 \relax
         \fi
         \ifFB@xetex@punct
           \XeTeXcharclass"13   = \FB@guilo
           \XeTeXcharclass"AB   = \FB@guilo
           \XeTeXcharclass"A0   = \FB@guilnul
           \XeTeXcharclass"202F = \FB@guilnul
         \fi
      \else
         \newcommand*{\FB@@og}{%
            \iflanguage{french}%
              {\ifFBAutoSpaceGuill\FB@og\ignorespaces
               \else\guillemotleft
               \fi}%
              {\guillemotleft}}%
         \AtBeginDocument{%
           \ifdefined\DeclareInputText
              \ifdefined\uc@dclc
                 \uc@dclc{171}{default}{\FB@@og}%
              \else
                 \ifdefined\DeclareUnicodeCharacter
                    \DeclareUnicodeCharacter{00AB}{\FB@@og}%
                 \else
                    \@tempcnta`#1\relax
                    \ifdefined\mule@def
                       \mule@def{11}{\FB@@og}%
                    \else
                       \DeclareInputText{\the\@tempcnta}{\FB@@og}%
                    \fi
                 \fi
              \fi
           \else
              \PackageWarning{frenchb.ldf}%
                {Option `og' requires package inputenc.\MessageBreak}%
           \fi
         }%
      \fi
  }%
  \define@key{FB}{fg}{%
      \ifFBunicode
         \ifFB@luatex@punct
           \FB@addGUILspace=1 \relax
         \fi
         \ifFB@xetex@punct
           \XeTeXcharclass"14   = \FB@guilf
           \XeTeXcharclass"BB   = \FB@guilf
           \XeTeXcharclass"A0   = \FB@guilnul
           \XeTeXcharclass"202F = \FB@guilnul
         \fi
      \else
         \newcommand*{\FB@@fg}{%
            \iflanguage{french}%
              {\ifFBAutoSpaceGuill\FB@fg
               \else\guillemotright
               \fi}%
              {\guillemotright}}%
         \AtBeginDocument{%
           \ifdefined\DeclareInputText
              \ifdefined\uc@dclc
                 \uc@dclc{187}{default}{\FB@@fg}%
              \else
                 \ifdefined\DeclareUnicodeCharacter
                   \DeclareUnicodeCharacter{00BB}{\FB@@fg}%
                 \else
                    \@tempcnta`#1\relax
                     \ifdefined\mule@def
                        \mule@def{27}{{\FB@@fg}}%
                     \else
                        \DeclareInputText{\the\@tempcnta}{\FB@@fg}%
                     \fi
                 \fi
              \fi
           \else
              \PackageWarning{frenchb.ldf}%
                {Option `fg' requires package inputenc.\MessageBreak}%
           \fi
         }%
      \fi
  }%
}
\newcommand*{\FBprocess@options}{%
  \@ifpackageloaded{enumitem}{%
     \ifFBStandardItemizeEnv
     \else
        \FBStandardItemizeEnvtrue
        \PackageInfo{frenchb.ldf}%
          {Setting StandardItemizeEnv=true for\MessageBreak
           compatibility with enumitem package,\MessageBreak}%
     \fi
     \ifFBStandardEnumerateEnv
     \else
        \FBStandardEnumerateEnvtrue
        \PackageInfo{frenchb.ldf}%
          {Setting StandardEnumerateEnv=true for\MessageBreak
           compatibility with enumitem package,\MessageBreak}%
     \fi}{}%
  \@ifpackageloaded{paralist}{%
     \ifFBStandardItemizeEnv
     \else
        \FBStandardItemizeEnvtrue
        \PackageInfo{frenchb.ldf}%
          {Setting StandardItemizeEnv=true for\MessageBreak
           compatibility with paralist package,\MessageBreak}%
     \fi
     \ifFBStandardEnumerateEnv
     \else
        \FBStandardEnumerateEnvtrue
        \PackageInfo{frenchb.ldf}%
          {Setting StandardEnumerateEnv=true for\MessageBreak
           compatibility with paralist package,\MessageBreak}%
     \fi}{}%
  \@ifpackageloaded{enumerate}{%
     \ifFBStandardEnumerateEnv
     \else
        \FBStandardEnumerateEnvtrue
        \PackageInfo{frenchb.ldf}%
          {Setting StandardEnumerateEnv=true for\MessageBreak
           compatibility with enumerate package,\MessageBreak}%
     \fi}{}%
  \def\FB@ufl{\update@frenchlists}
  \ifx\bbl@main@language\FB@french
     \update@frenchlists
  \fi
  \ifFBAutoSpacePunctuation
       \autospace@beforeFDP
  \else
       \noautospace@beforeFDP
  \fi
  \ifFBOriginalTypewriter
  \else
     \let\ttfamilyORI\ttfamily
     \let\rmfamilyORI\rmfamily
     \let\sffamilyORI\sffamily
     \let\ttfamily\ttfamilyFB
     \let\rmfamily\rmfamilyFB
     \let\sffamily\sffamilyFB
  \fi
  \ifFBThinColonSpace
    \ifFB@luatex@punct
       \FBcolonskip=\FBthinskip\relax
    \else
       \renewcommand*{\FBcolonspace}{\FBthinspace}%
    \fi
  \fi
  \ifFBINGuillSpace
    \ifFB@luatex@punct
       \FBguillskip=3.33pt plus 1.665pt minus 1.11pt \relax
    \else
       \renewcommand*{\FBguillspace}{\space}%
    \fi
  \fi
  \@ifpackageloaded{numprint}%
  {\ifnprt@autolanguage
     \providecommand*{\npstylefrench}{}%
     \ifFBThinSpaceInFrenchNumbers
       \renewcommand*\npstylefrench{%
          \npthousandsep{\,}%
          \npdecimalsign{,}%
          \npproductsign{\cdot}%
          \npunitseparator{\,}%
          \npdegreeseparator{}%
          \nppercentseparator{\nprt@unitsep}%
          }%
     \else
       \renewcommand*\npstylefrench{%
          \npthousandsep{~}%
          \npdecimalsign{,}%
          \npproductsign{\cdot}%
          \npunitseparator{\,}%
          \npdegreeseparator{}%
          \nppercentseparator{\nprt@unitsep}%
          }%
     \fi
     \npaddtolanguage{french}{french}%
   \fi}{}%
  \ifFBFrenchSuperscripts
    \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}{\fup}}%
  \else
    \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}%
                                        {\textsuperscript}}%
  \fi
  \ifFBLowercaseSuperscripts
  \else
    \renewcommand*{\FB@lc}[1]{##1}%
  \fi
   \ifFBCustomiseFigTabCaptions
     \ifFB@koma
        \let\captionformat\CaptionSeparator
     \fi
     \@ifclassloaded{memoir}%
       {\captiondelim{\CaptionSeparator}}{}%
   \else
     \ifFB@koma
        \def\captionformat{\iflanguage{french}{ : }{: }}%
     \fi
     \@ifclassloaded{memoir}%
        {\captiondelim{\iflanguage{french}{ : }{: }}}{}%
   \fi
  \ifFBShowOptions
    \GenericWarning{* }{%
     * **** List of possible options for frenchb ****\MessageBreak
     [Default values between brackets when frenchb is loaded *LAST*]%
     \MessageBreak
     ShowOptions=true [false]\MessageBreak
     StandardLayout=true [false]\MessageBreak
     GlobalLayoutFrench=false [true]\MessageBreak
     StandardLists=true [false]\MessageBreak
     IndentFirst=false [true]\MessageBreak
     ReduceListSpacing=false [true]\MessageBreak
     ListOldLayout=true [false]\MessageBreak
     StandardItemizeEnv=true [false]\MessageBreak
     StandardEnumerateEnv=true [false]\MessageBreak
     StandardItemLabels=true [false]\MessageBreak
     ItemLabels=\textemdash, \textbullet,
        \protect\ding{43},... [\textendash]\MessageBreak
     ItemLabeli=\textemdash, \textbullet,
        \protect\ding{43},... [\textendash]\MessageBreak
     ItemLabelii=\textemdash, \textbullet,
        \protect\ding{43},... [\textendash]\MessageBreak
     ItemLabeliii=\textemdash, \textbullet,
        \protect\ding{43},... [\textendash]\MessageBreak
     ItemLabeliv=\textemdash, \textbullet,
        \protect\ding{43},... [\textendash]\MessageBreak
     FrenchFootnotes=false [true]\MessageBreak
     AutoSpaceFootnotes=false [true]\MessageBreak
     AutoSpacePunctuation=false [true]\MessageBreak
     OriginalTypewriter=true [false]\MessageBreak
     ThinColonSpace=true [false]\MessageBreak
     ThinSpaceInFrenchNumbers=true [false]\MessageBreak
     FrenchSuperscripts=false [true]\MessageBreak
     LowercaseSuperscripts=false [true]\MessageBreak
     PartNameFull=false [true]\MessageBreak
     SuppressWarning=true [false]\MessageBreak
     CustomiseFigTabCaptions=false [true]\MessageBreak
     OldFigTabCaptions=true [false]\MessageBreak
     SmallCapsFigTabCaptions=false [true]\MessageBreak
     INGuillSpace=true [false]\MessageBreak
     InnerGuillSingle=true [false]\MessageBreak
     EveryParGuill=open, close, none [open]\MessageBreak
     EveryLineGuill=open, close, none
                   [open in LuaTeX, none otherwise]\MessageBreak
     og= <left quote character>, fg= <right quote character>%
     \MessageBreak
     *********************************************%
     \MessageBreak\protect\frenchbsetup{ShowOptions}}
  \fi
}
\AtBeginDocument{%
   \providecommand*{\xspace}{\relax}%
   \ifdefined\pdfstringdefDisableCommands
      \pdfstringdefDisableCommands{%
        \let\up\relax
        \let\fup\relax
        \let\degre\textdegree
        \let\degres\textdegree
        \def\ieme{e\xspace}%
        \def\iemes{es\xspace}%
        \def\ier{er\xspace}%
        \def\iers{ers\xspace}%
        \def\iere{re\xspace}%
        \def\ieres{res\xspace}%
        \def\FrenchEnumerate#1{#1\degre\space}%
        \def\FrenchPopularEnumerate#1{#1\degre)\space}%
        \def\No{N\degre\space}%
        \def\no{n\degre\space}%
        \def\Nos{N\degre\space}%
        \def\nos{n\degre\space}%
        \def\FB@og{\guillemotleft\space}%
        \def\FB@fg{\space\guillemotright}%
        \def\at{@}%
        \def\circonflexe{\string^}%
        \def\tild{\string~}%
        \let\bsc\textsc
       }%
   \fi
   \FBprocess@options
  \ifFB@luatex@punct
    \activate@luatexpunct
  \fi
   \ifFBunicode
      \ifdefined\DeclareUTFcharacter
      \else
         \@ifpackageloaded{luainputenc}{}%
           {\PackageWarning{frenchb.ldf}%
            {Add \protect\usepackage{fontspec} to the\MessageBreak
            preamble of your document,}%
           }%
      \fi
   \else
      \begingroup \newcommand{\FBOTone}{OT1}%
      \ifx\encodingdefault\FBOTone
        \PackageWarning{frenchb.ldf}%
           {OT1 encoding should not be used for French.%
            \MessageBreak
            Add \protect\usepackage[T1]{fontenc} to the
            preamble\MessageBreak of your document,}%
      \fi
      \endgroup
   \fi
}
\let\listORI\list
\let\endlistORI\endlist
\def\FB@listVsettings{%
      \setlength{\itemsep}{0.4ex plus 0.2ex minus 0.2ex}%
      \setlength{\parsep}{0.4ex plus 0.2ex minus 0.2ex}%
      \setlength{\topsep}{0.8ex plus 0.4ex minus 0.4ex}%
      \setlength{\partopsep}{0.4ex plus 0.2ex minus 0.2ex}%
      \@tempdima=\parskip
      \addtolength{\topsep}{-\@tempdima}%
      \addtolength{\partopsep}{\@tempdima}%
}
\def\listFB#1#2{\listORI{#1}{\FB@listVsettings #2}}
\let\endlistFB\endlist
\newcommand*{\FrenchLabelItem}{\textemdash}
\newcommand*{\Frlabelitemi}{\FrenchLabelItem}
\newcommand*{\Frlabelitemii}{\FrenchLabelItem}
\newcommand*{\Frlabelitemiii}{\FrenchLabelItem}
\newcommand*{\Frlabelitemiv}{\FrenchLabelItem}
\newlength\listindentFB
\setlength{\listindentFB}{-1pt}
\newlength\labelwidthFB
\setlength{\labelwidthFB}{-1pt}
\newlength\leftmarginFB
\def\FB@listHsettings{%
   \leftmarginFB\labelwidthFB
   \advance\leftmarginFB \labelsep
   \leftmargini\leftmarginFB
   \advance\leftmargini \listindentFB
   \leftmarginii\leftmarginFB
   \leftmarginiii\leftmarginFB
   \leftmarginiv\leftmarginFB
   \leftmargin\csname leftmargin\romannumeral\the\@listdepth\endcsname
}
\def\FB@itemizesettings{%
    \ifFBReduceListSpacing
       \setlength{\itemsep}{\z@}%
       \setlength{\parsep}{\z@}%
       \setlength{\topsep}{\z@}%
       \setlength{\partopsep}{\z@}%
       \@tempdima=\parskip
       \addtolength{\topsep}{-\@tempdima}%
       \addtolength{\partopsep}{\@tempdima}%
    \fi
    \settowidth{\labelwidth}{\csname\@itemitem\endcsname}%
    \ifFBListOldLayout
       \setlength{\leftmargin}{\labelwidth}%
       \addtolength{\leftmargin}{\labelsep}%
       \addtolength{\leftmargin}{\parindent}%
    \else
       \FB@listHsettings
    \fi
}
\def\itemizeFB{%
    \ifnum \@itemdepth >\thr@@\@toodeep\else
      \advance\@itemdepth\@ne
      \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
      \expandafter
      \listORI
      \csname\@itemitem\endcsname
      \FB@itemizesettings
    \fi
}
\let\enditemizeFB\endlistORI
\def\labelitemsFB{%
    \let\labelitemi\Frlabelitemi
    \let\labelitemii\Frlabelitemii
    \let\labelitemiii\Frlabelitemiii
    \let\labelitemiv\Frlabelitemiv
    \ifdim\labelwidthFB<\z@
      \settowidth{\labelwidthFB}{\FrenchLabelItem}%
    \fi
    \ifdim\listindentFB<\z@
      \ifdim\parindent=\z@
        \setlength{\listindentFB}{1.5em}%
      \else
        \setlength{\listindentFB}{\parindent}%
      \fi
    \fi
}
\def\enumerateFB{%
  \ifnum \@enumdepth >\thr@@\@toodeep\else
    \advance\@enumdepth\@ne
    \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
    \expandafter
    \list
      \csname label\@enumctr\endcsname
      {\FB@listHsettings
       \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
  \fi
}
\let\endenumerateFB\endlistORI
\def\descriptionFB{%
      \list{}{\FB@listHsettings
              \labelwidth\z@
              \itemindent-\leftmargin
              \ifnum\@listdepth=1
                 \advance\itemindent by \listindentFB
              \fi
              \let\makelabel\descriptionlabel}%
}
\let\enddescriptionFB\endlistORI
\def\update@frenchlists{%
  \ifFBReduceListSpacing \let\list\listFB \fi
  \ifFBStandardItemizeEnv
  \else \let\itemize\itemizeFB \fi
  \ifFBStandardItemLabels
  \else \labelitemsFB \fi
  \ifFBStandardEnumerateEnv
  \else \let\enumerate\enumerateFB \let\description\descriptionFB \fi
}
\def\FB@ufl{\relax}
\def\bbl@frenchlistlayout{%
  \ifFBGlobalLayoutFrench
  \else
    \babel@save\list         \babel@save\itemize
    \babel@save\enumerate    \babel@save\description
    \babel@save\labelitemi   \babel@save\labelitemii
    \babel@save\labelitemiii \babel@save\labelitemiv
  \fi
  \FB@ufl
}
\def\bbl@nonfrenchlistlayout{%
  \ifFBGlobalLayoutFrench
     \update@frenchlists
  \fi
}
\FB@addto{extras}{\bbl@frenchlistlayout}
\FB@addto{noextras}{\bbl@nonfrenchlistlayout}
\def\bbl@frenchindent{%
  \ifFBGlobalLayoutFrench\else\babel@save\@afterindentfalse\fi
  \ifFBIndentFirst
     \let\@afterindentfalse\@afterindenttrue
     \@afterindenttrue
  \fi}
\def\bbl@nonfrenchindent{%
  \ifFBGlobalLayoutFrench
     \ifFBIndentFirst
        \@afterindenttrue
     \fi
  \fi}
\FB@addto{extras}{\bbl@frenchindent}
\FB@addto{noextras}{\bbl@nonfrenchindent}
\AtBeginDocument{\@ifpackageloaded{bigfoot}%
                   {\PackageInfo{frenchb.ldf}%
                     {bigfoot package in use.\MessageBreak
                      frenchb will NOT customise footnotes;\MessageBreak
                      reported}}%
                   {\let\@footnotemarkORI\@footnotemark
                    \def\@footnotemarkFB{\leavevmode\unskip\unkern
                                         \,\@footnotemarkORI}%
                    \ifFBAutoSpaceFootnotes
                      \let\@footnotemark\@footnotemarkFB
                    \fi}%
                }
\newcommand*{\dotFFN}{.}
\newcommand*{\kernFFN}{\kern .5em}
\newdimen\parindentFFN
\parindentFFN=10in
\def\ftnISsymbol{\@fnsymbol\c@footnote}
\long\def\@makefntextFB#1{\ifx\thefootnote\ftnISsymbol
                            \@makefntextORI{#1}%
                          \else
                            \parindent=\parindentFFN
                            \rule\z@\footnotesep
                            \setbox\@tempboxa\hbox{\@thefnmark}%
                            \ifdim\wd\@tempboxa>\z@
                              \llap{\@thefnmark}\dotFFN\kernFFN
                            \fi #1
                          \fi}%
\AtBeginDocument{\@ifpackageloaded{bigfoot}{}%
                  {\ifdim\parindentFFN<10in
                   \else
                      \parindentFFN=\parindent
                      \ifdim\parindentFFN<1.5em \parindentFFN=1.5em \fi
                   \fi
                   \let\@makefntextORI\@makefntext
                   \long\def\@makefntext#1{%
                      \ifFBFrenchFootnotes
                         \@makefntextFB{#1}%
                      \else
                         \@makefntextORI{#1}%
                      \fi}%
                  }%
                }
\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue}
\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue}
\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse}
\FBclean@on@exit
\ldf@finish\CurrentOption
\endinput
%%
%% End of file `frenchb.ldf'.
