%%
%% This is file `cclayout.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cc.dtx  (with options: `cclayout,chartab')
%% 
%% Copyright 2000-2012
%% Michael N"usken, Joachim von zur Gathen, computational complexity
%% 
%% IMPORTANT NOTICE:
%% 
%% This is a generated file.  It is part of the
%%      computational complexity macro package
%% derived from cc.dtx by 'tex cc.ins'.
%% See cc.dtx for license information.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{cclayout}[2011/07/27 v2.18 cclayout. MNuesken]
\let\@contact\relax
\newcommand{\contact}[1]{\gdef\@contact{#1}}
\AtBeginDocument{\if@ccpublish
  \@ifundefined{@contact}{%
    \ClassWarningNoLine{cc}{Who is the contact author?\MessageBreak
      Use \protect\contact\space in the preamble!}%
    }{}%
  \fi}
\let\@received\relax
\newcommand{\received}[1]{\gdef\@received{#1}}
\AtBeginDocument{\if@ccpublish
  \@ifundefined{@received}{%
    \ClassWarningNoLine{cc}{Missing submission/received date.\MessageBreak
      Use \protect\received\space in the preamble.}{}%
    }{}%
  \fi}
\def\submitted{\received}
\let\@titlehead\relax
\newcommand{\titlehead}[1]{\gdef\@titlehead{#1}}
\let\@authorhead\@undefined
\newcommand{\authorhead}[1]{\gdef\@authorhead{#1}}
\let\@authorlist\@undefined
\newcommand{\authorlist}[1]{\gdef\@authorlist{#1}}
\let\abstract\@undefined\let\endabstract\@undefined
\babel\def\ccabstractname{Abstract}[%
  german=Zusammenfassung,french=R\'esum\'e]
\RequirePackage{environ}[2008/06/18]
\def\@abstract@macro{}
\long\def\for@cc@abstract#1{%
  \gdef\@abstract@macro{\begin{@abstr}{\ccabstractname}#1\end{@abstr}}}
\newenvironment{abstract}{\Collect@Body\for@cc@abstract}{}
\newcommand{\Abstract}{\for@cc@abstract}
\babel\def\cckeywordsname{Keywords}[%
  german=Stichworte,french=Mot-cl\'e]
\def\@keywords@macro{}
\long\def\for@cc@keywords#1{%
  \gdef\@keywords@macro{\begin{@abstr}{\cckeywordsname}#1\end{@abstr}}}
\newenvironment{keywords}{\Collect@Body\for@cc@keywords}{}
\babel\def\ccsubjectclassificationname{Subject classification}[%
  german=Klassifizierung,french=Classification de suj\`et]
\def\@subject@macro{}
\long\def\for@cc@subject#1{%
  \gdef\@subject@macro{\begin{@abstr}{\ccsubjectclassificationname}
      #1
    \end{@abstr}}}
\newenvironment{subject}{\Collect@Body\for@cc@subject}{}
\newdimen\@abstrwidth
\newbox\@abstr@box
\newenvironment{@abstr}[1]{%
  \setbox\@abstr@box\vbox\bgroup%
  \@parboxrestore
  \ifdim\@abstrwidth>\hsize\@abstrwidth\hsize\fi
  \leftmargin.5\hsize \advance\leftmargin-.5\@abstrwidth
  \rightmargin\leftmargin
  \@trivlist\@newlistfalse\global\@inlabeltrue
  \advance\linewidth -\rightmargin
  \advance\linewidth -\leftmargin
  \advance\@totalleftmargin \leftmargin
  \parshape \@ne \@totalleftmargin \linewidth
  \small
  \def\@listi{\leftmargin\leftmargini
              \topsep 2\p@ \@plus2\p@ \@minus1\p@
              \parsep 1\p@
              \itemsep \parsep}%
  \def\@listii{\leftmargin\leftmarginii
              \labelwidth\leftmarginii
              \advance\labelwidth-\labelsep
              \topsep 0\p@ \@plus1\p@
              \parsep 1\p@
              \itemsep \parsep}%
  \let\@listiii\@toodeep
  \let\@listiv\@toodeep
  \let\@listv\@toodeep
  \let\@listvi\@toodeep
  \textbf{#1. }\ignorespaces}
{%
  \par
  \egroup
  \leavevmode\unvbox\@abstr@box
  \ignorespacesafterend}
\newif\if@abstractoptional
\if@ccpublish\@abstractoptionalfalse\else\@abstractoptionaltrue\fi
\newcommand{\noabstract}{\ClassWarning{cc}{You are using a non
    documented feature}\@abstractoptionaltrue}
\newif\if@keywordsoptional
\if@ccpublish\@keywordsoptionalfalse\else\@keywordsoptionaltrue\fi
\newcommand{\nokeywords}{\ClassWarning{cc}{You are using a non
    documented feature}\@keywordsoptionaltrue}
\newif\if@subjectoptional
\if@ccpublish\@subjectoptionalfalse\else\@subjectoptionaltrue\fi
\newcommand{\nosubject}{\ClassWarning{cc}{You are using a non
    documented feature}\@subjectoptionaltrue}
\def\@subtitle{}
\newcommand{\subtitle}[1]{\def\@subtitle{#1}}
\def\@version{}
\newcommand{\version}[1]{\def\@version{#1}}
\AtBeginDocument{\addtocounter{section}{-1}\refstepcounter{section}}%
\AtEndDocument{\hrule height0pt\label{ccenddocument}}%
\def\@ccunknown{??}
\def\@ccfirst{1}%
\let\@cclast\@ccunknown%
\let\@ccnumberofpages\@ccunknown%
\long\def\cc@secondoffive#1#2#3#4#5{#2}
\AtBeginDocument{%
  \@ifundefined{r@ccenddocument}{}{%
    \@tempcnta\@ne
    \advance\@tempcnta-\@ccfirst
    \protected@xdef\@cclast{\csname r@ccenddocument\endcsname}%
    \xdef\@cclast{\expandafter\cc@secondoffive\@cclast{}{}{}{}{}}%
    \advance\@tempcnta\@cclast%
    \xdef\@ccnumberofpages{\the\@tempcnta}%
  }%
}
\def\@cctxt{}
\newif\if@cchead
\newcommand{\noccpublish}[1]{%
  \global\@ccpublishfalse
  \global\@abstractoptionaltrue% Abstract optional
  \global\@keywordsoptionaltrue% Keywords optional
  \global\@subjectoptionaltrue% Subject class. optional
  \global\@ccheadfalse
  \gdef\@cctxt{#1}%
  }
\newcommand{\ccpublish}[4]{% Deprecated since 2011/07/25
  \global\@ccpublishtrue
  \global\@abstractoptionalfalse% Abstract required
  \global\@keywordsoptionalfalse% Keywords required
  \global\@subjectoptionalfalse% Subject class. required
  \global\@ccheadtrue
  \gdef\@ccyear{#1}%
  \gdef\@ccvolume{#2}%
  \gdef\@ccissue{#3}%
  \gdef\@ccfirst{#4}%
  \gdef\@cctxt{cc \textbf{#2} (#1)}%
  \global\@autotitletrue
  \AtBeginDocument{\addtocounter{section}{-1}\refstepcounter{section}}%
  }
\RequirePackage{xkeyval}[2008/08/13]
\def\cc@fixlencountdown#1{%
  \@tfor\@x:=#1\do{\advance\@tempcnta\m@ne}}
\def\cc@fixelendef#1#2#3#4{%
 \@tempcnta#1%
 \edef\@tempa{#4}\expandafter\cc@fixlencountdown\expandafter{\@tempa}%
 \gdef#3{}\relax
 \@whilenum\@tempcnta>\z@\do{%
    \expandafter\gdef\expandafter#3\expandafter{#3#2}%
    \advance\@tempcnta\m@ne}%
 \expandafter\gdef\expandafter#3\expandafter{#3#4}%
}
\def\cc@fixelen#1#2#3{%
  \@tempcnta#1
  \edef\@tempa{#3}\expandafter\cc@fixlencountdown\expandafter{\@tempa}%
  \@whilenum\@tempcnta>\z@\do{%
    #2%
    \advance\@tempcnta\m@ne}%
  \edef\@tempa{\noexpand\cc@fixelena#3\noexpand\@@@}\@tempa%
}
\def\cc@fixelena#1\@@@{%
  \@tfor\@x:=#1\do{%
    \advance\@tempcnta\@ne
    \ifnum\@tempcnta>\z@\@x\fi
  }%
}
\define@boolkey{ccsps}{sps}[true]{}%
\define@key{ccsps}{journal}[cc]{\gdef\@journalname{#1}}%
\define@key{ccsps}{journalnumber}[37]{\gdef\@journalnumber{#1}}%
\define@key{ccsps}{submitted}[??dd Month yyyy??]{%
  \gdef\@received{#1}%
  \gdef\received##1{\ClassWarning{cc}
    {Received/submitted date (##1) override!\MessageBreak
      Using \@received.}}}
\define@boolkey{ccsps}{revisionstage}[true]{%
}
\define@key{ccsps}{DOImsnr}[??]{% manuscript number
  \gdef\@DOImsnr{#1}}
\define@boolkey{ccsps}{TYPESET}[true]{%
  \ifKV@ccsps@TYPESET\let\TYPESET=Y\else\let\TYPESET=N\fi}
\define@boolkey{ccsps}{DISK}[true]{%
  \ifKV@ccsps@DISK\let\DISK=Y\else\let\DISK=N\fi}
\define@boolkey{ccsps}{LE}[true]{%
  \ifKV@ccsps@LE\let\LE=Y\else\let\LE=N\fi}
\define@boolkey{ccsps}{CP}[true]{%
  \ifKV@ccsps@CP\let\CP=Y\else\let\CP=N\fi}
\define@key{ccsps}{draftcopy}[Uncorrected proof]{% watermark text
  \gdef\cc@watermarktext{#1}}
\define@boolkey{ccsps}{helperstrip}[true]{}%
\define@boolkey{ccsps}{grid}[true]{}
\define@boolkey{ccsps}{issuestage}[true]{%
}
\define@boolkey{ccsps}{openaccess}[true]{%
}
\define@boolkey{ccsps}{stageaccess}[true]{% Deprecated.
    \setkeys{ccsps}{openaccess=#1}}
\define@key{ccsps}{year}[????]{\gdef\@ccyear{#1}}
\define@key{ccsps}{volume}[??]{\gdef\@ccvolume{#1}}
\define@key{ccsps}{issue}[??]{\gdef\@ccissue{#1}}%
\define@key{ccsps}{firstpage}[1]{%
  \gdef\@ccfirst{#1}%
  \@tempcnta4\@tfor\@x:=#1\do{\advance\@tempcnta\m@ne}%
  \ifcase\@tempcnta\gdef\@ccfirstiv{#1}%
  \or\gdef\@ccfirstiv{0#1}%
  \or\gdef\@ccfirstiv{00#1}%
  \or\gdef\@ccfirstiv{000#1}%
  \else\ClassError{cc}{First page number too big.}{%
    The number of the first page cannot be larger than 9999.
  }\fi
}
\define@key{ccsps}{copyholder}[\default@copyholder]{\gdef\@copyholdername{#1}}
\def\default@copyholder{%
  \ifKV@ccsps@openaccess The Author(s)
  \else Springer Basel AG\fi}
\define@key{ccsps}{doisuffix}[????-?]{%
  \cc@fixelendef50\@doiinfo{\@journalnumber}%
  \xdef\@doiinfo{%
    10.1007/s\@doiinfo-%
    \noexpand\cc@fixelen30{\noexpand\@ccyear}-%
    #1}}
\define@key{ccsps}{doi}{\gdef\@doiinfo{#1}}
\define@key{ccsps}{onlinedate}[??dd Month yyyy??]{\gdef\@onlinedate{#1}}
\define@key{ccsps}{onlinefirstyear}[\the\year]{\gdef\@ccyear{#1}}
\define@key{ccsps}{coveryear}[\@ccyear]{\gdef\@coveryear{#1}}
\define@boolkey{ccsps}{pdfpage}[true]{%
}
\define@boolkey{ccsps}{xlink}[true]{}
\setkeys{ccsps}{
  sps=false,
  journal={cc}, journalnumber=37,
  grid=false,
  TYPESET=false,
  DISK=false,
  LE=false,
  CP=false,
  DOImsnr,
  openaccess=false,
  revisionstage=false,
  helperstrip=false,
  issuestage=false,
  copyholder,
  year,volume,issue,firstpage,
  onlinefirstyear,coveryear,doisuffix,onlinedate,
  draftcopy
}
\newcommand{\ccsps}[1]{%
  \if@cctextarea\else\ClassError{cc}{Wrong textarea chosen}
  {Remove any textarea or noccpublish option from documentclass.}\fi
  \global\@ccpublishtrue
  \global\@abstractoptionalfalse% Abstract required
  \global\@keywordsoptionalfalse% Keywords required
  \global\@subjectoptionalfalse% Subject class. required
  \global\@ccackfalse% Acknowledgements required
  \global\@ccheadtrue
  \global\@autotitletrue
  \setkeys{ccsps}{sps,#1}
  \gdef\@cctxt{cc \textbf{\@ccvolume} (\@ccyear)}%
  \RequirePackage[mathlines]{lineno}[2005/11/02]
  \ifKV@ccsps@pdfpage
  \setkeys{ccsps}{helperstrip=false}%
  \nolinenumbers
  \else
  \setkeys{ccsps}{helperstrip=true}%
  \RequirePackage[conditional,draft]{draftcopy}
  \draftcopyPageTransform{155 75 translate 65 rotate}
  \draftcopyName{\cc@watermarktext}{75}
  \linenumbers
  \fi
  \RequirePackage[dvips,
    bookmarks=\ifKV@ccsps@xlink true\else false\fi,
    breaklinks=true,
    colorlinks=\ifKV@ccsps@xlink true\else false\fi,
    linkcolor=\ifKV@ccsps@xlink blue\else black\fi,
    unicode]{hyperref}[2011/04/17 v6.82g]%
  \AtBeginDocument{\init@bare}
  \RequirePackage{breakurl}[2009/01/24 v1.30]%
  \def\l@title##1{\@dottedtocline{-1}{0pt}{0pt}{{\large\textbf{##1}}}}%
  \let\l@title\l@part
  \ifKV@ccsps@xlink%
  \def\@urlcolor{blue}
  \def\@citecolor{blue}
  \def\externalref##1##2{\hyperimage{##1}{##2}}%
  \def\DOIexternalref##1##2{\hyperimage{##1}{##2}}%
  \InputIfFileExists{bookmarkgreeks.tex}{}{}%
  \else
  \def\@urlcolor{black}%
  \def\@citecolor{black}
  \def\externalref##1##2{##2}%
  \def\DOIexternalref##1##2{##2}%
  \fi%
  \ifKV@ccsps@grid
  \overfullrule=6pt
  \let\twidth\textwidth
  \let\theight\textheight
  \else\overfullrule=0pt\fi
  \InputIfFileExists{JS_info.tex}{}{}%
}
\def\printed@issn{1016-3328}%
\def\electronic@issn{1420-8954}%
\newcommand{\printed}{\let\issn\printed@issn}
\newcommand{\electronic}{\let\issn\electronic@issn}
\printed
\@onlypreamble\ccpublish
\@onlypreamble\ccsps
\@onlypreamble\electronic
\@onlypreamble\printed
\def\extractnamesfr@m@author{%
  \@ifundefined{@authorlist}{%
    \let\and\ignorespaces
    \let\latest@name\relax
    \count@\z@
    \expandafter\extract@names\@author\and\and\@nil}{%
    \@authorlist
    }
  }
\def\extract@names#1\and#2\@nil{%
  \cc@ifempty{#1}{%
    \unskip\if\and\relax\else
    \ifnum\count@>\tw@\authorlastsepmany\else\authorlastsep\fi
    \fi\latest@name
    \let\next\gobble@nil}%
  {%
    \unskip\and\latest@name
    \ifx\latest@name\relax\else\let\and\authorsep\fi
    \extract@name#1\\\@nil
    \let\next\extract@names}%
  \next#2\@nil}
\def\gobble@nil#1\@nil{}
\def\extract@name#1\\#2\@nil{\advance\count@\@ne\def\latest@name{#1}}
\babel\def\ccAND{and}[german=und,french=et]
\def\authorsep{,\penalty-5\ }
\def\authorlastsep{\penalty-5\ \ccAND{} }
\def\authorlastsepmany{,\penalty-5\ \ccAND{} }
\newtoks\latest@lastname
\newtoks\@firstname
\let\@firstlastname\@temptokena
\def\extractauthorheadfr@m@author{%
  {%
    \let\and\@empty
    \latest@lastname{}%
    \toks@{}%
    \count@\m@ne
    \expandafter\extract@lastnames\@author\and\and\@nil
    \ifnum\count@<2
    \xdef\@authorhead{\the\@firstname}
    \else\ifnum\count@<4
    \xdef\@authorhead{\the\toks@}%
    \else
    \xdef\@authorhead{\the\@firstlastname\noexpand\textit{ et al.}}%
    \fi\fi
    }%
  \setbox0\hbox{\small\let\thanks\@gobble\@authorhead}%
  \ifdim\wd0>.7\textwidth
  \ClassWarningNoLine{cc}{Authorhead too long. Use
    \protect\authorhead\space to specify\MessageBreak a shortened
    author list for the headings!}%
  \fi
  }
\def\extract@lastnames#1\and#2\@nil{%
  \advance\count@\@ne
  \cc@ifempty{#1}{%
    \expandafter\cc@ifempty\expandafter{\the\toks@}{%
      \edef\@tempa{\the\latest@lastname}%
      }{%
      \edef\@tempa{\the\toks@\authorheadlastsep\the\latest@lastname}%
      }%
    \toks@\expandafter{\@tempa}%
    \let\next\gobble@nil
    }{%
    \expandafter\cc@ifempty\expandafter{\the\toks@}{%
      \edef\@tempa{\the\latest@lastname}%
      }{%
      \edef\@tempa{\the\toks@\authorheadsep\the\latest@lastname}%
      }%
    \toks@\expandafter{\@tempa}%
    \extract@lastname#1\\\@nil
    \let\next\extract@lastnames}%
  \ifnum\count@=\@ne\@firstlastname\expandafter{\the\toks@}\fi
  \next#2\@nil}
\def\gobble@nil#1\@nil{}
\def\extract@lastname#1\\#2\@nil{%
  \ifnum\count@=\z@\@firstname{#1}\fi
  \extract@lastname@#1 \@nil}
\def\extract@lastname@#1 #2\@nil{%
  \cc@ifempty{#2}{\latest@lastname{#1}}{\extract@lastname@#2\@nil}}
\def\authorheadsep{, }
\def\authorheadlastsep{ \& }
\def\authorheadlastsepmany{ \& }
\let\@author\relax
\AtBeginDocument{%
  \@ifundefined{@author}{\if@ccpublish
    \ClassError{cc}{No \protect\author\space given}{Define an author
      list in the preamble by \protect\author{...}}%
    \else
    \ClassWarningNoLine{cc}{No \protect\author\space given}%
    \fi}{}
  \@ifundefined{@authorhead}{\extractauthorheadfr@m@author}{}}
\let\@title\relax
\AtBeginDocument{%
  \@ifundefined{@title}{\if@ccpublish
    \ClassError{cc}{No \protect\title\space given}{Define a title in
      the preamble by \protect\title{...}}%
    \else
    \ClassWarningNoLine{cc}{No \protect\title\space given}%
    \fi}{}
  \setbox0\hbox{\small\let\thanks\@gobble
    \@ifundefined{@titlehead}{\let\\\ \@title}{\@titlehead}}%
  \ifdim\wd0>.7\textwidth
  \ClassError{cc}{Title too long for running head.\MessageBreak
    Use \protect\titlehead\space to specify\MessageBreak a shortened
      title for the headings!}{}%
  \fi}
\def\extractaffilsfr@om@author{%
  \parindent\z@
  \init@affils
    \expandafter\extract@affils\@author\and\and\@nil
    \if@oddaffil\else\even@sep\even@post\fi
}
\def\init@affils{%
  \let\and\relax
  \global\@oddaffiltrue
  }
\def\extract@affils#1\and#2\@nil{%
  \cc@ifempty{#1}{\let\next\gobble@nil}{%
    \extract@affil#1\\\@nil
    \let\next\extract@affils}%
  \next#2\@nil}
\def\extract@affil#1\\#2\@nil{%
  \affilpre
  \def\currentaddress{\otheraddress
    Current address of \textsc{\ignorespaces#1}:\\}%
  \begin{@ffiliation}
    \textsc{\ignorespaces#1}\\#2
  \end{@ffiliation}
  \affilpost}
\newcommand{\otheraddress}{\end{@ffiliation}\affilsep
  \begin{@ffiliation}}
\def\odd@pre{\par\begin{tabular}{@{}ll@{}}}%
\def\odd@sep{&}%
\def\odd@post{&}%
\def\even@pre{}%
\def\even@sep{\end{tabular}\par\begin{tabular}{@{}ll@{}}}%
\def\even@post{\end{tabular}}%
\newif\if@oddaffil
\def\affilpre{\if@oddaffil\odd@pre\else\even@pre\fi}
\def\affilsep{%
  \if@oddaffil\odd@sep\@oddaffilfalse
  \else\even@sep\@oddaffiltrue
  \fi
  }
\def\affilpost{\if@oddaffil\odd@post\global\@oddaffilfalse
  \else\even@post\global\@oddaffiltrue\fi}
\if@twocolumnendtitle
\newenvironment{@ffiliation}
               {%
                 \minipage[t]{.48\hsize}
                 \dimen@\hsize \advance\dimen@ -1.5em
                 \everypar{\parshape 2 \z@ \hsize 1.5em \dimen@}%
                 \def\\{\unskip\par}%
                 }
               {\strut\par\medskip\endminipage}
\else
\def\affilpre{\par}
\def\affilpost{\par}
\def\affilsep{\par}
\newenvironment{@ffiliation}
               {%
                 \minipage[t]{\hsize}\footnotesize
                 \dimen@\hsize \advance\dimen@ -1.5em
                 \everypar{\parshape 2 \z@ \hsize 1.5em \dimen@}%
                 \def\\{\unskip\par}%
                 }
               {\endminipage\bigskip}
\fi
\ifcase\@textareaversion
\@abstrwidth0.85\textwidth
\or% version 1, used until June 2011
\textwidth=141mm
\@abstrwidth=120mm
\textheight=200mm
\topmargin=0mm
\oddsidemargin=12mm
\evensidemargin=12mm
\marginparwidth=25mm
\headheight=1.25\headheight
\ifnum\@marginmode<\z@\@marginmode\z@\fi
\or% version 2, used since July 2011
\paperwidth=155mm
\paperheight=235mm
\topmargin=-9.6mm
\textheight=45.5pc
\textwidth=119mm
\@abstrwidth=\textwidth
\oddsidemargin=-7.6mm% should be 18mm, will be calculated acc.to \@marginmode
\evensidemargin=-7.6mm% should be 18mm, will be calculated acc.to \@marginmode
\marginparwidth=10mm% will be adapted below
\headheight=1.25\headheight
\ifnum\@marginmode<\z@\@marginmode\tw@\fi% use balanced margins
\else% version negative or larger than max: emptypage
\newdimen\allsidemargin \allsidemargin=.5in
\textwidth=\paperwidth
\advance\textwidth-2\allsidemargin% margin left/right
\marginparsep=1pt
\topmargin-1in
\advance\topmargin\allsidemargin
\textheight=\paperheight
\advance\textheight-\allsidemargin
\advance\textheight-\headheight
\advance\textheight-\headsep
\advance\textheight-\footskip
\advance\textheight-\allsidemargin
\@marginmode\tw@
\sloppy
\@abstrwidth0.85\textwidth
\fi
\newdimen\cc@topmargin \cc@topmargin\topmargin
\newdimen\cc@textwidth \cc@textwidth\textwidth
\newdimen\cc@textheight \cc@textheight\textheight
\AtBeginDocument{%
  {\if@ccpublish
    \@tempswafalse
    \ifnum\@textareaversion>0
       \ifdim\topmargin=\cc@topmargin\relax\else\@tempswatrue\fi
       \ifdim\textwidth=\cc@textwidth\relax\else\@tempswatrue\fi
       \ifdim\textheight=\cc@textheight\relax\else\@tempswatrue\fi
    \fi
    \if@tempswa
      \ClassError{cc}{FATAL ERROR! For publishing in cc the page and text
        dimension must not be manipulated. Remove any packages that
        modify the text or page dimensions. In particular: remove the
        packages^^J
        fullpage.sty,^^J
        a4wide.sty,^^J
        geometry.sty,^^J
        vmargin.sty,^^J
        typearea.sty}{}%
      \aftergroup\endinput
    \fi
  \fi}%
}
\typeout{Now adjusting margins (\the\@marginmode).}
\ifcase\@marginmode
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\advance\oddsidemargin-\evensidemargin}
\or
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\evensidemargin=5mm
\advance\oddsidemargin-\evensidemargin}
\or
\AtEndOfClass{%
\oddsidemargin\paperwidth
\advance\oddsidemargin-2in
\advance\oddsidemargin-\textwidth
\oddsidemargin.5\oddsidemargin
\evensidemargin\oddsidemargin}
\fi
\AtEndOfClass{%
  \marginparwidth1in
  \advance\marginparwidth-5mm
  \advance\marginparwidth-2\marginparsep
  \ifdim\evensidemargin<\oddsidemargin
  \advance\marginparwidth\evensidemargin
  \else
  \advance\marginparwidth\oddsidemargin
  \fi
}
\newskip\headerindent \headerindent=10mm
\newdimen\headrulewidth \headrulewidth.4pt
\def\ps@cc{\let\@mkboth\markboth
     \let\@oddfoot\@empty
     \let\@evenfoot\@empty
     \let\@oddhead\@empty
     \let\@evenhead\@empty
     \if@ccpublish
       \ps@ccfirst
       \def\@oddfoot{%
           \ifKV@ccsps@helperstrip%
             \begin{picture}(0,0)%
               \put(340,3){{\stripbox}}%
             \end{picture}%
           \fi
       }%
       \let\@evenfoot\@oddfoot
     \fi
     \expandafter\def\expandafter\@oddhead\expandafter{\@oddhead
        \vbox{\hbox to\textwidth{\reset@font\strut
         {\small\@cctxt}%
         \hfil
         {\small
           \@ifundefined{@titlehead}{%
             \let\\\ %
             \@title
             }{%
             \@titlehead
             }}%
         \hbox to\headerindent{\hfil\thepage}%
         }%
       \if@ccpublish\else
       \kern2.6\p@
       \hrule\@height\headrulewidth\kern-\headrulewidth
       \kern-2.6\p@
       \fi
       \vskip\z@
       }%
     }%
     \expandafter\def\expandafter\@evenhead\expandafter{\@evenhead
        \vbox{\hbox to\textwidth{\reset@font\strut
         \hbox to\headerindent{\thepage\hfil}%
         {\small\@authorhead}%
         \hfil
         {\small\@cctxt}%
         }%
       \if@ccpublish\else
       \kern2.6\p@
       \hrule\@height\headrulewidth\kern-\headrulewidth
       \kern-2.6\p@
       \fi
       \vskip\z@
       }%
     }%
     }
\RequirePackage{graphics}[2009/02/05 v1.0o]
\RequirePackage{xcolor}[2007/01/21 v2.11]%
\IfFileExists{Birkh_logo_2010_sps.eps}{%
  \def\birklogo{\bgroup\includegraphics{Birkh_logo_2010_sps.eps}\egroup}
}{%
  \def\birklogo{{\ixpt Birkh{\"{a}}user}}
}
\IfFileExists{dummy_sps.eps}{%
  \def\spslogo{\bgroup\includegraphics{dummy_sps.eps}\egroup}
}{%
  \def\spslogo{{\ixpt Springer Publishing}}
}
\def\ps@ccfirst{%
  \def\@oddfoot{%
    \if@ccpublish
      \ifKV@ccsps@revisionstage%
        \begin{picture}(0,0)%
          \put(0,15){{\smash{\raisebox{-2.25pt}{\spslogo}}}}%
        \end{picture}%
      \fi%
      \ifKV@ccsps@sps
      \begin{picture}(0,0)%
        \put(289.5,15){{\birklogo}}%
      \end{picture}%
      \fi
      \ifKV@ccsps@helperstrip%
      \begin{picture}(0,0)%
        \put(340,3){{\stripbox}}%
      \end{picture}%
      \fi
    \fi}%
  \let\@evenfoot\@oddfoot
  \def\@oddhead{%
    \ifKV@ccsps@grid
      \hbox to\z@{%
        \vbox to\z@{%
          \hsize\twidth
          \vskip\headsep
          \fboxrule=.25pt
          \fboxsep=-.25pt
          \textcolor{lightgray}{%
             \fbox{\vbox to\theight{\hbox to\twidth{\hss}\vss}}%
          }%
          \vss
      }%
      \hss
    }%
    \fi
    \hss
  }%
  \let\@evenhead\@oddhead
}
\AtEndOfClass{\pagestyle{cc}}
\AtEndOfClass{%
  \AtBeginDocument{\@onlypreamble{\author{\if@autotitle\maketitle\fi}}}
  \AtEndDocument{\if@autotitle\makeendtitle\fi}
}
\def\stripbox{\kern -11.7cm%
  {}{%
    \raisebox{.8mm}{%
      \tiny
      \fboxsep1mm\framebox{%
        Journal: {\bf \@journalname}\enspace
        Article No.: {\bf \@DOImsnr}\enspace
        \fboxsep.2mm\fbox{%
          \ifx Y\TYPESET{$\checkmark$}\else{\phantom{$\checkmark$}}\fi
        }~TYPESET\enspace
        \fbox{%
          \ifx Y\DISK{$\checkmark$}\else{\phantom{$\checkmark$}}\fi
        }~DISK\enspace
        \fbox{%
          \ifx Y\LE{$\checkmark$}\else{\phantom{$\checkmark$}}\fi
        }~LE\enspace
        \fbox{%
          \ifx Y\CP{$\checkmark$}\else{\phantom{$\checkmark$}}\fi
        }~CP\enspace
        Disp.: \textbf{\the\year/\the\month/\the\day}\enspace
        Pages: \textbf{\@ccnumberofpages}
      }%
    }%
  }%
} %%
\def\vertrulea{\rule[-7.583pt]{0pt}{7.583pt}}
\def\vertruleb{\rule{2.25pt}{10.2pt}}
\newtoks\cite@hook
\newcommand{\maketitleheadA}{% version before 2011 (Birkh�user)
    \hbox to\textwidth{%
      \vbox to\z@{\vss
        \baselineskip=12pt%
        \halign{\ixpt##\hfil\cr
          comput. complex.~\textbf{\@ccvolume}~(\@ccyear),
          \thepage\ -- \@cclast\cr
          \issn/\expandafter\@gobbletwo\@ccyear%
          /\cc@fixelen20\@ccissue\relax
          \cc@fixelen40\@ccfirst\relax
          --\@ccnumberofpages\
          \$ 1.50+0.20/0\cr}}\hss
      \vbox to\z@{\vss
        \offinterlineskip%
        \halign{##&##\hfil\cr
          \vertrulea&\ixpt
          \copyright{} Birkh{\"{a}}user Verlag, Basel \@ccyear\cr
          \noalign{\hrule}
          \vertruleb\hskip1mm&%
          \vbox to\z@{\vbox to\z@{\vss
              \hbox{\xptsfbx computational complexity}}\vss}%
          \cr}}}\vskip47.333pt
}
\newcommand{\maketitleheadSPS}{% version since 2011 (Springer)
  \hbox to\textwidth{%
    \vbox to\z@{\vss
      \baselineskip=12pt%
      \halign{%
        \ixpt##\hfil\cr
        comput. complex.%
        \ifKV@ccsps@issuestage%
        ~\textbf{\@ccvolume}~(\@ccyear),~\@ccfirst\ -- \@cclast
        \fi\cr
        \ifKV@ccsps@openaccess
        \copyright{} \@copyholdername\ \@ccyear.
        This article is published\cr with open access
        at Springerlink.com\cr
        \else\copyright{} \@copyholdername\ \@ccyear\cr\fi
        \ifKV@ccsps@issuestage
        {\printed@issn/\cc@fixelen20\@coveryear/%
          \cc@fixelen20\@ccissue%
          \cc@fixelen40\@ccfirst%
          -% MN2011/07/27: use + instead?
          \@ccnumberofpages}\cr
        {{\it published online}\ \@onlinedate}\cr
        \else\relax\fi
        DOI \@doiinfo\cr}
    }\hss
    \vbox to\z@{\vss
      \offinterlineskip%
      \halign{##&##\hfil\cr
        \vertrulea&\ixpt\cr
        \noalign{\hrule}
        \vertruleb\hskip1mm&%
        \vbox to\z@{\vbox to\z@{\vss
            \hbox{\xptsfbx computational complexity}}\vss}%
        \cr}}}\vskip47.333pt
}
\def\l@title#1#2{}% Usually ignore title entries.
\def\@@today{\today}% for comparison
\renewcommand{\maketitle}{%
  \global\@topnum\z@   % Prevents figures from going at top of page.
  \cite@hook{}%
  \thispagestyle{ccfirst}
  \if@cchead
  \ifnum\@textareaversion=\tw@\vspace*{15pt}\fi
  \vbox to\z@{\vss
    \setcounter{page}{\@ccfirst}%
    \ifcase\@textareaversion\maketitleheadSPS
    \or\maketitleheadA
    \or\maketitleheadSPS
    \else\maketitleheadSPS
    \fi
    }%
  \fi
  \hrule\@height\z@
  \vskip2.2ex% 4.0mm
  \relax
  \begin{center}
    \if@ccpublish
      \renewcommand{\footnote}[1]{\protect\ClassWarningNoLine{cc}{%
          There are no footnotes allowed in title or author.\MessageBreak
          Your command is ignored.\MessageBreak
          Think about moving your remark to the acknowledgements}}%
      \let\thanks\footnote
    \else
      \renewcommand{\footnote}[1]{\protect\ClassWarningNoLine{cc}{%
          In title or author \string\footnote\space does not work.\MessageBreak
          Avoid footnotes or use \string\thanks}}%
      \def\thefootnote{\@fnsymbol\c@footnote}%
      \def\@makefnmark{%
        \rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
      \long\def\@makefntext##1{\parindent 1em\noindent
        \hb@xt@1.8em{%
          \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
    \fi
    {%
      \Large\bfseries
      \def\\{\penalty-\@M}%
      \expandafter\MakeUppercase\expandafter{\@title}%
      \addcontentsline{toc}{title}{\@title}%
      \par
      }%
    \@ifundefined{@subtitle}{}{{%
        \large\itshape
        \@subtitle
        \par
        }}
    \@ifundefined{@version}{}{{%
        \large\itshape
        \@version
        \par
        }}
    \bigskip
    \vskip1.21ex% 2.2mm
    \vskip\z@
    {%
      \large\scshape
      \extractnamesfr@m@author
      \par
      }%
    \ifKV@ccsps@sps%\if@ccpublish
    \ifx\@date\@@today\else
    \ClassWarningNoLine{cc}{Date ignored! (\@date)}%
    \fi
    \else{%
      \vskip1ex
      \large\@date\par
      }\fi
    \def\@tempa{\vskip5.5ex\let\@tempa\relax}%
    \ifx\@abstract@macro\@empty
      \if@abstractoptional
      \ClassWarningNoLine{cc}{Missing abstract}%
      \else
      \ClassError{cc}{Missing abstract}
      {Define abstract in the preamble using
        \protect\begin{abstract} ... \protect\end{abstract}.}%
      \fi
    \else
      \@tempa\@abstract@macro\par
    \fi
    \ifx\@keywords@macro\@empty
      \if@keywordsoptional
      \ClassWarningNoLine{cc}{Missing keywords}%
      \else
      \ClassError{cc}{Missing keywords}
      {Define keywords in the preamble using
        \protect\begin{keywords} ... \protect\end{keywords}.}%
      \fi
    \else
      \@tempa\@keywords@macro\par
    \fi
    \ifx\@subject@macro\@empty
      \if@subjectoptional
      \ClassWarningNoLine{cc}{Missing subject classification}%
      \else
      \ClassError{cc}{Missing subject}
      {Define subject in the preamble using
        \protect\begin{subject} ... \protect\end{subject}.}%
      \fi
    \else
      \@tempa\@subject@macro\par
    \fi
    \@thanks
    \ifx\@tempa\relax\vskip3ex\fi
  \end{center}
  \setcounter{footnote}{0}%
  \global\let\maketitle\relax
  \global\let\thanks\@gobble
  \global\let\@thanks\relax
  \global\let\author\@notprerr
  \global\let\title\@notprerr
  \global\let\abstract\@notprerr
  \global\let\Abstract\@notprerr
  \global\let\keywords\@notprerr
  \global\let\subject\@notprerr
  \global\let\titlehead\@notprerr
  \global\let\authorhead\@notprerr
  \global\let\received\@notprerr
  \vskip\z@
  \par\@afterindentfalse\@afterheading
  }
\let\@maketitle\@undefined
\let\and\@undefined
\babel\def\ManuscriptReceived{Manuscript received }[%
  german=Manuskript erhalten: ,%
  french=Manuscrit re\c{c}u: ]
\newcommand{\makeendtitle}{%
  \par
  \parindent\z@
  \bigskip
  \@ifundefined{@received}{}{%
    \noindent{\small
      \ManuscriptReceived\@received
      \par}%
    \medskip
    }%
  {\small
    \extractaffilsfr@om@author
    }%
  \gdef\makeendtitle{\ClassWarning{cc}{\protect\makeendtitle\space
      multiply used!}}%
  }
\endinput
%%
%% End of file `cclayout.sty'.
