\NeedsTeXFormat{LaTeX2e}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%      bfca class for LaTeX2e      %%
%%      Jean-Baptiste Yunès         %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%-----------------------------------------------------------------------------
%%-----------------------------------------------------------------------------
\ProvidesClass{bfca}[2005/04/01 JBY]
%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{amsart}}
%\ProcessOptions\relax
\LoadClass[reqno,11pt]{amsart}[1996/10/24]
\RequirePackage{cite}
\RequirePackage{geometry}
\geometry{paper=a4paper,text={110mm,187mm},headsep=10mm,
    headheight=40mm,top=50mm,left=50mm,footskip=20pt,includefoot,verbose}
\setlength{\parindent}{5mm}
%%-----------------------------------------------------------------------------
%%-----------------------------------------------------------------------------
\def\section{\@startsection{section}{1}\z@{1.2\linespacing\@plus\linespacing}%
{\linespacing} {\fontsize{12}{14}\sffamily\selectfont\bfseries}}
\def\subsection{\@startsection{subsection}{2}\z@{\linespacing\@plus.8\linespacing}%
{.25\linespacing}{\fontsize{11}{14}\sffamily\selectfont\bfseries}}
\def\subsubsection{\@startsection{subsubsection}{3}\z@{\linespacing\@plus.5\linespacing}%
{.25\linespacing}{\sffamily}}
%\normalfont\itshape}}
\def\paragraph{\@startsection{paragraph}{4}\z@\z@{-\fontdimen2\font}\normalfont}
\def\subparagraph{\@startsection{subparagraph}{5}\z@\z@{-\fontdimen2\font}\normalfont}
%%-----------------------------------------------------------------------------
%%-----------------------------------------------------------------------------
%----  MAKETITLE
\def\@maketitle{%
  \normalfont\normalsize
  \let\@makefnmark\relax \let\@thefnmark\relax
  \global\topskip42\p@\relax
  \@SKIP@Aa
  \vbox{\hbox to\hsize{{\fontsize{10}{10}\sffamily\selectfont{\@CONFNAMEEN}}\hfill%
  {\fontsize{9}{10}\sffamily\selectfont\@CONFACRO}}
  \hbox to\hsize{\fontsize{9}{10}\sffamily\selectfont{\@CONFNAMEFR}\hfill}}
  \@SKIP@Ab
  \@settitle
  \@setauthors
  \@setabstract
  \@setresume
  \normalsize
  \if@titlepage\newpage\else\dimen@34\p@\advance\dimen@-\baselineskip\vskip\dimen@\relax\fi
  \gdef\thanks##1{\relax}\gdef\address##1{\relax}
}% end \@maketitle
\def\@SKIP@Aa{\vspace*{-1.5cm}}%
\def\@SKIP@Ab{\vspace*{1.5cm}}%
\def\@CONFNAMEFR{{Fonctions Bool\'eennes\,: Cryptographie \& Applications}}%
\def\@CONFNAMEEN{{Boolean Functions: Cryptography and Applications}}%
\def\@CONFACRO{{BFCA'05}}%
\def\idline#1page#2{\global\def\@CONFACRO{{BFCA'05}}\setcounter{page}{#2}}
\def\@settitle{\begin{center}\fontsize{12}{15}\sffamily\selectfont\bfseries
    \uppercasenonmath\@title\@title\@thnks@i\@thnks@ii\@thnks@iii\@thnks@iv\@thnks@v
\ifnum\the\@c@thnks@=0\else\footnote{\box\@b@thnks@}\fi
\end{center}}
\newbox\@b@rnngttl
\def\runningtitle#1{\gdef\shorttitle{#1}\setbox\@b@rnngttl=\hbox{\fontsize{7}{9}\selectfont\rm\uppercase{#1}}}
\def\title#1{\gdef\shorttitle{#1}\gdef\@title{#1}}
\def\@setauthors{\begingroup\trivlist
  \centering\footnotesize \@topsep30\p@\relax\advance\@topsep by -\baselineskip
  \item\relax\fontsize{12}{14}\sffamily\selectfont\@@th@rs\ignorespaces
  \footnote{\box\@b@ddrss@}\endtrivlist\endgroup
}
\def\email#1{{email: \tt#1}}
\newbox\@b@rnngthr
\def\runningauthors#1{\gdef\shortauthors{#1}\setbox\@b@rnngthr=\hbox{#1}%
\global\def\@rnngthrs{\fontsize{7}{9}\selectfont\rm\uppercase{#1}}}
\newcount\@c@thr@\@c@thr@=0
\def\author#1{\global\advance\@c@thr@ by 1
  \ifx\@empty\shortauthors
    \gdef\shortauthors{#1}
  \else
    \g@addto@macro\shortauthors{, #1}
  \fi
  \global\expandafter\edef\csname @thr@\romannumeral\@c@thr@\endcsname{#1}
  \global\expandafter\edef\csname @Mthr@\romannumeral\@c@thr@\endcsname{\uppercase{#1}}
  \global\expandafter\def\csname @ddrss@\romannumeral\@c@thr@\endcsname{}
  \global\expandafter\def\csname @scndddrss@\romannumeral\@c@thr@\endcsname{}
  \global\expandafter\def\csname @smddrss@\romannumeral\@c@thr@\endcsname{}}%\author
%    Elaborating the two author lists (First page and heading)
\newcount\@y
\newcount\@x
\def\@cnjctn{\ifnum\the\@c@thr@=1\null\else{{\ and\ }}\fi}
\def\@Mcnjctn{\ifnum\the\@c@thr@=1\null\else{{\ AND\ }}\fi}
\def\@@th@rs{\@x=0\global\@y=\@c@thr@\global\advance\@y by -1
\loop\advance\@x by 1
\ifnum\the\@x<\the\@y\csname  @thr@\romannumeral\@x\endcsname\ignorespaces
  ${}^{\csname  @ddrss@\romannumeral\@x\endcsname
       \csname  @smddrss@\romannumeral\@x\endcsname
       \csname  @scndddrss@\romannumeral\@x\endcsname}$,
\repeat
\csname  @thr@\romannumeral\@y\endcsname\ignorespaces
  ${}^{\csname  @ddrss@\romannumeral\@y\endcsname
       \csname  @smddrss@\romannumeral\@y\endcsname
       \csname  @scndddrss@\romannumeral\@y\endcsname}$\@cnjctn
\csname  @thr@\romannumeral\@c@thr@\endcsname\ignorespaces
  ${}^{\csname  @ddrss@\romannumeral\@c@thr@\endcsname
       \csname  @smddrss@\romannumeral\@c@thr@\endcsname
       \csname  @scndddrss@\romannumeral\@c@thr@\endcsname}$%
}%\@@th@rs
\def\M@@th@rs{\@x=0\global\@y=\@c@thr@\global\advance\@y by -1
\loop\advance\@x by 1
\ifnum\the\@x<\the\@y\csname  @Mthr@\romannumeral\@x\endcsname,
\repeat
\csname  @Mthr@\romannumeral\@y\endcsname\@Mcnjctn
\csname  @Mthr@\romannumeral\@c@thr@\endcsname}%\M@@th@rs
\def\@qq#1#2{\vrule height#1 depth#2 width0pt}
\let\@date\@empty
\def\@setdate{\noindent\fontsize{8}{10}\selectfont\hbox{\@date}}
\def\editor#1{\def\@editor{#1}}
\let\@editor\@empty
\def\@seteditor{\vskip6\p@\noindent\fontsize{8}{10}\selectfont\noindent\hbox{\@editor\@addpunct.}}
\newbox\resumebox
\newenvironment{resume}{\ifx\maketitle\relax\ClassWarning{\@classname}{\@MSSG@CLSSWRNGRSM}\fi
  \global\setbox\resumebox=\vtop\bgroup\fontsize{9}{11}\selectfont\advance \hsize -6pc
  \trivlist 
    \labelsep.5em\item[\hskip\labelsep{\bf\sffamiliy\fontsize{10}{12}\selectfont R\'esum\'e}.]}
{\endtrivlist\egroup\ifx\@setresume\relax \@setresumea \fi}
\def\@setresume{\@setresumea\global\let\@setresume\relax}
\def\@setresumea{\skip@20\p@\advance\skip@-\lastskip\advance\skip@-\baselineskip \vskip\skip@
  \ifvoid\resumebox\else\moveright 3pc \box\resumebox\fi}
\newbox\abstractbox
\renewenvironment{abstract}{\ifx\maketitle\relax\ClassWarning{\@classname}{\@MSSG@CLSSWRNGBSTRCT}\fi
  \global\setbox\abstractbox=\vtop\bgroup\fontsize{9}{11}\selectfont 
  \advance \hsize -6pc
  \trivlist 
    \labelsep.5em\item[\hskip\labelsep{\bf\sffamily\fontsize{10}{12}\selectfont Abstract}.]}
{\endtrivlist\egroup\ifx\@setabstract\relax \@setabstracta \fi}
\def\@setabstract{\@setabstracta\global\let\@setabstract\relax}
\def\@setabstracta{\skip@20\p@ \advance\skip@-\lastskip \advance\skip@-\baselineskip \vskip\skip@
  \ifvoid\abstractbox{\hbox to\hsize{\kern3pc\fontsize{10}{12}
          \selectfont\bf \hbox to55pt{Abstract\hfill}\qquad\@MSSG@BSTRCT\hfill}}
    \else\moveright 3pc \box\abstractbox \fi}
\def\@spc{\kern1pt}\def\@spcc{\kern2pt}
\newcount\@c@ddrss@\newbox\@b@ddrss@
%
\def\@dd@ddrss@#1{%
\global\setbox51=\vbox{\advance\hsize by-12pt\unvbox\@b@ddrss@
  \vtop{\footnotesize\noindent{${}^{\the\@c@ddrss@}$\ }\@qq{10pt}{0pt}\textrm{#1}}}
  \global\setbox\@b@ddrss@=\vbox{\unvbox51}}%
%
\def\@dd@scndddrss@#1{%
\global\setbox51=\vbox{\advance\hsize by-12pt\unvbox\@b@ddrss@
  \vtop{\footnotesize\noindent{${}^{\the\@c@ddrss@}$\ }\@qq{10pt}{0pt}\textrm{#1}}}
  \global\setbox\@b@ddrss@=\vbox{\unvbox51}}
%
\def\address#1{\global\advance\@c@ddrss@ by 1\@dd@ddrss@{#1}
  \expandafter\edef\csname @ddrss@\romannumeral\@c@thr@\endcsname{\@spc\number\@c@ddrss@}}
\def\secondaddress#1{\global\advance\@c@ddrss@ by 1\@dd@ddrss@{#1}
  \expandafter\edef\csname @scndddrss@\romannumeral\@c@thr@\endcsname%
{,\@spcc\number\@c@ddrss@}}%\secondaddress#1
\def\sameaddress#1{\expandafter\edef\csname @smddrss@\romannumeral\@c@thr@\endcsname{\@spc{}#1}}
\def\@rmnnmrl#1{\ifcase#1\null\or*\or**\or***\or****\or*****\else\@MSSG@THNKS\fi}
\def\@thnks@i{}\def\@thnks@ii{}\def\@thnks@iii{}\def\@thnks@iv{}\def\@thnks@v{}
\newcount\@c@thnks@\newbox\@b@thnks@
\def\@dd@thnks@#1{%
\global\setbox50=\vbox{\advance\hsize by-12pt\unvbox\@b@thnks@
  \vtop{\noindent\footnotesize{${}^{\@rmnnmrl\@c@thnks@}$\ }\@qq{10pt}{0pt}\textit{#1}\hfill}}
\global\setbox\@b@thnks@=\vbox{\unvbox50}}%
\def\thanks#1{\global\advance\@c@thnks@ by 1\@dd@thnks@{#1}%
\global\expandafter\edef\csname @thnks@\romannumeral\@c@thnks@\endcsname{%
\ifnum\the\@c@thnks@=1\@spcc${}^{\@rmnnmrl\@c@thnks@}$\else$^{,\@spcc\@rmnnmrl\@c@thnks@}$\fi}}
%%-----------------------------------------------------------------------------
%%-----------------------------------------------------------------------------
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
%
\renewcommand\normalsize{\@xsetfontsize\normalsize 6%
  \@adjustvertspacing \let\@listi\@listI 
  \abovedisplayskip 11pt \@plus2pt \@minus2pt
  \belowdisplayskip \abovedisplayskip}
%
\def\ps@firstpage{\ps@plain
  \def\@oddfoot{\hfill{\scriptsize\it \@editor}}%
  \def\@evenfoot{{\scriptsize\it \@editor}\hfill}%
  \let\@evenfoot\@oddfoot\def\@oddhead{\null\hss}
  \let\@evenhead\@oddhead}% in case an article starts on a left-hand page
%
\def\ps@headings{\ps@empty
  \def\@oddfoot{\hfill{\scriptsize\it \@editor}}%
  \def\@evenfoot{{\scriptsize\it \@editor}\hfill}%
  \def\@evenhead{\normalfont{\normalsize\thepage}\hfill\scriptsize\leftmark{}{}\hfil}%
  \def\@oddhead{\normalfont\scriptsize\hfil\rightmark{}{}\hfill{\normalsize{\thepage}}}%
  \let\@mkboth\markboth}
\def\ps@myheadings{\ps@headings \let\@mkboth\@gobbletwo}\pagestyle{headings}
%%-----------------------------------------------------------------------------
\def\@MSSG@THNKS{At most 5 thanks allowed}
\def\@MSSG@CLSSWRNGRSM{Resume should precede \protect\maketitle\space in bfca}
\def\@MSSG@CLSSWRNGBSTRCT{Abstract should precede \protect\maketitle\space in bfca}
\def\@MSSG@BSTRCT{{WARNING:  --- An abstract is mandatory! ---}}
%
\def\@date{\ }%The date will be set in the future...}
\def\@editor{{J-F. Michon, P. Valarcher, J-B. Yun\`es (Eds.): BFCA'05}}
%%-----------------------------------------------------------------------------
%-------------------
\theoremstyle{plain}
%-------------------
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{algorithm}[theorem]{Algorithm}
%------------------------
\theoremstyle{definition}
%------------------------
\newtheorem{definition}[theorem]{Definition}
\newtheorem{conjecture}[theorem]{Conjecture}
\newtheorem{example}[theorem]{Example}
%
%-------------------
\theoremstyle{plain}
%-------------------
\newenvironment{acknowledgement}{\par\addvspace{17pt}\small\rmfamily\noindent}{\par\addvspace{6pt}}
%................ ................ ................ ................  ........
%
\def\xProof{
  \normalfont
  \medskip
  {\noindent\itshape Proof.\hspace*{0.5cm}\ignorespaces}}
%
%%
%% Specials...
%%
\def\enddoc@text{\ifx\@empty\@translators \else\@settranslators\fi
%  \ifx\@empty\@editor \else\@seteditor\\\fi
\vfill
  \ifx\@empty\@date \else\@setdate\fi
\vfill\vfill\vfill}
%
%
\endinput
