diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..656f1c3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# LaTeX files +*.log +*~ +*.toc +*.aux + +D2.3/Synthesis/.DS_Store + +Workspace/SafetyRequirementsExamples/.DS_Store + +Workspace/SafetyRequirementsExamples/includes/.DS_Store diff --git a/Benchmarking/ETCS-benchmark.pdf b/Benchmarking/ETCS-benchmark.pdf new file mode 100644 index 0000000..ba6a85f Binary files /dev/null and b/Benchmarking/ETCS-benchmark.pdf differ diff --git a/Benchmarking/ETCS-benchmark.tex b/Benchmarking/ETCS-benchmark.tex new file mode 100644 index 0000000..e9b86ad --- /dev/null +++ b/Benchmarking/ETCS-benchmark.tex @@ -0,0 +1,222 @@ +\documentclass{template/openetcs_article} +\usepackage[utf8x]{inputenc} +\usepackage{color} +\usepackage{lipsum,url} +\graphicspath{{./template/}{.}{./images/}} +\begin{document} +\frontmatter +\project{openETCS} + +\newcommand{\FIXME}[1]{\marginpar{FIXME}\textsf{FIXME: #1}} + +%Please do not change anything above this line +%============================ +% The document metadata is defined below + +%assign a report number here +\reportnum{OETCS/WP2/D01} + +%define your workpackage here +\wp{Work-Package 2: ``Requirements''} + +%set a title here +\title{SRS subset for modelling tool benchmarking} + +%set a subtitle here +%\subtitle{Revision} + +%set the date of the report here +\date{November 2012} +%\date{\today} + +%define a list of authors and their affiliation here + +% alphabetical order +\author{David Mentré} + +\affiliation{Mitsubishi Electric R\&D Centre Europe} + +\author{Stanislas Pinte} + +\affiliation{ERTMS Solution} + +\author{Guillaume Pottier} + +\affiliation{SNCF} + +\author{WP2 participants} + +\affiliation{OpenETCS} + +% define the coverart +\coverart[width=350pt]{chart} + +%define the type of report +\reporttype{Requirements} + + +\begin{abstract} +%define an abstract here + +This document defines the subset of SRS SUBSET-026 that should be used +to evaluate modelling tools. + +\end{abstract} + +%============================= +%Do not change the next three lines +\maketitle +\tableofcontents +%\listoffiguresandtables +\newpage +%============================= + +% The actual document starts below this line +%============================= + + +%Start here + + + + + +% Makes Marginpars easier to read +\setlength{\marginparwidth}{1in} +\let\oldmarginpar\marginpar +\renewcommand\marginpar[1]{\-\oldmarginpar[\raggedleft\scriptsize #1]% +{\raggedright\scriptsize #1}} + +\newcommand{\oldtext}[1]{{Old: \scriptsize #1}} + +\newenvironment{inoutput} +{\vspace{2mm} +\noindent +\begin{tabular}{|r|p{.68\linewidth}|l|} +\hline} +{ +\hline +\end{tabular}} + +\section{Introduction} + +One goal of openETCS is to make a model of the ERTMS/ETCS System +Requirement Specification (SRS). Several tools are possible to make +this model. In order to evaluate them, we need to define a subset of +the SRS that would be modelled by each tool, therefore allowing to +compare the tools on the same basis. + +This document defines this subset of SRS. + +\section{SRS Subset definition} + +The following paragraphs of UNISIG \emph{SUBSET-026 v3.3.0} should be +used in the benchmarking model in order to evaluate a tool. This +subset is divided into two subsets: a high priority subset that should +be modeled first and a lower priority subset that should be modeled if +time permits. + +\subsection{High priority items} + +\begin{description} +\item [§3.5.3 Establishing a communication session] + + Rationale: Sample of the communication part. + +\item [§3.13.4 (Acceleration / Deceleration due to gradients)] + +\item[§3.13.6.2 Emergency brake] and more particularly: + \begin{itemize} + \item[§3.13.6.2.1.3] (calculation of A\_safe, function of V and d, + depending on the gradient profile, braking models of the train, + several correction factors etc; this is the basis of the EBD + curve, see Figure 38) + \end{itemize} + +\item[§3.13.7 Determination of Most Restrictive Speed Profile (MRSP)] + Combine for example several TSR and LX restrictions + +\item[§3.13.8.3 Emergency Brake Deceleration curves (EBD)] + +\item[§3.13.9.3.3.9 Computation of d\_FLOI, using d\_SBI2\_MREBDT] + (MREBDT: Most Restrictive Target amongst the EBD based targets) + +\item[§3.13.9.4 Release speed supervision limits] and more + particularly: + \begin{itemize} + \item[§3.13.9.4.7] (computation of different release speed + supervision limits) + + \item[§3.13.9.4.8] (computation of the most restrictive value at the + Trip location related to the EOA, amongst several EBI supervision + limits) + + \item[§3.13.9.4.8.2] (iterative computation of the release speed) + + \item[§3.13.9.4.9] (using of the most restrictive MRSP value + instead of the release speed) + \end{itemize} + +\item[§3.13.10.4.2 Calculation of the MRDT (Most Restrictive Displayed Target)] + +\item [§4.6.2 (Transitions Table) and §4.6.3 (Transitions Condition + Table)] Only transitions: + \begin{enumerate} + \item from SB to SH + \item from SB to FS + \item from SB to IS + \end{enumerate} + + Rationale: Having transitions at different priority level is + important to look at priority issues and exclusion issues at the + same priority level. + +\item [§5.9 Procedure On-Sight] + + Rationale: Procedure sample, contains a timer. Procedure not too long + compared to Start of Mission. + +\end{description} + +\subsection{Lower priority items} + +\begin{description} +\item [§3.6.3.2 Location, Continuous Profile Data and Non-Continuous + Profile Data] + + Rationale: example of complex generic data structure. + +\item [§3.8.3 Structure of Movement Authority and §3.8.5 Update of + Movement Authority] + + Rationale: example of complex procedure, with complex data. + +\item [§3.11.3 Static Speed Profile and §3.11.12 Gradients] + + Rationale: example of data structure, referring to §3.6.3.2 and used + by §3.13.4. + +\item [§4.8.3.2 From National System X (through STM interface)] + + Rationale: Model a small table. \FIXME{Isn't such a table redundant + with §4.6.2?} + +\item [§8.7.2 Movement Authority message] This includes reference to + Packet 15 (§7.4.2.4). \FIXME{Maybe reference one optional packet} + + Rationale: That would be a perfect use case for tools able to model + things down to bit level. +\end{description} + +\section{Other open questions} + +\FIXME{Should we model an API? E.g. Odometer? Which reference + document?} + +\end{document} +Local Variables: +ispell-local-dictionary: "english" +End: + +% LocalWords: SRS ERTMS ETCS UNISIG +*) diff --git a/Requirements/template/ccbysa.png b/Benchmarking/template/ccbysa.png similarity index 100% rename from Requirements/template/ccbysa.png rename to Benchmarking/template/ccbysa.png diff --git a/Requirements/template/ccbysabig.png b/Benchmarking/template/ccbysabig.png similarity index 100% rename from Requirements/template/ccbysabig.png rename to Benchmarking/template/ccbysabig.png diff --git a/Requirements/template/chart.png b/Benchmarking/template/chart.png similarity index 100% rename from Requirements/template/chart.png rename to Benchmarking/template/chart.png diff --git a/Requirements/template/itea.jpg b/Benchmarking/template/itea.jpg similarity index 100% rename from Requirements/template/itea.jpg rename to Benchmarking/template/itea.jpg diff --git a/Benchmarking/template/openetcs_article.cls b/Benchmarking/template/openetcs_article.cls new file mode 100644 index 0000000..74099c6 --- /dev/null +++ b/Benchmarking/template/openetcs_article.cls @@ -0,0 +1,521 @@ +%% This is openetcs.cls +%% A LaTeX class based on: + + + +%% For openETCS ITEA2 Project + + +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{openetcs} +[2012/10/11 v0.1 Typesetting Technical Information Article of +openETCS project ] +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\LoadClass[11pt,twoside]{article} +\RequirePackage{graphicx,color,caption,longtable} +\RequirePackage{dcolumn} +\RequirePackage{natbib} +\renewcommand{\bibfont}{\fontsize{10pt}{12pt}\selectfont} +\setlength{\bibhang}{0.5in} +\setlength{\bibsep}{12pt} +\RequirePackage{amsmath} +\RequirePackage{microtype} +\RequirePackage[utf8x]{inputenc} +%\renewcommand\normalsize{% +% \@setfontsize\normalsize\@xiipt{16}% +% \abovedisplayskip 16\p@ \@plus3\p@ \@minus7\p@ +% \abovedisplayshortskip \z@ \@plus3\p@ +% \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +% \belowdisplayskip \abovedisplayskip +% \let\@listi\@listI} +\normalsize + +% Original fonts (� tester sur miktex) +%\usepackage{mathgifg} +%\usepackage{courier} + +% PdfLaTeX Choix 1 "times Helvet et math" http://www.cuk.ch/articles/4237 +\usepackage[T1]{fontenc} +\usepackage{txfonts} + +% PdfLaTeX Choix 2 http://www.cuk.ch/articles/4237 +% \usepackage{fourier} +% \usepackage[scaled=0.875]{helvet} +% \usepackage{courier} + +% XeLaTeX +%\usepackage{fontspec} +%\usepackage{xltxtra} +%\defaultfontfeatures{Mapping=tex-text} +%\setmainfont{Georgia} +%\setmathrm{Georgia} +%\setsansfont{Verdana} +%\setmathsf{Verdana} +%\setmonofont{Courier New} + +\def\@projectfont{% + \sffamily\itshape\bfseries\fontsize{22pt}{25pt}\selectfont} +\def\@reportnumfont{% + \sffamily\bfseries\fontsize{18pt}{22pt}\selectfont} +\def\@wpfont{% + \sffamily\fontseries{k}\itshape\normalsize\selectfont} +\def\@titlefont{% + \sffamily\fontseries{h}\fontsize{20pt}{25pt}\selectfont} +\def\@distributionfont{% + \sffamily\fontseries{k}\fontsize{9pt}{11pt}\selectfont} +\def\@eqtagfont{\sffamily\bfseries\footnotesize} +\RequirePackage[a4paper, top=1in, bottom=0.7in, + left=1.25in, right=1.25in]{geometry} +\setlength{\parindent}{0pt} +\setlength{\parskip}{\baselineskip} +\setlength\labelwidth{1em} +\setlength\leftmargini\z@ +\addtolength\leftmargini\labelwidth +\addtolength\leftmargini\labelsep +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\def\makelabel##1{##1}}% + \fi} +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\usecounter\@enumctr\def\makelabel##1{##1}}% + \fi} +\widowpenalty=10000 +\clubpenalty=10000 +\raggedbottom +\RequirePackage{fancyhdr} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\fancyhfoffset{35pt} +\pagestyle{fancy} +\lhead{\textsf{\textbf{\footnotesize\@reportnum}}} +\rhead{\textsf{\textbf{\footnotesize\thepage}}} +\chead{} +\lfoot{} +\cfoot{\color{blue}\textsf{\textbf{\textit{openETCS}}}\color{black} - \includegraphics[width=3em]{template/ccbysa.png}} +\rfoot{} +\newif\if@frontmatter +\@frontmatterfalse +\newif\if@appendix +\@appendixfalse +\def\frontmatter{% + \pagenumbering{arabic}% + \@frontmattertrue + \@appendixfalse} +\def\mainmatter{% + \cleardoublepage + \pagenumbering{arabic}% + \@frontmatterfalse + \@appendixfalse} +\def\appendix{% + \clearpage + \@frontmatterfalse + \@appendixtrue + \@addtoreset{table}{chapter}% + \@addtoreset{equation}{chapter}% + \@addtoreset{figure}{chapter}% + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% + \gdef\thefigure{\@Alph\c@chapter\@arabic\c@figure}% + \gdef\thetable{\@Alph\c@chapter\@arabic\c@table}% + \gdef\theequation{\@Alph\c@chapter\@arabic\c@equation}} +\def\project#1{\gdef\@project{#1}} +\project{openETCS} +\def\reportnum#1{\gdef\@reportnum{#1}} +\reportnum{OETCS TK-01-01} +\def\wp#1{\gdef\@wp{#1}} +\wp{} +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} +\def\@subtitle{} +\newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and} +\def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{% + \@andlistb#1{#3}}} +\def\@andlistb#1#2#3#4#5\and{% + \@ifempty{#5}{% + \@andlistc{#2#4}% + }{% + \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}% + }} +\let\@andlistc\@iden +\newcommand{\nxandlist}[4]{% + \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}% + \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}% + \the\@xp\toks@#4\and\and + \edef#4{\the\toks@}% + \let\@andlistc\@iden} +\def\@@and{and} +\newcommand{\andify}{% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}} +\def\and{\unskip{ }\@@and{ }\ignorespaces} +\let\@xp\expandafter\relax +\let\@nx=\noexpand +\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\long\def\@ifempty#1{\@xifempty#1@@..\@nil} +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\setboxz@h{\setbox\z@\hbox} +\def\@addpunct#1{% + \relax\ifhmode + \ifnum\spacefactor>\@m \else#1\fi + \fi} +\newtoks\@emptytoks +\def\authors{} +\def\addresses{} +\def\author#1{% + \ifx\@empty\authors\gdef\authors{#1}\else + \g@addto@macro{\authors}{\and#1}\fi + \ifx\@empty\@addresses\gdef\addresses{\author{#1}}\else + \g@addto@macro{\addresses}{\par\author{#1}}\fi} +\def\affiliation#1{% + \ifx\@empty\@addresses\gdef\addresses{#1\par}\else + \g@addto@macro{\addresses}{#1\par\vspace{\baselineskip}}\fi} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space \number\year} +\newcommand{\coverart}[2][]{% + \def\@tempa{#1}% + \ifx\@empty\@tempa + \gdef\@coverart{\centering\includegraphics[width=435\p@]{#2}}\else + \gdef\@coverart{\centering\includegraphics[#1]{#2}}\fi} +\def\@coverart{}% +\def\reporttype#1{\gdef\@reporttype{#1}} +\reporttype{} +\def\distribution#1{\gdef\@distribution{#1}} +\distribution{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 Unported License.\\ \includegraphics[width=40pt]{template/ccbysabig.png}} +\def\preparedfor#1{\gdef\@preparedfor{#1}} +\preparedfor{ITEA2 openETCS consortium\\ Europa} +\def\contractnum#1{\gdef\@contractnum{#1}} +\contractnum{} +\def\monitoredby#1{\gdef\@monitoredby{#1}} +\monitoredby{} +\def\additionalinfo#1{\gdef\@additionalinfo{#1}} +\additionalinfo{} +\newbox\abstractbox +\renewenvironment{abstract}{% + \global\setbox\abstractbox=\vtop \bgroup + \normalfont + \list{}{\labelwidth\z@ + \leftmargin\z@ \rightmargin\leftmargin + \listparindent\z@ \itemindent\z@ + \parsep16\p@ \topsep\z@ + \let\fullwidthdisplay\relax + }% + \item[\hskip\labelsep\bfseries Abstract:]% +}{% + \endlist\egroup} + \long\def\disclaimer#1{\long\gdef\@disclaimer{#1}} + \disclaimer{ +\textbf{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 -- (cc by-sa 3.0)} + +THE WORK IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC +LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT +AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS +LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU +THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH +TERMS AND CONDITIONS. + +\url{http://creativecommons.org/licenses/by-sa/3.0/} +} +\newenvironment{@coverlist}{\begin{list}{}{% + \leftmargin40\p@\rightmargin-85\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newenvironment{@titlelist}{\begin{list}{}{% + \leftmargin-20\p@\rightmargin100\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newif\if@titleblock +\newenvironment{@titleblock}{% + \list{}{\labelwidth80\p@\labelsep10\p@ \leftmargin70\p@ + \rightmargin-150\p@ + \let\makelabel\@titleblocklabel}}{\endlist} +\newcommand*{\@titleblocklabel}[1]{\hfill\small#1} +\def\maketitle{% + \thispagestyle{empty}% + \enlargethispage{0.34in}% + \vspace*{-0.95in} + \makebox[0cm][r]{% + \raisebox{-780\p@}[\z@][\z@]{% + \rotatebox{90}{\makebox[\z@][l]{% + \colorbox{blue}{\color{white}\parbox{780\p@}{% + \rule{0\p@}{85\p@}% + \hspace{28\p@}\raisebox{40\p@}{% + \parbox[c]{350\p@}{\@projectfont\@project}% + \hspace{10\p@}% + \parbox[c]{300\p@}{\hfill\@reportnumfont\@reportnum}}}}}}}% + \hspace*{-14\p@}}% +% \makebox[0cm][r]{\raisebox{-720\p@}[\z@][\z@]{\rule{8\p@}{726\p@}% +% \hspace{-26.75\p@}}}% + \begin{@coverlist}% + \sffamily\fontseries{k}\selectfont% + \hfill\parbox{145\p@}{\centering + \includegraphics[width=145\p@]{template/itea.jpg}\\ + {\bfseries + ITEA2 Project\\2012 -- 2015}}\\ + \par + \vspace{0.5cm}% + {\@wpfont\@wp\par}% + \vspace{0.3cm}% + {\raggedright\@titlefont\@title\par + \vspace{0.3cm}% + \normalsize\bfseries\@subtitle\par}% + \vspace{0.3cm}% + \begin{minipage}[t]{300\p@}\raggedright + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\authors + \authors\end{minipage}% + \begin{minipage}[t]{135\p@}\flushright\@date\end{minipage}\par + \vspace{2cm}% + \@coverart + \end{@coverlist}% + \vfill + \begin{@coverlist}% + \@distributionfont\@distribution + \end{@coverlist}% + \newpage\thispagestyle{empty}\hbox{}\newpage + \thispagestyle{empty}% + \setcounter{page}{1}% + \vspace*{-1.5in}% + \vspace*{-\topmargin}% + \begin{@titlelist}% + \sffamily\fontseries{k}\selectfont + \begin{minipage}[t]{275\p@}% + \bfseries\@wp + \end{minipage}% + \begin{minipage}[t]{175\p@}% + \bfseries\flushright\@reportnum\\\@date + \end{minipage}\rule[-0.5in]{\z@}{0.625in}\par + \begin{minipage}{\textwidth} + \vspace*{1cm}% + {\@titlefont\raggedright\@title\par} + \vspace*{3\p@}% + \bfseries\@subtitle\par + \end{minipage}\rule[-0.7in]{\z@}{1in}\par + \def\author##1{% + \def\@tempa{##1}% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\@tempa + {\upshape\normalsize\@tempa}\par\vspace{6\p@}}% + \begin{minipage}{\textwidth} + \textit{\footnotesize\addresses}\par + \end{minipage}\rule[-2.7in]{\z@}{3.7in}\par + \begin{minipage}{\textwidth} + \@reporttype\par\vspace*{3\p@}% + {\@distributionfont\@distribution\par}% + \end{minipage} + \end{@titlelist}% + \vfill + \begin{@titlelist}% + \sffamily\normalsize\fontseries{k}\selectfont + \ifx\@additionalinfo\@empty\else\@additionalinfo\par\fi + \@titleblockfalse + \ifx\@empty\@preparedfor\relax\else\@titleblocktrue\fi + \ifx\@empty\@contractnum\relax\else\@titleblocktrue\fi + \ifx\@empty\@monitoredby\relax\else\@titleblocktrue\fi + \if@titleblock + \begin{@titleblock}% + \ifx\@empty\@preparedfor\else + \item[Prepared for]\@preparedfor + \fi + \ifx\@empty\@contractnum\else + \item[Under]\@contractnum + \fi + \ifx\@empty\@monitoredby\else + \item[Monitored by]\@monitoredby + \fi + \end{@titleblock} + \fi + \end{@titlelist}% + \clearpage + \ifvoid\abstractbox + \else + \box\abstractbox + \prevdepth\z@ + \fi + \vfill + \bgroup + \setlength{\fboxsep}{5\p@}% + \makebox[\textwidth]{\fbox{\parbox{6.5in}{% + \fontsize{8.5\p@}{9.5\p@}\selectfont + \parskip\baselineskip + \textbf{Disclaimer:} \@disclaimer}}}% + \egroup + \clearpage} +\def\cl@chapter{} +\@addtoreset{section}{chapter}% +\@addtoreset{subsection}{chapter}% +\@addtoreset{subsection}{section}% + + +\def\@makechapterhead#1{% + \vspace*{5\p@}% + {\hskip-35\p@% + \parindent\z@\raggedright + \interlinepenalty\@M + \@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\def\@makeschapterhead#1{% + \vspace*{5\p@}% + {% + \parindent\z@\raggedright + \interlinepenalty\@M + \leftskip-35\p@\@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\renewcommand \theequation {\@arabic\c@equation} +\setcounter{tocdepth}{2} +\renewcommand\section{% + \addpenalty\@secpenalty\nobreak + \secdef\@section\@ssection} +\def\@section[#1]#2{% + \ifnum1>\c@secnumdepth + \addcontentsline{toc}{section}{#1}% + \else + \refstepcounter{section}% + \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}% + \fi + {\hskip-35\p@\raggedright\interlinepenalty\@M + \large\sffamily\bfseries + \ifnum1>\c@secnumdepth\else\makebox[35\p@]{\thesection\hfill}\fi#2\nobreak\par} + \@afterheading + \nobreak\par} +\def\@ssection#1{ + \addcontentsline{toc}{section}{#1}% + {\raggedright\interlinepenalty\@M + \large\sffamily\bfseries\leftskip-35\p@#1\nobreak\par} + \@afterheading + \nobreak\par} +\renewcommand\subsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsection\@ssubsection} +\def\@subsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsection}{\itshape#1}% + \else + \refstepcounter{subsection}% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsection#1{% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\def\specialchapter#1{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \@makeschapterhead{#1}\par + \@afterheading} +\def\@dotsep{0.5} +\def\@dottedtocline#1#2#3#4#5{% + \bgroup + \def\numberline##1{\makebox[#3]{##1\hfill}}% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\def\@dottedtoclineLF#1#2#3#4#5{% + \bgroup + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #2\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\@tempdima + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\renewcommand*\l@section{\@dottedtocline{1}{2em}{2.5em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.7em}{3em}} +\renewcommand*\l@figure{\@dottedtoclineLF{1}{0em}{2.3em}} +\let\l@table\l@figure +\renewcommand\contentsname{Table of Contents} +\renewcommand\tableofcontents{% + \specialchapter{\contentsname}% + \def\numberline##1{\hb@xt@\@pnumwidth{##1\hfill}}% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{toc}}} +\renewcommand\listoffigures{% + \chapter{\listfigurename}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}} +\renewcommand\listoftables{% + \chapter{\listtablename}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\def\listfiguretablename{Figures and Tables} +\newcommand\listoffiguresandtables{% + \chapter{\listfiguretablename} + {\sffamily\bfseries\normalsize Figures\par}% + \vspace*{10pt}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}% + {\sffamily\bfseries\normalsize Tables\par}% + \vspace*{10pt}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\renewcommand\bibname{References} +\setlength{\@fptop}{0pt}% +\renewcommand \thefigure {\@arabic\c@figure} +\renewcommand \thetable {\@arabic\c@table} +\captionsetup{justification=centering,font={footnotesize,rm,bf}, +labelsep=period,aboveskip=3pt} +\captionsetup[table]{position=top} +\def\arraystretch{1.3} +\let\maketag@@@@\maketag@@@ +\def\maketag@@@#1{\hbox{\m@th\@eqtagfont#1}} +\renewcommand{\eqref}[1]{\textup{\tagform@@{\ref{#1}}}} +\def\tagform@@#1{\maketag@@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +\endinput +%% +%% End of file `erdc.cls'. diff --git a/Requirements/template/openetcs.cls b/Benchmarking/template/openetcs_report.cls similarity index 100% rename from Requirements/template/openetcs.cls rename to Benchmarking/template/openetcs_report.cls diff --git a/D2.3/Synthesis/Process.ppt b/D2.3/Synthesis/Process.ppt new file mode 100755 index 0000000..9126f1d Binary files /dev/null and b/D2.3/Synthesis/Process.ppt differ diff --git a/D2.3/Synthesis/images/Process1.png b/D2.3/Synthesis/images/Process1.png new file mode 100755 index 0000000..7b586c7 Binary files /dev/null and b/D2.3/Synthesis/images/Process1.png differ diff --git a/D2.3/Synthesis/images/Process2.png b/D2.3/Synthesis/images/Process2.png new file mode 100755 index 0000000..6681d92 Binary files /dev/null and b/D2.3/Synthesis/images/Process2.png differ diff --git a/D2.3/Synthesis/images/archi.png b/D2.3/Synthesis/images/archi.png new file mode 100755 index 0000000..92ac86f Binary files /dev/null and b/D2.3/Synthesis/images/archi.png differ diff --git a/D2.3/Synthesis/req.tex b/D2.3/Synthesis/req.tex new file mode 100755 index 0000000..1fb9d1e --- /dev/null +++ b/D2.3/Synthesis/req.tex @@ -0,0 +1,95 @@ +%% Requirements. + + +\newcounter{reqnum} +\setcounter{reqnum}{0} +\newcounter{subreqnum} +\newcounter{subsubreqnum} +\newlength{\partopbuf} +\newlength{\topbuf} + +% Automated numbering versions of the macros +\newcommand{\req}[1]{\addtocounter{reqnum}{1} \setcounter{subreqnum}{0} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\item[{\small\reqt-X-\thereqnum}] #1\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} + } + +\newcommand{\subreq}[1]{ + \addtocounter{subreqnum}{1} \setcounter{subsubreqnum}{0} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\addtolength{\leftmargin}{1cm} + \item[{\small\reqt-X-\thereqnum.\thesubreqnum}] #1 + \addtolength{\leftmargin}{-1cm}\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} +} + +\newcommand{\subsubreq}[1]{ + \addtocounter{subsubreqnum}{1} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\addtolength{\leftmargin}{1cm} + \item[{\small\reqt-X-\thereqnum.\thesubreqnum.\thesubsubreqnum}] #1 + \addtolength{\leftmargin}{-1cm}\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} +} + +% Fixed version of the commands +\newcommand{\reqfixed}[3]{\addtocounter{reqnum}{1} \setcounter{subreqnum}{0} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\item[{\small\reqt-#1-#2}] #3\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} + } + +\newcommand{\subreqfixed}[4]{ + \addtocounter{subreqnum}{1} \setcounter{subsubreqnum}{0} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\addtolength{\leftmargin}{1cm} + \item[{\small\reqt-#1-#2.#3}] #4 + \addtolength{\leftmargin}{-1cm}\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} +} + +\newcommand{\subsubreqfixed}[5]{ + \addtocounter{subsubreqnum}{1} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\addtolength{\leftmargin}{1cm} + \item[{\small\reqt-#1-#2.#3.#4}] #5 + \addtolength{\leftmargin}{-1cm}\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} +} + +% Citation of the requirement + +% Citation of the reference (for markup purpose) +\newcommand{\refreq}[1]{\textbf{#1}} + +% Citation of the reference and text (for markup purpose) +% The purpose of this is to automatically replace the placeholder by the +% full text. \fullrefreq{R-xxx}{} or \fullrefreq{R-xxx}{blabla} +% will be replaced by \fullrefreq{R-xxx}{text of the R-xxx requirement} +\newcommand{\fullrefreq}[2]{\textbf{#1}: \textrm{#2}} + diff --git a/D2.3/Synthesis/req_synthesis.pdf b/D2.3/Synthesis/req_synthesis.pdf new file mode 100755 index 0000000..79b4e3f Binary files /dev/null and b/D2.3/Synthesis/req_synthesis.pdf differ diff --git a/D2.3/Synthesis/req_synthesis.tex b/D2.3/Synthesis/req_synthesis.tex new file mode 100755 index 0000000..f168aa9 --- /dev/null +++ b/D2.3/Synthesis/req_synthesis.tex @@ -0,0 +1,679 @@ +\documentclass{template/openetcs_article} +% Use the option "nocc" if the document is not licensed under Creative Commons +%\documentclass[nocc]{template/openetcs_article} +\usepackage{rotating,url,color} +\graphicspath{{./template/}{.}{./images/}} +\begin{document} +\frontmatter +\project{openETCS} + +%Please do not change anything above this line +%============================ +% The document metadata is defined below + +%assign a report number here +\reportnum{OETCS/WP2/D2.3.0~--~00/00} + +%define your workpackage here +\wp{Work-Package 2: ``Requirements''} + +%set a title here +\title{Preliminary Requirements for openETCS} + +%set a subtitle here +%\subtitle{A template for short document. Adapted from report template.} + +%set the date of the report here +\date{January 2013} + +%define a list of authors and their affiliation here + +\author{Sylvain Baro} +\affiliation{SNCF} + + +% define the coverart +\coverart[width=350pt]{chart} + +%define the type of report +\reporttype{Requirements} + + +\begin{abstract} +This document provides a preliminary view of the requirements for the openETCS project. +It is meant to evolve after the initial release in order to provide the full requirement lists. +\end{abstract} + +%============================= +%Do not change the next three lines +\maketitle +\tableofcontents +\listoffiguresandtables +\newpage +%============================= + +% The actual document starts below this line +%============================= + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% My macros (=> Sylvain Baro) %%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\tbd}{\colorbox{cyan}{\%\%To Be Defined\%\%}} +\newcommand{\tbc}{\colorbox{cyan}{\%\%To Be Confirmed\%\%}} +\newcommand{\todo}[1]{\colorbox{cyan}{\%\%{#1}\%\%}} +\newlength{\origindent} + +\newenvironment{issue}{ + \begin{quote} + \begin{itshape}Open Issue. +}{ + \end{itshape} + \end{quote} +} + +\newenvironment{comment}{ + \begin{quote} + \begin{itshape}Comment. +}{ + \end{itshape} + \end{quote} +} + +\newenvironment{justif}{ + \begin{quote} + \begin{itshape}Justification. +}{ + \end{itshape} + \end{quote} +} +\input{req} + +\def\reqt{R-WP2/D2.3.0} +% Start here +\section{Introduction} +The purpose of this document is to enumerate the meta-requirements of the projects: \emph{i.e.} +the requirements on the modeling, processes, toolchain. The purpose of this document is +not to provide the system and safety requirements that will specify the model/software +developed in the OpenETCS project. + +The requirements found in the 50126 and 50128 are not rewritten here. The required plans for the +project (see Sect. \ref{standards}) shall be written according to what is required in the standards, +then reviewed. Once this task is done, the plans will be the reference for the project. +In the meantime, one can refer to the standard, or to AeBT and TUBS presentations at WP2 Workshop. + +This document is initiated as a preliminary requirement list, and will evolve during the project +to be completed with all the requirements on the methodology +modelling, process, tool chain, and safety proof. The table herebelow suls up the area of responsibility +of the contributors of WP2 on these requirements. + +\small +\begin{tabular}{|p{1.1cm}|p{1.8cm}|p{1.8cm}|p{3.2cm}|p{4.2cm}|} +\hline +Subtask ID & Requirements & Responsible & Major Participants & Participants \\ +\hline +D2.3.1 & Set of requirements on modeling & TUBS & TUBS; SNCF; ALSTOM; Siemens & +DLR; CEDEX?; Multitel?; Mitsubishi E.; Innovalia?; SQS? \\ +\hline +D2.3.2 & Set of requirements on API & ALSTOM & SIEMENS; ALSTOM & +ERSA?; SNCF; Fraunhofer;Innovalia?; SQS? \\ +\hline +D2.3.3 & Set of requirements on tools & CEA & SYSTEREL; CEA; Siemens & +SNCF; ERSA?; EclipseSource; Atos Origin?; ERTMS Solution?; CEDEX?; DLR; +Multitel?; Mitsubishi E.; Innovalia?; SQS? \\ +\hline +D2.3.4 & Set of requirements on V\&V & SNCF & SNCF; AEbT; ALSTOM; SIEMENS; DB; DLR & +CEDEX?; Multitel?; Innovalia?; SQS? \\ +\hline +\end{tabular} +\normalsize + +\section{Reference documents} +\begin{itemize} +\item CENELEC EN 50126-1 --- 01/2000 --- \emph{Railways applications –- The specification and +demonstration of Reliability, Availability, Maintenability and Safety (RAMS) –- Part 1: +Basic requirements and generic process} +\item CENELEC EN 50128 --- 10/2011 --- \emph{Railway applications -- Communication, signalling and +processing systems -- Software for railway control and protection systems} +\item CENELEC EN 50129 --- 05/2003 --- \emph{Railway applications –- Communication, signalling and +processing systems –- Safety related electronic systems for signalling} +\item FPP --- \emph{Project Outline Full Project Proposal Annex OpenETCS} -- v2.2 +\item SUBSET-026 3.3.0 --- \emph{System Requirement Specification} +\item SUBSET-076-x 2.3.y --- Test related ERTMS documentation +\item SUBSET-088 2.3.0 --- \emph{ETCS Application Levels 1 \& 2 - Safety Analysis} +\item SUBSET-091 2.5.0 --- \emph{Safety Requirements for the Technical Interoperability +of ETCS in Levels 1 \& 2} +\end{itemize} + +\section{Conventions} +The requirements are prefixed by “R-zz-x-y”, and are written in a roman typeface, where ``R'' +stands for ``Requirement'', ``zz'' identifies the source document,``x'' +is the version number and``y'' is the identifier of the requirement. All the text +written in italics is not a requirement: it may be a note, an open issue, an +explanation of the requirements, or an example. + +The placeholder “\todo{xxx}” is used to indicates that a paragraph or section is not finished, +to be defined or to be confirmed. + +\section{Glossary} +\begin{description} +\item[API] Application Programming Interface +\item[FME(C)A] Failure Mode Effect (and Criticity) Analysis +\item[I/O] Input/Output +\item[OBU] OnBoard Unit +\item[QA] Quality Analysis +\item[RBC] Radio Block Center +\item[RTM] RunTime Model +\item[SIL] Safety Integrity Level +\item[THR] Tolerable Hazard Rate +\item[V\&V] Verification \& Validation +\end{description} + +\section{Goals} +\subsection{Goal 1: Formalization of the SRS in an executable formal and high level model} +The first goal of the project is to propose a formalization of a subset of the on-board subsystem, +as defined in the SUBSET-26. + +The purpose of the formalization is: +\begin{itemize} +\item to enhance the understanding of modelled subset; +\item to allow formal analysis of the modelled subset; +\item to be able to animate the model for testing and analyzing purpose; +\item to provide information on the completeness and soundness of the SUBSET-26; +\item to be used as a reference formal specification for the implementation of an OBU +(by the OpenETCS project team and by industrial actors); +\item \dots +\end{itemize} + +In order to conduct this formalization, a part of the tool chain and methodology defined (see Goal 2) +will be used. + +The formalization of the complete SUBSET-26 needs a strategy to perform the whole task step by step. This strategy shall +\begin{itemize} +\item determine the procedure of how the natural language SUBSET-26 specification can be formalized (via nonambious dictionary, definition of variables, inputs, outputs, ...) +\item determine which kinds of abstraction layers are required for the formalization +\item divide the whole functionality of SUBSET-26 into separate components with minimized interdependencies, that allow to be implemented and tested separately by different contributors; +\item define how these components are to be integrated subsequently in an interative way to complete the SUBSET-26 functionality; +\item define how these (integrated) components can be simulated, tested and executed; +\item \dots +\end{itemize} + + + +The output of this goal is a formal specification, understandable by many tools (SCADE, +Simulink, B tools, OpenETCS tool chain…) that can be given to all railway actors, and +if possible associated to SRS documents in the ERA database. + +The final goal is that industrial actors work with this formal specification instead of +natural language specification. + +\subsection{Goal 2: Definition of a tool chain and process/methodologies for developing +on onboard software that can fulfill the EN 50128 requirements} +\marginpar{tool chain and process/methodolgies should be splitted into 2 separate goals} + +These tools/methodologies must be certifiable, but will not be certified as part of the project. + +By the combination of Goal 1 and 2, it should be possible for the industry to build an ETCS +onboard software: +\begin{itemize} +\item By using OpenETCS model and proving the implementation satisfies the model; +\item By using the OpenETCS toolchain with their own model; +\item By using the OpenETCS model and toolchain. +\end{itemize} + +The full safety process needed for the OpenETCS to be \emph{certifiable} according to CENELEC 50126 +and 50128 shall be described in details. This safety plan will detail precisely which activities +are required or not, why, and the choices that are made that allows to claim that safety is guaranteed. +The process has to ensure that toolchain, formalized SUBSET-26 specification and models are certifiable according to these standards while emerging from an open soure environment. + +Because the full design, development, validation and safety analysis process for a SIL4 OBU +is a huge task far beyond the project possibilities, the full safety activities will not be conducted +on the whole subsystem (see below). Nevertheless the safety process description shall be complete +according to CENELEC requirements. + +\subsection{Goal 3: Building an implementation of the subset of an onboard ETCS using the model and the +tool chain defined in Goal 1 \& 2} + +It is the demonstration that all the work done in the OpenETCS project is coherent, and that +the tool chain is operational. + +\subsection{Goal 4: Define the safety properties at the model level} +In order to comply the CENELEC standards, it is necessary to conduct safety activities +to identify errors and anomalies in the process. One important step for this is to define safety +properties which are on the same level than the formal model. + +These safety properties: +\begin{itemize} +\item will be used for the validation of the model itself; +\item will be used as reference proof obligations for the subsequent activies. +\end{itemize} + +\begin{issue} +Is it realistic to expect such properties on the whole model? +\end{issue} + +\subsection{Goal 5: Provide a subset of the safety case} +Selected part of the safety process shall be applied (either by applying the full process on a small +subset of the development, or by applying a part of the activities on the whole project development). + +\begin{issue} +This point has to be discussed. The purpose here is of course to demonstrate the feasability +of the safety process, but I am not convinced that it proves anything if the whole process is +not applied. +\end{issue} + +\subsection{Goal 6: Promote OpenETCS} +Promote this work to push it to become a \emph{de facto} standard for the industrial actors, +(like \emph{e.g.} the AUTOSAR standard in the automotive world). + +\section{Project outline} +In order to pursue this goals, the development cycle for the project may be presented as follow. + +\textbf{Please note that this is just an outline of the activities, not the project plan, nor the +Q\&A, nor the Validation plan. Also note that the activities needed for the toolchain are not +covered here.} + +Fig. \ref{fig:main_process} shows the main part of the development process. This process may be seen +as a ``triple-V''. The smaller V corresponds to the development of the formal model. + +It starts by the SRS which is not part of the project (SUBSET-26), then outlines the boundaries and +the applicable requirements from the SUBSET-26 that will be used in the formal model. + +The next step is the creation of the formal model itself. Because this model is executable, it can +be validated as itself, thus the first ``closing branch'' of the V. + +From the model can be derived some ``abstract'' code. The word ``abstract'' is used to emphasize that +this code is not necessarily capable of running of a full SIL4 platform. This code can be validated +in the second ``closing branch'', possibly using some of the work done in the first branch. + +A project demonstrator may be derived from this code (or may be the ``abstract'' code itself). + +The third ``closing branch'' corresponds to the production of code capable of running on a +given SIL4 platform, and the associated validation activities. This is not part of the project. + +The yellow boxes corresponds to activities that should be covered completely in order to produce +a certifiable product, but of which only a subset will be conducted in order to demonstrate the +capabilities of the product. + +\begin{figure} + \centering + \fbox{\includegraphics[scale=0.65]{Process1.png}} + \caption{Main process} + \label{fig:main_process} +\end{figure} + +Fig. \ref{fig:safety_process} shows activities that are needed for the safety analyses. It should +be considered in parallel of the descending branch of the V, but has been put on a separate diagram for +the sake of clarity. + +High level safety properties are provided, which must be refined side-to-side with each step on the +descending branch of the V. These properties are then used for the safety analysis of the model. The +validation (safety analyses) boxes are yellow because the full activity will not be conducted. Only +a subset of the safety properties will be proved. + +\begin{figure} + \centering + \fbox{\includegraphics[scale=0.80]{Process2.png}} + \caption{Safety analyses} + \label{fig:safety_process} +\end{figure} + +Regarding the process, WP2 shall issue (through this document) the requirements on V\&V, including +safety activities. From these requirements, WP4 shall propose the corresponding plans (Safety, +Verification and Validation). This plans will then be reviewed by WP2 to check conformance to the +requirements. The reviewed plans will then be used as reference for the activities of the WPs. + + +\section{Requirements} +\subsection{Standards} +\label{standards} + +\req{The project shall comply the CENELEC EN 50126 standard.} +\req{The project shall comply the CENELEC EN 50129 standard.} +\begin{comment} +These two requirements pulls some documentation issue (for example a project plan +and a safety plan\,\footnote{Each plan is in the scope of the Work Package responsible for the +corresponding tasks. \emph{I.e.} V\&V plan shall be issued by WP4.} which describe what to do in the +context of an Open Source critical software), but it also pull other requirements (compliance to +ISO~9001, skill of the people in contact with critical items). These points must be +considered\,\footnote{The plan has to describe either how the requirement is applied in the context +of OpenETCS project, or why it is not needed.} in the QA Plan. +\end{comment} + + +\req{All software in the scope of the project shall comply the EN 50128 standard.} +\subreq{A QA Plan shall be issued and complied with.} +\subreq{The QA Plan shall describe the management of versions, OpenETCS baselines, +connexion with ERTMS baselines, requirements\dots} +\subreq{A Verification plan shall be issued and complied with.} +\subreq{A Validation Plan shall be issued and complied with.} +\subreq{The techniques applied to the software will be compliant regarding the SIL.} +\subreq{All the output documents required by the EN~50126, EN~50128 and EN~50129 for +each step of the lifecycle shall be issued, or their lack of shall be justified.} +\subreq{The tools used shall be developed in order to be certifiable according to EN 50128.} + +\begin{comment} +No requirement on the way of doing this. \emph{E.g.} to have a certified +(certifiable?) code generator, two generators and comparison of the result, one + generation and one verification chain\dots + \end{comment} + + + +\req{All Roles, responsabilities and more generally participators to any task (development, documentation, +validation\dots) on any step of the project development shall be tracked, in particular +to show independence of the development and testing teams. The way of tracking shall be explained in +the QA Plan.} + +\subsection{Runtime Model \& API} +\begin{figure}[h] + \centering + \fbox{\includegraphics[width=4in]{archi}} + \caption{Architecture} + \label{fig:architecture} +\end{figure} +\marginpar{The figure does not reflect the architecture of the following text. Update required!} + +In order to avoid ambiguities, we will define the following. +\begin{description} +\item[Runtime model.] This is the abstract layer required to ``run'' the formal model. It shall provide +``hardcoded'' in the formalism part or all of the following (but not restricted to): +\marginpar{What does this hardcoded mean?} +\begin{itemize} +\item memory management, +\item execution of state machines (or of the chosen formal objects), +\item failures, +\item communication between processes and concurrence. +\end{itemize} +All these can be provided with or without safety properties. This corresponds in fact to the services +provided by the ``abstract machine(s)'' which runs the models. +\item[API.] + This is the functions/primitives required to complete the \emph{Runtime model}. It shall provide +the remaining of the features listed hereabove which are not provided by the Runtime model. + +All these can be provided with or without safety properties. +\item[RTM/API.] +This corresponds to the Runtime Model \emph{plus} API. Therefore it should provide all the services +needed to emulate at abstract level the hardware platform that could run the software. +\item[Functional Architecture.] This corresponds to the functional boundaries between the ETCS KERNEL +and the other functional components (JRU, DMI, Odometry, Eurobalise, Euroradio\dots). These boundaries +are described in the FIS or FFFIS. It also includes the parting of the KERNEL into different +functions. +\end{description} + +In the following requirements, we will not discriminate what is required from the API and from the +RTM. This is the definition of these components that will allocate the requirements to the different +parts. Hence we will only state requirements on the RTM/API. + +\subsubsection{RTM/API} +\textbf{This chapter has to be completed by the leader of D2.3.2} + +\req{The RTM/API model shall provide an abstraction layer of the hardware architecture.} +\req{The RTM/API shall make possible to refine the software into final code able to run +on hardware complying the EN 50129 standard for the requested SIL.} + +\req{The RTM/API shall allow discriminating Vital processing, data and I/O from Non Vital.} +\req{The RTM/API shall provide a way of communication between Vital processes and Non Vital processes.} + +\begin{justif} +The purpose of these requirements is to be able to discriminate the safety part from the non +safety part. It should be made possible to have it run on a proprietary architecture with both +software on the same computer (with for example 2oo3, or coded monoprocessor) or on two +different computers. One way of doing this, for example is to have some critical state +machines with their data on one side, and the non critical part on the other side, with +API channels to make them communicate. +\end{justif} + +\begin{issue}Should it be done for just SIL4 and SIL0, or should there be all levels from SIL0 +to SIL4? It should be sufficient to distinguish only between safety and non safety, but an +intermediate level could be useful (for SIL2 I/O for example). I have the feeling that it should not +be more complicated to have one cluster of state machine per SIL, even if we only use SIL0 and SIL4. +\end{issue} + +\req{The RTM/API shall allow to introduce failures for test purpose.} + +\req{The RTM/API shall provide a way of reading configuration data (\emph{e.g.} constants,\dots)} + +\req{The RTM/API shall provide an abstraction layer of the communication and interfaces +with other components.} + +\begin{justif} +Even if the FIS or FFFIS requires a specific protocol (\emph{e.g.} Profibus), this protocol will not +be implemented in the high level model. It will be considered that low level communication issues are +taken into account (= emulated) by the RTM/API. +\end{justif} + +\req{The RTM/API shall provide an API for logging, tracing, debugging and diagnosis purposes.} + +\req{The RTM/API shall provide an automatization interface to enable to be controlled from the tools of the tool chain.} + +\subsubsection{Model and Architecture} +\textbf{This chapter has to be completed by the leaders of D2.3.1 and D2.3.2} + +\req{The model shall comply all OBU ETCS mandatory requirements for level upto 2, in the +functional perimeter provided by the Functional Architecture.} +\subreq{The model shall comply the OBU part of SUBSET-26-3.3.0.} + + + +\subreq{The reference ETCS baseline shall be modified only by project decision, according +to the QA Plan.} +\subreq{All divergences against the chosen baseline shall be documented and tracked, according +to the QA Plan.} + +\req{The model shall be consistent with the SRS level and shall yield as +few as possible “design choices”.} +\subreq{Traceability with the SRS shall be provided. } +\subreq{Each interpretation of the SRS shall be indicated precisely.} +\subreq{Each SRS requirement not formalized in the model (\emph{e.g.} allocated to RBC) +should be traced and justified.} + +\req{When the boundary of the formalized subsystem corresponds to a FIS or FFFIS, the Functional +Architecture shall try to comply to it even when it is not mandatory.} + +\req{The Functional Architecture shall split the KERNEL into independent functions.} +\begin{issue} +Should we stick to the SUBSET-026-4.5.2 function list? +\end{issue} + + +\req{The Functional Architecture shall identify a subset of these functions that will be modeled.} +\req{The Functional Architecture shall allow a universal method of adding function (modularity).} + +\todo{Design, Evolution, Validation, Transformation} + + +\section{Verification, Validation and Safety issues} +\textbf{This chapter has to be completed by the leader of D2.3.3} +\subsection{Safety} +\label{safety} +\begin{justif} +Side to side with the model (which should be a dynamic model), should lay a set of +static safety properties on the model. The higher level properties will be provided +by the WP2 (equivalent to a preliminary hazard analysis) from the SUBSET-91 document, + +They will be refined by the safety analysis process (WP4) into properties of the same +level than the model. The process of doing so shall be described in the Safety Plan. + +This will provide Safety Properties on the model (or Dread Events). The lower level Safety Properties/ +Dread Events shall address variables, state and interfaces used in the formal model. + +Formal proof would then be used to prove that the OpenETCS model never enter a Dread State, +as long as the other subsystem (RBC, communication layer\dots) fulfill their own safety properties +(axiom describing the environment). +\end{justif} + +\req{A safety plan shall be provided and complied with.} +\req{The Functional Architecture shall identify the Vital and Non Vital functions.} +\req{The subsystem shall be compatible with the THR required in the SUBSET-091.} +\req{The safety analysis shall consider the Dread Event of the SUBSET-091, restricted to the +scope of the subsystem.} +\req{The model-level safety properties shall be written in a formal language.} + +\tbc + + +\subsection{Verification and Validation} + + +\req{A V\&V plan shall be written and complied with.} + +\begin{issue}Before stating the V\&V requirements, decisions should be taken regarding +the safety issues raised in the previous section. The V\&V process will be heavily impacted +by the choice to do safety validation or not. + +If code is generated with refinement proof obligations, +their will not be “verification testing”, but only “validation testing” +(\emph{i.e.} functional tests). + +If we use a formal method with automatic code generation, there is no need of unit testing. +There would be only the need of validation (functional) tests (\emph{e.g.} Subset 076), and +integration tests. + +\todo{Verification that the refinements of system design to software code is coherent?}\\ + +\todo{Verification that the proofs defined at system level design, are valids?} +\end{issue} + +\tbc + +\section{Language and formalism} +\textbf{This chapter has to be completed by the leader of D2.3.1} +Some of the requirements in this section could suit in the Tool Chain section, but for the sake +of clarity I preferred to keep them near other language requirements. + +\req{The model formalism shall be easily understandable by the domain experts.} +\req{The safety properties should be provided in a declarative, simple and formal language.} +\req{The formal model shall be understandable by or exportable to many tools +(SCADE, Simulink, B tools, OpenETCS tool chain\dots} + + + +\req{Formal specifications should be able to formalize:} +\subreq{State machines,} +\subreq{Time-outs,} +\subreq{Truth tables,} +\subreq{Arithmetics,} +\subreq{Braking curves,} +\subreq{Logical statements.} + +\begin{comment} +This requirement does not state that all these objects need to be \emph{first order objects} of +the language. It only state that it should be possible (easy?) to formalize and manipulate them. + +It is to be noted that if (for example) braking curves are objects of the language, it shall be +proved that they are sound, and that the code generation for these objects is also sound. +\end{comment} + +\req{The formal model shall be executable.} +\subreq{The formal model shall be executable in debug mode (step-by-step), allowing +inspection of states, variables and I/O.} +\subreq{The environment shall be emulated by high level construction of the inputs.} + +\begin{justif} +``High level'' means that it will not be necessary to define bitwise the inputs at each cycle. +On the contrary, some motorization will be available to define the behavior of the inputs. +\end{justif} + +\req{It shall be possible to assert logical properties on the model (\emph{i.e. invariants}).} +\subreq{It shall be able to check the conformance of these properties at runtime.} +\subreq{It shall be able to prove the conformance of the model to these properties.} + + + +\section{Tool chain} +\textbf{This chapter has to be completed by the leader of D2.3.2} + +\req{The tool chain shall be composed only of Open Source components.} +\subreq{Closed source components may be used, but only if their use is not mandatory in the process, +or if an open source counterpart is provided.} + +\req{The tool chain shall be sufficiently robust to allow large software management.} +\subreq{It shall allow modularity at any level (proof, model, software).} +\subreq{It shall allow the management of documentation within the same tool.} +\subreq{It shall allow distributed software development.} +\subreq{It shall include an \emph{issue-tracking system}, in order to allow change management and +errors/bugs management.} +\subreq{It shall allow to document/track the differences between the model and the ERTMS reference.} +\begin{justif} +In case where errors are found in the specification, or reducting choices are to be made in the +model (\emph{e.g.} in case of non-determinism). +\end{justif} +\subreq{It shall allow concurrent version development, or be compatible with tools allowing +concurrent version development.} +\subreq{In particular, it shall be made easy\;\footnote{Especially in the case of a graphical language.} +to track the differences between two releases of a model and to manage conflicts.} +\subreq{In particular it shall allow to track the roles and responsabilities of each +participant on a configuration item, at each step of the project lifecycle.} +\subreq{In particular, version management shall allow to track version of the safety properties +together with the model.} + +\req{The tool chain shall allow traceability between the documentation (in particular the specification) +and the models and safety properties.} +\req{The tool chain shall allow traceability between the different layers of model and safety +properties.} + +\req{The tools used in the tool chain shall be able to cooperate, \emph{i.e.} the outputs of one +tool will be suitable to be used as the inputs of the other tool.} + +\req{The tool chain shall conform to 50128 requirements, for the corresponding SIL and tool class.} +\subreq{For T2 and T3 tools\,\footnote{T2: Tools contributing to the test or verification of the code +or design +\emph{e.g.} static analyzers, test generators\dots)\\ T3: tools contributing directly or indirectly +to the final code or data (\emph{e.g.} compilers, code translator\dots)}, the choice of tools shall be +justified, and the justification shall +include how the tool's failures are covered, avoided or taken into account (ref. to EN 50128 6.7.4.2).} + +\subreq{All T2 and T3 tools must be provided with their user manuals.} + +\subreq{For all T3 tool, the proof of correctness or the measure taken to guarantee the correctness +of the output w.r.t. their specification and the inputs shall be provided.} +\subsubreq{\dots for data transformation,} +\subsubreq{\dots for software transformation (\emph{e.g.} translation, compilation\dots).} + +\req{The tool chain shall allow to write and store \emph{test cases} and \emph{use cases} +for the model.} +\subreq{Version management will allow to map test cases version to model versions.} + +\req{The tool chain shall allow to generate test cases for the model.} +\begin{issue} +Is it really necessary? If we have formal proofs on the models, the tests should stay at a +functional level. Therefore generated test cases should not be interesting in this context. +\end{issue} +\marginpar{The tool chain should provide model based testing. For that, generating test cases from test models will be required} + +\begin{issue} +TBD requirements on the prover. Should it verify De Bruijn's criterion\,\footnote{\emph{I.e.} +to be able to produce a proof tree that could be verified by a simple proof checker.}. +Should at least the proof tree be exportable and checkable in another tool? (if the proof +tree itself is mandatory). +\end{issue} + + +\todo{Editors: Tree-Based, Form-Based, Text-Based, Graphical?}\\ +\todo{Code Generation}\\ + +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% Bibliography +\nocite{*} +\bibliographystyle{unsrt} +\bibliography{erdc} + + + +% \begin{thebibliography}{9} + +% \bibitem{lamport94} + % Leslie Lamport, + % \emph{\LaTeX: A Document Preparation System}. + % Addison Wesley, Massachusetts, + % 2nd Edition, + % 1994. + +% \end{thebibliography} + +%=================================================== +%Do NOT change anything below this line + +\end{document} diff --git a/D2.3/Synthesis/template/ccbysa.png b/D2.3/Synthesis/template/ccbysa.png new file mode 100755 index 0000000..8386b1b Binary files /dev/null and b/D2.3/Synthesis/template/ccbysa.png differ diff --git a/D2.3/Synthesis/template/ccbysabig.png b/D2.3/Synthesis/template/ccbysabig.png new file mode 100755 index 0000000..8770732 Binary files /dev/null and b/D2.3/Synthesis/template/ccbysabig.png differ diff --git a/D2.3/Synthesis/template/chart.png b/D2.3/Synthesis/template/chart.png new file mode 100755 index 0000000..a59f2f7 Binary files /dev/null and b/D2.3/Synthesis/template/chart.png differ diff --git a/Requirements/template/itea2.jpg b/D2.3/Synthesis/template/itea.jpg old mode 100644 new mode 100755 similarity index 100% rename from Requirements/template/itea2.jpg rename to D2.3/Synthesis/template/itea.jpg diff --git a/D2.3/Synthesis/template/openetcs_article.cls b/D2.3/Synthesis/template/openetcs_article.cls new file mode 100755 index 0000000..59e9767 --- /dev/null +++ b/D2.3/Synthesis/template/openetcs_article.cls @@ -0,0 +1,540 @@ +%% This is openetcs.cls +%% A LaTeX class based on: + + + +%% For openETCS ITEA2 Project + + +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{openetcs} +[2012/10/11 v0.1 Typesetting Technical Information Article of +openETCS project ] +\newcommand{\IsLicensedUnderCC}[1]{#1} +\DeclareOption{nocc}{\renewcommand{\IsLicensedUnderCC}[1]{ }} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\LoadClass[11pt,twoside]{article} +\RequirePackage{graphicx,color,caption,longtable} +\RequirePackage{dcolumn} +\RequirePackage{natbib} +\renewcommand{\bibfont}{\fontsize{10pt}{12pt}\selectfont} +\setlength{\bibhang}{0.5in} +\setlength{\bibsep}{12pt} +\RequirePackage{amsmath} +\RequirePackage{microtype} +\RequirePackage[utf8x]{inputenc} +\normalsize + +% PdfLaTeX Choix 1 "times Helvet et math" http://www.cuk.ch/articles/4237 +\usepackage[T1]{fontenc} +\usepackage{txfonts} + + +\def\@projectfont{% + \sffamily\itshape\bfseries\fontsize{22pt}{25pt}\selectfont} +\def\@reportnumfont{% + \sffamily\bfseries\fontsize{18pt}{22pt}\selectfont} +\def\@wpfont{% + \sffamily\fontseries{k}\itshape\normalsize\selectfont} +\def\@titlefont{% + \sffamily\fontseries{h}\fontsize{20pt}{25pt}\selectfont} +\def\@distributionfont{% + \sffamily\fontseries{k}\fontsize{9pt}{11pt}\selectfont} +\def\@eqtagfont{\sffamily\bfseries\footnotesize} +\RequirePackage[a4paper, top=1in, bottom=0.7in, + left=1.25in, right=1.25in]{geometry} +\setlength{\parindent}{0pt} +\setlength{\parskip}{\baselineskip} +\setlength\labelwidth{1em} +\setlength\leftmargini\z@ +\addtolength\leftmargini\labelwidth +\addtolength\leftmargini\labelsep +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\def\makelabel##1{##1}}% + \fi} +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\usecounter\@enumctr\def\makelabel##1{##1}}% + \fi} +\widowpenalty=10000 +\clubpenalty=10000 +\raggedbottom +\RequirePackage{fancyhdr} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\fancyhfoffset{35pt} +\pagestyle{fancy} +\lhead{\textsf{\textbf{\footnotesize\@reportnum}}} +\rhead{\textsf{\textbf{\footnotesize\thepage}}} +\chead{} +\lfoot{} +\cfoot{\color{blue}\textsf{\textbf{\textit{openETCS}}}\color{black}\IsLicensedUnderCC{ - \includegraphics[width=3em]{ccbysa.png}}} +\rfoot{} +\newif\if@frontmatter +\@frontmatterfalse +\newif\if@appendix +\@appendixfalse +\def\frontmatter{% + \pagenumbering{arabic}% + \@frontmattertrue + \@appendixfalse} +\def\mainmatter{% + \cleardoublepage + \pagenumbering{arabic}% + \@frontmatterfalse + \@appendixfalse} +\def\appendix{% + \clearpage + \@frontmatterfalse + \@appendixtrue + \@addtoreset{table}{chapter}% + \@addtoreset{equation}{chapter}% + \@addtoreset{figure}{chapter}% + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% + \gdef\thefigure{\@Alph\c@chapter\@arabic\c@figure}% + \gdef\thetable{\@Alph\c@chapter\@arabic\c@table}% + \gdef\theequation{\@Alph\c@chapter\@arabic\c@equation}} +\def\project#1{\gdef\@project{#1}} +\project{openETCS} +\def\reportnum#1{\gdef\@reportnum{#1}} +\reportnum{OETCS TK-01-01} +\def\wp#1{\gdef\@wp{#1}} +\wp{} +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} +\def\@subtitle{} +\newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and} +\def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{% + \@andlistb#1{#3}}} +\def\@andlistb#1#2#3#4#5\and{% + \@ifempty{#5}{% + \@andlistc{#2#4}% + }{% + \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}% + }} +\let\@andlistc\@iden +\newcommand{\nxandlist}[4]{% + \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}% + \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}% + \the\@xp\toks@#4\and\and + \edef#4{\the\toks@}% + \let\@andlistc\@iden} +\def\@@and{and} +\newcommand{\andify}{% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}} +\def\and{\unskip{ }\@@and{ }\ignorespaces} +\let\@xp\expandafter\relax +\let\@nx=\noexpand +\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\long\def\@ifempty#1{\@xifempty#1@@..\@nil} +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\setboxz@h{\setbox\z@\hbox} +\def\@addpunct#1{% + \relax\ifhmode + \ifnum\spacefactor>\@m \else#1\fi + \fi} +\newtoks\@emptytoks +\def\authors{} +\def\addresses{} +\def\author#1{% + \ifx\@empty\authors\gdef\authors{#1}\else + \g@addto@macro{\authors}{\and#1}\fi + \ifx\@empty\@addresses\gdef\addresses{\author{#1}}\else + \g@addto@macro{\addresses}{\par\author{#1}}\fi} +\def\affiliation#1{% + \ifx\@empty\@addresses\gdef\addresses{#1\par}\else + \g@addto@macro{\addresses}{#1\par\vspace{\baselineskip}}\fi} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space \number\year} +\newcommand{\coverart}[2][]{% + \def\@tempa{#1}% + \ifx\@empty\@tempa + \gdef\@coverart{\centering\includegraphics[width=435\p@]{#2}}\else + \gdef\@coverart{\centering\includegraphics[#1]{#2}}\fi} +\def\@coverart{}% +\def\reporttype#1{\gdef\@reporttype{#1}} +\reporttype{} +\def\distribution#1{\gdef\@distribution{#1}} +\distribution{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 Unported License.\\ \includegraphics[width=40pt]{ccbysabig.png}} +\def\preparedfor#1{\gdef\@preparedfor{#1}} +\preparedfor{ITEA2 openETCS consortium\\ Europa} +\def\contractnum#1{\gdef\@contractnum{#1}} +\contractnum{} +\def\monitoredby#1{\gdef\@monitoredby{#1}} +\monitoredby{} +\def\additionalinfo#1{\gdef\@additionalinfo{#1}} +\additionalinfo{} +\newbox\abstractbox +\renewenvironment{abstract}{% + \global\setbox\abstractbox=\vtop \bgroup + \normalfont + \list{}{\labelwidth\z@ + \leftmargin\z@ \rightmargin\leftmargin + \listparindent\z@ \itemindent\z@ + \parsep16\p@ \topsep\z@ + \let\fullwidthdisplay\relax + }% + \item[\hskip\labelsep\bfseries Abstract:]% +}{% + \endlist\egroup} + \long\def\disclaimer#1{\long\gdef\@disclaimer{#1}} + \disclaimer{ +\textbf{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 -- (cc by-sa 3.0)} + +THE WORK IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC +LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT +AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS +LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU +THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH +TERMS AND CONDITIONS. + +\url{http://creativecommons.org/licenses/by-sa/3.0/} +} +\newenvironment{@coverlist}{\begin{list}{}{% + \leftmargin40\p@\rightmargin-85\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newenvironment{@titlelist}{\begin{list}{}{% + \leftmargin-20\p@\rightmargin100\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newif\if@titleblock +\newenvironment{@titleblock}{% + \list{}{\labelwidth80\p@\labelsep10\p@ \leftmargin70\p@ + \rightmargin-150\p@ + \let\makelabel\@titleblocklabel}}{\endlist} +\newcommand*{\@titleblocklabel}[1]{\hfill\small#1} +\def\maketitle{% + \thispagestyle{empty}% + \enlargethispage{0.34in}% + \vspace*{-0.95in} + \makebox[0cm][r]{% + \raisebox{-780\p@}[\z@][\z@]{% + \rotatebox{90}{\makebox[\z@][l]{% + \colorbox{blue}{\color{white}\parbox{780\p@}{% + \rule{0\p@}{85\p@}% + \hspace{28\p@}\raisebox{40\p@}{% + \parbox[c]{350\p@}{\@projectfont\@project}% + \hspace{10\p@}% + \parbox[c]{300\p@}{\hfill\@reportnumfont\@reportnum}}}}}}}% + \hspace*{-14\p@}}% +% \makebox[0cm][r]{\raisebox{-720\p@}[\z@][\z@]{\rule{8\p@}{726\p@}% +% \hspace{-26.75\p@}}}% + \begin{@coverlist}% + \sffamily\fontseries{k}\selectfont% + \hfill\parbox{145\p@}{\centering + \includegraphics[width=145\p@]{itea}\\ + {\bfseries + ITEA2 Project\\2012 -- 2015}}\\ + \par + \vspace{0.5cm}% + {\@wpfont\@wp\par}% + \vspace{0.3cm}% + {\raggedright\@titlefont\@title\par + \vspace{0.3cm}% + \normalsize\bfseries\@subtitle\par}% + \vspace{0.3cm}% + \begin{minipage}[t]{300\p@}\raggedright + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\authors + \authors\end{minipage}% + \begin{minipage}[t]{135\p@}\flushright\@date\end{minipage}\par + \vspace{2cm}% + \@coverart + \end{@coverlist}% + \vfill + \begin{@coverlist}% + \IsLicensedUnderCC{\@distributionfont\@distribution} + \end{@coverlist}% + \newpage + This page is intentionally left blank + \thispagestyle{empty}\hbox{}\newpage + \setcounter{page}{1}% + \vspace*{-1.5in}% + \vspace*{-\topmargin}% + \begin{@titlelist}% + \sffamily\fontseries{k}\selectfont + \begin{minipage}[t]{275\p@}% + \bfseries\@wp + \end{minipage}% + \begin{minipage}[t]{175\p@}% + \bfseries\flushright\@reportnum\\\@date + \end{minipage}\rule[-0.5in]{\z@}{0.625in}\par + \begin{minipage}{\textwidth} + \vspace*{1cm}% + {\@titlefont\raggedright\@title\par} + \vspace*{3\p@}% + \bfseries\@subtitle\par + \end{minipage}\rule[-0.7in]{\z@}{1in}\par + \def\author##1{% + \def\@tempa{##1}% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\@tempa + {\upshape\normalsize\@tempa}\par\vspace{6\p@}}% + \begin{minipage}{\textwidth} + \textit{\footnotesize\addresses}\par + \end{minipage}\rule[-2.7in]{\z@}{3.7in}\par + \begin{minipage}{\textwidth} + \@reporttype\par\vspace*{3\p@}% + {\IsLicensedUnderCC{\@distributionfont\@distribution\par}}% + \end{minipage} + \end{@titlelist}% + \vfill + \begin{@titlelist}% + \sffamily\normalsize\fontseries{k}\selectfont + \ifx\@additionalinfo\@empty\else\@additionalinfo\par\fi + \@titleblockfalse + \ifx\@empty\@preparedfor\relax\else\@titleblocktrue\fi + \ifx\@empty\@contractnum\relax\else\@titleblocktrue\fi + \ifx\@empty\@monitoredby\relax\else\@titleblocktrue\fi + \if@titleblock + \begin{@titleblock}% + \ifx\@empty\@preparedfor\else + \item[Prepared for]\@preparedfor + \fi + \ifx\@empty\@contractnum\else + \item[Under]\@contractnum + \fi + \ifx\@empty\@monitoredby\else + \item[Monitored by]\@monitoredby + \fi + \end{@titleblock} + \fi + \end{@titlelist}% + \clearpage + \ifvoid\abstractbox + \else + \box\abstractbox + \prevdepth\z@ + \fi + \IsLicensedUnderCC{ + \vfill + \bgroup + \setlength{\fboxsep}{5\p@}% + \makebox[\textwidth]{\fbox{\parbox{6.5in}{% + \fontsize{8.5\p@}{9.5\p@}\selectfont + \parskip\baselineskip + \textbf{Disclaimer:} \@disclaimer}}}% + \egroup + } + \clearpage} +\def\cl@chapter{} +\@addtoreset{section}{chapter}% +\@addtoreset{subsection}{chapter}% +\@addtoreset{subsection}{section}% + + +\def\@makechapterhead#1{% + \vspace*{5\p@}% + {\hskip-35\p@% + \parindent\z@\raggedright + \interlinepenalty\@M + \@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\def\@makeschapterhead#1{% + \vspace*{5\p@}% + {% + \parindent\z@\raggedright + \interlinepenalty\@M + \leftskip-35\p@\@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\renewcommand \theequation {\@arabic\c@equation} +\setcounter{tocdepth}{2} +\renewcommand\section{% + \addpenalty\@secpenalty\nobreak + \secdef\@section\@ssection} +\def\@section[#1]#2{% + \ifnum1>\c@secnumdepth + \addcontentsline{toc}{section}{#1}% + \else + \refstepcounter{section}% + \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}% + \fi + {\hskip-35\p@\raggedright\interlinepenalty\@M + \large\sffamily\bfseries + \ifnum1>\c@secnumdepth\else\makebox[35\p@]{\thesection\hfill}\fi#2\nobreak\par} + \@afterheading + \nobreak\par} +\def\@ssection#1{ + \addcontentsline{toc}{section}{#1}% + {\raggedright\interlinepenalty\@M + \large\sffamily\bfseries\leftskip-35\p@#1\nobreak\par} + \@afterheading + \nobreak\par} +\renewcommand\subsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsection\@ssubsection} +\def\@subsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsection}{\itshape#1}% + \else + \refstepcounter{subsection}% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsection#1{% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\renewcommand\subsubsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsubsection\@ssubsubsection} +\def\@subsubsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsubsection}{\itshape#1}% + \else + \refstepcounter{subsubsection}% + \addcontentsline{toc}{subsubsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsubsection#1{% + \addcontentsline{toc}{subsubsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\renewcommand\paragraph{\par + \addpenalty\@secpenalty\nobreak + \secdef\@paragraph\@sparagraph} +\def\@paragraph[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{paragraph}{\itshape#1}% + \else + \refstepcounter{paragraph}% + \addcontentsline{toc}{paragraph}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\theparagraph}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + #2} + \nobreak\par} +\def\@sparagraph#1{% + \addcontentsline{toc}{paragraph}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\def\specialchapter#1{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \@makeschapterhead{#1}\par + \@afterheading} +\def\@dotsep{0.5} +\def\@dottedtocline#1#2#3#4#5{% + \bgroup + \def\numberline##1{\makebox[#3]{##1\hfill}}% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\def\@dottedtoclineLF#1#2#3#4#5{% + \bgroup + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #2\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\@tempdima + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\renewcommand*\l@section{\@dottedtocline{1}{2em}{2.5em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.7em}{3em}} +\renewcommand*\l@figure{\@dottedtoclineLF{1}{0em}{2.3em}} +\let\l@table\l@figure +\renewcommand\contentsname{Table of Contents} +\renewcommand\tableofcontents{% + \specialchapter{\contentsname}% + \def\numberline##1{\hb@xt@\@pnumwidth{##1\hfill}}% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{toc}}} +\renewcommand\listoffigures{% + \chapter{\listfigurename}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}} +\renewcommand\listoftables{% + \chapter{\listtablename}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\def\listfiguretablename{Figures and Tables} +\newcommand\listoffiguresandtables{% + \chapter{\listfiguretablename} + {\sffamily\bfseries\normalsize Figures\par}% + \vspace*{10pt}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}% + {\sffamily\bfseries\normalsize Tables\par}% + \vspace*{10pt}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\renewcommand\bibname{References} +\setlength{\@fptop}{0pt}% +\renewcommand \thefigure {\@arabic\c@figure} +\renewcommand \thetable {\@arabic\c@table} +\captionsetup{justification=centering,font={footnotesize,rm,bf}, +labelsep=period,aboveskip=3pt} +\captionsetup[table]{position=top} +\def\arraystretch{1.3} +\let\maketag@@@@\maketag@@@ +\def\maketag@@@#1{\hbox{\m@th\@eqtagfont#1}} +\renewcommand{\eqref}[1]{\textup{\tagform@@{\ref{#1}}}} +\def\tagform@@#1{\maketag@@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +\endinput +%% +%% End of file `openetcs_article.cls'. diff --git a/D2.3/Synthesis/template/openetcs_report.cls b/D2.3/Synthesis/template/openetcs_report.cls new file mode 100755 index 0000000..4521748 --- /dev/null +++ b/D2.3/Synthesis/template/openetcs_report.cls @@ -0,0 +1,642 @@ +%% This is openetcs.cls +%% A LaTeX class based on: + +%% LaTeX Style For Technical Information Reports of the +%% Engineer Research and Development Center +%% US Army Corps of Engineers +%% 2009/07/22 v1.1 +%% Copyright 2008, Boris Veytsman +%% This work 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. + +%% For openETCS ITEA2 Project (To Do: Verify consistency with cc-by-sa +%% 3.0) + + +%% +%% This is based on file `erdc.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% erdc.dtx (with options: `class') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from erdc.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file erdc.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \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} +\ProvidesClass{openetcs} +[2012/08/03 v0.1 Typesetting Technical Information Reports of +openETCS project based on ERDC class v1.1] +% \long\def\erdc@size@warning#1{% +% \ClassWarning{erdc}{Size-changing option #1 will not be +% honored}}% +% \DeclareOption{8pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{9pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{10pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{11pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{12pt}{\erdc@size@warning{\CurrentOption}}% +\newcommand{\IsLicensedUnderCC}[1]{#1} +\DeclareOption{nocc}{\renewcommand{\IsLicensedUnderCC}[1]{ }} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessOptions\relax +\LoadClass[11pt,twoside]{report} +\RequirePackage{graphicx,color,caption,longtable} +\RequirePackage{dcolumn} +\RequirePackage{natbib} +\renewcommand{\bibfont}{\fontsize{10pt}{12pt}\selectfont} +\setlength{\bibhang}{0.5in} +\setlength{\bibsep}{12pt} +\RequirePackage{amsmath} +%\RequirePackage[originalcommands]{ragged2e} +%\setlength\RaggedRightParindent{\parindent} +%\RaggedRight +\RequirePackage{microtype} +\RequirePackage[utf8x]{inputenc} +\normalsize + +% PdfLaTeX Choix 1 "times Helvet et math" http://www.cuk.ch/articles/4237 +\usepackage[T1]{fontenc} +\usepackage{txfonts} + + +\def\@projectfont{% + \sffamily\itshape\bfseries\fontsize{22pt}{25pt}\selectfont} +\def\@reportnumfont{% + \sffamily\bfseries\fontsize{18pt}{22pt}\selectfont} +\def\@wpfont{% + \sffamily\fontseries{k}\itshape\normalsize\selectfont} +\def\@titlefont{% + \sffamily\fontseries{h}\fontsize{20pt}{25pt}\selectfont} +\def\@distributionfont{% + \sffamily\fontseries{k}\fontsize{9pt}{11pt}\selectfont} +\def\@eqtagfont{\sffamily\bfseries\footnotesize} +\RequirePackage[a4paper, top=1in, bottom=0.7in, + left=1.25in, right=1.25in]{geometry} +\setlength{\parindent}{0pt} +\setlength{\parskip}{\baselineskip} +\setlength\labelwidth{1em} +\setlength\leftmargini\z@ +\addtolength\leftmargini\labelwidth +\addtolength\leftmargini\labelsep +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\def\makelabel##1{##1}}% + \fi} +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\usecounter\@enumctr\def\makelabel##1{##1}}% + \fi} +\widowpenalty=10000 +\clubpenalty=10000 +\raggedbottom +\RequirePackage{fancyhdr} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\fancyhfoffset{35pt} +\pagestyle{fancy} +\lhead{\textsf{\textbf{\footnotesize\@reportnum}}} +\rhead{\textsf{\textbf{\footnotesize\thepage}}} +\chead{} +\lfoot{} +\cfoot{\color{blue}\textsf{\textbf{\textit{openETCS}}}\color{black}\IsLicensedUnderCC{ - \includegraphics[width=3em]{ccbysa.png}}} +\rfoot{} +\newif\if@frontmatter +\@frontmatterfalse +\newif\if@appendix +\@appendixfalse +\def\frontmatter{% + \pagenumbering{roman}% + \@frontmattertrue + \@appendixfalse} +\def\mainmatter{% + \cleardoublepage + \pagenumbering{arabic}% + \@frontmatterfalse + \@appendixfalse} +\def\appendix{% + \clearpage + \@frontmatterfalse + \@appendixtrue + \@addtoreset{table}{chapter}% + \@addtoreset{equation}{chapter}% + \@addtoreset{figure}{chapter}% + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% + \gdef\thefigure{\@Alph\c@chapter\@arabic\c@figure}% + \gdef\thetable{\@Alph\c@chapter\@arabic\c@table}% + \gdef\theequation{\@Alph\c@chapter\@arabic\c@equation}} +\def\project#1{\gdef\@project{#1}} +\project{openETCS} +\def\reportnum#1{\gdef\@reportnum{#1}} +\reportnum{OETCS TK-01-01} +\def\wp#1{\gdef\@wp{#1}} +\wp{} +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} +\def\@subtitle{} +\newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and} +\def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{% + \@andlistb#1{#3}}} +\def\@andlistb#1#2#3#4#5\and{% + \@ifempty{#5}{% + \@andlistc{#2#4}% + }{% + \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}% + }} +\let\@andlistc\@iden +\newcommand{\nxandlist}[4]{% + \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}% + \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}% + \the\@xp\toks@#4\and\and + \edef#4{\the\toks@}% + \let\@andlistc\@iden} +\def\@@and{and} +\newcommand{\andify}{% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}} +\def\and{\unskip{ }\@@and{ }\ignorespaces} +\let\@xp\expandafter\relax +\let\@nx=\noexpand +\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\long\def\@ifempty#1{\@xifempty#1@@..\@nil} +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\setboxz@h{\setbox\z@\hbox} +\def\@addpunct#1{% + \relax\ifhmode + \ifnum\spacefactor>\@m \else#1\fi + \fi} +\newtoks\@emptytoks +\def\authors{} +\def\addresses{} +\def\author#1{% + \ifx\@empty\authors\gdef\authors{#1}\else + \g@addto@macro{\authors}{\and#1}\fi + \ifx\@empty\@addresses\gdef\addresses{\author{#1}}\else + \g@addto@macro{\addresses}{\par\author{#1}}\fi} +\def\affiliation#1{% + \ifx\@empty\@addresses\gdef\addresses{#1\par}\else + \g@addto@macro{\addresses}{#1\par\vspace{\baselineskip}}\fi} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space \number\year} +\newcommand{\coverart}[2][]{% + \def\@tempa{#1}% + \ifx\@empty\@tempa + \gdef\@coverart{\centering\includegraphics[width=435\p@]{#2}}\else + \gdef\@coverart{\centering\includegraphics[#1]{#2}}\fi} +\def\@coverart{}% +\def\reporttype#1{\gdef\@reporttype{#1}} +\reporttype{} +\def\distribution#1{\gdef\@distribution{#1}} +\distribution{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 Unported License.\\ \includegraphics[width=40pt]{ccbysabig.png}} +\def\preparedfor#1{\gdef\@preparedfor{#1}} +\preparedfor{ITEA2 openETCS consortium\\ Europa} +\def\contractnum#1{\gdef\@contractnum{#1}} +\contractnum{} +\def\monitoredby#1{\gdef\@monitoredby{#1}} +\monitoredby{} +\def\additionalinfo#1{\gdef\@additionalinfo{#1}} +\additionalinfo{} +\newbox\abstractbox +\renewenvironment{abstract}{% + \global\setbox\abstractbox=\vtop \bgroup + \normalfont + \list{}{\labelwidth\z@ + \leftmargin\z@ \rightmargin\leftmargin + \listparindent\z@ \itemindent\z@ + \parsep16\p@ \topsep\z@ + \let\fullwidthdisplay\relax + }% + \item[\hskip\labelsep\bfseries Abstract:]% +}{% + \endlist\egroup} + \long\def\disclaimer#1{\long\gdef\@disclaimer{#1}} + \disclaimer{ +\textbf{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 -- (cc by-sa 3.0)} + +THE WORK IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC +LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT +AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS +LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU +THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH +TERMS AND CONDITIONS. + +\url{http://creativecommons.org/licenses/by-sa/3.0/} +} +\newenvironment{@coverlist}{\begin{list}{}{% + \leftmargin40\p@\rightmargin-85\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newenvironment{@titlelist}{\begin{list}{}{% + \leftmargin-20\p@\rightmargin100\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newif\if@titleblock +\newenvironment{@titleblock}{% + \list{}{\labelwidth80\p@\labelsep10\p@ \leftmargin70\p@ + \rightmargin-150\p@ + \let\makelabel\@titleblocklabel}}{\endlist} +\newcommand*{\@titleblocklabel}[1]{\hfill\small#1} +\def\maketitle{% + \thispagestyle{empty}% + \enlargethispage{0.34in}% + \vspace*{-0.95in} + \makebox[0cm][r]{% + \raisebox{-780\p@}[\z@][\z@]{% + \rotatebox{90}{\makebox[\z@][l]{% + \colorbox{blue}{\color{white}\parbox{780\p@}{% + \rule{0\p@}{85\p@}% + \hspace{28\p@}\raisebox{40\p@}{% + \parbox[c]{350\p@}{\@projectfont\@project}% + \hspace{10\p@}% + \parbox[c]{300\p@}{\hfill\@reportnumfont\@reportnum}}}}}}}% + \hspace*{-14\p@}}% +% \makebox[0cm][r]{\raisebox{-720\p@}[\z@][\z@]{\rule{8\p@}{726\p@}% +% \hspace{-26.75\p@}}}% + \begin{@coverlist}% + \sffamily\fontseries{k}\selectfont% + \hfill\parbox{145\p@}{\centering + \includegraphics[width=145\p@]{itea}\\ + {\bfseries + ITEA2 Project\\2012 -- 2015}}\\ + \par + \vspace{0.5cm}% + {\@wpfont\@wp\par}% + \vspace{0.3cm}% + {\raggedright\@titlefont\@title\par + \vspace{0.3cm}% + \normalsize\bfseries\@subtitle\par}% + \vspace{0.3cm}% + \begin{minipage}[t]{300\p@}\raggedright + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\authors + \authors\end{minipage}% + \begin{minipage}[t]{135\p@}\flushright\@date\end{minipage}\par + \vspace{2cm}% + \@coverart + \end{@coverlist}% + \vfill + \begin{@coverlist}% + \IsLicensedUnderCC{\@distributionfont\@distribution} + \end{@coverlist}% + \newpage + This page is intentionally left blank + \thispagestyle{empty}\hbox{}\newpage + \setcounter{page}{1}% + \vspace*{-1.5in}% + \vspace*{-\topmargin}% + \begin{@titlelist}% + \sffamily\fontseries{k}\selectfont + \begin{minipage}[t]{275\p@}% + \bfseries\@wp + \end{minipage}% + \begin{minipage}[t]{175\p@}% + \bfseries\flushright\@reportnum\\\@date + \end{minipage}\rule[-0.5in]{\z@}{0.625in}\par + \begin{minipage}{\textwidth} + \vspace*{1cm}% + {\@titlefont\raggedright\@title\par} + \vspace*{3\p@}% + \bfseries\@subtitle\par + \end{minipage}\rule[-0.7in]{\z@}{1in}\par + \def\author##1{% + \def\@tempa{##1}% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\@tempa + {\upshape\normalsize\@tempa}\par\vspace{6\p@}}% + \begin{minipage}{\textwidth} + \textit{\footnotesize\addresses}\par + \end{minipage}\rule[-2.7in]{\z@}{3.7in}\par + \begin{minipage}{\textwidth} + \@reporttype\par\vspace*{3\p@}% + {\IsLicensedUnderCC{\@distributionfont\@distribution\par}}% + \end{minipage} + \end{@titlelist}% + \vfill + \begin{@titlelist}% + \sffamily\normalsize\fontseries{k}\selectfont + \ifx\@additionalinfo\@empty\else\@additionalinfo\par\fi + \@titleblockfalse + \ifx\@empty\@preparedfor\relax\else\@titleblocktrue\fi + \ifx\@empty\@contractnum\relax\else\@titleblocktrue\fi + \ifx\@empty\@monitoredby\relax\else\@titleblocktrue\fi + \if@titleblock + \begin{@titleblock}% + \ifx\@empty\@preparedfor\else + \item[Prepared for]\@preparedfor + \fi + \ifx\@empty\@contractnum\else + \item[Under]\@contractnum + \fi + \ifx\@empty\@monitoredby\else + \item[Monitored by]\@monitoredby + \fi + \end{@titleblock} + \fi + \end{@titlelist}% + \clearpage + \ifvoid\abstractbox + \else + \box\abstractbox + \prevdepth\z@ + \fi + \IsLicensedUnderCC{ + \vfill + \bgroup + \setlength{\fboxsep}{5\p@}% + \makebox[\textwidth]{\fbox{\parbox{6.5in}{% + \fontsize{8.5\p@}{9.5\p@}\selectfont + \parskip\baselineskip + \textbf{Disclaimer:} \@disclaimer}}}% + \egroup + } + \clearpage} +\def\cl@chapter{} +\@addtoreset{section}{chapter}% +\@addtoreset{subsection}{chapter}% +\@addtoreset{subsection}{section}% +\renewcommand\chapter{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{% + \if@frontmatter + \addcontentsline{toc}{chapter}{#1}% + \@makechapterhead{#2}% + \else + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \if@appendix + \addcontentsline{toc}{chapter}% + {\@chapapp\space\thechapter: #1}% + \@makechapterhead{\@chapapp\space\thechapter: #2}% + \else + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% + \@makechapterhead{\makebox[35\p@]{\thechapter\hfill}#2}% + \fi + \fi + \@afterheading} +\def\@schapter#1{% + \if@appendix + \addcontentsline{toc}{chapter}{\@chapapp: #1}% + \@makeschapterhead{\@chapapp: #1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \@makeschapterhead{#1}% + \fi + \@afterheading} +\def\@makechapterhead#1{% + \vspace*{5\p@}% + {\hskip-35\p@% + \parindent\z@\raggedright + \interlinepenalty\@M + \@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\def\@makeschapterhead#1{% + \vspace*{5\p@}% + {% + \parindent\z@\raggedright + \interlinepenalty\@M + \leftskip-35\p@\@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\renewcommand \theequation {\@arabic\c@equation} +\setcounter{tocdepth}{2} +\renewcommand\section{% + \addpenalty\@secpenalty\nobreak + \secdef\@section\@ssection} +\def\@section[#1]#2{% + \ifnum1>\c@secnumdepth + \addcontentsline{toc}{section}{#1}% + \else + \refstepcounter{section}% + \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}% + \fi + {\hskip-35\p@\raggedright\interlinepenalty\@M + \large\sffamily\bfseries + \ifnum1>\c@secnumdepth\else\makebox[35\p@]{\thesection\hfill}\fi#2\nobreak\par} + \@afterheading + \nobreak\par} +\def\@ssection#1{ + \addcontentsline{toc}{section}{#1}% + {\raggedright\interlinepenalty\@M + \large\sffamily\bfseries\leftskip-35\p@#1\nobreak\par} + \@afterheading + \nobreak\par} +\renewcommand\subsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsection\@ssubsection} +\def\@subsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsection}{\itshape#1}% + \else + \refstepcounter{subsection}% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsection#1{% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\renewcommand\subsubsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsubsection\@ssubsubsection} +\def\@subsubsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsubsection}{\itshape#1}% + \else + \refstepcounter{subsubsection}% + \addcontentsline{toc}{subsubsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsubsection#1{% + \addcontentsline{toc}{subsubsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\renewcommand\paragraph{\par + \addpenalty\@secpenalty\nobreak + \secdef\@paragraph\@sparagraph} +\def\@paragraph[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{paragraph}{\itshape#1}% + \else + \refstepcounter{paragraph}% + \addcontentsline{toc}{paragraph}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\theparagraph}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + #2} + \nobreak\par} +\def\@sparagraph#1{% + \addcontentsline{toc}{paragraph}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\def\specialchapter#1{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \@makeschapterhead{#1}\par + \@afterheading} +\def\@dotsep{0.5} +\renewcommand\l@chapter[2]{% + \def\numberline##1{\makebox[1.9em]{##1\hfill}}% + \addpenalty{-\@highpenalty}% + \vskip5\p@ + \bgroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + \leavevmode\bfseries + \leftskip1.9em% + \hskip-\leftskip + #1\nobreak\leaders\hbox{$\m@th\mkern\@dotsep + mu\hbox{.}\mkern\@dotsep + mu$}\hfill\nobreak{\hfil\,#2}\par + \vskip5\p@ + \penalty\@highpenalty + \egroup} +\def\@dottedtocline#1#2#3#4#5{% + \bgroup + \def\numberline##1{\makebox[#3]{##1\hfill}}% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\def\@dottedtoclineLF#1#2#3#4#5{% + \bgroup + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #2\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\@tempdima + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\renewcommand*\l@section{\@dottedtocline{1}{2em}{2.5em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.7em}{3em}} +\renewcommand*\l@figure{\@dottedtoclineLF{1}{0em}{2.3em}} +\let\l@table\l@figure +\renewcommand\contentsname{Table of Contents} +\renewcommand\tableofcontents{% + \specialchapter{\contentsname}% + \def\numberline##1{\hb@xt@\@pnumwidth{##1\hfill}}% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{toc}}} +\renewcommand\listoffigures{% + \chapter{\listfigurename}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}} +\renewcommand\listoftables{% + \chapter{\listtablename}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\def\listfiguretablename{Figures and Tables} +\newcommand\listoffiguresandtables{% + \chapter{\listfiguretablename} + {\sffamily\bfseries\normalsize Figures\par}% + \vspace*{10pt}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}% + {\sffamily\bfseries\normalsize Tables\par}% + \vspace*{10pt}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\renewcommand\bibname{References} +\setlength{\@fptop}{0pt}% +\renewcommand \thefigure {\@arabic\c@figure} +\renewcommand \thetable {\@arabic\c@table} +\captionsetup{justification=centering,font={footnotesize,rm,bf}, +labelsep=period,aboveskip=3pt} +\captionsetup[table]{position=top} +\def\arraystretch{1.3} +\let\maketag@@@@\maketag@@@ +\def\maketag@@@#1{\hbox{\m@th\@eqtagfont#1}} +\renewcommand{\eqref}[1]{\textup{\tagform@@{\ref{#1}}}} +\def\tagform@@#1{\maketag@@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +\endinput +%% +%% End of file `openetcs_repport.cls'. diff --git a/FolderOrganization.md b/FolderOrganization.md new file mode 100644 index 0000000..2635ac0 --- /dev/null +++ b/FolderOrganization.md @@ -0,0 +1,23 @@ +# Folder Organization Proposal for WP2 + +The folders should be organized the following way in the requirement repository + +* Requirements : main requirement repository + * D2.1 : State of the art + * D2.2 : Definition of methodology + * D2.3 : Requirements + * D2.3.1 : ... on modeling + * D2.3.2 : ... on API + * D2.3.3 : ... on tools + * D2.3.4 : ... on V&V + * Synthesis + * Benchmarking : Benchmarking of methodologies and tools + * MinutesOfMeetings : Self explanatory + * Workspace : All temporary documentation that does not fit anywhere + * ReferenceDocuments : Delivered reference versions of documents + * RequirementsSynthesis : Delivered version of D2.3/Synthesis + + + +Question : The state of the art has already been put in another repository (methodology-report). Should it be migrated +or just linked to from D2.1? diff --git a/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Diaporama 2012-11-22-SNCF CSC_ER_IT Marc Antoni.pdf b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Diaporama 2012-11-22-SNCF CSC_ER_IT Marc Antoni.pdf new file mode 100644 index 0000000..86c44a9 Binary files /dev/null and b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Diaporama 2012-11-22-SNCF CSC_ER_IT Marc Antoni.pdf differ diff --git a/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Meeting_2012-11-22-WP3a_Status_Paris.pdf b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Meeting_2012-11-22-WP3a_Status_Paris.pdf new file mode 100644 index 0000000..e673976 Binary files /dev/null and b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Meeting_2012-11-22-WP3a_Status_Paris.pdf differ diff --git a/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_PJ_TS_openETCSWP2_requirements_workshop_on_V&V_process_121123_10.pdf b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_PJ_TS_openETCSWP2_requirements_workshop_on_V&V_process_121123_10.pdf new file mode 100644 index 0000000..6e15163 Binary files /dev/null and b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_PJ_TS_openETCSWP2_requirements_workshop_on_V&V_process_121123_10.pdf differ diff --git a/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_TUBS_Pres-Results-State-of-the-Art_2-0_jw.pdf b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_TUBS_Pres-Results-State-of-the-Art_2-0_jw.pdf new file mode 100644 index 0000000..fdf18ef Binary files /dev/null and b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_TUBS_Pres-Results-State-of-the-Art_2-0_jw.pdf differ diff --git a/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_WG_Architecture_v1_pptx.pdf b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_WG_Architecture_v1_pptx.pdf new file mode 100644 index 0000000..8fe0808 Binary files /dev/null and b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_WG_Architecture_v1_pptx.pdf differ diff --git a/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_WG_Tool_Model_req.pdf b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_WG_Tool_Model_req.pdf new file mode 100644 index 0000000..ae89cd6 Binary files /dev/null and b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_WG_Tool_Model_req.pdf differ diff --git a/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Workshop_Nov2012_ERTMS_SNCF_Introduction.pdf b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Workshop_Nov2012_ERTMS_SNCF_Introduction.pdf new file mode 100644 index 0000000..c3a82bf Binary files /dev/null and b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_Workshop_Nov2012_ERTMS_SNCF_Introduction.pdf differ diff --git a/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_openETCS_State_Of_the_Art_AEbt_121122.pdf b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_openETCS_State_Of_the_Art_AEbt_121122.pdf new file mode 100644 index 0000000..4e747e0 Binary files /dev/null and b/MinutesOfMeetings/2012-11-22-paris-st-denis/WP2_openETCS_State_Of_the_Art_AEbt_121122.pdf differ diff --git a/RequirementManagement.md b/RequirementManagement.md new file mode 100644 index 0000000..e224038 --- /dev/null +++ b/RequirementManagement.md @@ -0,0 +1,58 @@ +This file is a proposal for the Requirement Management process. This has to be approved or completed by +the QA team. + +The process may seems a little bit complex but it allows a unique referencing of requirements (which is necessary +for traceability). + +The requirements are prefixed by “R-zz-x-y”, and are written in a roman typeface, where “R” +stands for “Requirement”, “zz” identifies the source document,“x” is the version number and“y” +is the identifier of the requirement. All the text written in italics is not a requirement: it may be a +note, an open issue, an explanation of the requirements, or an example. + +When a document is currently under revision/writing process, the requirements are numbered using +automatic counters and the version number is "X". When a version have to be released, a version +number is chosen, and the requirement number is hardcoded in the document. This allows to have a unique identifier +for each requirement in the project. + +In order for this process to be easy to apply, we use a combination of LaTeX macros and a helper script. + +For the "in progress" document, we use macros: + +\req{This is a requirement} + +\subreq{This is a subrequirement} + +\subsubreq{This is a subsubrequirement} + + +This appears in the pdf as: + +R-docname-X-1 This is a requirement. + +R-docname-X-1.1 This is a subrequirement + +R-docname-X-1.1.1 This is a subsubrequirement + + +Before issuing the document (for example for version 3), we run the script v_req.py 3 mydoc.tex mydoc-3.tex +This automatically transforms the document into: + +\reqfixed{3}{1}{This is a requirement} + +\subreqfixed{3}{1}{1}{This is a subrequirement} + +\subreqfixed{3}{1}{1}{1}{This is a subsubrequirement} + +This appears in the pdf as: + +R-docname-3-1 This is a requirement. + +R-docname-3-1.1 This is a subrequirement} + +R-docname-3-1.1.1 This is a subsubrequirement + +Now if it is necessary to add or to modify a requirement, we use the \req{} macro that generate a new number without +collision. + +As for the requirements incoming from documents external to the projects, if they are properly and unambiguously +named, the name will be used directly. This includes in particular requirements from SUBSET-26. diff --git a/RequirementManagementTools/req.tex b/RequirementManagementTools/req.tex new file mode 100644 index 0000000..1fb9d1e --- /dev/null +++ b/RequirementManagementTools/req.tex @@ -0,0 +1,95 @@ +%% Requirements. + + +\newcounter{reqnum} +\setcounter{reqnum}{0} +\newcounter{subreqnum} +\newcounter{subsubreqnum} +\newlength{\partopbuf} +\newlength{\topbuf} + +% Automated numbering versions of the macros +\newcommand{\req}[1]{\addtocounter{reqnum}{1} \setcounter{subreqnum}{0} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\item[{\small\reqt-X-\thereqnum}] #1\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} + } + +\newcommand{\subreq}[1]{ + \addtocounter{subreqnum}{1} \setcounter{subsubreqnum}{0} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\addtolength{\leftmargin}{1cm} + \item[{\small\reqt-X-\thereqnum.\thesubreqnum}] #1 + \addtolength{\leftmargin}{-1cm}\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} +} + +\newcommand{\subsubreq}[1]{ + \addtocounter{subsubreqnum}{1} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\addtolength{\leftmargin}{1cm} + \item[{\small\reqt-X-\thereqnum.\thesubreqnum.\thesubsubreqnum}] #1 + \addtolength{\leftmargin}{-1cm}\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} +} + +% Fixed version of the commands +\newcommand{\reqfixed}[3]{\addtocounter{reqnum}{1} \setcounter{subreqnum}{0} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\item[{\small\reqt-#1-#2}] #3\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} + } + +\newcommand{\subreqfixed}[4]{ + \addtocounter{subreqnum}{1} \setcounter{subsubreqnum}{0} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\addtolength{\leftmargin}{1cm} + \item[{\small\reqt-#1-#2.#3}] #4 + \addtolength{\leftmargin}{-1cm}\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} +} + +\newcommand{\subsubreqfixed}[5]{ + \addtocounter{subsubreqnum}{1} + \setlength{\partopbuf}{\partopsep} + \setlength{\partopsep}{0pt} + \setlength{\topbuf}{\topsep} + \setlength{\topsep}{0pt} + \begin{description}\addtolength{\leftmargin}{1cm} + \item[{\small\reqt-#1-#2.#3.#4}] #5 + \addtolength{\leftmargin}{-1cm}\end{description} + \setlength{\partopsep}{\partopbuf} + \setlength{\topsep}{\topbuf} +} + +% Citation of the requirement + +% Citation of the reference (for markup purpose) +\newcommand{\refreq}[1]{\textbf{#1}} + +% Citation of the reference and text (for markup purpose) +% The purpose of this is to automatically replace the placeholder by the +% full text. \fullrefreq{R-xxx}{} or \fullrefreq{R-xxx}{blabla} +% will be replaced by \fullrefreq{R-xxx}{text of the R-xxx requirement} +\newcommand{\fullrefreq}[2]{\textbf{#1}: \textrm{#2}} + diff --git a/RequirementManagementTools/v_req.py b/RequirementManagementTools/v_req.py new file mode 100644 index 0000000..441e95e --- /dev/null +++ b/RequirementManagementTools/v_req.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +""" +Usage: v_req.py + +Description: this script allows to replace all the requirements and subrequirements in the document +which are numbered automatically into a fixed numbered requirement. + +The script should be run on the file before releasing a version, in order for a requirement to keep +its number in the subsequent life of the document. When an existing fixed requirement is modified, it +is mandatory to recreate a new number by using the non fixed requirement macros, until the official +version release. + +Ex: + v_req.py 3 proto_req.py proto_req-3.py +""" + +s_req = r'\req{' +s_subreq = r'\subreq{' +s_subsubreq = r'\subsubreq{' + +s_rep_req = r'\reqfixed{%02d}{%03d}{' +s_rep_subreq = r'\subreqfixed{%02d}{%03d}{%02d}{' +s_rep_subsubreq = r'\subsubreqfixed{%02d}{%03d}{%02d}{%02d}{' + +import sys + +def reqnumber(version,infile,outfile): + req_num = 0 + subreq_num = 0 + subsubreq_num = 0 + + for line in infile: + if line.find(s_req) != -1: + req_num += 1 + subreq_num = 0 + subsubreq_num = 0 + s_replace = s_rep_req % (version,req_num,) + out_line = line.replace(s_req,s_replace) + + elif line.find(s_subreq) != -1: + subreq_num += 1 + subsubreq_num = 0 + s_replace = s_rep_subreq % (version,req_num,subreq_num) + out_line = line.replace(s_subreq,s_replace) + + elif line.find(s_subsubreq) != -1: + subsubreq_num += 1 + s_replace = s_rep_subsubreq % (version,req_num,subreq_num,subsubreq_num) + out_line = line.replace(s_subsubreq,s_replace) + else: + out_line = line + + outfile.write(out_line) + +if __name__ == '__main__': + version = int(sys.argv[1]) + infile = open(sys.argv[2]) + outfile = open(sys.argv[3],"w") + reqnumber(version,infile,outfile) + + + + \ No newline at end of file diff --git a/Requirements/Abstract-requirements.tex b/Requirements Collection Workspace/Abstract-requirements.tex similarity index 100% rename from Requirements/Abstract-requirements.tex rename to Requirements Collection Workspace/Abstract-requirements.tex diff --git a/Requirements/Introduction.tex b/Requirements Collection Workspace/Introduction.tex similarity index 100% rename from Requirements/Introduction.tex rename to Requirements Collection Workspace/Introduction.tex diff --git a/Requirements Collection Workspace/README.md b/Requirements Collection Workspace/README.md new file mode 100644 index 0000000..ff7605e --- /dev/null +++ b/Requirements Collection Workspace/README.md @@ -0,0 +1,3 @@ +This folder should contain all the documents corresponding to preliminary work in the +process of building the requirements (state of the art, brainstormings, activities of the +other WP...) diff --git a/Requirements/dkn_2012-12-18_Draft-Requirements-collection_1-0_jw.pdf b/Requirements Collection Workspace/dkn_2012-12-18_Draft-Requirements-collection_1-0_jw.pdf similarity index 100% rename from Requirements/dkn_2012-12-18_Draft-Requirements-collection_1-0_jw.pdf rename to Requirements Collection Workspace/dkn_2012-12-18_Draft-Requirements-collection_1-0_jw.pdf diff --git a/Requirements/dkn_2012-12-18_Draft-Requirements-collection_1-0_jw.tex b/Requirements Collection Workspace/dkn_2012-12-18_Draft-Requirements-collection_1-0_jw.tex similarity index 100% rename from Requirements/dkn_2012-12-18_Draft-Requirements-collection_1-0_jw.tex rename to Requirements Collection Workspace/dkn_2012-12-18_Draft-Requirements-collection_1-0_jw.tex diff --git a/Requirements/requirements.tex b/Requirements Collection Workspace/requirements.tex similarity index 100% rename from Requirements/requirements.tex rename to Requirements Collection Workspace/requirements.tex diff --git a/Requirements Collection Workspace/template/ccbysa.png b/Requirements Collection Workspace/template/ccbysa.png new file mode 100644 index 0000000..8386b1b Binary files /dev/null and b/Requirements Collection Workspace/template/ccbysa.png differ diff --git a/Requirements Collection Workspace/template/ccbysabig.png b/Requirements Collection Workspace/template/ccbysabig.png new file mode 100644 index 0000000..8770732 Binary files /dev/null and b/Requirements Collection Workspace/template/ccbysabig.png differ diff --git a/Requirements Collection Workspace/template/chart.png b/Requirements Collection Workspace/template/chart.png new file mode 100644 index 0000000..a59f2f7 Binary files /dev/null and b/Requirements Collection Workspace/template/chart.png differ diff --git a/Requirements Collection Workspace/template/itea.jpg b/Requirements Collection Workspace/template/itea.jpg new file mode 100644 index 0000000..62acb73 Binary files /dev/null and b/Requirements Collection Workspace/template/itea.jpg differ diff --git a/Requirements Collection Workspace/template/itea2.jpg b/Requirements Collection Workspace/template/itea2.jpg new file mode 100644 index 0000000..62acb73 Binary files /dev/null and b/Requirements Collection Workspace/template/itea2.jpg differ diff --git a/Requirements Collection Workspace/template/openetcs.cls b/Requirements Collection Workspace/template/openetcs.cls new file mode 100644 index 0000000..297064f --- /dev/null +++ b/Requirements Collection Workspace/template/openetcs.cls @@ -0,0 +1,622 @@ +%% This is openetcs.cls +%% A LaTeX class based on: + +%% LaTeX Style For Technical Information Reports of the +%% Engineer Research and Development Center +%% US Army Corps of Engineers +%% 2009/07/22 v1.1 +%% Copyright 2008, Boris Veytsman +%% This work 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. + +%% For openETCS ITEA2 Project (To Do: Verify consistency with cc-by-sa +%% 3.0) + + +%% +%% This is based on file `erdc.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% erdc.dtx (with options: `class') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from erdc.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file erdc.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \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} +\ProvidesClass{openetcs} +[2012/08/03 v0.1 Typesetting Technical Information Reports of +openETCS project based on ERDC class v1.1] +% \long\def\erdc@size@warning#1{% +% \ClassWarning{erdc}{Size-changing option #1 will not be +% honored}}% +% \DeclareOption{8pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{9pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{10pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{11pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{12pt}{\erdc@size@warning{\CurrentOption}}% +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessOptions\relax +\LoadClass[11pt,twoside]{report} +\RequirePackage{graphicx,color,caption,longtable} +\RequirePackage{dcolumn} +\RequirePackage{natbib} +\renewcommand{\bibfont}{\fontsize{10pt}{12pt}\selectfont} +\setlength{\bibhang}{0.5in} +\setlength{\bibsep}{12pt} +\RequirePackage{amsmath} +%\RequirePackage[originalcommands]{ragged2e} +%\setlength\RaggedRightParindent{\parindent} +%\RaggedRight +\RequirePackage{microtype} +%\renewcommand\normalsize{% +% \@setfontsize\normalsize\@xiipt{16}% +% \abovedisplayskip 16\p@ \@plus3\p@ \@minus7\p@ +% \abovedisplayshortskip \z@ \@plus3\p@ +% \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +% \belowdisplayskip \abovedisplayskip +% \let\@listi\@listI} +\normalsize + +% Original fonts ( tester sur miktex) +%\usepackage{mathgifg} +%\usepackage{courier} + +% PdfLaTeX Choix 1 "times Helvet et math" http://www.cuk.ch/articles/4237 +\usepackage[T1]{fontenc} +\usepackage{txfonts} + +% PdfLaTeX Choix 2 http://www.cuk.ch/articles/4237 +% \usepackage{fourier} +% \usepackage[scaled=0.875]{helvet} +% \usepackage{courier} + +% XeLaTeX +%\usepackage{fontspec} +%\usepackage{xltxtra} +%\defaultfontfeatures{Mapping=tex-text} +%\setmainfont{Georgia} +%\setmathrm{Georgia} +%\setsansfont{Verdana} +%\setmathsf{Verdana} +%\setmonofont{Courier New} + +\def\@projectfont{% + \sffamily\itshape\bfseries\fontsize{22pt}{25pt}\selectfont} +\def\@reportnumfont{% + \sffamily\bfseries\fontsize{18pt}{22pt}\selectfont} +\def\@wpfont{% + \sffamily\fontseries{k}\itshape\normalsize\selectfont} +\def\@titlefont{% + \sffamily\fontseries{h}\fontsize{20pt}{25pt}\selectfont} +\def\@distributionfont{% + \sffamily\fontseries{k}\fontsize{9pt}{11pt}\selectfont} +\def\@eqtagfont{\sffamily\bfseries\footnotesize} +\RequirePackage[a4paper, top=1in, bottom=0.7in, + left=1.25in, right=1.25in]{geometry} +\setlength{\parindent}{0pt} +\setlength{\parskip}{\baselineskip} +\setlength\labelwidth{1em} +\setlength\leftmargini\z@ +\addtolength\leftmargini\labelwidth +\addtolength\leftmargini\labelsep +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\def\makelabel##1{##1}}% + \fi} +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\usecounter\@enumctr\def\makelabel##1{##1}}% + \fi} +\widowpenalty=10000 +\clubpenalty=10000 +\raggedbottom +\RequirePackage{fancyhdr} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\fancyhfoffset{35pt} +\pagestyle{fancy} +\lhead{\textsf{\textbf{\footnotesize\@reportnum}}} +\rhead{\textsf{\textbf{\footnotesize\thepage}}} +\chead{} +\lfoot{} +\cfoot{\color{blue}\textsf{\textbf{\textit{openETCS}}}\color{black} - \includegraphics[width=3em]{ccbysa.png}} +\rfoot{} +\newif\if@frontmatter +\@frontmatterfalse +\newif\if@appendix +\@appendixfalse +\def\frontmatter{% + \pagenumbering{roman}% + \@frontmattertrue + \@appendixfalse} +\def\mainmatter{% + \cleardoublepage + \pagenumbering{arabic}% + \@frontmatterfalse + \@appendixfalse} +\def\appendix{% + \clearpage + \@frontmatterfalse + \@appendixtrue + \@addtoreset{table}{chapter}% + \@addtoreset{equation}{chapter}% + \@addtoreset{figure}{chapter}% + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% + \gdef\thefigure{\@Alph\c@chapter\@arabic\c@figure}% + \gdef\thetable{\@Alph\c@chapter\@arabic\c@table}% + \gdef\theequation{\@Alph\c@chapter\@arabic\c@equation}} +\def\project#1{\gdef\@project{#1}} +\project{openETCS} +\def\reportnum#1{\gdef\@reportnum{#1}} +\reportnum{OETCS TK-01-01} +\def\wp#1{\gdef\@wp{#1}} +\wp{} +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} +\def\@subtitle{} +\newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and} +\def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{% + \@andlistb#1{#3}}} +\def\@andlistb#1#2#3#4#5\and{% + \@ifempty{#5}{% + \@andlistc{#2#4}% + }{% + \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}% + }} +\let\@andlistc\@iden +\newcommand{\nxandlist}[4]{% + \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}% + \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}% + \the\@xp\toks@#4\and\and + \edef#4{\the\toks@}% + \let\@andlistc\@iden} +\def\@@and{and} +\newcommand{\andify}{% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}} +\def\and{\unskip{ }\@@and{ }\ignorespaces} +\let\@xp\expandafter\relax +\let\@nx=\noexpand +\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\long\def\@ifempty#1{\@xifempty#1@@..\@nil} +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\setboxz@h{\setbox\z@\hbox} +\def\@addpunct#1{% + \relax\ifhmode + \ifnum\spacefactor>\@m \else#1\fi + \fi} +\newtoks\@emptytoks +\def\authors{} +\def\addresses{} +\def\author#1{% + \ifx\@empty\authors\gdef\authors{#1}\else + \g@addto@macro{\authors}{\and#1}\fi + \ifx\@empty\@addresses\gdef\addresses{\author{#1}}\else + \g@addto@macro{\addresses}{\par\author{#1}}\fi} +\def\affiliation#1{% + \ifx\@empty\@addresses\gdef\addresses{#1\par}\else + \g@addto@macro{\addresses}{#1\par\vspace{\baselineskip}}\fi} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space \number\year} +\newcommand{\coverart}[2][]{% + \def\@tempa{#1}% + \ifx\@empty\@tempa + \gdef\@coverart{\centering\includegraphics[width=435\p@]{#2}}\else + \gdef\@coverart{\centering\includegraphics[#1]{#2}}\fi} +\def\@coverart{}% +\def\reporttype#1{\gdef\@reporttype{#1}} +\reporttype{} +\def\distribution#1{\gdef\@distribution{#1}} +\distribution{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 Unported License.\\ \includegraphics[width=40pt]{ccbysabig.png}} +\def\preparedfor#1{\gdef\@preparedfor{#1}} +\preparedfor{ITEA2 openETCS consortium\\ Europa} +\def\contractnum#1{\gdef\@contractnum{#1}} +\contractnum{} +\def\monitoredby#1{\gdef\@monitoredby{#1}} +\monitoredby{} +\def\additionalinfo#1{\gdef\@additionalinfo{#1}} +\additionalinfo{} +\newbox\abstractbox +\renewenvironment{abstract}{% + \global\setbox\abstractbox=\vtop \bgroup + \normalfont + \list{}{\labelwidth\z@ + \leftmargin\z@ \rightmargin\leftmargin + \listparindent\z@ \itemindent\z@ + \parsep16\p@ \topsep\z@ + \let\fullwidthdisplay\relax + }% + \item[\hskip\labelsep\bfseries Abstract:]% +}{% + \endlist\egroup} + \long\def\disclaimer#1{\long\gdef\@disclaimer{#1}} + \disclaimer{ +\textbf{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 -- (cc by-sa 3.0)} + +THE WORK IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC +LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT +AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS +LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU +THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH +TERMS AND CONDITIONS. + +\url{http://creativecommons.org/licenses/by-sa/3.0/} +} +\newenvironment{@coverlist}{\begin{list}{}{% + \leftmargin40\p@\rightmargin-85\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newenvironment{@titlelist}{\begin{list}{}{% + \leftmargin-20\p@\rightmargin100\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newif\if@titleblock +\newenvironment{@titleblock}{% + \list{}{\labelwidth80\p@\labelsep10\p@ \leftmargin70\p@ + \rightmargin-150\p@ + \let\makelabel\@titleblocklabel}}{\endlist} +\newcommand*{\@titleblocklabel}[1]{\hfill\small#1} +\def\maketitle{% + \thispagestyle{empty}% + \enlargethispage{0.34in}% + \vspace*{-0.95in} + \makebox[0cm][r]{% + \raisebox{-780\p@}[\z@][\z@]{% + \rotatebox{90}{\makebox[\z@][l]{% + \colorbox{blue}{\color{white}\parbox{780\p@}{% + \rule{0\p@}{85\p@}% + \hspace{28\p@}\raisebox{40\p@}{% + \parbox[c]{350\p@}{\@projectfont\@project}% + \hspace{10\p@}% + \parbox[c]{300\p@}{\hfill\@reportnumfont\@reportnum}}}}}}}% + \hspace*{-14\p@}}% +% \makebox[0cm][r]{\raisebox{-720\p@}[\z@][\z@]{\rule{8\p@}{726\p@}% +% \hspace{-26.75\p@}}}% + \begin{@coverlist}% + \sffamily\fontseries{k}\selectfont% + \hfill\parbox{145\p@}{\centering + \includegraphics[width=145\p@]{itea}\\ + {\bfseries + ITEA2 Project\\2012 -- 2015}}\\ + \par + \vspace{0.5cm}% + {\@wpfont\@wp\par}% + \vspace{0.3cm}% + {\raggedright\@titlefont\@title\par + \vspace{0.3cm}% + \normalsize\bfseries\@subtitle\par}% + \vspace{0.3cm}% + \begin{minipage}[t]{300\p@}\raggedright + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\authors + \authors\end{minipage}% + \begin{minipage}[t]{135\p@}\flushright\@date\end{minipage}\par + \vspace{2cm}% + \@coverart + \end{@coverlist}% + \vfill + \begin{@coverlist}% + \@distributionfont\@distribution + \end{@coverlist}% + \newpage\thispagestyle{empty}\hbox{}\newpage + \thispagestyle{empty}% + \setcounter{page}{1}% + \vspace*{-1.5in}% + \vspace*{-\topmargin}% + \begin{@titlelist}% + \sffamily\fontseries{k}\selectfont + \begin{minipage}[t]{275\p@}% + \bfseries\@wp + \end{minipage}% + \begin{minipage}[t]{175\p@}% + \bfseries\flushright\@reportnum\\\@date + \end{minipage}\rule[-0.5in]{\z@}{0.625in}\par + \begin{minipage}{\textwidth} + \vspace*{1cm}% + {\@titlefont\raggedright\@title\par} + \vspace*{3\p@}% + \bfseries\@subtitle\par + \end{minipage}\rule[-0.7in]{\z@}{1in}\par + \def\author##1{% + \def\@tempa{##1}% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\@tempa + {\upshape\normalsize\@tempa}\par\vspace{6\p@}}% + \begin{minipage}{\textwidth} + \textit{\footnotesize\addresses}\par + \end{minipage}\rule[-2.7in]{\z@}{3.7in}\par + \begin{minipage}{\textwidth} + \@reporttype\par\vspace*{3\p@}% + {\@distributionfont\@distribution\par}% + \end{minipage} + \end{@titlelist}% + \vfill + \begin{@titlelist}% + \sffamily\normalsize\fontseries{k}\selectfont + \ifx\@additionalinfo\@empty\else\@additionalinfo\par\fi + \@titleblockfalse + \ifx\@empty\@preparedfor\relax\else\@titleblocktrue\fi + \ifx\@empty\@contractnum\relax\else\@titleblocktrue\fi + \ifx\@empty\@monitoredby\relax\else\@titleblocktrue\fi + \if@titleblock + \begin{@titleblock}% + \ifx\@empty\@preparedfor\else + \item[Prepared for]\@preparedfor + \fi + \ifx\@empty\@contractnum\else + \item[Under]\@contractnum + \fi + \ifx\@empty\@monitoredby\else + \item[Monitored by]\@monitoredby + \fi + \end{@titleblock} + \fi + \end{@titlelist}% + \clearpage + \ifvoid\abstractbox + \else + \box\abstractbox + \prevdepth\z@ + \fi + \vfill + \bgroup + \setlength{\fboxsep}{5\p@}% + \makebox[\textwidth]{\fbox{\parbox{6.5in}{% + \fontsize{8.5\p@}{9.5\p@}\selectfont + \parskip\baselineskip + \textbf{Disclaimer:} \@disclaimer}}}% + \egroup + \clearpage} +\def\cl@chapter{} +\@addtoreset{section}{chapter}% +\@addtoreset{subsection}{chapter}% +\@addtoreset{subsection}{section}% +\renewcommand\chapter{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{% + \if@frontmatter + \addcontentsline{toc}{chapter}{#1}% + \@makechapterhead{#2}% + \else + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \if@appendix + \addcontentsline{toc}{chapter}% + {\@chapapp\space\thechapter: #1}% + \@makechapterhead{\@chapapp\space\thechapter: #2}% + \else + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% + \@makechapterhead{\makebox[35\p@]{\thechapter\hfill}#2}% + \fi + \fi + \@afterheading} +\def\@schapter#1{% + \if@appendix + \addcontentsline{toc}{chapter}{\@chapapp: #1}% + \@makeschapterhead{\@chapapp: #1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \@makeschapterhead{#1}% + \fi + \@afterheading} +\def\@makechapterhead#1{% + \vspace*{5\p@}% + {\hskip-35\p@% + \parindent\z@\raggedright + \interlinepenalty\@M + \@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\def\@makeschapterhead#1{% + \vspace*{5\p@}% + {% + \parindent\z@\raggedright + \interlinepenalty\@M + \leftskip-35\p@\@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\renewcommand \theequation {\@arabic\c@equation} +\setcounter{tocdepth}{2} +\renewcommand\section{% + \addpenalty\@secpenalty\nobreak + \secdef\@section\@ssection} +\def\@section[#1]#2{% + \ifnum1>\c@secnumdepth + \addcontentsline{toc}{section}{#1}% + \else + \refstepcounter{section}% + \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}% + \fi + {\hskip-35\p@\raggedright\interlinepenalty\@M + \large\sffamily\bfseries + \ifnum1>\c@secnumdepth\else\makebox[35\p@]{\thesection\hfill}\fi#2\nobreak\par} + \@afterheading + \nobreak\par} +\def\@ssection#1{ + \addcontentsline{toc}{section}{#1}% + {\raggedright\interlinepenalty\@M + \large\sffamily\bfseries\leftskip-35\p@#1\nobreak\par} + \@afterheading + \nobreak\par} +\renewcommand\subsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsection\@ssubsection} +\def\@subsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsection}{\itshape#1}% + \else + \refstepcounter{subsection}% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsection#1{% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\def\specialchapter#1{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \@makeschapterhead{#1}\par + \@afterheading} +\def\@dotsep{0.5} +\renewcommand\l@chapter[2]{% + \def\numberline##1{\makebox[1.9em]{##1\hfill}}% + \addpenalty{-\@highpenalty}% + \vskip5\p@ + \bgroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + \leavevmode\bfseries + \leftskip1.9em% + \hskip-\leftskip + #1\nobreak\leaders\hbox{$\m@th\mkern\@dotsep + mu\hbox{.}\mkern\@dotsep + mu$}\hfill\nobreak{\hfil\,#2}\par + \vskip5\p@ + \penalty\@highpenalty + \egroup} +\def\@dottedtocline#1#2#3#4#5{% + \bgroup + \def\numberline##1{\makebox[#3]{##1\hfill}}% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\def\@dottedtoclineLF#1#2#3#4#5{% + \bgroup + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #2\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\@tempdima + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\renewcommand*\l@section{\@dottedtocline{1}{2em}{2.5em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.7em}{3em}} +\renewcommand*\l@figure{\@dottedtoclineLF{1}{0em}{2.3em}} +\let\l@table\l@figure +\renewcommand\contentsname{Table of Contents} +\renewcommand\tableofcontents{% + \specialchapter{\contentsname}% + \def\numberline##1{\hb@xt@\@pnumwidth{##1\hfill}}% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{toc}}} +\renewcommand\listoffigures{% + \chapter{\listfigurename}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}} +\renewcommand\listoftables{% + \chapter{\listtablename}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\def\listfiguretablename{Figures and Tables} +\newcommand\listoffiguresandtables{% + \chapter{\listfiguretablename} + {\sffamily\bfseries\normalsize Figures\par}% + \vspace*{10pt}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}% + {\sffamily\bfseries\normalsize Tables\par}% + \vspace*{10pt}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\renewcommand\bibname{References} +\setlength{\@fptop}{0pt}% +\renewcommand \thefigure {\@arabic\c@figure} +\renewcommand \thetable {\@arabic\c@table} +\captionsetup{justification=centering,font={footnotesize,rm,bf}, +labelsep=period,aboveskip=3pt} +\captionsetup[table]{position=top} +\def\arraystretch{1.3} +\let\maketag@@@@\maketag@@@ +\def\maketag@@@#1{\hbox{\m@th\@eqtagfont#1}} +\renewcommand{\eqref}[1]{\textup{\tagform@@{\ref{#1}}}} +\def\tagform@@#1{\maketag@@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +\endinput +%% +%% End of file `erdc.cls'. diff --git a/Requirements/template/openetcs2.cls b/Requirements Collection Workspace/template/openetcs2.cls similarity index 100% rename from Requirements/template/openetcs2.cls rename to Requirements Collection Workspace/template/openetcs2.cls diff --git a/Requirements/template/openetcs2.log b/Requirements/template/openetcs2.log deleted file mode 100644 index 251c4ea..0000000 --- a/Requirements/template/openetcs2.log +++ /dev/null @@ -1,17 +0,0 @@ -This is pdfTeX, Version 3.1415926-1.40.10 (MiKTeX 2.8) (preloaded format=pdftex 2012.12.21) 21 DEC 2012 12:45 -entering extended mode -**O:/Projektordner/03_Arbeitsunterlagen/Bearbeitung/WP2/Task2-1-1/Requirements/ -template/openetcs2.cls - -(O:/Projektordner/03_Arbeitsunterlagen/Bearbeitung/WP2/Task2-1-1/Requirements/t -emplate/openetcs2.cls -! Undefined control sequence. -l.55 \NeedsTeXFormat - {LaTeX2e} -? -! Emergency stop. -l.55 \NeedsTeXFormat - {LaTeX2e} -End of file on the terminal! - -! ==> Fatal error occurred, no output PDF file produced! diff --git a/Test b/Test new file mode 100644 index 0000000..50cbd36 --- /dev/null +++ b/Test @@ -0,0 +1,5 @@ + * Aaaa + * BBB + * CCCCC + * DDDD + * EEEE diff --git a/Workspace/SafetyRequirementsExamples/includes/establish.dot b/Workspace/SafetyRequirementsExamples/includes/establish.dot new file mode 100755 index 0000000..e15476d --- /dev/null +++ b/Workspace/SafetyRequirementsExamples/includes/establish.dot @@ -0,0 +1,10 @@ +digraph EstablishCom { + NoCom [shape=box]; + NoCom -> Trying; + Trying -> NoCom; + Trying -> Trying; + Trying -> Setup; + Setup -> NoCom; + Setup -> Established; + Established-> NoCom; +} \ No newline at end of file diff --git a/Workspace/SafetyRequirementsExamples/includes/establish.pdf b/Workspace/SafetyRequirementsExamples/includes/establish.pdf new file mode 100755 index 0000000..153366f Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/includes/establish.pdf differ diff --git a/Workspace/SafetyRequirementsExamples/includes/ext_fta.dia b/Workspace/SafetyRequirementsExamples/includes/ext_fta.dia new file mode 100755 index 0000000..b76aad0 Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/includes/ext_fta.dia differ diff --git a/Workspace/SafetyRequirementsExamples/includes/ext_fta.eps b/Workspace/SafetyRequirementsExamples/includes/ext_fta.eps new file mode 100755 index 0000000..7a142f0 --- /dev/null +++ b/Workspace/SafetyRequirementsExamples/includes/ext_fta.eps @@ -0,0 +1,3240 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /cygdrive/c/Documents and Settings/7312820T/Mes documents/OpenETCS/Documents/proto_safety/ext_fta.dia +%%Creator: Dia v0.97.2 +%%CreationDate: Wed Jan 16 10:38:06 2013 +%%For: 7312820T +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 797 457 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /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 /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +5.050000 -14.050000 translate +%%EndProlog + + +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 9.000000 3.000000 m 10.000000 3.500000 10.000000 4.500000 10.000000 5.500000 c 9.500000 5.000000 8.500000 5.000000 8.000000 5.500000 c 8.000000 4.500000 8.000000 3.500000 9.000000 3.000000 c ef +0.000000 0.000000 0.000000 srgb +n 9.000000 3.000000 m 10.000000 3.500000 10.000000 4.500000 10.000000 5.500000 c 9.500000 5.000000 8.500000 5.000000 8.000000 5.500000 c 8.000000 4.500000 8.000000 3.500000 9.000000 3.000000 c s +0.010000 slw +0 slc +0 slj +[] 0 sd +n 9.000000 3.000000 m 10.000000 3.500000 10.000000 4.500000 10.000000 5.500000 c 9.500000 5.000000 8.500000 5.000000 8.000000 5.500000 c 8.000000 4.500000 8.000000 3.500000 9.000000 3.000000 c s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 9.000000 3.000000 m 9.000000 2.486803 l s +[] 0 sd +0 slj +0 slc +n 9.000000 2.111803 m 9.250000 2.611803 l 9.000000 2.486803 l 8.750000 2.611803 l ef +n 9.000000 2.111803 m 9.250000 2.611803 l 9.000000 2.486803 l 8.750000 2.611803 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 4.000000 -2.000000 m 4.000000 2.000000 l 14.000000 2.000000 l 14.000000 -2.000000 l f +0.000000 0.000000 0.000000 srgb +n 4.000000 -2.000000 m 4.000000 2.000000 l 14.000000 2.000000 l 14.000000 -2.000000 l cp s +gsave 7.383750 -0.546250 translate 0.035278 -0.035278 scale +start_ol +3328 0 moveto +2774 0 lineto +1298 1607 lineto +896 1194 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +896 3520 lineto +896 1677 lineto +2680 3520 lineto +3264 3520 lineto +1626 1865 lineto +3328 0 lineto +end_ol grestore +gsave 7.825836 -0.546250 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave 8.230450 -0.546250 translate 0.035278 -0.035278 scale +start_ol +3392 0 moveto +2849 0 lineto +1646 1408 lineto +896 1408 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1432 3520 lineto +1751 3520 1963 3479 conicto +2176 3438 2346 3332 conicto +2537 3212 2644 3029 conicto +2752 2847 2752 2566 conicto +2752 2187 2562 1931 conicto +2373 1676 2040 1547 conicto +3392 0 lineto +2240 2541 moveto +2240 2694 2187 2812 conicto +2134 2930 2012 3012 conicto +1910 3081 1771 3108 conicto +1633 3136 1444 3136 conicto +896 3136 lineto +896 1792 lineto +1367 1792 lineto +1588 1792 1753 1831 conicto +1918 1871 2033 1979 conicto +2139 2079 2189 2209 conicto +2240 2340 2240 2541 conicto +end_ol grestore +gsave 8.675032 -0.546250 translate 0.035278 -0.035278 scale +start_ol +3200 0 moveto +2607 0 lineto +896 3149 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1192 3520 lineto +2752 645 lineto +2752 3520 lineto +3200 3520 lineto +3200 0 lineto +end_ol grestore +gsave 9.154581 -0.546250 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave 9.559196 -0.546250 translate 0.035278 -0.035278 scale +start_ol +2688 0 moveto +448 0 lineto +448 3520 lineto +896 3520 lineto +896 384 lineto +2688 384 lineto +2688 0 lineto +end_ol grestore +gsave 9.916358 -0.546250 translate 0.035278 -0.035278 scale +start_ol +1856 1408 moveto +384 1408 lineto +384 1792 lineto +1856 1792 lineto +1856 1408 lineto +end_ol grestore +gsave 10.206085 -0.546250 translate 0.035278 -0.035278 scale +start_ol +2430 1705 moveto +2542 1603 2615 1449 conicto +2688 1296 2688 1052 conicto +2688 811 2601 610 conicto +2514 409 2357 260 conicto +2181 94 1942 15 conicto +1704 -64 1420 -64 conicto +1129 -64 847 4 conicto +565 73 384 154 conicto +384 640 lineto +419 640 lineto +615 502 880 411 conicto +1145 320 1392 320 conicto +1537 320 1701 370 conicto +1865 421 1966 520 conicto +2072 627 2124 755 conicto +2176 883 2176 1078 conicto +2176 1272 2119 1398 conicto +2063 1525 1963 1598 conicto +1863 1672 1721 1700 conicto +1580 1728 1416 1728 conicto +1216 1728 lineto +1216 2112 lineto +1372 2112 lineto +1710 2112 1911 2263 conicto +2112 2415 2112 2706 conicto +2112 2835 2059 2931 conicto +2007 3028 1914 3090 conicto +1817 3152 1705 3176 conicto +1594 3200 1453 3200 conicto +1237 3200 994 3116 conicto +751 3033 535 2880 conicto +512 2880 lineto +512 3366 lineto +677 3447 953 3515 conicto +1229 3584 1488 3584 conicto +1741 3584 1934 3537 conicto +2128 3490 2284 3388 conicto +2452 3275 2538 3116 conicto +2624 2957 2624 2745 conicto +2624 2455 2416 2238 conicto +2208 2022 1925 1966 conicto +1925 1934 lineto +2038 1915 2183 1854 conicto +2329 1794 2430 1705 conicto +end_ol grestore +gsave 4.933750 0.253750 translate 0.035278 -0.035278 scale +start_ol +2752 3136 moveto +896 3136 lineto +896 2112 lineto +2496 2112 lineto +2496 1728 lineto +896 1728 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +2752 3520 lineto +2752 3136 lineto +end_ol grestore +gsave 5.300901 0.253750 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 5.685539 0.253750 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 5.860370 0.253750 translate 0.035278 -0.035278 scale +start_ol +896 0 moveto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 0 lineto +end_ol grestore +gsave 6.035202 0.253750 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 299 lineto +1956 123 1754 29 conicto +1553 -64 1310 -64 conicto +902 -64 675 187 conicto +448 439 448 926 conicto +448 2624 lineto +896 2624 lineto +896 1112 lineto +896 910 914 766 conicto +933 622 992 520 conicto +1054 415 1153 367 conicto +1252 320 1440 320 conicto +1607 320 1805 410 conicto +2004 501 2176 641 conicto +2176 2624 lineto +2624 2624 lineto +2624 0 lineto +end_ol grestore +gsave 6.439816 0.253750 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 6.712056 0.253750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 7.094197 0.253750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 7.318985 0.253750 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 7.706120 0.253750 translate 0.035278 -0.035278 scale +start_ol +1856 3264 moveto +1832 3264 lineto +1758 3285 1639 3306 conicto +1520 3328 1429 3328 conicto +1141 3328 1011 3196 conicto +881 3064 881 2718 conicto +881 2624 lineto +1664 2624 lineto +1664 2240 lineto +896 2240 lineto +896 0 lineto +448 0 lineto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 2714 lineto +448 3196 684 3454 conicto +920 3712 1365 3712 conicto +1515 3712 1635 3698 conicto +1756 3684 1856 3665 conicto +1856 3264 lineto +end_ol grestore +gsave 7.930909 0.253750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 8.155697 0.253750 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 8.427937 0.253750 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 8.812575 0.253750 translate 0.035278 -0.035278 scale +start_ol +2560 0 moveto +2112 0 lineto +2112 281 lineto +1923 118 1717 27 conicto +1512 -64 1272 -64 conicto +805 -64 530 295 conicto +256 655 256 1292 conicto +256 1624 350 1883 conicto +445 2142 606 2324 conicto +765 2501 976 2594 conicto +1188 2688 1414 2688 conicto +1619 2688 1778 2645 conicto +1937 2602 2112 2511 conicto +2112 3712 lineto +2560 3712 lineto +2560 0 lineto +2112 624 moveto +2112 2160 lineto +1934 2242 1793 2273 conicto +1653 2304 1486 2304 conicto +1116 2304 910 2040 conicto +704 1777 704 1293 conicto +704 816 863 568 conicto +1023 320 1374 320 conicto +1561 320 1753 405 conicto +1946 490 2112 624 conicto +end_ol grestore +gsave 9.212195 0.253750 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 9.387026 0.253750 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 9.774162 0.253750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 9.998950 0.253750 translate 0.035278 -0.035278 scale +start_ol +4352 0 moveto +3904 0 lineto +3904 1512 lineto +3904 1683 3888 1842 conicto +3873 2002 3822 2097 conicto +3767 2199 3664 2251 conicto +3561 2304 3366 2304 conicto +3176 2304 2986 2210 conicto +2797 2116 2607 1971 conicto +2614 1916 2619 1843 conicto +2624 1771 2624 1700 conicto +2624 0 lineto +2176 0 lineto +2176 1512 lineto +2176 1688 2160 1846 conicto +2145 2004 2094 2100 conicto +2039 2202 1936 2253 conicto +1833 2304 1638 2304 conicto +1453 2304 1267 2213 conicto +1081 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2333 lineto +1107 2500 1316 2594 conicto +1526 2688 1763 2688 conicto +2037 2688 2227 2577 conicto +2418 2467 2511 2272 conicto +2784 2493 3009 2590 conicto +3235 2688 3491 2688 conicto +3933 2688 4142 2427 conicto +4352 2166 4352 1698 conicto +4352 0 lineto +end_ol grestore +gsave 10.620861 0.253750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 11.003002 0.253750 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 11.335187 0.253750 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 11.667371 0.253750 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 12.052009 0.253750 translate 0.035278 -0.035278 scale +start_ol +2560 320 moveto +2560 -341 2255 -650 conicto +1950 -960 1316 -960 conicto +1106 -960 906 -930 conicto +706 -900 512 -845 conicto +512 -384 lineto +536 -384 lineto +644 -433 880 -504 conicto +1116 -576 1352 -576 conicto +1579 -576 1727 -522 conicto +1876 -468 1959 -372 conicto +2041 -280 2076 -151 conicto +2112 -22 2112 138 conicto +2112 377 lineto +1914 219 1733 141 conicto +1552 64 1272 64 conicto +805 64 530 399 conicto +256 734 256 1345 conicto +256 1679 350 1921 conicto +445 2164 609 2340 conicto +760 2505 977 2596 conicto +1195 2688 1409 2688 conicto +1636 2688 1789 2643 conicto +1942 2598 2112 2505 conicto +2141 2624 lineto +2560 2624 lineto +2560 320 lineto +2112 721 moveto +2112 2156 lineto +1936 2236 1785 2270 conicto +1634 2304 1484 2304 conicto +1121 2304 912 2059 conicto +704 1814 704 1348 conicto +704 905 858 676 conicto +1013 448 1372 448 conicto +1564 448 1757 522 conicto +1950 596 2112 721 conicto +end_ol grestore +gsave 12.451629 0.253750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 12.833770 0.253750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 6.128750 1.053750 translate 0.035278 -0.035278 scale +start_ol +2432 157 moveto +2206 53 2003 -5 conicto +1800 -64 1572 -64 conicto +1282 -64 1039 19 conicto +796 103 623 273 conicto +448 443 352 702 conicto +256 961 256 1307 conicto +256 1953 617 2320 conicto +979 2688 1572 2688 conicto +1803 2688 2025 2625 conicto +2247 2562 2432 2471 conicto +2432 1984 lineto +2408 1984 lineto +2199 2138 1976 2221 conicto +1754 2304 1542 2304 conicto +1154 2304 929 2050 conicto +704 1797 704 1307 conicto +704 831 924 575 conicto +1144 320 1542 320 conicto +1681 320 1824 354 conicto +1968 389 2082 444 conicto +2182 493 2269 547 conicto +2357 601 2408 640 conicto +2432 640 lineto +2432 157 lineto +end_ol grestore +gsave 6.460934 1.053750 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 6.848069 1.053750 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 7.120309 1.053750 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 7.392549 1.053750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 7.774690 1.053750 translate 0.035278 -0.035278 scale +start_ol +2432 157 moveto +2206 53 2003 -5 conicto +1800 -64 1572 -64 conicto +1282 -64 1039 19 conicto +796 103 623 273 conicto +448 443 352 702 conicto +256 961 256 1307 conicto +256 1953 617 2320 conicto +979 2688 1572 2688 conicto +1803 2688 2025 2625 conicto +2247 2562 2432 2471 conicto +2432 1984 lineto +2408 1984 lineto +2199 2138 1976 2221 conicto +1754 2304 1542 2304 conicto +1154 2304 929 2050 conicto +704 1797 704 1307 conicto +704 831 924 575 conicto +1144 320 1542 320 conicto +1681 320 1824 354 conicto +1968 389 2082 444 conicto +2182 493 2269 547 conicto +2357 601 2408 640 conicto +2432 640 lineto +2432 157 lineto +end_ol grestore +gsave 8.106874 1.053750 translate 0.035278 -0.035278 scale +start_ol +1792 7 moveto +1668 -24 1522 -44 conicto +1377 -64 1262 -64 conicto +863 -64 655 152 conicto +448 368 448 845 conicto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 3392 lineto +896 3392 lineto +896 2624 lineto +1792 2624 lineto +1792 2240 lineto +896 2240 lineto +896 1042 lineto +896 835 905 718 conicto +914 602 970 501 conicto +1021 407 1110 363 conicto +1199 320 1381 320 conicto +1487 320 1602 344 conicto +1718 368 1769 384 conicto +1792 384 lineto +1792 7 lineto +end_ol grestore +gsave 8.359138 1.053750 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 8.763752 1.053750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 9.145893 1.053750 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 9.478077 1.053750 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 9.810262 1.053750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 10.035050 1.053750 translate 0.035278 -0.035278 scale +start_ol +2432 157 moveto +2206 53 2003 -5 conicto +1800 -64 1572 -64 conicto +1282 -64 1039 19 conicto +796 103 623 273 conicto +448 443 352 702 conicto +256 961 256 1307 conicto +256 1953 617 2320 conicto +979 2688 1572 2688 conicto +1803 2688 2025 2625 conicto +2247 2562 2432 2471 conicto +2432 1984 lineto +2408 1984 lineto +2199 2138 1976 2221 conicto +1754 2304 1542 2304 conicto +1154 2304 929 2050 conicto +704 1797 704 1307 conicto +704 831 924 575 conicto +1144 320 1542 320 conicto +1681 320 1824 354 conicto +1968 389 2082 444 conicto +2182 493 2269 547 conicto +2357 601 2408 640 conicto +2432 640 lineto +2432 157 lineto +end_ol grestore +gsave 10.367234 1.053750 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 10.771849 1.053750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 11.153990 1.053750 translate 0.035278 -0.035278 scale +start_ol +2432 157 moveto +2206 53 2003 -5 conicto +1800 -64 1572 -64 conicto +1282 -64 1039 19 conicto +796 103 623 273 conicto +448 443 352 702 conicto +256 961 256 1307 conicto +256 1953 617 2320 conicto +979 2688 1572 2688 conicto +1803 2688 2025 2625 conicto +2247 2562 2432 2471 conicto +2432 1984 lineto +2408 1984 lineto +2199 2138 1976 2221 conicto +1754 2304 1542 2304 conicto +1154 2304 929 2050 conicto +704 1797 704 1307 conicto +704 831 924 575 conicto +1144 320 1542 320 conicto +1681 320 1824 354 conicto +1968 389 2082 444 conicto +2182 493 2269 547 conicto +2357 601 2408 640 conicto +2432 640 lineto +2432 157 lineto +end_ol grestore +gsave 11.486174 1.053750 translate 0.035278 -0.035278 scale +start_ol +2880 0 moveto +2262 0 lineto +1189 1143 lineto +896 876 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 1318 lineto +2226 2624 lineto +2816 2624 lineto +1538 1412 lineto +2880 0 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 0.000000 10.000000 m 0.000000 7.600000 l 8.500000 7.600000 l 8.500000 5.686803 l s +[] 0 sd +0 slj +0 slc +n 8.500000 5.311803 m 8.750000 5.811803 l 8.500000 5.686803 l 8.250000 5.811803 l ef +n 8.500000 5.311803 m 8.750000 5.811803 l 8.500000 5.686803 l 8.250000 5.811803 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 18.000000 10.000000 m 18.000000 7.600000 l 9.500000 7.600000 l 9.500000 5.686803 l s +[] 0 sd +0 slj +0 slc +n 9.500000 5.311803 m 9.750000 5.811803 l 9.500000 5.686803 l 9.250000 5.811803 l ef +n 9.500000 5.311803 m 9.750000 5.811803 l 9.500000 5.686803 l 9.250000 5.811803 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n 13.000000 10.000000 m 13.000000 14.000000 l 23.000000 14.000000 l 23.000000 10.000000 l f +0.000000 0.000000 0.000000 srgb +n 13.000000 10.000000 m 13.000000 14.000000 l 23.000000 14.000000 l 23.000000 10.000000 l cp s +gsave 16.077500 11.453750 translate 0.035278 -0.035278 scale +start_ol +3328 0 moveto +2774 0 lineto +1298 1607 lineto +896 1194 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +896 3520 lineto +896 1677 lineto +2680 3520 lineto +3264 3520 lineto +1626 1865 lineto +3328 0 lineto +end_ol grestore +gsave 16.519586 11.453750 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave 16.924200 11.453750 translate 0.035278 -0.035278 scale +start_ol +3392 0 moveto +2849 0 lineto +1646 1408 lineto +896 1408 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1432 3520 lineto +1751 3520 1963 3479 conicto +2176 3438 2346 3332 conicto +2537 3212 2644 3029 conicto +2752 2847 2752 2566 conicto +2752 2187 2562 1931 conicto +2373 1676 2040 1547 conicto +3392 0 lineto +2240 2541 moveto +2240 2694 2187 2812 conicto +2134 2930 2012 3012 conicto +1910 3081 1771 3108 conicto +1633 3136 1444 3136 conicto +896 3136 lineto +896 1792 lineto +1367 1792 lineto +1588 1792 1753 1831 conicto +1918 1871 2033 1979 conicto +2139 2079 2189 2209 conicto +2240 2340 2240 2541 conicto +end_ol grestore +gsave 17.368782 11.453750 translate 0.035278 -0.035278 scale +start_ol +3200 0 moveto +2607 0 lineto +896 3149 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1192 3520 lineto +2752 645 lineto +2752 3520 lineto +3200 3520 lineto +3200 0 lineto +end_ol grestore +gsave 17.848331 11.453750 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave 18.252946 11.453750 translate 0.035278 -0.035278 scale +start_ol +2688 0 moveto +448 0 lineto +448 3520 lineto +896 3520 lineto +896 384 lineto +2688 384 lineto +2688 0 lineto +end_ol grestore +gsave 18.610108 11.453750 translate 0.035278 -0.035278 scale +start_ol +1856 1408 moveto +384 1408 lineto +384 1792 lineto +1856 1792 lineto +1856 1408 lineto +end_ol grestore +gsave 18.899835 11.453750 translate 0.035278 -0.035278 scale +start_ol +2430 1705 moveto +2542 1603 2615 1449 conicto +2688 1296 2688 1052 conicto +2688 811 2601 610 conicto +2514 409 2357 260 conicto +2181 94 1942 15 conicto +1704 -64 1420 -64 conicto +1129 -64 847 4 conicto +565 73 384 154 conicto +384 640 lineto +419 640 lineto +615 502 880 411 conicto +1145 320 1392 320 conicto +1537 320 1701 370 conicto +1865 421 1966 520 conicto +2072 627 2124 755 conicto +2176 883 2176 1078 conicto +2176 1272 2119 1398 conicto +2063 1525 1963 1598 conicto +1863 1672 1721 1700 conicto +1580 1728 1416 1728 conicto +1216 1728 lineto +1216 2112 lineto +1372 2112 lineto +1710 2112 1911 2263 conicto +2112 2415 2112 2706 conicto +2112 2835 2059 2931 conicto +2007 3028 1914 3090 conicto +1817 3152 1705 3176 conicto +1594 3200 1453 3200 conicto +1237 3200 994 3116 conicto +751 3033 535 2880 conicto +512 2880 lineto +512 3366 lineto +677 3447 953 3515 conicto +1229 3584 1488 3584 conicto +1741 3584 1934 3537 conicto +2128 3490 2284 3388 conicto +2452 3275 2538 3116 conicto +2624 2957 2624 2745 conicto +2624 2455 2416 2238 conicto +2208 2022 1925 1966 conicto +1925 1934 lineto +2038 1915 2183 1854 conicto +2329 1794 2430 1705 conicto +end_ol grestore +gsave 19.306955 11.453750 translate 0.035278 -0.035278 scale +start_ol +1152 0 moveto +576 0 lineto +576 704 lineto +1152 704 lineto +1152 0 lineto +end_ol grestore +gsave 19.539234 11.453750 translate 0.035278 -0.035278 scale +start_ol +2752 0 moveto +2180 0 lineto +1421 1008 lineto +703 0 lineto +128 0 lineto +1176 1308 lineto +128 2624 lineto +701 2624 lineto +1464 1633 lineto +2174 2624 lineto +2752 2624 lineto +1697 1332 lineto +2752 0 lineto +end_ol grestore +gsave 13.933750 12.253750 translate 0.035278 -0.035278 scale +start_ol +2752 3136 moveto +896 3136 lineto +896 2112 lineto +2496 2112 lineto +2496 1728 lineto +896 1728 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +2752 3520 lineto +2752 3136 lineto +end_ol grestore +gsave 14.300901 12.253750 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 14.685539 12.253750 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 14.860370 12.253750 translate 0.035278 -0.035278 scale +start_ol +896 0 moveto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 0 lineto +end_ol grestore +gsave 15.035202 12.253750 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 299 lineto +1956 123 1754 29 conicto +1553 -64 1310 -64 conicto +902 -64 675 187 conicto +448 439 448 926 conicto +448 2624 lineto +896 2624 lineto +896 1112 lineto +896 910 914 766 conicto +933 622 992 520 conicto +1054 415 1153 367 conicto +1252 320 1440 320 conicto +1607 320 1805 410 conicto +2004 501 2176 641 conicto +2176 2624 lineto +2624 2624 lineto +2624 0 lineto +end_ol grestore +gsave 15.439816 12.253750 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 15.712056 12.253750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 16.094197 12.253750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 16.318985 12.253750 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 16.706120 12.253750 translate 0.035278 -0.035278 scale +start_ol +1856 3264 moveto +1832 3264 lineto +1758 3285 1639 3306 conicto +1520 3328 1429 3328 conicto +1141 3328 1011 3196 conicto +881 3064 881 2718 conicto +881 2624 lineto +1664 2624 lineto +1664 2240 lineto +896 2240 lineto +896 0 lineto +448 0 lineto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 2714 lineto +448 3196 684 3454 conicto +920 3712 1365 3712 conicto +1515 3712 1635 3698 conicto +1756 3684 1856 3665 conicto +1856 3264 lineto +end_ol grestore +gsave 16.930909 12.253750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 17.155697 12.253750 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 17.427937 12.253750 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 17.812575 12.253750 translate 0.035278 -0.035278 scale +start_ol +2560 0 moveto +2112 0 lineto +2112 281 lineto +1923 118 1717 27 conicto +1512 -64 1272 -64 conicto +805 -64 530 295 conicto +256 655 256 1292 conicto +256 1624 350 1883 conicto +445 2142 606 2324 conicto +765 2501 976 2594 conicto +1188 2688 1414 2688 conicto +1619 2688 1778 2645 conicto +1937 2602 2112 2511 conicto +2112 3712 lineto +2560 3712 lineto +2560 0 lineto +2112 624 moveto +2112 2160 lineto +1934 2242 1793 2273 conicto +1653 2304 1486 2304 conicto +1116 2304 910 2040 conicto +704 1777 704 1293 conicto +704 816 863 568 conicto +1023 320 1374 320 conicto +1561 320 1753 405 conicto +1946 490 2112 624 conicto +end_ol grestore +gsave 18.212195 12.253750 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 18.387026 12.253750 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 18.774162 12.253750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 18.998950 12.253750 translate 0.035278 -0.035278 scale +start_ol +4352 0 moveto +3904 0 lineto +3904 1512 lineto +3904 1683 3888 1842 conicto +3873 2002 3822 2097 conicto +3767 2199 3664 2251 conicto +3561 2304 3366 2304 conicto +3176 2304 2986 2210 conicto +2797 2116 2607 1971 conicto +2614 1916 2619 1843 conicto +2624 1771 2624 1700 conicto +2624 0 lineto +2176 0 lineto +2176 1512 lineto +2176 1688 2160 1846 conicto +2145 2004 2094 2100 conicto +2039 2202 1936 2253 conicto +1833 2304 1638 2304 conicto +1453 2304 1267 2213 conicto +1081 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2333 lineto +1107 2500 1316 2594 conicto +1526 2688 1763 2688 conicto +2037 2688 2227 2577 conicto +2418 2467 2511 2272 conicto +2784 2493 3009 2590 conicto +3235 2688 3491 2688 conicto +3933 2688 4142 2427 conicto +4352 2166 4352 1698 conicto +4352 0 lineto +end_ol grestore +gsave 19.620861 12.253750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 20.003002 12.253750 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 20.335187 12.253750 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 20.667371 12.253750 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 21.052009 12.253750 translate 0.035278 -0.035278 scale +start_ol +2560 320 moveto +2560 -341 2255 -650 conicto +1950 -960 1316 -960 conicto +1106 -960 906 -930 conicto +706 -900 512 -845 conicto +512 -384 lineto +536 -384 lineto +644 -433 880 -504 conicto +1116 -576 1352 -576 conicto +1579 -576 1727 -522 conicto +1876 -468 1959 -372 conicto +2041 -280 2076 -151 conicto +2112 -22 2112 138 conicto +2112 377 lineto +1914 219 1733 141 conicto +1552 64 1272 64 conicto +805 64 530 399 conicto +256 734 256 1345 conicto +256 1679 350 1921 conicto +445 2164 609 2340 conicto +760 2505 977 2596 conicto +1195 2688 1409 2688 conicto +1636 2688 1789 2643 conicto +1942 2598 2112 2505 conicto +2141 2624 lineto +2560 2624 lineto +2560 320 lineto +2112 721 moveto +2112 2156 lineto +1936 2236 1785 2270 conicto +1634 2304 1484 2304 conicto +1121 2304 912 2059 conicto +704 1814 704 1348 conicto +704 905 858 676 conicto +1013 448 1372 448 conicto +1564 448 1757 522 conicto +1950 596 2112 721 conicto +end_ol grestore +gsave 21.451629 12.253750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 21.833770 12.253750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 15.235000 13.053750 translate 0.035278 -0.035278 scale +start_ol +2432 157 moveto +2206 53 2003 -5 conicto +1800 -64 1572 -64 conicto +1282 -64 1039 19 conicto +796 103 623 273 conicto +448 443 352 702 conicto +256 961 256 1307 conicto +256 1953 617 2320 conicto +979 2688 1572 2688 conicto +1803 2688 2025 2625 conicto +2247 2562 2432 2471 conicto +2432 1984 lineto +2408 1984 lineto +2199 2138 1976 2221 conicto +1754 2304 1542 2304 conicto +1154 2304 929 2050 conicto +704 1797 704 1307 conicto +704 831 924 575 conicto +1144 320 1542 320 conicto +1681 320 1824 354 conicto +1968 389 2082 444 conicto +2182 493 2269 547 conicto +2357 601 2408 640 conicto +2432 640 lineto +2432 157 lineto +end_ol grestore +gsave 15.567184 13.053750 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 15.954319 13.053750 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 16.358933 13.053750 translate 0.035278 -0.035278 scale +start_ol +1792 7 moveto +1668 -24 1522 -44 conicto +1377 -64 1262 -64 conicto +863 -64 655 152 conicto +448 368 448 845 conicto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 3392 lineto +896 3392 lineto +896 2624 lineto +1792 2624 lineto +1792 2240 lineto +896 2240 lineto +896 1042 lineto +896 835 905 718 conicto +914 602 970 501 conicto +1021 407 1110 363 conicto +1199 320 1381 320 conicto +1487 320 1602 344 conicto +1718 368 1769 384 conicto +1792 384 lineto +1792 7 lineto +end_ol grestore +gsave 16.611197 13.053750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 16.993338 13.053750 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 17.397952 13.053750 translate 0.035278 -0.035278 scale +start_ol +1792 7 moveto +1668 -24 1522 -44 conicto +1377 -64 1262 -64 conicto +863 -64 655 152 conicto +448 368 448 845 conicto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 3392 lineto +896 3392 lineto +896 2624 lineto +1792 2624 lineto +1792 2240 lineto +896 2240 lineto +896 1042 lineto +896 835 905 718 conicto +914 602 970 501 conicto +1021 407 1110 363 conicto +1199 320 1381 320 conicto +1487 320 1602 344 conicto +1718 368 1769 384 conicto +1792 384 lineto +1792 7 lineto +end_ol grestore +gsave 17.650216 13.053750 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 17.875004 13.053750 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 18.257145 13.053750 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 18.661759 13.053750 translate 0.035278 -0.035278 scale +start_ol +2432 157 moveto +2206 53 2003 -5 conicto +1800 -64 1572 -64 conicto +1282 -64 1039 19 conicto +796 103 623 273 conicto +448 443 352 702 conicto +256 961 256 1307 conicto +256 1953 617 2320 conicto +979 2688 1572 2688 conicto +1803 2688 2025 2625 conicto +2247 2562 2432 2471 conicto +2432 1984 lineto +2408 1984 lineto +2199 2138 1976 2221 conicto +1754 2304 1542 2304 conicto +1154 2304 929 2050 conicto +704 1797 704 1307 conicto +704 831 924 575 conicto +1144 320 1542 320 conicto +1681 320 1824 354 conicto +1968 389 2082 444 conicto +2182 493 2269 547 conicto +2357 601 2408 640 conicto +2432 640 lineto +2432 157 lineto +end_ol grestore +gsave 18.993944 13.053750 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 19.381079 13.053750 translate 0.035278 -0.035278 scale +start_ol +2560 0 moveto +2112 0 lineto +2112 281 lineto +1923 118 1717 27 conicto +1512 -64 1272 -64 conicto +805 -64 530 295 conicto +256 655 256 1292 conicto +256 1624 350 1883 conicto +445 2142 606 2324 conicto +765 2501 976 2594 conicto +1188 2688 1414 2688 conicto +1619 2688 1778 2645 conicto +1937 2602 2112 2511 conicto +2112 3712 lineto +2560 3712 lineto +2560 0 lineto +2112 624 moveto +2112 2160 lineto +1934 2242 1793 2273 conicto +1653 2304 1486 2304 conicto +1116 2304 910 2040 conicto +704 1777 704 1293 conicto +704 816 863 568 conicto +1023 320 1374 320 conicto +1561 320 1753 405 conicto +1946 490 2112 624 conicto +end_ol grestore +gsave 19.780699 13.053750 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 19.955530 13.053750 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 20.360145 13.053750 translate 0.035278 -0.035278 scale +start_ol +2560 320 moveto +2560 -341 2255 -650 conicto +1950 -960 1316 -960 conicto +1106 -960 906 -930 conicto +706 -900 512 -845 conicto +512 -384 lineto +536 -384 lineto +644 -433 880 -504 conicto +1116 -576 1352 -576 conicto +1579 -576 1727 -522 conicto +1876 -468 1959 -372 conicto +2041 -280 2076 -151 conicto +2112 -22 2112 138 conicto +2112 377 lineto +1914 219 1733 141 conicto +1552 64 1272 64 conicto +805 64 530 399 conicto +256 734 256 1345 conicto +256 1679 350 1921 conicto +445 2164 609 2340 conicto +760 2505 977 2596 conicto +1195 2688 1409 2688 conicto +1636 2688 1789 2643 conicto +1942 2598 2112 2505 conicto +2141 2624 lineto +2560 2624 lineto +2560 320 lineto +2112 721 moveto +2112 2156 lineto +1936 2236 1785 2270 conicto +1634 2304 1484 2304 conicto +1121 2304 912 2059 conicto +704 1814 704 1348 conicto +704 905 858 676 conicto +1013 448 1372 448 conicto +1564 448 1757 522 conicto +1950 596 2112 721 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 1.000000 1.000000 srgb +n -5.000000 10.000000 m -5.000000 14.000000 l 5.000000 14.000000 l 5.000000 10.000000 l f +0.000000 0.000000 0.000000 srgb +n -5.000000 10.000000 m -5.000000 14.000000 l 5.000000 14.000000 l 5.000000 10.000000 l cp s +gsave -1.936250 11.844031 translate 0.035278 -0.035278 scale +start_ol +3328 0 moveto +2774 0 lineto +1298 1607 lineto +896 1194 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +896 3520 lineto +896 1677 lineto +2680 3520 lineto +3264 3520 lineto +1626 1865 lineto +3328 0 lineto +end_ol grestore +gsave -1.494164 11.844031 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave -1.089550 11.844031 translate 0.035278 -0.035278 scale +start_ol +3392 0 moveto +2849 0 lineto +1646 1408 lineto +896 1408 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1432 3520 lineto +1751 3520 1963 3479 conicto +2176 3438 2346 3332 conicto +2537 3212 2644 3029 conicto +2752 2847 2752 2566 conicto +2752 2187 2562 1931 conicto +2373 1676 2040 1547 conicto +3392 0 lineto +2240 2541 moveto +2240 2694 2187 2812 conicto +2134 2930 2012 3012 conicto +1910 3081 1771 3108 conicto +1633 3136 1444 3136 conicto +896 3136 lineto +896 1792 lineto +1367 1792 lineto +1588 1792 1753 1831 conicto +1918 1871 2033 1979 conicto +2139 2079 2189 2209 conicto +2240 2340 2240 2541 conicto +end_ol grestore +gsave -0.644968 11.844031 translate 0.035278 -0.035278 scale +start_ol +3200 0 moveto +2607 0 lineto +896 3149 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1192 3520 lineto +2752 645 lineto +2752 3520 lineto +3200 3520 lineto +3200 0 lineto +end_ol grestore +gsave -0.165419 11.844031 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave 0.239196 11.844031 translate 0.035278 -0.035278 scale +start_ol +2688 0 moveto +448 0 lineto +448 3520 lineto +896 3520 lineto +896 384 lineto +2688 384 lineto +2688 0 lineto +end_ol grestore +gsave 0.596358 11.844031 translate 0.035278 -0.035278 scale +start_ol +1856 1408 moveto +384 1408 lineto +384 1792 lineto +1856 1792 lineto +1856 1408 lineto +end_ol grestore +gsave 0.886085 11.844031 translate 0.035278 -0.035278 scale +start_ol +2430 1705 moveto +2542 1603 2615 1449 conicto +2688 1296 2688 1052 conicto +2688 811 2601 610 conicto +2514 409 2357 260 conicto +2181 94 1942 15 conicto +1704 -64 1420 -64 conicto +1129 -64 847 4 conicto +565 73 384 154 conicto +384 640 lineto +419 640 lineto +615 502 880 411 conicto +1145 320 1392 320 conicto +1537 320 1701 370 conicto +1865 421 1966 520 conicto +2072 627 2124 755 conicto +2176 883 2176 1078 conicto +2176 1272 2119 1398 conicto +2063 1525 1963 1598 conicto +1863 1672 1721 1700 conicto +1580 1728 1416 1728 conicto +1216 1728 lineto +1216 2112 lineto +1372 2112 lineto +1710 2112 1911 2263 conicto +2112 2415 2112 2706 conicto +2112 2835 2059 2931 conicto +2007 3028 1914 3090 conicto +1817 3152 1705 3176 conicto +1594 3200 1453 3200 conicto +1237 3200 994 3116 conicto +751 3033 535 2880 conicto +512 2880 lineto +512 3366 lineto +677 3447 953 3515 conicto +1229 3584 1488 3584 conicto +1741 3584 1934 3537 conicto +2128 3490 2284 3388 conicto +2452 3275 2538 3116 conicto +2624 2957 2624 2745 conicto +2624 2455 2416 2238 conicto +2208 2022 1925 1966 conicto +1925 1934 lineto +2038 1915 2183 1854 conicto +2329 1794 2430 1705 conicto +end_ol grestore +gsave 1.293205 11.844031 translate 0.035278 -0.035278 scale +start_ol +1152 0 moveto +576 0 lineto +576 704 lineto +1152 704 lineto +1152 0 lineto +end_ol grestore +gsave 1.525484 11.844031 translate 0.035278 -0.035278 scale +start_ol +2560 0 moveto +640 0 lineto +640 384 lineto +1408 384 lineto +1408 2688 lineto +640 2688 lineto +640 3008 lineto +795 3008 972 3034 conicto +1149 3060 1241 3109 conicto +1354 3170 1419 3265 conicto +1484 3360 1494 3520 conicto +1856 3520 lineto +1856 384 lineto +2560 384 lineto +2560 0 lineto +end_ol grestore +gsave -3.541250 12.644031 translate 0.035278 -0.035278 scale +start_ol +1664 0 moveto +320 0 lineto +320 384 lineto +768 384 lineto +768 3136 lineto +320 3136 lineto +320 3520 lineto +1664 3520 lineto +1664 3136 lineto +1216 3136 lineto +1216 384 lineto +1664 384 lineto +1664 0 lineto +end_ol grestore +gsave -3.269010 12.644031 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave -2.864396 12.644031 translate 0.035278 -0.035278 scale +start_ol +2432 157 moveto +2206 53 2003 -5 conicto +1800 -64 1572 -64 conicto +1282 -64 1039 19 conicto +796 103 623 273 conicto +448 443 352 702 conicto +256 961 256 1307 conicto +256 1953 617 2320 conicto +979 2688 1572 2688 conicto +1803 2688 2025 2625 conicto +2247 2562 2432 2471 conicto +2432 1984 lineto +2408 1984 lineto +2199 2138 1976 2221 conicto +1754 2304 1542 2304 conicto +1154 2304 929 2050 conicto +704 1797 704 1307 conicto +704 831 924 575 conicto +1144 320 1542 320 conicto +1681 320 1824 354 conicto +1968 389 2082 444 conicto +2182 493 2269 547 conicto +2357 601 2408 640 conicto +2432 640 lineto +2432 157 lineto +end_ol grestore +gsave -2.532212 12.644031 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave -2.145077 12.644031 translate 0.035278 -0.035278 scale +start_ol +4352 0 moveto +3904 0 lineto +3904 1512 lineto +3904 1683 3888 1842 conicto +3873 2002 3822 2097 conicto +3767 2199 3664 2251 conicto +3561 2304 3366 2304 conicto +3176 2304 2986 2210 conicto +2797 2116 2607 1971 conicto +2614 1916 2619 1843 conicto +2624 1771 2624 1700 conicto +2624 0 lineto +2176 0 lineto +2176 1512 lineto +2176 1688 2160 1846 conicto +2145 2004 2094 2100 conicto +2039 2202 1936 2253 conicto +1833 2304 1638 2304 conicto +1453 2304 1267 2213 conicto +1081 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2333 lineto +1107 2500 1316 2594 conicto +1526 2688 1763 2688 conicto +2037 2688 2227 2577 conicto +2418 2467 2511 2272 conicto +2784 2493 3009 2590 conicto +3235 2688 3491 2688 conicto +3933 2688 4142 2427 conicto +4352 2166 4352 1698 conicto +4352 0 lineto +end_ol grestore +gsave -1.523165 12.644031 translate 0.035278 -0.035278 scale +start_ol +2752 1333 moveto +2752 1013 2661 748 conicto +2570 484 2404 301 conicto +2250 127 2041 31 conicto +1832 -64 1599 -64 conicto +1396 -64 1231 -19 conicto +1066 25 896 119 conicto +896 -960 lineto +448 -960 lineto +448 2624 lineto +896 2624 lineto +896 2340 lineto +1071 2488 1289 2588 conicto +1508 2688 1755 2688 conicto +2227 2688 2489 2329 conicto +2752 1971 2752 1333 conicto +2304 1334 moveto +2304 1821 2142 2062 conicto +1981 2304 1646 2304 conicto +1456 2304 1264 2219 conicto +1072 2135 896 1997 conicto +896 470 lineto +1083 383 1218 351 conicto +1353 320 1524 320 conicto +1892 320 2098 576 conicto +2304 832 2304 1334 conicto +end_ol grestore +gsave -1.123545 12.644031 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave -0.738907 12.644031 translate 0.035278 -0.035278 scale +start_ol +1792 7 moveto +1668 -24 1522 -44 conicto +1377 -64 1262 -64 conicto +863 -64 655 152 conicto +448 368 448 845 conicto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 3392 lineto +896 3392 lineto +896 2624 lineto +1792 2624 lineto +1792 2240 lineto +896 2240 lineto +896 1042 lineto +896 835 905 718 conicto +914 602 970 501 conicto +1021 407 1110 363 conicto +1199 320 1381 320 conicto +1487 320 1602 344 conicto +1718 368 1769 384 conicto +1792 384 lineto +1792 7 lineto +end_ol grestore +gsave -0.486644 12.644031 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave -0.311812 12.644031 translate 0.035278 -0.035278 scale +start_ol +2752 1332 moveto +2752 1005 2660 743 conicto +2568 482 2411 305 conicto +2245 120 2047 28 conicto +1849 -64 1610 -64 conicto +1389 -64 1223 -11 conicto +1057 41 896 130 conicto +867 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2343 lineto +1080 2495 1288 2591 conicto +1496 2688 1755 2688 conicto +2217 2688 2484 2333 conicto +2752 1978 2752 1332 conicto +2304 1332 moveto +2304 1810 2149 2057 conicto +1995 2304 1650 2304 conicto +1458 2304 1261 2219 conicto +1065 2134 896 2001 conicto +896 473 lineto +1083 387 1218 353 conicto +1353 320 1524 320 conicto +1889 320 2096 564 conicto +2304 809 2304 1332 conicto +end_ol grestore +gsave 0.087808 12.644031 translate 0.035278 -0.035278 scale +start_ol +896 0 moveto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 0 lineto +end_ol grestore +gsave 0.262640 12.644031 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 0.644781 12.644031 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 0.869569 12.644031 translate 0.035278 -0.035278 scale +start_ol +2752 2624 moveto +1664 0 lineto +1209 0 lineto +128 2624 lineto +613 2624 lineto +1452 536 lineto +2267 2624 lineto +2752 2624 lineto +end_ol grestore +gsave 1.249213 12.644031 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 1.631354 12.644031 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 1.903594 12.644031 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 2.235778 12.644031 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 2.410610 12.644031 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 2.797745 12.644031 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 3.202359 12.644031 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 8.265000 12.268750 translate 0.035278 -0.035278 scale +start_ol +2304 -1024 moveto +1376 -1024 lineto +903 -461 675 135 conicto +448 731 448 1440 conicto +448 2149 675 2745 conicto +903 3341 1376 3904 conicto +2304 3904 lineto +2304 3831 lineto +2109 3649 1932 3417 conicto +1756 3185 1605 2875 conicto +1460 2577 1370 2214 conicto +1280 1851 1280 1440 conicto +1280 1012 1367 664 conicto +1455 316 1605 5 conicto +1749 -290 1930 -532 conicto +2112 -774 2304 -951 conicto +2304 -1024 lineto +end_ol grestore +gsave 8.632151 12.268750 translate 0.035278 -0.035278 scale +start_ol +1408 0 moveto +448 0 lineto +448 960 lineto +1408 960 lineto +1408 0 lineto +end_ol grestore +gsave 8.876915 12.268750 translate 0.035278 -0.035278 scale +start_ol +1408 0 moveto +448 0 lineto +448 960 lineto +1408 960 lineto +1408 0 lineto +end_ol grestore +gsave 9.121679 12.268750 translate 0.035278 -0.035278 scale +start_ol +1408 0 moveto +448 0 lineto +448 960 lineto +1408 960 lineto +1408 0 lineto +end_ol grestore +gsave 9.366444 12.268750 translate 0.035278 -0.035278 scale +start_ol +2304 1440 moveto +2304 731 2076 135 conicto +1849 -461 1376 -1024 conicto +448 -1024 lineto +448 -951 lineto +640 -774 823 -533 conicto +1006 -293 1147 5 conicto +1297 316 1384 664 conicto +1472 1012 1472 1440 conicto +1472 1851 1382 2214 conicto +1292 2577 1147 2875 conicto +996 3185 819 3417 conicto +643 3649 448 3831 conicto +448 3904 lineto +1376 3904 lineto +1849 3341 2076 2745 conicto +2304 2149 2304 1440 conicto +end_ol grestore +showpage diff --git a/Workspace/SafetyRequirementsExamples/includes/ext_fta.pdf b/Workspace/SafetyRequirementsExamples/includes/ext_fta.pdf new file mode 100755 index 0000000..feb97b8 Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/includes/ext_fta.pdf differ diff --git a/Workspace/SafetyRequirementsExamples/includes/process.dia b/Workspace/SafetyRequirementsExamples/includes/process.dia new file mode 100755 index 0000000..74b1308 Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/includes/process.dia differ diff --git a/Workspace/SafetyRequirementsExamples/includes/process.eps b/Workspace/SafetyRequirementsExamples/includes/process.eps new file mode 100755 index 0000000..d7897e0 --- /dev/null +++ b/Workspace/SafetyRequirementsExamples/includes/process.eps @@ -0,0 +1,2438 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /cygdrive/c/Documents and Settings/7312820T/Mes documents/OpenETCS/Documents/proto_safety/process.dia +%%Creator: Dia v0.97.2 +%%CreationDate: Thu Jan 17 14:03:14 2013 +%%For: 7312820T +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 802 512 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /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 /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +7.050000 -20.050000 translate +%%EndProlog + + +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +0.874510 0.411765 0.494118 srgb +n 2.086270 12.059460 m 3.386270 11.659460 l 4.236270 12.509460 l 5.286270 11.409460 l 6.236270 12.259460 l 7.786270 11.959460 l 7.786270 11.009460 l 9.036270 9.859460 l 7.536270 9.559460 l 7.636270 8.459460 l 5.686270 8.659460 l 4.136270 8.159460 l 3.536270 9.159460 l 1.786270 9.309460 l 2.386270 10.709460 l ef +0.000000 0.000000 0.000000 srgb +n 2.086270 12.059460 m 3.386270 11.659460 l 4.236270 12.509460 l 5.286270 11.409460 l 6.236270 12.259460 l 7.786270 11.959460 l 7.786270 11.009460 l 9.036270 9.859460 l 7.536270 9.559460 l 7.636270 8.459460 l 5.686270 8.659460 l 4.136270 8.159460 l 3.536270 9.159460 l 1.786270 9.309460 l 2.386270 10.709460 l cp s +0.874510 0.411765 0.494118 srgb +n 3.790020 9.545710 m 3.790020 11.123210 l 7.032520 11.123210 l 7.032520 9.545710 l f +0.000000 0.000000 0.000000 srgb +gsave 4.380020 10.188210 translate 0.035278 -0.035278 scale +start_ol +3072 1005 moveto +3072 799 2975 598 conicto +2878 397 2703 258 conicto +2511 106 2255 21 conicto +2000 -64 1641 -64 conicto +1255 -64 947 9 conicto +639 82 320 227 conicto +320 832 lineto +353 832 lineto +622 586 974 453 conicto +1326 320 1635 320 conicto +2073 320 2316 488 conicto +2560 657 2560 938 conicto +2560 1172 2443 1283 conicto +2327 1394 2089 1456 conicto +1909 1503 1699 1534 conicto +1489 1565 1254 1612 conicto +779 1711 549 1951 conicto +320 2191 320 2577 conicto +320 3019 704 3301 conicto +1088 3584 1679 3584 conicto +2061 3584 2379 3510 conicto +2698 3436 2944 3328 conicto +2944 2752 lineto +2910 2752 lineto +2704 2945 2369 3072 conicto +2034 3200 1684 3200 conicto +1299 3200 1065 3038 conicto +832 2877 832 2622 conicto +832 2402 947 2277 conicto +1062 2152 1353 2085 conicto +1507 2052 1790 2005 conicto +2073 1958 2270 1908 conicto +2669 1804 2870 1593 conicto +3072 1383 3072 1005 conicto +end_ol grestore +gsave 4.817112 10.188210 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 5.201750 10.188210 translate 0.035278 -0.035278 scale +start_ol +1856 3264 moveto +1832 3264 lineto +1758 3285 1639 3306 conicto +1520 3328 1429 3328 conicto +1141 3328 1011 3196 conicto +881 3064 881 2718 conicto +881 2624 lineto +1664 2624 lineto +1664 2240 lineto +896 2240 lineto +896 0 lineto +448 0 lineto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 2714 lineto +448 3196 684 3454 conicto +920 3712 1365 3712 conicto +1515 3712 1635 3698 conicto +1756 3684 1856 3665 conicto +1856 3264 lineto +end_ol grestore +gsave 5.426538 10.188210 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 5.808679 10.188210 translate 0.035278 -0.035278 scale +start_ol +1792 7 moveto +1668 -24 1522 -44 conicto +1377 -64 1262 -64 conicto +863 -64 655 152 conicto +448 368 448 845 conicto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 3392 lineto +896 3392 lineto +896 2624 lineto +1792 2624 lineto +1792 2240 lineto +896 2240 lineto +896 1042 lineto +896 835 905 718 conicto +914 602 970 501 conicto +1021 407 1110 363 conicto +1199 320 1381 320 conicto +1487 320 1602 344 conicto +1718 368 1769 384 conicto +1792 384 lineto +1792 7 lineto +end_ol grestore +gsave 6.060943 10.188210 translate 0.035278 -0.035278 scale +start_ol +2752 2624 moveto +1182 -960 lineto +682 -960 lineto +1199 132 lineto +128 2624 lineto +616 2624 lineto +1445 657 lineto +2263 2624 lineto +2752 2624 lineto +end_ol grestore +gsave 3.790020 10.988210 translate 0.035278 -0.035278 scale +start_ol +2816 2472 moveto +2816 2241 2730 2044 conicto +2645 1847 2492 1703 conicto +2301 1523 2041 1433 conicto +1782 1344 1386 1344 conicto +896 1344 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1430 3520 lineto +1756 3520 1982 3467 conicto +2208 3415 2383 3303 conicto +2590 3171 2703 2972 conicto +2816 2774 2816 2472 conicto +2304 2462 moveto +2304 2644 2237 2779 conicto +2171 2914 2035 2999 conicto +1916 3072 1764 3104 conicto +1612 3136 1380 3136 conicto +896 3136 lineto +896 1728 lineto +1309 1728 lineto +1605 1728 1790 1779 conicto +1975 1830 2092 1941 conicto +2208 2055 2256 2180 conicto +2304 2305 2304 2462 conicto +end_ol grestore +gsave 4.174658 10.988210 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 4.446898 10.988210 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 4.834033 10.988210 translate 0.035278 -0.035278 scale +start_ol +2752 1333 moveto +2752 1013 2661 748 conicto +2570 484 2404 301 conicto +2250 127 2041 31 conicto +1832 -64 1599 -64 conicto +1396 -64 1231 -19 conicto +1066 25 896 119 conicto +896 -960 lineto +448 -960 lineto +448 2624 lineto +896 2624 lineto +896 2340 lineto +1071 2488 1289 2588 conicto +1508 2688 1755 2688 conicto +2227 2688 2489 2329 conicto +2752 1971 2752 1333 conicto +2304 1334 moveto +2304 1821 2142 2062 conicto +1981 2304 1646 2304 conicto +1456 2304 1264 2219 conicto +1072 2135 896 1997 conicto +896 470 lineto +1083 383 1218 351 conicto +1353 320 1524 320 conicto +1892 320 2098 576 conicto +2304 832 2304 1334 conicto +end_ol grestore +gsave 5.233653 10.988210 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 5.615794 10.988210 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 5.888034 10.988210 translate 0.035278 -0.035278 scale +start_ol +1792 7 moveto +1668 -24 1522 -44 conicto +1377 -64 1262 -64 conicto +863 -64 655 152 conicto +448 368 448 845 conicto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 3392 lineto +896 3392 lineto +896 2624 lineto +1792 2624 lineto +1792 2240 lineto +896 2240 lineto +896 1042 lineto +896 835 905 718 conicto +914 602 970 501 conicto +1021 407 1110 363 conicto +1199 320 1381 320 conicto +1487 320 1602 344 conicto +1718 368 1769 384 conicto +1792 384 lineto +1792 7 lineto +end_ol grestore +gsave 6.140297 10.988210 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 6.315129 10.988210 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 6.697270 10.988210 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.847059 0.898039 0.898039 srgb +n -6.913730 2.059460 m -6.913730 4.059460 l -0.913730 4.059460 l -0.913730 2.059460 l f +0.000000 0.000000 0.000000 srgb +n -6.913730 2.059460 m -6.913730 4.059460 l -0.913730 4.059460 l -0.913730 2.059460 l cp s +gsave -5.757480 3.313210 translate 0.035278 -0.035278 scale +start_ol +3072 1005 moveto +3072 799 2975 598 conicto +2878 397 2703 258 conicto +2511 106 2255 21 conicto +2000 -64 1641 -64 conicto +1255 -64 947 9 conicto +639 82 320 227 conicto +320 832 lineto +353 832 lineto +622 586 974 453 conicto +1326 320 1635 320 conicto +2073 320 2316 488 conicto +2560 657 2560 938 conicto +2560 1172 2443 1283 conicto +2327 1394 2089 1456 conicto +1909 1503 1699 1534 conicto +1489 1565 1254 1612 conicto +779 1711 549 1951 conicto +320 2191 320 2577 conicto +320 3019 704 3301 conicto +1088 3584 1679 3584 conicto +2061 3584 2379 3510 conicto +2698 3436 2944 3328 conicto +2944 2752 lineto +2910 2752 lineto +2704 2945 2369 3072 conicto +2034 3200 1684 3200 conicto +1299 3200 1065 3038 conicto +832 2877 832 2622 conicto +832 2402 947 2277 conicto +1062 2152 1353 2085 conicto +1507 2052 1790 2005 conicto +2073 1958 2270 1908 conicto +2669 1804 2870 1593 conicto +3072 1383 3072 1005 conicto +end_ol grestore +gsave -5.320388 3.313210 translate 0.035278 -0.035278 scale +start_ol +3136 1419 moveto +3136 1037 3052 753 conicto +2969 469 2779 280 conicto +2597 101 2355 18 conicto +2113 -64 1791 -64 conicto +1462 -64 1217 23 conicto +972 110 805 280 conicto +615 474 531 747 conicto +448 1021 448 1419 conicto +448 3520 lineto +896 3520 lineto +896 1384 lineto +896 1097 935 931 conicto +975 766 1069 631 conicto +1174 476 1355 398 conicto +1537 320 1791 320 conicto +2047 320 2227 397 conicto +2407 474 2515 631 conicto +2609 766 2648 940 conicto +2688 1114 2688 1372 conicto +2688 3520 lineto +3136 3520 lineto +3136 1419 lineto +end_ol grestore +gsave -4.853332 3.313210 translate 0.035278 -0.035278 scale +start_ol +3136 1088 moveto +3136 825 3035 623 conicto +2935 421 2765 290 conicto +2564 133 2323 66 conicto +2083 0 1712 0 conicto +448 0 lineto +448 3520 lineto +1496 3520 lineto +1884 3520 2076 3492 conicto +2269 3464 2445 3374 conicto +2640 3273 2728 3114 conicto +2816 2956 2816 2735 conicto +2816 2485 2686 2310 conicto +2556 2135 2340 2032 conicto +2340 2013 lineto +2710 1939 2923 1698 conicto +3136 1457 3136 1088 conicto +2304 2681 moveto +2304 2810 2261 2898 conicto +2218 2986 2123 3041 conicto +2011 3105 1852 3120 conicto +1693 3136 1457 3136 conicto +896 3136 lineto +896 2112 lineto +1505 2112 lineto +1726 2112 1857 2134 conicto +1988 2157 2099 2229 conicto +2211 2300 2257 2413 conicto +2304 2526 2304 2681 conicto +2624 1066 moveto +2624 1284 2559 1412 conicto +2494 1541 2324 1631 conicto +2208 1692 2043 1710 conicto +1879 1728 1643 1728 conicto +896 1728 lineto +896 384 lineto +1526 384 lineto +1838 384 2037 417 conicto +2237 450 2364 537 conicto +2499 631 2561 752 conicto +2624 874 2624 1066 conicto +end_ol grestore +gsave -4.413744 3.313210 translate 0.035278 -0.035278 scale +start_ol +3072 1005 moveto +3072 799 2975 598 conicto +2878 397 2703 258 conicto +2511 106 2255 21 conicto +2000 -64 1641 -64 conicto +1255 -64 947 9 conicto +639 82 320 227 conicto +320 832 lineto +353 832 lineto +622 586 974 453 conicto +1326 320 1635 320 conicto +2073 320 2316 488 conicto +2560 657 2560 938 conicto +2560 1172 2443 1283 conicto +2327 1394 2089 1456 conicto +1909 1503 1699 1534 conicto +1489 1565 1254 1612 conicto +779 1711 549 1951 conicto +320 2191 320 2577 conicto +320 3019 704 3301 conicto +1088 3584 1679 3584 conicto +2061 3584 2379 3510 conicto +2698 3436 2944 3328 conicto +2944 2752 lineto +2910 2752 lineto +2704 2945 2369 3072 conicto +2034 3200 1684 3200 conicto +1299 3200 1065 3038 conicto +832 2877 832 2622 conicto +832 2402 947 2277 conicto +1062 2152 1353 2085 conicto +1507 2052 1790 2005 conicto +2073 1958 2270 1908 conicto +2669 1804 2870 1593 conicto +3072 1383 3072 1005 conicto +end_ol grestore +gsave -3.976652 3.313210 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave -3.572038 3.313210 translate 0.035278 -0.035278 scale +start_ol +3008 3136 moveto +1728 3136 lineto +1728 0 lineto +1280 0 lineto +1280 3136 lineto +0 3136 lineto +0 3520 lineto +3008 3520 lineto +3008 3136 lineto +end_ol grestore +gsave -3.177412 3.313210 translate 0.035278 -0.035278 scale +start_ol +1856 1408 moveto +384 1408 lineto +384 1792 lineto +1856 1792 lineto +1856 1408 lineto +end_ol grestore +gsave -2.887685 3.313210 translate 0.035278 -0.035278 scale +start_ol +2752 988 moveto +2752 536 2406 236 conicto +2060 -64 1536 -64 conicto +980 -64 650 229 conicto +320 522 320 978 conicto +320 1269 477 1504 conicto +635 1740 921 1878 conicto +921 1892 lineto +647 2042 515 2220 conicto +384 2398 384 2665 conicto +384 3059 709 3321 conicto +1034 3584 1536 3584 conicto +2061 3584 2374 3333 conicto +2688 3083 2688 2696 conicto +2688 2460 2538 2231 conicto +2388 2003 2098 1874 conicto +2098 1860 lineto +2416 1719 2584 1513 conicto +2752 1307 2752 988 conicto +2240 2705 moveto +2240 2961 2049 3112 conicto +1858 3264 1561 3264 conicto +1269 3264 1082 3120 conicto +896 2977 896 2734 conicto +896 2562 988 2436 conicto +1080 2311 1266 2213 conicto +1350 2170 1508 2100 conicto +1666 2031 1816 1986 conicto +2056 2144 2148 2313 conicto +2240 2483 2240 2705 conicto +2240 963 moveto +2240 1174 2147 1301 conicto +2055 1428 1785 1556 conicto +1678 1606 1550 1649 conicto +1422 1693 1209 1771 conicto +1038 1659 935 1466 conicto +832 1274 832 1032 conicto +832 723 1033 521 conicto +1235 320 1545 320 conicto +1861 320 2050 491 conicto +2240 663 2240 963 conicto +end_ol grestore +gsave -2.480566 3.313210 translate 0.035278 -0.035278 scale +start_ol +2752 988 moveto +2752 536 2406 236 conicto +2060 -64 1536 -64 conicto +980 -64 650 229 conicto +320 522 320 978 conicto +320 1269 477 1504 conicto +635 1740 921 1878 conicto +921 1892 lineto +647 2042 515 2220 conicto +384 2398 384 2665 conicto +384 3059 709 3321 conicto +1034 3584 1536 3584 conicto +2061 3584 2374 3333 conicto +2688 3083 2688 2696 conicto +2688 2460 2538 2231 conicto +2388 2003 2098 1874 conicto +2098 1860 lineto +2416 1719 2584 1513 conicto +2752 1307 2752 988 conicto +2240 2705 moveto +2240 2961 2049 3112 conicto +1858 3264 1561 3264 conicto +1269 3264 1082 3120 conicto +896 2977 896 2734 conicto +896 2562 988 2436 conicto +1080 2311 1266 2213 conicto +1350 2170 1508 2100 conicto +1666 2031 1816 1986 conicto +2056 2144 2148 2313 conicto +2240 2483 2240 2705 conicto +2240 963 moveto +2240 1174 2147 1301 conicto +2055 1428 1785 1556 conicto +1678 1606 1550 1649 conicto +1422 1693 1209 1771 conicto +1038 1659 935 1466 conicto +832 1274 832 1032 conicto +832 723 1033 521 conicto +1235 320 1545 320 conicto +1861 320 2050 491 conicto +2240 663 2240 963 conicto +end_ol grestore +0.500000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n -3.913730 4.059460 m -3.913730 6.059460 l 4.911270 6.059460 l 4.911270 7.475443 l s +[] 0 sd +0 slj +0 slc +n 4.911270 7.850443 m 4.661270 7.350443 l 4.911270 7.475443 l 5.161270 7.350443 l ef +n 4.911270 7.850443 m 4.661270 7.350443 l 4.911270 7.475443 l 5.161270 7.350443 l cp s +0.500000 slw +[] 0 sd +[] 0 sd +0 slc +n 4.905106 4.047998 m 4.909950 7.475444 l s +[] 0 sd +0 slj +0 slc +n 4.910480 7.850444 m 4.659774 7.350798 l 4.909950 7.475444 l 5.159773 7.350091 l ef +n 4.910480 7.850444 m 4.659774 7.350798 l 4.909950 7.475444 l 5.159773 7.350091 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.847059 0.898039 0.898039 srgb +n 1.905106 2.047998 m 1.905106 4.047998 l 7.905106 4.047998 l 7.905106 2.047998 l f +0.000000 0.000000 0.000000 srgb +n 1.905106 2.047998 m 1.905106 4.047998 l 7.905106 4.047998 l 7.905106 2.047998 l cp s +0.847059 0.898039 0.898039 srgb +n 3.061356 2.659248 m 3.061356 3.436748 l 6.748856 3.436748 l 6.748856 2.659248 l f +0.000000 0.000000 0.000000 srgb +gsave 3.061356 3.301748 translate 0.035278 -0.035278 scale +start_ol +3072 1005 moveto +3072 799 2975 598 conicto +2878 397 2703 258 conicto +2511 106 2255 21 conicto +2000 -64 1641 -64 conicto +1255 -64 947 9 conicto +639 82 320 227 conicto +320 832 lineto +353 832 lineto +622 586 974 453 conicto +1326 320 1635 320 conicto +2073 320 2316 488 conicto +2560 657 2560 938 conicto +2560 1172 2443 1283 conicto +2327 1394 2089 1456 conicto +1909 1503 1699 1534 conicto +1489 1565 1254 1612 conicto +779 1711 549 1951 conicto +320 2191 320 2577 conicto +320 3019 704 3301 conicto +1088 3584 1679 3584 conicto +2061 3584 2379 3510 conicto +2698 3436 2944 3328 conicto +2944 2752 lineto +2910 2752 lineto +2704 2945 2369 3072 conicto +2034 3200 1684 3200 conicto +1299 3200 1065 3038 conicto +832 2877 832 2622 conicto +832 2402 947 2277 conicto +1062 2152 1353 2085 conicto +1507 2052 1790 2005 conicto +2073 1958 2270 1908 conicto +2669 1804 2870 1593 conicto +3072 1383 3072 1005 conicto +end_ol grestore +gsave 3.498448 3.301748 translate 0.035278 -0.035278 scale +start_ol +3136 1419 moveto +3136 1037 3052 753 conicto +2969 469 2779 280 conicto +2597 101 2355 18 conicto +2113 -64 1791 -64 conicto +1462 -64 1217 23 conicto +972 110 805 280 conicto +615 474 531 747 conicto +448 1021 448 1419 conicto +448 3520 lineto +896 3520 lineto +896 1384 lineto +896 1097 935 931 conicto +975 766 1069 631 conicto +1174 476 1355 398 conicto +1537 320 1791 320 conicto +2047 320 2227 397 conicto +2407 474 2515 631 conicto +2609 766 2648 940 conicto +2688 1114 2688 1372 conicto +2688 3520 lineto +3136 3520 lineto +3136 1419 lineto +end_ol grestore +gsave 3.965504 3.301748 translate 0.035278 -0.035278 scale +start_ol +3136 1088 moveto +3136 825 3035 623 conicto +2935 421 2765 290 conicto +2564 133 2323 66 conicto +2083 0 1712 0 conicto +448 0 lineto +448 3520 lineto +1496 3520 lineto +1884 3520 2076 3492 conicto +2269 3464 2445 3374 conicto +2640 3273 2728 3114 conicto +2816 2956 2816 2735 conicto +2816 2485 2686 2310 conicto +2556 2135 2340 2032 conicto +2340 2013 lineto +2710 1939 2923 1698 conicto +3136 1457 3136 1088 conicto +2304 2681 moveto +2304 2810 2261 2898 conicto +2218 2986 2123 3041 conicto +2011 3105 1852 3120 conicto +1693 3136 1457 3136 conicto +896 3136 lineto +896 2112 lineto +1505 2112 lineto +1726 2112 1857 2134 conicto +1988 2157 2099 2229 conicto +2211 2300 2257 2413 conicto +2304 2526 2304 2681 conicto +2624 1066 moveto +2624 1284 2559 1412 conicto +2494 1541 2324 1631 conicto +2208 1692 2043 1710 conicto +1879 1728 1643 1728 conicto +896 1728 lineto +896 384 lineto +1526 384 lineto +1838 384 2037 417 conicto +2237 450 2364 537 conicto +2499 631 2561 752 conicto +2624 874 2624 1066 conicto +end_ol grestore +gsave 4.405092 3.301748 translate 0.035278 -0.035278 scale +start_ol +3072 1005 moveto +3072 799 2975 598 conicto +2878 397 2703 258 conicto +2511 106 2255 21 conicto +2000 -64 1641 -64 conicto +1255 -64 947 9 conicto +639 82 320 227 conicto +320 832 lineto +353 832 lineto +622 586 974 453 conicto +1326 320 1635 320 conicto +2073 320 2316 488 conicto +2560 657 2560 938 conicto +2560 1172 2443 1283 conicto +2327 1394 2089 1456 conicto +1909 1503 1699 1534 conicto +1489 1565 1254 1612 conicto +779 1711 549 1951 conicto +320 2191 320 2577 conicto +320 3019 704 3301 conicto +1088 3584 1679 3584 conicto +2061 3584 2379 3510 conicto +2698 3436 2944 3328 conicto +2944 2752 lineto +2910 2752 lineto +2704 2945 2369 3072 conicto +2034 3200 1684 3200 conicto +1299 3200 1065 3038 conicto +832 2877 832 2622 conicto +832 2402 947 2277 conicto +1062 2152 1353 2085 conicto +1507 2052 1790 2005 conicto +2073 1958 2270 1908 conicto +2669 1804 2870 1593 conicto +3072 1383 3072 1005 conicto +end_ol grestore +gsave 4.842184 3.301748 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave 5.246798 3.301748 translate 0.035278 -0.035278 scale +start_ol +3008 3136 moveto +1728 3136 lineto +1728 0 lineto +1280 0 lineto +1280 3136 lineto +0 3136 lineto +0 3520 lineto +3008 3520 lineto +3008 3136 lineto +end_ol grestore +gsave 5.641424 3.301748 translate 0.035278 -0.035278 scale +start_ol +1856 1408 moveto +384 1408 lineto +384 1792 lineto +1856 1792 lineto +1856 1408 lineto +end_ol grestore +gsave 5.931151 3.301748 translate 0.035278 -0.035278 scale +start_ol +2752 1970 moveto +2752 1510 2645 1135 conicto +2539 761 2324 497 conicto +2106 228 1778 82 conicto +1450 -64 1007 -64 conicto +882 -64 772 -51 conicto +662 -38 576 -9 conicto +576 448 lineto +600 448 lineto +668 402 792 361 conicto +917 320 1070 320 conicto +1590 320 1885 640 conicto +2181 961 2228 1524 conicto +2011 1393 1820 1336 conicto +1630 1280 1404 1280 conicto +1190 1280 1016 1322 conicto +843 1364 668 1486 conicto +463 1630 359 1850 conicto +256 2071 256 2378 conicto +256 2913 611 3248 conicto +966 3584 1478 3584 conicto +1734 3584 1951 3505 conicto +2169 3426 2333 3268 conicto +2534 3073 2643 2765 conicto +2752 2458 2752 1970 conicto +2240 2077 moveto +2240 2440 2167 2660 conicto +2095 2881 1968 3003 conicto +1861 3109 1738 3154 conicto +1616 3200 1473 3200 conicto +1147 3200 957 2989 conicto +768 2778 768 2396 conicto +768 2173 829 2032 conicto +890 1891 1036 1786 conicto +1138 1713 1260 1688 conicto +1383 1664 1532 1664 conicto +1709 1664 1890 1713 conicto +2072 1762 2231 1856 conicto +2233 1906 2236 1954 conicto +2240 2002 2240 2077 conicto +end_ol grestore +gsave 6.338270 3.301748 translate 0.035278 -0.035278 scale +start_ol +2560 0 moveto +640 0 lineto +640 384 lineto +1408 384 lineto +1408 2688 lineto +640 2688 lineto +640 3008 lineto +795 3008 972 3034 conicto +1149 3060 1241 3109 conicto +1354 3170 1419 3265 conicto +1484 3360 1494 3520 conicto +1856 3520 lineto +1856 384 lineto +2560 384 lineto +2560 0 lineto +end_ol grestore +0.500000 slw +[] 0 sd +[] 0 sd +0 slc +n 4.905549 16.140182 m 4.884759 12.844914 l s +[] 0 sd +0 slj +0 slc +n 4.882394 12.469922 m 5.135543 12.968335 l 4.884759 12.844914 l 4.635553 12.971489 l ef +n 4.882394 12.469922 m 5.135543 12.968335 l 4.884759 12.844914 l 4.635553 12.971489 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.847059 0.898039 0.898039 srgb +n 1.905549 16.140182 m 1.905549 18.140182 l 7.905549 18.140182 l 7.905549 16.140182 l f +0.000000 0.000000 0.000000 srgb +n 1.905549 16.140182 m 1.905549 18.140182 l 7.905549 18.140182 l 7.905549 16.140182 l cp s +0.847059 0.898039 0.898039 srgb +n 3.061799 16.751432 m 3.061799 17.528932 l 6.749299 17.528932 l 6.749299 16.751432 l f +0.000000 0.000000 0.000000 srgb +gsave 3.061799 17.393932 translate 0.035278 -0.035278 scale +start_ol +3072 1005 moveto +3072 799 2975 598 conicto +2878 397 2703 258 conicto +2511 106 2255 21 conicto +2000 -64 1641 -64 conicto +1255 -64 947 9 conicto +639 82 320 227 conicto +320 832 lineto +353 832 lineto +622 586 974 453 conicto +1326 320 1635 320 conicto +2073 320 2316 488 conicto +2560 657 2560 938 conicto +2560 1172 2443 1283 conicto +2327 1394 2089 1456 conicto +1909 1503 1699 1534 conicto +1489 1565 1254 1612 conicto +779 1711 549 1951 conicto +320 2191 320 2577 conicto +320 3019 704 3301 conicto +1088 3584 1679 3584 conicto +2061 3584 2379 3510 conicto +2698 3436 2944 3328 conicto +2944 2752 lineto +2910 2752 lineto +2704 2945 2369 3072 conicto +2034 3200 1684 3200 conicto +1299 3200 1065 3038 conicto +832 2877 832 2622 conicto +832 2402 947 2277 conicto +1062 2152 1353 2085 conicto +1507 2052 1790 2005 conicto +2073 1958 2270 1908 conicto +2669 1804 2870 1593 conicto +3072 1383 3072 1005 conicto +end_ol grestore +gsave 3.498890 17.393932 translate 0.035278 -0.035278 scale +start_ol +3136 1419 moveto +3136 1037 3052 753 conicto +2969 469 2779 280 conicto +2597 101 2355 18 conicto +2113 -64 1791 -64 conicto +1462 -64 1217 23 conicto +972 110 805 280 conicto +615 474 531 747 conicto +448 1021 448 1419 conicto +448 3520 lineto +896 3520 lineto +896 1384 lineto +896 1097 935 931 conicto +975 766 1069 631 conicto +1174 476 1355 398 conicto +1537 320 1791 320 conicto +2047 320 2227 397 conicto +2407 474 2515 631 conicto +2609 766 2648 940 conicto +2688 1114 2688 1372 conicto +2688 3520 lineto +3136 3520 lineto +3136 1419 lineto +end_ol grestore +gsave 3.965946 17.393932 translate 0.035278 -0.035278 scale +start_ol +3136 1088 moveto +3136 825 3035 623 conicto +2935 421 2765 290 conicto +2564 133 2323 66 conicto +2083 0 1712 0 conicto +448 0 lineto +448 3520 lineto +1496 3520 lineto +1884 3520 2076 3492 conicto +2269 3464 2445 3374 conicto +2640 3273 2728 3114 conicto +2816 2956 2816 2735 conicto +2816 2485 2686 2310 conicto +2556 2135 2340 2032 conicto +2340 2013 lineto +2710 1939 2923 1698 conicto +3136 1457 3136 1088 conicto +2304 2681 moveto +2304 2810 2261 2898 conicto +2218 2986 2123 3041 conicto +2011 3105 1852 3120 conicto +1693 3136 1457 3136 conicto +896 3136 lineto +896 2112 lineto +1505 2112 lineto +1726 2112 1857 2134 conicto +1988 2157 2099 2229 conicto +2211 2300 2257 2413 conicto +2304 2526 2304 2681 conicto +2624 1066 moveto +2624 1284 2559 1412 conicto +2494 1541 2324 1631 conicto +2208 1692 2043 1710 conicto +1879 1728 1643 1728 conicto +896 1728 lineto +896 384 lineto +1526 384 lineto +1838 384 2037 417 conicto +2237 450 2364 537 conicto +2499 631 2561 752 conicto +2624 874 2624 1066 conicto +end_ol grestore +gsave 4.405535 17.393932 translate 0.035278 -0.035278 scale +start_ol +3072 1005 moveto +3072 799 2975 598 conicto +2878 397 2703 258 conicto +2511 106 2255 21 conicto +2000 -64 1641 -64 conicto +1255 -64 947 9 conicto +639 82 320 227 conicto +320 832 lineto +353 832 lineto +622 586 974 453 conicto +1326 320 1635 320 conicto +2073 320 2316 488 conicto +2560 657 2560 938 conicto +2560 1172 2443 1283 conicto +2327 1394 2089 1456 conicto +1909 1503 1699 1534 conicto +1489 1565 1254 1612 conicto +779 1711 549 1951 conicto +320 2191 320 2577 conicto +320 3019 704 3301 conicto +1088 3584 1679 3584 conicto +2061 3584 2379 3510 conicto +2698 3436 2944 3328 conicto +2944 2752 lineto +2910 2752 lineto +2704 2945 2369 3072 conicto +2034 3200 1684 3200 conicto +1299 3200 1065 3038 conicto +832 2877 832 2622 conicto +832 2402 947 2277 conicto +1062 2152 1353 2085 conicto +1507 2052 1790 2005 conicto +2073 1958 2270 1908 conicto +2669 1804 2870 1593 conicto +3072 1383 3072 1005 conicto +end_ol grestore +gsave 4.842626 17.393932 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave 5.247240 17.393932 translate 0.035278 -0.035278 scale +start_ol +3008 3136 moveto +1728 3136 lineto +1728 0 lineto +1280 0 lineto +1280 3136 lineto +0 3136 lineto +0 3520 lineto +3008 3520 lineto +3008 3136 lineto +end_ol grestore +gsave 5.641866 17.393932 translate 0.035278 -0.035278 scale +start_ol +1856 1408 moveto +384 1408 lineto +384 1792 lineto +1856 1792 lineto +1856 1408 lineto +end_ol grestore +gsave 5.931593 17.393932 translate 0.035278 -0.035278 scale +start_ol +2752 0 moveto +384 0 lineto +384 474 lineto +629 690 875 905 conicto +1121 1121 1333 1334 conicto +1781 1780 1946 2042 conicto +2112 2304 2112 2608 conicto +2112 2886 1931 3043 conicto +1750 3200 1427 3200 conicto +1211 3200 960 3121 conicto +710 3042 472 2880 conicto +448 2880 lineto +448 3368 lineto +618 3449 902 3516 conicto +1186 3584 1452 3584 conicto +2001 3584 2312 3322 conicto +2624 3060 2624 2611 conicto +2624 2410 2573 2235 conicto +2522 2061 2423 1905 conicto +2330 1757 2205 1615 conicto +2081 1473 1904 1300 conicto +1650 1051 1380 817 conicto +1110 583 875 384 conicto +2752 384 lineto +2752 0 lineto +end_ol grestore +gsave 6.338713 17.393932 translate 0.035278 -0.035278 scale +start_ol +2816 1142 moveto +2816 609 2462 272 conicto +2108 -64 1594 -64 conicto +1334 -64 1120 16 conicto +907 96 744 254 conicto +540 450 430 772 conicto +320 1095 320 1550 conicto +320 2017 421 2377 conicto +523 2738 746 3018 conicto +957 3285 1289 3434 conicto +1622 3584 2065 3584 conicto +2206 3584 2302 3572 conicto +2398 3560 2496 3529 conicto +2496 3072 lineto +2472 3072 lineto +2407 3118 2274 3159 conicto +2141 3200 2002 3200 conicto +1496 3200 1194 2875 conicto +893 2550 844 1996 conicto +1040 2116 1229 2178 conicto +1419 2240 1668 2240 conicto +1889 2240 2058 2199 conicto +2227 2158 2404 2034 conicto +2609 1890 2712 1672 conicto +2816 1454 2816 1142 conicto +2304 1124 moveto +2304 1342 2241 1485 conicto +2179 1629 2036 1734 conicto +1932 1809 1805 1832 conicto +1678 1856 1540 1856 conicto +1347 1856 1181 1809 conicto +1016 1762 841 1664 conicto +837 1612 834 1564 conicto +832 1516 832 1443 conicto +832 1073 905 858 conicto +979 644 1109 519 conicto +1213 416 1334 368 conicto +1456 320 1599 320 conicto +1927 320 2115 527 conicto +2304 735 2304 1124 conicto +end_ol grestore +gsave 5.334055 5.752871 translate 0.035278 -0.035278 scale +start_ol +2752 3136 moveto +896 3136 lineto +896 2112 lineto +2496 2112 lineto +2496 1728 lineto +896 1728 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +2752 3520 lineto +2752 3136 lineto +end_ol grestore +gsave 5.701206 5.752871 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 6.085844 5.752871 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 299 lineto +1956 123 1754 29 conicto +1553 -64 1310 -64 conicto +902 -64 675 187 conicto +448 439 448 926 conicto +448 2624 lineto +896 2624 lineto +896 1112 lineto +896 910 914 766 conicto +933 622 992 520 conicto +1054 415 1153 367 conicto +1252 320 1440 320 conicto +1607 320 1805 410 conicto +2004 501 2176 641 conicto +2176 2624 lineto +2624 2624 lineto +2624 0 lineto +end_ol grestore +gsave 6.490458 5.752871 translate 0.035278 -0.035278 scale +start_ol +896 0 moveto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 0 lineto +end_ol grestore +gsave 6.665289 5.752871 translate 0.035278 -0.035278 scale +start_ol +1792 7 moveto +1668 -24 1522 -44 conicto +1377 -64 1262 -64 conicto +863 -64 655 152 conicto +448 368 448 845 conicto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 3392 lineto +896 3392 lineto +896 2624 lineto +1792 2624 lineto +1792 2240 lineto +896 2240 lineto +896 1042 lineto +896 835 905 718 conicto +914 602 970 501 conicto +1021 407 1110 363 conicto +1199 320 1381 320 conicto +1487 320 1602 344 conicto +1718 368 1769 384 conicto +1792 384 lineto +1792 7 lineto +end_ol grestore +gsave 6.917553 5.752871 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 7.142341 5.752871 translate 0.035278 -0.035278 scale +start_ol +3008 3136 moveto +1728 3136 lineto +1728 0 lineto +1280 0 lineto +1280 3136 lineto +0 3136 lineto +0 3520 lineto +3008 3520 lineto +3008 3136 lineto +end_ol grestore +gsave 7.536967 5.752871 translate 0.035278 -0.035278 scale +start_ol +2048 2112 moveto +2025 2112 lineto +1930 2146 1841 2161 conicto +1752 2176 1629 2176 conicto +1432 2176 1249 2086 conicto +1066 1996 896 1853 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2236 lineto +1149 2448 1343 2536 conicto +1537 2624 1738 2624 conicto +1849 2624 1898 2618 conicto +1948 2612 2048 2594 conicto +2048 2112 lineto +end_ol grestore +gsave 7.809207 5.752871 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 8.191348 5.752871 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 5.334055 6.552871 translate 0.035278 -0.035278 scale +start_ol +3264 0 moveto +2787 0 lineto +2426 1024 lineto +903 1024 lineto +541 0 lineto +64 0 lineto +1351 3520 lineto +1977 3520 lineto +3264 0 lineto +2287 1408 moveto +1664 3142 lineto +1038 1408 lineto +2287 1408 lineto +end_ol grestore +gsave 5.771146 6.552871 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 6.175761 6.552871 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 6.560399 6.552871 translate 0.035278 -0.035278 scale +start_ol +896 0 moveto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 0 lineto +end_ol grestore +gsave 6.735230 6.552871 translate 0.035278 -0.035278 scale +start_ol +2752 2624 moveto +1182 -960 lineto +682 -960 lineto +1199 132 lineto +128 2624 lineto +616 2624 lineto +1445 657 lineto +2263 2624 lineto +2752 2624 lineto +end_ol grestore +gsave 7.114874 6.552871 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 7.447059 6.552871 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 7.621890 6.552871 translate 0.035278 -0.035278 scale +start_ol +2368 756 moveto +2368 397 2062 166 conicto +1756 -64 1226 -64 conicto +926 -64 675 4 conicto +425 72 256 153 conicto +256 640 lineto +280 640 lineto +498 493 764 406 conicto +1031 320 1275 320 conicto +1578 320 1749 411 conicto +1920 503 1920 700 conicto +1920 855 1826 935 conicto +1733 1015 1467 1071 conicto +1369 1093 1210 1121 conicto +1051 1149 921 1182 conicto +559 1274 407 1451 conicto +256 1628 256 1887 conicto +256 2049 324 2192 conicto +393 2336 533 2448 conicto +668 2559 876 2623 conicto +1084 2688 1342 2688 conicto +1583 2688 1829 2627 conicto +2076 2567 2240 2481 conicto +2240 1984 lineto +2216 1984 lineto +2041 2119 1790 2211 conicto +1540 2304 1299 2304 conicto +1049 2304 876 2213 conicto +704 2123 704 1945 conicto +704 1783 810 1701 conicto +913 1618 1145 1567 conicto +1273 1538 1431 1510 conicto +1590 1482 1696 1459 conicto +2018 1388 2193 1217 conicto +2368 1043 2368 756 conicto +end_ol grestore +gsave 5.418784 14.504080 translate 0.035278 -0.035278 scale +start_ol +2752 3136 moveto +896 3136 lineto +896 2112 lineto +2496 2112 lineto +2496 1728 lineto +896 1728 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +2752 3520 lineto +2752 3136 lineto +end_ol grestore +gsave 5.785935 14.504080 translate 0.035278 -0.035278 scale +start_ol +3648 0 moveto +3200 0 lineto +3200 3031 lineto +2188 960 lineto +1900 960 lineto +896 3031 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1104 3520 lineto +2074 1553 lineto +3012 3520 lineto +3648 3520 lineto +3648 0 lineto +end_ol grestore +gsave 6.325429 14.504080 translate 0.035278 -0.035278 scale +start_ol +2816 0 moveto +448 0 lineto +448 3520 lineto +2816 3520 lineto +2816 3136 lineto +896 3136 lineto +896 2112 lineto +2816 2112 lineto +2816 1728 lineto +896 1728 lineto +896 384 lineto +2816 384 lineto +2816 0 lineto +end_ol grestore +gsave 6.730043 14.504080 translate 0.035278 -0.035278 scale +start_ol +3200 266 moveto +3069 207 2963 155 conicto +2857 104 2685 48 conicto +2540 2 2369 -31 conicto +2199 -64 1994 -64 conicto +1608 -64 1292 43 conicto +976 151 742 380 conicto +513 605 384 951 conicto +256 1298 256 1756 conicto +256 2191 380 2534 conicto +504 2877 738 3114 conicto +964 3343 1284 3463 conicto +1605 3584 1996 3584 conicto +2282 3584 2567 3513 conicto +2852 3442 3200 3263 conicto +3200 2688 lineto +3165 2688 lineto +2874 2956 2588 3078 conicto +2302 3200 1976 3200 conicto +1709 3200 1495 3112 conicto +1281 3025 1113 2841 conicto +950 2661 859 2387 conicto +768 2113 768 1754 conicto +768 1378 868 1107 conicto +969 837 1127 667 conicto +1293 490 1514 405 conicto +1735 320 1980 320 conicto +2318 320 2613 448 conicto +2909 576 3167 832 conicto +3200 832 lineto +3200 266 lineto +end_ol grestore +gsave 7.177122 14.504080 translate 0.035278 -0.035278 scale +start_ol +3264 0 moveto +2787 0 lineto +2426 1024 lineto +903 1024 lineto +541 0 lineto +64 0 lineto +1351 3520 lineto +1977 3520 lineto +3264 0 lineto +2287 1408 moveto +1664 3142 lineto +1038 1408 lineto +2287 1408 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +0.592157 0.933333 0.592157 srgb +n 18.254500 8.857782 m 19.254500 8.857782 18.688128 9.096094 18.936685 9.166339 c 19.185243 9.236583 19.182925 9.229290 19.669234 9.494058 c 20.155542 9.758826 20.067643 9.338089 20.305394 9.532613 c 20.543145 9.727136 20.527175 9.785146 20.671668 9.937442 c 20.816161 10.089738 21.177754 9.900644 21.172351 10.446390 c 21.166947 10.992136 20.568765 10.745176 20.382504 10.882044 c 20.196243 11.018911 20.546497 10.986617 20.054785 11.267595 c 19.563073 11.548574 19.640317 11.238679 19.341515 11.402538 c 19.042712 11.566398 19.204137 11.788090 18.204137 11.788090 c 17.204137 11.788090 17.480859 12.072464 17.182425 11.923033 c 16.883992 11.773602 17.050326 11.535905 16.931817 11.441094 c 16.813307 11.346282 16.914450 11.624337 16.471369 11.354166 c 16.028288 11.083994 15.558190 11.056977 15.563593 10.511231 c 15.568996 9.965485 16.166705 9.988552 16.334212 9.783221 c 16.501718 9.577891 16.120146 9.554824 16.568630 9.279249 c 17.017115 9.003675 17.182425 9.301282 17.529422 9.320559 c 17.876418 9.339837 17.254500 8.857782 18.254500 8.857782 c ef +0.000000 0.000000 0.000000 srgb +n 18.254500 8.857782 m 19.254500 8.857782 18.688128 9.096094 18.936685 9.166339 c 19.185243 9.236583 19.182925 9.229290 19.669234 9.494058 c 20.155542 9.758826 20.067643 9.338089 20.305394 9.532613 c 20.543145 9.727136 20.527175 9.785146 20.671668 9.937442 c 20.816161 10.089738 21.177754 9.900644 21.172351 10.446390 c 21.166947 10.992136 20.568765 10.745176 20.382504 10.882044 c 20.196243 11.018911 20.546497 10.986617 20.054785 11.267595 c 19.563073 11.548574 19.640317 11.238679 19.341515 11.402538 c 19.042712 11.566398 19.204137 11.788090 18.204137 11.788090 c 17.204137 11.788090 17.480859 12.072464 17.182425 11.923033 c 16.883992 11.773602 17.050326 11.535905 16.931817 11.441094 c 16.813307 11.346282 16.914450 11.624337 16.471369 11.354166 c 16.028288 11.083994 15.558190 11.056977 15.563593 10.511231 c 15.568996 9.965485 16.166705 9.988552 16.334212 9.783221 c 16.501718 9.577891 16.120146 9.554824 16.568630 9.279249 c 17.017115 9.003675 17.182425 9.301282 17.529422 9.320559 c 17.876418 9.339837 17.254500 8.857782 18.254500 8.857782 c s +gsave 17.290529 10.644158 translate 0.035278 -0.035278 scale +start_ol +3648 0 moveto +3200 0 lineto +3200 3031 lineto +2188 960 lineto +1900 960 lineto +896 3031 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1104 3520 lineto +2074 1553 lineto +3012 3520 lineto +3648 3520 lineto +3648 0 lineto +end_ol grestore +gsave 17.830022 10.644158 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 18.217157 10.644158 translate 0.035278 -0.035278 scale +start_ol +2560 0 moveto +2112 0 lineto +2112 281 lineto +1923 118 1717 27 conicto +1512 -64 1272 -64 conicto +805 -64 530 295 conicto +256 655 256 1292 conicto +256 1624 350 1883 conicto +445 2142 606 2324 conicto +765 2501 976 2594 conicto +1188 2688 1414 2688 conicto +1619 2688 1778 2645 conicto +1937 2602 2112 2511 conicto +2112 3712 lineto +2560 3712 lineto +2560 0 lineto +2112 624 moveto +2112 2160 lineto +1934 2242 1793 2273 conicto +1653 2304 1486 2304 conicto +1116 2304 910 2040 conicto +704 1777 704 1293 conicto +704 816 863 568 conicto +1023 320 1374 320 conicto +1561 320 1753 405 conicto +1946 490 2112 624 conicto +end_ol grestore +gsave 18.616778 10.644158 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 18.998919 10.644158 translate 0.035278 -0.035278 scale +start_ol +896 0 moveto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 0 lineto +end_ol grestore +gsave 10.542405 12.610365 translate 0.035278 -0.035278 scale +start_ol +3264 3520 moveto +1977 0 lineto +1351 0 lineto +64 3520 lineto +541 3520 lineto +1663 386 lineto +2787 3520 lineto +3264 3520 lineto +end_ol grestore +gsave 10.979496 12.610365 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 11.364134 12.610365 translate 0.035278 -0.035278 scale +start_ol +896 0 moveto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 0 lineto +end_ol grestore +gsave 11.538966 12.610365 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 11.713798 12.610365 translate 0.035278 -0.035278 scale +start_ol +2560 0 moveto +2112 0 lineto +2112 281 lineto +1923 118 1717 27 conicto +1512 -64 1272 -64 conicto +805 -64 530 295 conicto +256 655 256 1292 conicto +256 1624 350 1883 conicto +445 2142 606 2324 conicto +765 2501 976 2594 conicto +1188 2688 1414 2688 conicto +1619 2688 1778 2645 conicto +1937 2602 2112 2511 conicto +2112 3712 lineto +2560 3712 lineto +2560 0 lineto +2112 624 moveto +2112 2160 lineto +1934 2242 1793 2273 conicto +1653 2304 1486 2304 conicto +1116 2304 910 2040 conicto +704 1777 704 1293 conicto +704 816 863 568 conicto +1023 320 1374 320 conicto +1561 320 1753 405 conicto +1946 490 2112 624 conicto +end_ol grestore +gsave 12.113418 12.610365 translate 0.035278 -0.035278 scale +start_ol +2496 0 moveto +2048 0 lineto +2048 286 lineto +1989 246 1889 175 conicto +1789 104 1695 62 conicto +1585 8 1441 -28 conicto +1298 -64 1105 -64 conicto +750 -64 503 169 conicto +256 402 256 763 conicto +256 1059 384 1242 conicto +512 1425 750 1530 conicto +990 1635 1326 1672 conicto +1662 1709 2048 1728 conicto +2048 1798 lineto +2048 1951 1996 2052 conicto +1944 2153 1846 2210 conicto +1754 2266 1624 2285 conicto +1494 2304 1353 2304 conicto +1182 2304 971 2254 conicto +760 2205 535 2112 conicto +512 2112 lineto +512 2567 lineto +640 2602 883 2645 conicto +1126 2688 1362 2688 conicto +1637 2688 1841 2642 conicto +2046 2596 2195 2486 conicto +2342 2378 2419 2206 conicto +2496 2035 2496 1781 conicto +2496 0 lineto +2048 623 moveto +2048 1344 lineto +1845 1332 1569 1309 conicto +1293 1286 1132 1242 conicto +941 1189 822 1076 conicto +704 964 704 767 conicto +704 545 841 432 conicto +978 320 1260 320 conicto +1494 320 1688 409 conicto +1882 498 2048 623 conicto +end_ol grestore +gsave 12.498056 12.610365 translate 0.035278 -0.035278 scale +start_ol +1792 7 moveto +1668 -24 1522 -44 conicto +1377 -64 1262 -64 conicto +863 -64 655 152 conicto +448 368 448 845 conicto +448 2240 lineto +128 2240 lineto +128 2624 lineto +448 2624 lineto +448 3392 lineto +896 3392 lineto +896 2624 lineto +1792 2624 lineto +1792 2240 lineto +896 2240 lineto +896 1042 lineto +896 835 905 718 conicto +914 602 970 501 conicto +1021 407 1110 363 conicto +1199 320 1381 320 conicto +1487 320 1602 344 conicto +1718 368 1769 384 conicto +1792 384 lineto +1792 7 lineto +end_ol grestore +gsave 12.750320 12.610365 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 12.925151 12.610365 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 13.312286 12.610365 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +0.300000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.300000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 13.214567 9.695045 m 10.947990 9.695045 l 10.947990 9.128401 l 9.814702 10.261689 l 10.947990 11.394977 l 10.947990 10.828333 l 13.214567 10.828333 l 13.214567 11.394977 l 14.347855 10.261689 l 13.214567 9.128401 l ef +0.000000 0.000000 0.000000 srgb +n 13.214567 9.695045 m 10.947990 9.695045 l 10.947990 9.128401 l 9.814702 10.261689 l 10.947990 11.394977 l 10.947990 10.828333 l 13.214567 10.828333 l 13.214567 11.394977 l 14.347855 10.261689 l 13.214567 9.128401 l cp s +0 slc +0 slj +[] 0 sd +n 13.214567 9.695045 m 10.947990 9.695045 l 10.947990 9.128401 l 9.814702 10.261689 l 10.947990 11.394977 l 10.947990 10.828333 l 13.214567 10.828333 l 13.214567 11.394977 l 14.347855 10.261689 l 13.214567 9.128401 l cp s +0.500000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 7.976305 17.165778 m 7.976305 17.165778 l 18.158575 17.165778 l 18.158575 12.796530 l s +[] 0 sd +0 slj +0 slc +n 18.158575 12.421530 m 18.408575 12.921530 l 18.158575 12.796530 l 17.908575 12.921530 l ef +n 18.158575 12.421530 m 18.408575 12.921530 l 18.158575 12.796530 l 17.908575 12.921530 l cp s +gsave 11.158264 16.334934 translate 0.035278 -0.035278 scale +start_ol +3648 0 moveto +3200 0 lineto +3200 3031 lineto +2188 960 lineto +1900 960 lineto +896 3031 lineto +896 0 lineto +448 0 lineto +448 3520 lineto +1104 3520 lineto +2074 1553 lineto +3012 3520 lineto +3648 3520 lineto +3648 0 lineto +end_ol grestore +gsave 11.697758 16.334934 translate 0.035278 -0.035278 scale +start_ol +2688 1311 moveto +2688 674 2358 305 conicto +2028 -64 1473 -64 conicto +914 -64 585 305 conicto +256 674 256 1311 conicto +256 1948 585 2318 conicto +914 2688 1473 2688 conicto +2028 2688 2358 2318 conicto +2688 1948 2688 1311 conicto +2240 1311 moveto +2240 1814 2037 2059 conicto +1834 2304 1473 2304 conicto +1108 2304 906 2059 conicto +704 1814 704 1311 conicto +704 824 907 572 conicto +1110 320 1473 320 conicto +1832 320 2036 569 conicto +2240 819 2240 1311 conicto +end_ol grestore +gsave 12.084893 16.334934 translate 0.035278 -0.035278 scale +start_ol +2560 0 moveto +2112 0 lineto +2112 281 lineto +1923 118 1717 27 conicto +1512 -64 1272 -64 conicto +805 -64 530 295 conicto +256 655 256 1292 conicto +256 1624 350 1883 conicto +445 2142 606 2324 conicto +765 2501 976 2594 conicto +1188 2688 1414 2688 conicto +1619 2688 1778 2645 conicto +1937 2602 2112 2511 conicto +2112 3712 lineto +2560 3712 lineto +2560 0 lineto +2112 624 moveto +2112 2160 lineto +1934 2242 1793 2273 conicto +1653 2304 1486 2304 conicto +1116 2304 910 2040 conicto +704 1777 704 1293 conicto +704 816 863 568 conicto +1023 320 1374 320 conicto +1561 320 1753 405 conicto +1946 490 2112 624 conicto +end_ol grestore +gsave 12.484513 16.334934 translate 0.035278 -0.035278 scale +start_ol +2624 1280 moveto +704 1280 lineto +704 1033 776 850 conicto +848 667 973 550 conicto +1093 435 1259 377 conicto +1425 320 1624 320 conicto +1888 320 2155 428 conicto +2423 536 2537 640 conicto +2560 640 lineto +2560 157 lineto +2339 63 2109 0 conicto +1879 -64 1626 -64 conicto +981 -64 618 289 conicto +256 642 256 1291 conicto +256 1933 605 2310 conicto +954 2688 1524 2688 conicto +2052 2688 2338 2383 conicto +2624 2078 2624 1516 conicto +2624 1280 lineto +2176 1600 moveto +2174 1936 2005 2120 conicto +1836 2304 1491 2304 conicto +1143 2304 937 2102 conicto +732 1900 704 1600 conicto +2176 1600 lineto +end_ol grestore +gsave 12.866654 16.334934 translate 0.035278 -0.035278 scale +start_ol +896 0 moveto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 0 lineto +end_ol grestore +gsave 13.041486 16.334934 translate 0.035278 -0.035278 scale +start_ol +896 3072 moveto +448 3072 lineto +448 3520 lineto +896 3520 lineto +896 3072 lineto +896 0 moveto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 0 lineto +end_ol grestore +gsave 13.216318 16.334934 translate 0.035278 -0.035278 scale +start_ol +2624 0 moveto +2176 0 lineto +2176 1512 lineto +2176 1695 2155 1855 conicto +2135 2016 2080 2107 conicto +2022 2207 1914 2255 conicto +1807 2304 1635 2304 conicto +1458 2304 1265 2213 conicto +1073 2123 896 1983 conicto +896 0 lineto +448 0 lineto +448 2624 lineto +896 2624 lineto +896 2325 lineto +1100 2496 1317 2592 conicto +1535 2688 1765 2688 conicto +2184 2688 2404 2433 conicto +2624 2178 2624 1698 conicto +2624 0 lineto +end_ol grestore +gsave 13.620932 16.334934 translate 0.035278 -0.035278 scale +start_ol +2560 320 moveto +2560 -341 2255 -650 conicto +1950 -960 1316 -960 conicto +1106 -960 906 -930 conicto +706 -900 512 -845 conicto +512 -384 lineto +536 -384 lineto +644 -433 880 -504 conicto +1116 -576 1352 -576 conicto +1579 -576 1727 -522 conicto +1876 -468 1959 -372 conicto +2041 -280 2076 -151 conicto +2112 -22 2112 138 conicto +2112 377 lineto +1914 219 1733 141 conicto +1552 64 1272 64 conicto +805 64 530 399 conicto +256 734 256 1345 conicto +256 1679 350 1921 conicto +445 2164 609 2340 conicto +760 2505 977 2596 conicto +1195 2688 1409 2688 conicto +1636 2688 1789 2643 conicto +1942 2598 2112 2505 conicto +2141 2624 lineto +2560 2624 lineto +2560 320 lineto +2112 721 moveto +2112 2156 lineto +1936 2236 1785 2270 conicto +1634 2304 1484 2304 conicto +1121 2304 912 2059 conicto +704 1814 704 1348 conicto +704 905 858 676 conicto +1013 448 1372 448 conicto +1564 448 1757 522 conicto +1950 596 2112 721 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n -7.000000 19.000000 m -7.000000 20.000000 l s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n -0.913730 3.059460 m 1.418307 3.049977 l s +[] 0 sd +0 slj +0 slc +n 1.793304 3.048452 m 1.294324 3.300484 l 1.418307 3.049977 l 1.292291 2.800488 l ef +n 1.793304 3.048452 m 1.294324 3.300484 l 1.418307 3.049977 l 1.292291 2.800488 l cp s +showpage diff --git a/Workspace/SafetyRequirementsExamples/includes/process.pdf b/Workspace/SafetyRequirementsExamples/includes/process.pdf new file mode 100755 index 0000000..5e3a3d7 Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/includes/process.pdf differ diff --git a/Workspace/SafetyRequirementsExamples/includes/trans_sb.dot b/Workspace/SafetyRequirementsExamples/includes/trans_sb.dot new file mode 100755 index 0000000..31c2dcb --- /dev/null +++ b/Workspace/SafetyRequirementsExamples/includes/trans_sb.dot @@ -0,0 +1,6 @@ +digraph FromSB { + SB [shape=box]; + SB -> IS; + SB -> SH; + SB -> FS +} \ No newline at end of file diff --git a/Workspace/SafetyRequirementsExamples/includes/trans_sb.pdf b/Workspace/SafetyRequirementsExamples/includes/trans_sb.pdf new file mode 100755 index 0000000..35c4001 Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/includes/trans_sb.pdf differ diff --git a/Workspace/SafetyRequirementsExamples/includes/trans_whole.dot b/Workspace/SafetyRequirementsExamples/includes/trans_whole.dot new file mode 100755 index 0000000..8df5c7f --- /dev/null +++ b/Workspace/SafetyRequirementsExamples/includes/trans_whole.dot @@ -0,0 +1,11 @@ +digraph Trans { + SB [shape=box]; + SB -> IS; + SH -> IS; + FS -> IS; + SB -> SH; + SB -> FS; + SH -> SB; + FS -> SB; + FS -> SH +} \ No newline at end of file diff --git a/Workspace/SafetyRequirementsExamples/includes/trans_whole.pdf b/Workspace/SafetyRequirementsExamples/includes/trans_whole.pdf new file mode 100755 index 0000000..5f3f60b Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/includes/trans_whole.pdf differ diff --git a/Workspace/SafetyRequirementsExamples/proto_safety.pdf b/Workspace/SafetyRequirementsExamples/proto_safety.pdf new file mode 100755 index 0000000..764696f Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/proto_safety.pdf differ diff --git a/Workspace/SafetyRequirementsExamples/proto_safety.tex b/Workspace/SafetyRequirementsExamples/proto_safety.tex new file mode 100755 index 0000000..2489387 --- /dev/null +++ b/Workspace/SafetyRequirementsExamples/proto_safety.tex @@ -0,0 +1,486 @@ +\documentclass{template/openetcs_article} +\usepackage{graphicx,rotating,color,url} +\graphicspath{{./template/}{./includes/}{.}} + +\def\implies{\Rightarrow} + +\newcommand{\tbd}{\colorbox{cyan}{\%\%To Be Defined\%\%}} +\newcommand{\tbc}{\colorbox{cyan}{\%\%To Be Confirmed\%\%}} +\newcommand{\todo}[1]{\colorbox{cyan}{\%\%{#1}\%\%}} +\newenvironment{issue}{ + \begin{quote} + \begin{itshape}Open Issue. +}{ + \end{itshape} + \end{quote} +} + +\newenvironment{comment}{ + \begin{quote} + \begin{itshape}Comment. +}{ + \end{itshape} + \end{quote} +} + +\newenvironment{justif}{ + \begin{quote} + \begin{itshape}Justification. +}{ + \end{itshape} + \end{quote} +} + + +\begin{document} +\frontmatter +\project{openETCS} +%define your workpackage here +\wp{Work-Package 2: ``Requirements''} + +%set a title here +\title{Safety properties for OpenETCS through two examples} + +%set a subtitle here + + + +%define a list of authors and their affiliation here + +\author{Sylvain Baro\\SNCF} + +\affiliation{SNCF INFRA/IG-SYS} + + +% define the coverart +\coverart[width=350pt]{chart} + +%define the type of report +\reporttype{Note} + +\maketitle + +\section{Introduction} +Some safety documentation is available in the ERTMS documentation set, despite it has not been +updated for the Baseline 3. + +The SUBSET-88 provides system fault trees, and lists several FMEA documents for various parts +of the system. The SUBSET-91 summarize the leaves-events of the fault trees, and provides some safety +requirements. + +The goal of the current document is to go through some prototyping examples chosen in the document +\emph{SRS subset for modelling tool benchmarking} and to define on these examples how the Safety +Requirement could be extracted from the ERTMS documentation downto the model level, and what +formalism could be used in order to express them. + +Please, note that the purpose of the models provided herebelow is not to be completely ``formal''. +It is only to be sufficiently formal in order to convince oneself that it will be possible to express +executable models and safety properties, and to outline the process followed in order to provide these. + +The formalism used for the model is state machines with actions and variables. As for the safety +properties it is a simple propositional calculus which specific predicates to handle transitions +and states of the model\,\footnote{This is sufficient for the examples in this document, but it +will probably not be the case for the whole OpenETCS project.}. + +Please also note that the process followed is described in an ``intuitive'' way, in order to make +it easily understandable and to show the different options. This document is not meant to describe +the Safety Analysis process in a formal way, this should be the purpose of the Safety Plan (WP4). The +process describe here should only be considered as ``one possible solution''. + +\section{Reference documents} +\begin{itemize} +\item WP2/D01 --- \emph{SRS subset for modelling tool benchmarking} +\item SUBSET-026 3.3.0 --- \emph{System Requirement Specification} +\item SUBSET-081 2.3.0 --- \emph{Transmission System: Failure modes and effects analysis} +\item SUBSET-088 2.3.0 --- \emph{ETCS Application Levels 1 \& 2 - Safety Analysis} +\item SUBSET-091 2.5.0 --- \emph{Safety Requirements for the Technical Interoperability +of ETCS in Levels 1 \& 2} +\end{itemize} + +\section{Example 1: Establishing a communication session} +In this example, we try to model the requirements in the 3.5.3 section of the SRS SUBSET 26, +for Level 2/3. + +The whole purpose of the function is to establish a communication either from the OBU, or from the +RBC. For the sake of simplicity, we will only cover the case where the communication is initiated by +the OBU. + +\subsection{Safety Properties from UNISIG documents} +\label{safety_top} +The processus of identification of the safety properties is a twin process of the processus of +defining the system and subsystems. + +Once the overall system is defined, the first step for the safety analysis should be to identify +which are the Safety Properties laying +on the objects that will be studied and modelled. Usually, in order to defined these Properties, +it is necessary to start at a very high level by the Preliminary Hazard Analysis (PHA) which states the +system Dread Events for the overall system. These events are very high level: for example we could +find electrocution, or head-on collision. + +The overall system should then be split into different subsystem with different area of responsibilities +(for example onboard subsystem, interlocking, driver\dots) + +The system-level Dread Events must now be allocated to the different subsystems according to the system +architecture, and refined to +match the subsystem boundaries and area of responsibilities. This can be done using +Fault Tree\,\footnote{We will call them Fault Trees even if all events in the trees will not necessarily +be Faults and Failures but could be random or sparse events.} Analysis. + +In the case of ERTMS, SUBSET-88 provides such Fault Trees. Fig. \ref{fig:ch_fault_tree} describes for +example the events leading to the Dread Event ``Brake Control Function Failure\,\footnote{Event +if this does not go up to the main system Dread Events, one can easily imagine how this +could cause a collision}''. The main event is then refined to leaves or other sub-Fault Trees, +in particular the Tree identified by GATE80, corresponding to an incorrect determination of the +current mode. + +This mid-level event is then also refined (Fig. \ref{fig:mode_fault_tree}) to events and especially +leaves that are expected to be of the SRS level. This leads in particular to the lower-level events +KERNEL-3 to KERNEL-6 (see Fig. \ref{fig:mode_fault_tree} or \ref{tab:kernel_evt}) which are related +to the radio transmission. These lower level events are +summarized into the SUBSET-91 document, which is a mandatory part of the ERTMS documentation. + +\begin{figure} + \centering + {For IPR reason, the figure was removed. \\ + The reader shoud refer to SUBSET-88-2 Part 1, Appendix B, p. 2} + \caption{Core Hazard Fault Tree (SUBSET-88)} + \label{fig:ch_fault_tree} +\end{figure} + +\begin{figure} + \centering + {For IPR reason, the figure was removed. \\ + The reader shoud refer to SUBSET-88-2 Part 1, Appendix B, p. 8} + \caption{Incorrect Mode Fault Tree (SUBSET-88)} + \label{fig:mode_fault_tree} +\end{figure} + +\begin{issue} +Should the Fault Trees Analysis provided in the SUBSET-88 be considered as complete? My feeling is +that it is not the case, because there is no ERTMS Safety Plan (AFAIK) to track the way the analysis +was conducted, so there is no proof that the analysis is sufficiently rigorous. + +Moreover, we'll see in Sect. \ref{gaps} that the trees should be refined again before being at the proper +level. +\end{issue} + +It is now necessary to analyze if each scenario is covered and how (and if the coverage is sufficient). +We will call ``scenario'' the succession of events needed to provoke a studied Dread Event (which could +be high- or low-level). Covering the scenario could be done by proving that a requested leaf is always +impossible to meet, or by proving that the conjunction of all the requested sub-events would be rarer +than the THR (Tolerable Hazard Rate) requested for ERTMS application or its allocation to the studied +sub-system. + +%\begin{sidewaysfigure} +\begin{figure} + \centering + {For IPR reason, the figure was removed. \\ + The reader shoud refer to SUBSET-88-2 Part 2, p. 23-24} + \caption{Kernel Dread Events (as in SUBSET-88 or SUBSET-91)} +\label{tab:kernel_evt} +\end{figure} +%\end{sidewaysfigure} + +SUBSET-88 provides the following informations on the events that interest us +(cf. Fig. \ref{tab:kernel_evt}). This table lists the base events (leaves) of the tree +and describes the impact of such events, and the mitigation used to avoid safety problems. +The problem is that whether there is a safety issue is not made that explicit: if we take +KERNEL-6, for example, the description states that a loss of communication could lead either to a +failure to receive more restrictive route information, or to the driver being obliged to use a lower +level. We can imagine that these are not catastrophic consequences (we wouldn't risk the safety on +the probability that a message does not reach its destination), but in order to make this statement, +it needs a system-level analysis. + +Nevertheless, in this case the third part of SUBSET-88 (9.3.3.1) provides an answer \footnote{ +The same explanation may be found also in SUBSET-91.}: +\begin{quote} +As indicated in 9.2.2.1, the data exchange between track and train is defined in the +ETCS specifications such that normally the deletion of a message does not result in a +hazard. Moreover, deletion of critical messages is mitigated by means of +acknowledgement procedures. The only case where deletion may lead to a hazardous +situation is in the case of Emergency messages and this situation is considered in the +following section. On the basis of these further considerations the possibility of +undetected deletion of messages is not carried forward as a provable / testable target. +\end{quote} + +\begin{issue} +Is it in our scope to provide the analysis stating that message deletion never leads to +an unsafe situation? +\end{issue} + +In the case of KERNEL-4, on the other hand, the situation is clearer. The table states that +``Radio link supervision'' is a protective function against this event. Hence it is here easy to +determine a safety property for the corresponding function! + +In the particular case of the transmission, there is yet another document that provides +information on safety issue: SUBSET-81 ``FMEA for Transmission System''. We see for the +line 5.2.4.2 (Fig. \ref{fig:fmea}) that some of the mitigations of the consequences of the loss +of message lie in the transmission protocol, but also in the way of using/dimensionning ERTMS, +which should consider (at a system-level) the impact of the loss of messages. + +\begin{figure} + \centering + {For IPR reason, the figure was removed. \\ + The reader shoud refer to SUBSET-81-2, p. 15} + \caption{Part of the FMEA for Transmission System (SUBSET-81)} + \label{fig:fmea} +\end{figure} + +\subsection{Model of the function} +The (simplified) proposed model for the function is provided Fig. \ref{fig:establish_tab} and +\ref{fig:establish}. The transitions and actions are the following. It is not useful here to detail +more the actions and formalism. + +\begin{figure} +\centering +\small +\begin{tabular}{|l|l||p{3.5cm}|p{3.5cm}|} +\hline +\bf From & \bf To & \bf Condition & \bf Action \\ +\hline +NoCom & Trying & Order(RBC\_ID) received & RBC\_Com := RBC\_ID \\ +\hline +Trying & Trying & No connexion setup & Req. setup of connexion to RBC\_ID \\ +\hline +Trying & Setup & Connexion setup & Send Initiation Msg \\ +\hline +Setup & NoCom & Received System\_Version(RBC\_ID,V) and not compat(V) & Disconnect\\ +\hline +Setup & Established & Received System\_Version(RBC\_ID,V) and compat(V) & + Send Estab. report; V\_Com := V \\ +\hline +\dots & \dots & \dots & \dots \\ +\hline +\end{tabular} +\normalsize +\caption{Establish a communication session (transitions)} +\label{fig:establish_tab} +\end{figure} + +\begin{figure} + \centering + % dot establish.dot -Teps -o establish.eps && epspdf establish.eps + \fbox{\includegraphics[scale=0.70]{establish.pdf}} + \caption{Establish a communication session} + \label{fig:establish} +\end{figure} + +\subsection{Safety properties} +If we try to infer some safety properties from this state machine, in a \emph{bottom-up} way +(rather than the \emph{top-down} way presented in Sect. \ref{safety_top}) we can identify +a few possible failures. A process to be used in order to find out these events could be +to build a system FMECA starting from the formal model. +\begin{itemize} +\item Not being able to establish a communication while required; +\item Establishing a communication while not required; +\item Establishing a communication with the wrong RBC; +\item Establishing a communication with an incompatible version RBC; +\item \dots ? +\end{itemize} + +Considering the events studied in Sect. \ref{safety_top}, we can state that the first item does +not lead to an unsafe state. It will not yield a safety property. As for the second, the safety status +is not as clear. It is necessary to conduct a system safety analysis in order to decide if failure +leads to an unsafe state, and in this cas to state a property to cover this event +(for the sake of brevity, we will not do it in this document). As for the third event, we will consider +it as unsafe, because if we cannot guarantee that the same RBC is used during the whole process, it is +unlikely that we will be able to perform the version control requested to cover the lattest issue. +The last failure (establishing a communication with an incompatible version +RBC) could clearly lead to an unsafe state, if possible (although a system-level analysis should +confirm this). + +Assuming these are all the safety event we have to cover, we could therefore provide the following +property in order to cover them. This property is somehow redundant with the model, but it is restricted +to the bare safety need. +$$State = Established \Rightarrow compat(V\_Com)\wedge RBC\_ID = RBC\_Com$$ + +\subsection{Filling the gaps\dots} +\label{gaps} +If we compare the events provided by the Fault Trees (KERNEL-\emph{xx}) it is clear that they are +still too high level to be able to be used to build directly the safety properties on the studied +function. These properties are still high level compared to the degree of description in the SRS. This +is due to the fact that these events are \emph{functional} although the function studied (establishing +a communication) is a rather low level service. + +The question is ``would it be possible to go \emph{formally} from the high level Dread Events to +the properties which goes on the same level than the model?'' In my opinion this is not practically +feasible. It would need a very high level model of the system (much higher than the SRS) without any +allocation to the different subsystem. It would also be necessary to introduce a sufficiently wide +notion of environment to be able to formalize that communicating with an improper version of software +could lead to an unsafe behavior. + +\begin{figure} + \centering + \fbox{\includegraphics[scale=0.40]{ext_fta.pdf}} + \caption{Extending the Fault Tree} + \label{fig:ext_fta} +\end{figure} + +It is therefore necessary to conduct a system-level ``brain, paper and pen'' safety analysis to +be able to build the safety properties on the proper level with regard to a model of the SRS. This +analysis could be carried out either with a \emph{top-down} analysis (cf. Fig. \ref{fig:ext_fta}) or +by a \emph{bottom-up} analysis (\emph{e.g.} FMECA), or by combining both approaches. It is important +to point out that whichever is the followed method, it is the level of expertise of the safety analyst +above everything else that will guarantee that no unsafe case have been forgotten. + +\section{Example 2: Mode Transitions} +The purpose is to modelize some of the mode transitions of the SUBSET-26 4.6.2 table (mode transitions), +namely the transitions from SB to SH, FS and IS. + +\subsection{Model of the function} +The model here is very simple (Fig. \ref{fig:trans_sb_tab} and \ref{fig:trans_sb} ) +because we do not want to dive into the condition details. + +\begin{figure} +\centering +\small +\begin{tabular}{|l|l||p{3.5cm}|p{3.5cm}|} +\hline +\bf From & \bf To & \bf Condition & \bf Action \\ +\hline +SB & IS & Isolated & \\ +\hline +SB & FS & FS conditions and not Isolated & \\ +\hline +SB & SH & SH conditions and not Isolated & \\ +\hline +\end{tabular} +\normalsize +\caption{Mode transitions from SB to SH, FS and IS (transitions)} +\label{fig:trans_sb_tab} +\end{figure} + +\begin{figure} + \centering + % dot trans_sb.dot -Teps -o trans_sb.eps && epspdf trans_sb.eps + \fbox{\includegraphics[scale=0.70]{trans_sb.pdf}} + \caption{Mode transitions from SB to SH, FS and IS} + \label{fig:trans_sb} +\end{figure} + +\subsection{Safety properties} +As for the safety properties, the SUBSET-88 provides the following event. +\begin{center} +GATE80: Incorrect determination of the current mode +\end{center} +Without a clear hierarchy of modes stating that being in one given mode instead of other ones, we +shall consider that as far as safety is concerned, a transition must occur if and only if the +corresponding conditions are verified at the time of the transition. + +We do not want to define here a complicated formalism. We use simple predicates +$State(X)$ to write that the machine is in the state $X$, and $A\rightarrow B$ that the machine triggers +a transition from state $A$ to state $B$. The important thing here is that we are introducing some +dynamic behavior (although we keep on using proposition calculus). + +% $$SB\rightarrow IS \iff Isolated\_by\_Driver \wedge State(SB)$$ +% $$SB\rightarrow FS \iff FS\_Conditions \wedge \neg Isolated \wedge State(SB)$$ +% $$SB\rightarrow SH \iff SH\_Conditions \wedge \neg Isolated \wedge State(SB)$$ + +$$SB\rightarrow IS \implies Isolated\_by\_Driver$$ +$$Isolated\_by\_Driver \wedge State(SB) \implies SB\rightarrow IS$$ +$$SB\rightarrow FS \implies FS\_Conditions \wedge \neg Isolated$$ +$$FS\_Conditions \wedge \neg Isolated \wedge State(SB) \implies SB\rightarrow FS$$ +$$SB\rightarrow SH \implies SH\_Conditions \wedge \neg Isolated$$ +$$SH\_Conditions \wedge \neg Isolated \wedge State(SB) \implies SB\rightarrow SH $$ + +These properties are a bit disappointing, because they are a mere paraphrasing of the state machine +provided in the model. We could try to go a little bit further with a system-level analysis of the +SUBSET-26 mode transition table. We would like to provide in the safety properties the conditions +which are really relevant to safety (but these might as well be \emph{all}). + +For this task we need to consider the transition out of the states. +For the sake of brevity, we consider only the four modes IS, FS, SB and SH (but we use the full sub-state +machine of the real ETCS mode with these modes) and do not discriminate here the different Shunting +conditions depending of if the initial state is FS or SB (Fig. \ref{fig:trans_whole} and \ref{fig:trans_whole}). + +\begin{figure} + \centering +\small +\begin{tabular}{|l|l||p{3.5cm}|p{3.5cm}|} +\hline +\bf From & \bf To & \bf Condition & \bf Action \\ +\hline +SB & IS & Isolated & \\ +\hline +SH & IS & Isolated & \\ +\hline +FS & IS & Isolated & \\ +\hline +SB & FS & FS conditions and not Isolated & \\ +\hline +SB & SH & SH conditions and not Isolated & \\ +\hline +SH & SB & Exit SH conditions and not Isolated & \\ +\hline +FS & SB & Exit FS conditions and not Isolated & \\ +\hline +FS & SH & SH conditions and not Isolated & \\ +\hline +\end{tabular} +\normalsize +\caption{Mode transitions with states SB to SH, FS and IS (transitions)} +\label{fig:trans_whole_tab} +\end{figure} + +\begin{figure} + \centering + % dot trans_whole.dot -Teps -o trans_whole.eps && epspdf trans_whole.eps + \fbox{\includegraphics[scale=0.70]{trans_whole.pdf}} + \caption{Mode transitions with states SB to SH, FS and IS} + \label{fig:trans_whole} +\end{figure} + +From the initial set of properties, it seems difficult to be able to remove some. We could add new ones, +but it would need to be interesting from a system standpoint. For example we might want to prove that +the OBU is \emph{never} in isolated mode if not requested by the driver. We could write this as: + +$$(SB\rightarrow IS) \lor (SH\rightarrow IS) \lor (FS\rightarrow IS) \implies Isolated\_by\_Driver$$ + +We could also state that the IS state is a ``dead'' state (state with no exits). This provides the +following, for the subset of modes provided here. + +$$\lnot((IS \rightarrow FS) \lor (IS \rightarrow SB) \lor (IS \rightarrow SH))$$ + +This is of course redundant with the previous properties the state machine, but it provides a +simple and understandable safety property that cover exactly the safety need. + +We could try to do the same for the other modes, but it will be the same problem. Most of the safety +behavior is yielded by the model itself and it is difficult to produce a set of +declarative properties, and to avoid paraphrase. Nevertheless, it is useful to point out some specific +and important system properties, even if they are not sufficient to capture the whole behavior of +the state machine. In this case, these properties must come on top of the mere rephrase of the model. + +Of course, it would also be possible to switch to a ```bigger scale'' view, and state properties +directly from the transition conditions to the behaviors allowed in the mode, but these properties +would probably be difficult to prove without the intermediate layer provided by the modes themselves. +And as far as modularity is considered, the properties and proofs would be difficult to maintain in +case of evolution of the system. + + +\section{Conclusion} +The two examples studied (establishment of the communication and mode transitions) are not exhaustive +in order to determine what would be the best formal language for safety properties (for this purpose +it would be useful to study also the braking curves and the MA), but they are sufficient to outline +the upper part (or ``system'' part) of the process that would be necessary in order to prove safety +in the context of OpenETCS: it starts by determining what is Vital and Non Vital, and by going down +from the higher level safety properties to the model level safety properties. A synthetic view of the +process is presented on Fig. \ref{fig:saf_process} + +On these two examples, we have seen that in some cases, it only needs a few safety properties to capture +the full safety behavior of the function, while in other cases, the full state machine (or a rephrase of +it) is necessary. We have also seen than in the latter, it can also be useful to provide safety +properties to express a particularly interesting (or sensitive) point. + +In both case, the safety properties provide the backbone of the safety analysis. Writing them down +allow to enhance knowledge and comprehension of the system, and they may also be used as Proof +Obligations, as assertion to check when the model is running, or even in order to provide help in the +generation (manual or automatic) of test cases. + +\begin{figure} + \centering + \fbox{\includegraphics[scale=0.50]{process.pdf}} + \caption{Outline of the safety analysis process} + \label{fig:saf_process} +\end{figure} + +\end{document} \ No newline at end of file diff --git a/Workspace/SafetyRequirementsExamples/template/ccbysa.png b/Workspace/SafetyRequirementsExamples/template/ccbysa.png new file mode 100755 index 0000000..8386b1b Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/template/ccbysa.png differ diff --git a/Workspace/SafetyRequirementsExamples/template/ccbysabig.png b/Workspace/SafetyRequirementsExamples/template/ccbysabig.png new file mode 100755 index 0000000..8770732 Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/template/ccbysabig.png differ diff --git a/Workspace/SafetyRequirementsExamples/template/chart.png b/Workspace/SafetyRequirementsExamples/template/chart.png new file mode 100755 index 0000000..a59f2f7 Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/template/chart.png differ diff --git a/Workspace/SafetyRequirementsExamples/template/itea.jpg b/Workspace/SafetyRequirementsExamples/template/itea.jpg new file mode 100755 index 0000000..62acb73 Binary files /dev/null and b/Workspace/SafetyRequirementsExamples/template/itea.jpg differ diff --git a/Workspace/SafetyRequirementsExamples/template/openetcs_article.cls b/Workspace/SafetyRequirementsExamples/template/openetcs_article.cls new file mode 100755 index 0000000..59e9767 --- /dev/null +++ b/Workspace/SafetyRequirementsExamples/template/openetcs_article.cls @@ -0,0 +1,540 @@ +%% This is openetcs.cls +%% A LaTeX class based on: + + + +%% For openETCS ITEA2 Project + + +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{openetcs} +[2012/10/11 v0.1 Typesetting Technical Information Article of +openETCS project ] +\newcommand{\IsLicensedUnderCC}[1]{#1} +\DeclareOption{nocc}{\renewcommand{\IsLicensedUnderCC}[1]{ }} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\LoadClass[11pt,twoside]{article} +\RequirePackage{graphicx,color,caption,longtable} +\RequirePackage{dcolumn} +\RequirePackage{natbib} +\renewcommand{\bibfont}{\fontsize{10pt}{12pt}\selectfont} +\setlength{\bibhang}{0.5in} +\setlength{\bibsep}{12pt} +\RequirePackage{amsmath} +\RequirePackage{microtype} +\RequirePackage[utf8x]{inputenc} +\normalsize + +% PdfLaTeX Choix 1 "times Helvet et math" http://www.cuk.ch/articles/4237 +\usepackage[T1]{fontenc} +\usepackage{txfonts} + + +\def\@projectfont{% + \sffamily\itshape\bfseries\fontsize{22pt}{25pt}\selectfont} +\def\@reportnumfont{% + \sffamily\bfseries\fontsize{18pt}{22pt}\selectfont} +\def\@wpfont{% + \sffamily\fontseries{k}\itshape\normalsize\selectfont} +\def\@titlefont{% + \sffamily\fontseries{h}\fontsize{20pt}{25pt}\selectfont} +\def\@distributionfont{% + \sffamily\fontseries{k}\fontsize{9pt}{11pt}\selectfont} +\def\@eqtagfont{\sffamily\bfseries\footnotesize} +\RequirePackage[a4paper, top=1in, bottom=0.7in, + left=1.25in, right=1.25in]{geometry} +\setlength{\parindent}{0pt} +\setlength{\parskip}{\baselineskip} +\setlength\labelwidth{1em} +\setlength\leftmargini\z@ +\addtolength\leftmargini\labelwidth +\addtolength\leftmargini\labelsep +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\def\makelabel##1{##1}}% + \fi} +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\usecounter\@enumctr\def\makelabel##1{##1}}% + \fi} +\widowpenalty=10000 +\clubpenalty=10000 +\raggedbottom +\RequirePackage{fancyhdr} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\fancyhfoffset{35pt} +\pagestyle{fancy} +\lhead{\textsf{\textbf{\footnotesize\@reportnum}}} +\rhead{\textsf{\textbf{\footnotesize\thepage}}} +\chead{} +\lfoot{} +\cfoot{\color{blue}\textsf{\textbf{\textit{openETCS}}}\color{black}\IsLicensedUnderCC{ - \includegraphics[width=3em]{ccbysa.png}}} +\rfoot{} +\newif\if@frontmatter +\@frontmatterfalse +\newif\if@appendix +\@appendixfalse +\def\frontmatter{% + \pagenumbering{arabic}% + \@frontmattertrue + \@appendixfalse} +\def\mainmatter{% + \cleardoublepage + \pagenumbering{arabic}% + \@frontmatterfalse + \@appendixfalse} +\def\appendix{% + \clearpage + \@frontmatterfalse + \@appendixtrue + \@addtoreset{table}{chapter}% + \@addtoreset{equation}{chapter}% + \@addtoreset{figure}{chapter}% + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% + \gdef\thefigure{\@Alph\c@chapter\@arabic\c@figure}% + \gdef\thetable{\@Alph\c@chapter\@arabic\c@table}% + \gdef\theequation{\@Alph\c@chapter\@arabic\c@equation}} +\def\project#1{\gdef\@project{#1}} +\project{openETCS} +\def\reportnum#1{\gdef\@reportnum{#1}} +\reportnum{OETCS TK-01-01} +\def\wp#1{\gdef\@wp{#1}} +\wp{} +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} +\def\@subtitle{} +\newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and} +\def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{% + \@andlistb#1{#3}}} +\def\@andlistb#1#2#3#4#5\and{% + \@ifempty{#5}{% + \@andlistc{#2#4}% + }{% + \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}% + }} +\let\@andlistc\@iden +\newcommand{\nxandlist}[4]{% + \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}% + \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}% + \the\@xp\toks@#4\and\and + \edef#4{\the\toks@}% + \let\@andlistc\@iden} +\def\@@and{and} +\newcommand{\andify}{% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}} +\def\and{\unskip{ }\@@and{ }\ignorespaces} +\let\@xp\expandafter\relax +\let\@nx=\noexpand +\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\long\def\@ifempty#1{\@xifempty#1@@..\@nil} +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\setboxz@h{\setbox\z@\hbox} +\def\@addpunct#1{% + \relax\ifhmode + \ifnum\spacefactor>\@m \else#1\fi + \fi} +\newtoks\@emptytoks +\def\authors{} +\def\addresses{} +\def\author#1{% + \ifx\@empty\authors\gdef\authors{#1}\else + \g@addto@macro{\authors}{\and#1}\fi + \ifx\@empty\@addresses\gdef\addresses{\author{#1}}\else + \g@addto@macro{\addresses}{\par\author{#1}}\fi} +\def\affiliation#1{% + \ifx\@empty\@addresses\gdef\addresses{#1\par}\else + \g@addto@macro{\addresses}{#1\par\vspace{\baselineskip}}\fi} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space \number\year} +\newcommand{\coverart}[2][]{% + \def\@tempa{#1}% + \ifx\@empty\@tempa + \gdef\@coverart{\centering\includegraphics[width=435\p@]{#2}}\else + \gdef\@coverart{\centering\includegraphics[#1]{#2}}\fi} +\def\@coverart{}% +\def\reporttype#1{\gdef\@reporttype{#1}} +\reporttype{} +\def\distribution#1{\gdef\@distribution{#1}} +\distribution{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 Unported License.\\ \includegraphics[width=40pt]{ccbysabig.png}} +\def\preparedfor#1{\gdef\@preparedfor{#1}} +\preparedfor{ITEA2 openETCS consortium\\ Europa} +\def\contractnum#1{\gdef\@contractnum{#1}} +\contractnum{} +\def\monitoredby#1{\gdef\@monitoredby{#1}} +\monitoredby{} +\def\additionalinfo#1{\gdef\@additionalinfo{#1}} +\additionalinfo{} +\newbox\abstractbox +\renewenvironment{abstract}{% + \global\setbox\abstractbox=\vtop \bgroup + \normalfont + \list{}{\labelwidth\z@ + \leftmargin\z@ \rightmargin\leftmargin + \listparindent\z@ \itemindent\z@ + \parsep16\p@ \topsep\z@ + \let\fullwidthdisplay\relax + }% + \item[\hskip\labelsep\bfseries Abstract:]% +}{% + \endlist\egroup} + \long\def\disclaimer#1{\long\gdef\@disclaimer{#1}} + \disclaimer{ +\textbf{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 -- (cc by-sa 3.0)} + +THE WORK IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC +LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT +AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS +LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU +THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH +TERMS AND CONDITIONS. + +\url{http://creativecommons.org/licenses/by-sa/3.0/} +} +\newenvironment{@coverlist}{\begin{list}{}{% + \leftmargin40\p@\rightmargin-85\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newenvironment{@titlelist}{\begin{list}{}{% + \leftmargin-20\p@\rightmargin100\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newif\if@titleblock +\newenvironment{@titleblock}{% + \list{}{\labelwidth80\p@\labelsep10\p@ \leftmargin70\p@ + \rightmargin-150\p@ + \let\makelabel\@titleblocklabel}}{\endlist} +\newcommand*{\@titleblocklabel}[1]{\hfill\small#1} +\def\maketitle{% + \thispagestyle{empty}% + \enlargethispage{0.34in}% + \vspace*{-0.95in} + \makebox[0cm][r]{% + \raisebox{-780\p@}[\z@][\z@]{% + \rotatebox{90}{\makebox[\z@][l]{% + \colorbox{blue}{\color{white}\parbox{780\p@}{% + \rule{0\p@}{85\p@}% + \hspace{28\p@}\raisebox{40\p@}{% + \parbox[c]{350\p@}{\@projectfont\@project}% + \hspace{10\p@}% + \parbox[c]{300\p@}{\hfill\@reportnumfont\@reportnum}}}}}}}% + \hspace*{-14\p@}}% +% \makebox[0cm][r]{\raisebox{-720\p@}[\z@][\z@]{\rule{8\p@}{726\p@}% +% \hspace{-26.75\p@}}}% + \begin{@coverlist}% + \sffamily\fontseries{k}\selectfont% + \hfill\parbox{145\p@}{\centering + \includegraphics[width=145\p@]{itea}\\ + {\bfseries + ITEA2 Project\\2012 -- 2015}}\\ + \par + \vspace{0.5cm}% + {\@wpfont\@wp\par}% + \vspace{0.3cm}% + {\raggedright\@titlefont\@title\par + \vspace{0.3cm}% + \normalsize\bfseries\@subtitle\par}% + \vspace{0.3cm}% + \begin{minipage}[t]{300\p@}\raggedright + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\authors + \authors\end{minipage}% + \begin{minipage}[t]{135\p@}\flushright\@date\end{minipage}\par + \vspace{2cm}% + \@coverart + \end{@coverlist}% + \vfill + \begin{@coverlist}% + \IsLicensedUnderCC{\@distributionfont\@distribution} + \end{@coverlist}% + \newpage + This page is intentionally left blank + \thispagestyle{empty}\hbox{}\newpage + \setcounter{page}{1}% + \vspace*{-1.5in}% + \vspace*{-\topmargin}% + \begin{@titlelist}% + \sffamily\fontseries{k}\selectfont + \begin{minipage}[t]{275\p@}% + \bfseries\@wp + \end{minipage}% + \begin{minipage}[t]{175\p@}% + \bfseries\flushright\@reportnum\\\@date + \end{minipage}\rule[-0.5in]{\z@}{0.625in}\par + \begin{minipage}{\textwidth} + \vspace*{1cm}% + {\@titlefont\raggedright\@title\par} + \vspace*{3\p@}% + \bfseries\@subtitle\par + \end{minipage}\rule[-0.7in]{\z@}{1in}\par + \def\author##1{% + \def\@tempa{##1}% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\@tempa + {\upshape\normalsize\@tempa}\par\vspace{6\p@}}% + \begin{minipage}{\textwidth} + \textit{\footnotesize\addresses}\par + \end{minipage}\rule[-2.7in]{\z@}{3.7in}\par + \begin{minipage}{\textwidth} + \@reporttype\par\vspace*{3\p@}% + {\IsLicensedUnderCC{\@distributionfont\@distribution\par}}% + \end{minipage} + \end{@titlelist}% + \vfill + \begin{@titlelist}% + \sffamily\normalsize\fontseries{k}\selectfont + \ifx\@additionalinfo\@empty\else\@additionalinfo\par\fi + \@titleblockfalse + \ifx\@empty\@preparedfor\relax\else\@titleblocktrue\fi + \ifx\@empty\@contractnum\relax\else\@titleblocktrue\fi + \ifx\@empty\@monitoredby\relax\else\@titleblocktrue\fi + \if@titleblock + \begin{@titleblock}% + \ifx\@empty\@preparedfor\else + \item[Prepared for]\@preparedfor + \fi + \ifx\@empty\@contractnum\else + \item[Under]\@contractnum + \fi + \ifx\@empty\@monitoredby\else + \item[Monitored by]\@monitoredby + \fi + \end{@titleblock} + \fi + \end{@titlelist}% + \clearpage + \ifvoid\abstractbox + \else + \box\abstractbox + \prevdepth\z@ + \fi + \IsLicensedUnderCC{ + \vfill + \bgroup + \setlength{\fboxsep}{5\p@}% + \makebox[\textwidth]{\fbox{\parbox{6.5in}{% + \fontsize{8.5\p@}{9.5\p@}\selectfont + \parskip\baselineskip + \textbf{Disclaimer:} \@disclaimer}}}% + \egroup + } + \clearpage} +\def\cl@chapter{} +\@addtoreset{section}{chapter}% +\@addtoreset{subsection}{chapter}% +\@addtoreset{subsection}{section}% + + +\def\@makechapterhead#1{% + \vspace*{5\p@}% + {\hskip-35\p@% + \parindent\z@\raggedright + \interlinepenalty\@M + \@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\def\@makeschapterhead#1{% + \vspace*{5\p@}% + {% + \parindent\z@\raggedright + \interlinepenalty\@M + \leftskip-35\p@\@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\renewcommand \theequation {\@arabic\c@equation} +\setcounter{tocdepth}{2} +\renewcommand\section{% + \addpenalty\@secpenalty\nobreak + \secdef\@section\@ssection} +\def\@section[#1]#2{% + \ifnum1>\c@secnumdepth + \addcontentsline{toc}{section}{#1}% + \else + \refstepcounter{section}% + \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}% + \fi + {\hskip-35\p@\raggedright\interlinepenalty\@M + \large\sffamily\bfseries + \ifnum1>\c@secnumdepth\else\makebox[35\p@]{\thesection\hfill}\fi#2\nobreak\par} + \@afterheading + \nobreak\par} +\def\@ssection#1{ + \addcontentsline{toc}{section}{#1}% + {\raggedright\interlinepenalty\@M + \large\sffamily\bfseries\leftskip-35\p@#1\nobreak\par} + \@afterheading + \nobreak\par} +\renewcommand\subsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsection\@ssubsection} +\def\@subsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsection}{\itshape#1}% + \else + \refstepcounter{subsection}% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsection#1{% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\renewcommand\subsubsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsubsection\@ssubsubsection} +\def\@subsubsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsubsection}{\itshape#1}% + \else + \refstepcounter{subsubsection}% + \addcontentsline{toc}{subsubsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsubsection#1{% + \addcontentsline{toc}{subsubsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\renewcommand\paragraph{\par + \addpenalty\@secpenalty\nobreak + \secdef\@paragraph\@sparagraph} +\def\@paragraph[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{paragraph}{\itshape#1}% + \else + \refstepcounter{paragraph}% + \addcontentsline{toc}{paragraph}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\theparagraph}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + #2} + \nobreak\par} +\def\@sparagraph#1{% + \addcontentsline{toc}{paragraph}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\def\specialchapter#1{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \@makeschapterhead{#1}\par + \@afterheading} +\def\@dotsep{0.5} +\def\@dottedtocline#1#2#3#4#5{% + \bgroup + \def\numberline##1{\makebox[#3]{##1\hfill}}% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\def\@dottedtoclineLF#1#2#3#4#5{% + \bgroup + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #2\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\@tempdima + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\renewcommand*\l@section{\@dottedtocline{1}{2em}{2.5em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.7em}{3em}} +\renewcommand*\l@figure{\@dottedtoclineLF{1}{0em}{2.3em}} +\let\l@table\l@figure +\renewcommand\contentsname{Table of Contents} +\renewcommand\tableofcontents{% + \specialchapter{\contentsname}% + \def\numberline##1{\hb@xt@\@pnumwidth{##1\hfill}}% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{toc}}} +\renewcommand\listoffigures{% + \chapter{\listfigurename}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}} +\renewcommand\listoftables{% + \chapter{\listtablename}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\def\listfiguretablename{Figures and Tables} +\newcommand\listoffiguresandtables{% + \chapter{\listfiguretablename} + {\sffamily\bfseries\normalsize Figures\par}% + \vspace*{10pt}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}% + {\sffamily\bfseries\normalsize Tables\par}% + \vspace*{10pt}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\renewcommand\bibname{References} +\setlength{\@fptop}{0pt}% +\renewcommand \thefigure {\@arabic\c@figure} +\renewcommand \thetable {\@arabic\c@table} +\captionsetup{justification=centering,font={footnotesize,rm,bf}, +labelsep=period,aboveskip=3pt} +\captionsetup[table]{position=top} +\def\arraystretch{1.3} +\let\maketag@@@@\maketag@@@ +\def\maketag@@@#1{\hbox{\m@th\@eqtagfont#1}} +\renewcommand{\eqref}[1]{\textup{\tagform@@{\ref{#1}}}} +\def\tagform@@#1{\maketag@@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +\endinput +%% +%% End of file `openetcs_article.cls'. diff --git a/Workspace/SafetyRequirementsExamples/template/openetcs_report.cls b/Workspace/SafetyRequirementsExamples/template/openetcs_report.cls new file mode 100755 index 0000000..4521748 --- /dev/null +++ b/Workspace/SafetyRequirementsExamples/template/openetcs_report.cls @@ -0,0 +1,642 @@ +%% This is openetcs.cls +%% A LaTeX class based on: + +%% LaTeX Style For Technical Information Reports of the +%% Engineer Research and Development Center +%% US Army Corps of Engineers +%% 2009/07/22 v1.1 +%% Copyright 2008, Boris Veytsman +%% This work 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. + +%% For openETCS ITEA2 Project (To Do: Verify consistency with cc-by-sa +%% 3.0) + + +%% +%% This is based on file `erdc.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% erdc.dtx (with options: `class') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from erdc.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file erdc.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \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} +\ProvidesClass{openetcs} +[2012/08/03 v0.1 Typesetting Technical Information Reports of +openETCS project based on ERDC class v1.1] +% \long\def\erdc@size@warning#1{% +% \ClassWarning{erdc}{Size-changing option #1 will not be +% honored}}% +% \DeclareOption{8pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{9pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{10pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{11pt}{\erdc@size@warning{\CurrentOption}}% +% \DeclareOption{12pt}{\erdc@size@warning{\CurrentOption}}% +\newcommand{\IsLicensedUnderCC}[1]{#1} +\DeclareOption{nocc}{\renewcommand{\IsLicensedUnderCC}[1]{ }} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessOptions\relax +\LoadClass[11pt,twoside]{report} +\RequirePackage{graphicx,color,caption,longtable} +\RequirePackage{dcolumn} +\RequirePackage{natbib} +\renewcommand{\bibfont}{\fontsize{10pt}{12pt}\selectfont} +\setlength{\bibhang}{0.5in} +\setlength{\bibsep}{12pt} +\RequirePackage{amsmath} +%\RequirePackage[originalcommands]{ragged2e} +%\setlength\RaggedRightParindent{\parindent} +%\RaggedRight +\RequirePackage{microtype} +\RequirePackage[utf8x]{inputenc} +\normalsize + +% PdfLaTeX Choix 1 "times Helvet et math" http://www.cuk.ch/articles/4237 +\usepackage[T1]{fontenc} +\usepackage{txfonts} + + +\def\@projectfont{% + \sffamily\itshape\bfseries\fontsize{22pt}{25pt}\selectfont} +\def\@reportnumfont{% + \sffamily\bfseries\fontsize{18pt}{22pt}\selectfont} +\def\@wpfont{% + \sffamily\fontseries{k}\itshape\normalsize\selectfont} +\def\@titlefont{% + \sffamily\fontseries{h}\fontsize{20pt}{25pt}\selectfont} +\def\@distributionfont{% + \sffamily\fontseries{k}\fontsize{9pt}{11pt}\selectfont} +\def\@eqtagfont{\sffamily\bfseries\footnotesize} +\RequirePackage[a4paper, top=1in, bottom=0.7in, + left=1.25in, right=1.25in]{geometry} +\setlength{\parindent}{0pt} +\setlength{\parskip}{\baselineskip} +\setlength\labelwidth{1em} +\setlength\leftmargini\z@ +\addtolength\leftmargini\labelwidth +\addtolength\leftmargini\labelsep +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\def\makelabel##1{##1}}% + \fi} +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\usecounter\@enumctr\def\makelabel##1{##1}}% + \fi} +\widowpenalty=10000 +\clubpenalty=10000 +\raggedbottom +\RequirePackage{fancyhdr} +\renewcommand{\headrulewidth}{0.5pt} +\renewcommand{\footrulewidth}{0pt} +\fancyhfoffset{35pt} +\pagestyle{fancy} +\lhead{\textsf{\textbf{\footnotesize\@reportnum}}} +\rhead{\textsf{\textbf{\footnotesize\thepage}}} +\chead{} +\lfoot{} +\cfoot{\color{blue}\textsf{\textbf{\textit{openETCS}}}\color{black}\IsLicensedUnderCC{ - \includegraphics[width=3em]{ccbysa.png}}} +\rfoot{} +\newif\if@frontmatter +\@frontmatterfalse +\newif\if@appendix +\@appendixfalse +\def\frontmatter{% + \pagenumbering{roman}% + \@frontmattertrue + \@appendixfalse} +\def\mainmatter{% + \cleardoublepage + \pagenumbering{arabic}% + \@frontmatterfalse + \@appendixfalse} +\def\appendix{% + \clearpage + \@frontmatterfalse + \@appendixtrue + \@addtoreset{table}{chapter}% + \@addtoreset{equation}{chapter}% + \@addtoreset{figure}{chapter}% + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% + \gdef\thefigure{\@Alph\c@chapter\@arabic\c@figure}% + \gdef\thetable{\@Alph\c@chapter\@arabic\c@table}% + \gdef\theequation{\@Alph\c@chapter\@arabic\c@equation}} +\def\project#1{\gdef\@project{#1}} +\project{openETCS} +\def\reportnum#1{\gdef\@reportnum{#1}} +\reportnum{OETCS TK-01-01} +\def\wp#1{\gdef\@wp{#1}} +\wp{} +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} +\def\@subtitle{} +\newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and} +\def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{% + \@andlistb#1{#3}}} +\def\@andlistb#1#2#3#4#5\and{% + \@ifempty{#5}{% + \@andlistc{#2#4}% + }{% + \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}% + }} +\let\@andlistc\@iden +\newcommand{\nxandlist}[4]{% + \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}% + \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}% + \the\@xp\toks@#4\and\and + \edef#4{\the\toks@}% + \let\@andlistc\@iden} +\def\@@and{and} +\newcommand{\andify}{% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip, \@@and~}} +\def\and{\unskip{ }\@@and{ }\ignorespaces} +\let\@xp\expandafter\relax +\let\@nx=\noexpand +\def\@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\long\def\@ifempty#1{\@xifempty#1@@..\@nil} +\long\def\@xifempty#1#2@#3#4#5\@nil{% + \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} +\long\def\@ifnotempty#1{\@ifempty{#1}{}} +\def\setboxz@h{\setbox\z@\hbox} +\def\@addpunct#1{% + \relax\ifhmode + \ifnum\spacefactor>\@m \else#1\fi + \fi} +\newtoks\@emptytoks +\def\authors{} +\def\addresses{} +\def\author#1{% + \ifx\@empty\authors\gdef\authors{#1}\else + \g@addto@macro{\authors}{\and#1}\fi + \ifx\@empty\@addresses\gdef\addresses{\author{#1}}\else + \g@addto@macro{\addresses}{\par\author{#1}}\fi} +\def\affiliation#1{% + \ifx\@empty\@addresses\gdef\addresses{#1\par}\else + \g@addto@macro{\addresses}{#1\par\vspace{\baselineskip}}\fi} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space \number\year} +\newcommand{\coverart}[2][]{% + \def\@tempa{#1}% + \ifx\@empty\@tempa + \gdef\@coverart{\centering\includegraphics[width=435\p@]{#2}}\else + \gdef\@coverart{\centering\includegraphics[#1]{#2}}\fi} +\def\@coverart{}% +\def\reporttype#1{\gdef\@reporttype{#1}} +\reporttype{} +\def\distribution#1{\gdef\@distribution{#1}} +\distribution{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 Unported License.\\ \includegraphics[width=40pt]{ccbysabig.png}} +\def\preparedfor#1{\gdef\@preparedfor{#1}} +\preparedfor{ITEA2 openETCS consortium\\ Europa} +\def\contractnum#1{\gdef\@contractnum{#1}} +\contractnum{} +\def\monitoredby#1{\gdef\@monitoredby{#1}} +\monitoredby{} +\def\additionalinfo#1{\gdef\@additionalinfo{#1}} +\additionalinfo{} +\newbox\abstractbox +\renewenvironment{abstract}{% + \global\setbox\abstractbox=\vtop \bgroup + \normalfont + \list{}{\labelwidth\z@ + \leftmargin\z@ \rightmargin\leftmargin + \listparindent\z@ \itemindent\z@ + \parsep16\p@ \topsep\z@ + \let\fullwidthdisplay\relax + }% + \item[\hskip\labelsep\bfseries Abstract:]% +}{% + \endlist\egroup} + \long\def\disclaimer#1{\long\gdef\@disclaimer{#1}} + \disclaimer{ +\textbf{This work is licensed under a Creative Commons + Attribution-ShareAlike 3.0 -- (cc by-sa 3.0)} + +THE WORK IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC +LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT +AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS +LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU +THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH +TERMS AND CONDITIONS. + +\url{http://creativecommons.org/licenses/by-sa/3.0/} +} +\newenvironment{@coverlist}{\begin{list}{}{% + \leftmargin40\p@\rightmargin-85\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newenvironment{@titlelist}{\begin{list}{}{% + \leftmargin-20\p@\rightmargin100\p@% + \topsep\z@\partopsep\z@\labelwidth\z@\labelsep\z@}\item{}}{% + \end{list}} +\newif\if@titleblock +\newenvironment{@titleblock}{% + \list{}{\labelwidth80\p@\labelsep10\p@ \leftmargin70\p@ + \rightmargin-150\p@ + \let\makelabel\@titleblocklabel}}{\endlist} +\newcommand*{\@titleblocklabel}[1]{\hfill\small#1} +\def\maketitle{% + \thispagestyle{empty}% + \enlargethispage{0.34in}% + \vspace*{-0.95in} + \makebox[0cm][r]{% + \raisebox{-780\p@}[\z@][\z@]{% + \rotatebox{90}{\makebox[\z@][l]{% + \colorbox{blue}{\color{white}\parbox{780\p@}{% + \rule{0\p@}{85\p@}% + \hspace{28\p@}\raisebox{40\p@}{% + \parbox[c]{350\p@}{\@projectfont\@project}% + \hspace{10\p@}% + \parbox[c]{300\p@}{\hfill\@reportnumfont\@reportnum}}}}}}}% + \hspace*{-14\p@}}% +% \makebox[0cm][r]{\raisebox{-720\p@}[\z@][\z@]{\rule{8\p@}{726\p@}% +% \hspace{-26.75\p@}}}% + \begin{@coverlist}% + \sffamily\fontseries{k}\selectfont% + \hfill\parbox{145\p@}{\centering + \includegraphics[width=145\p@]{itea}\\ + {\bfseries + ITEA2 Project\\2012 -- 2015}}\\ + \par + \vspace{0.5cm}% + {\@wpfont\@wp\par}% + \vspace{0.3cm}% + {\raggedright\@titlefont\@title\par + \vspace{0.3cm}% + \normalsize\bfseries\@subtitle\par}% + \vspace{0.3cm}% + \begin{minipage}[t]{300\p@}\raggedright + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\authors + \authors\end{minipage}% + \begin{minipage}[t]{135\p@}\flushright\@date\end{minipage}\par + \vspace{2cm}% + \@coverart + \end{@coverlist}% + \vfill + \begin{@coverlist}% + \IsLicensedUnderCC{\@distributionfont\@distribution} + \end{@coverlist}% + \newpage + This page is intentionally left blank + \thispagestyle{empty}\hbox{}\newpage + \setcounter{page}{1}% + \vspace*{-1.5in}% + \vspace*{-\topmargin}% + \begin{@titlelist}% + \sffamily\fontseries{k}\selectfont + \begin{minipage}[t]{275\p@}% + \bfseries\@wp + \end{minipage}% + \begin{minipage}[t]{175\p@}% + \bfseries\flushright\@reportnum\\\@date + \end{minipage}\rule[-0.5in]{\z@}{0.625in}\par + \begin{minipage}{\textwidth} + \vspace*{1cm}% + {\@titlefont\raggedright\@title\par} + \vspace*{3\p@}% + \bfseries\@subtitle\par + \end{minipage}\rule[-0.7in]{\z@}{1in}\par + \def\author##1{% + \def\@tempa{##1}% + \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}\@tempa + {\upshape\normalsize\@tempa}\par\vspace{6\p@}}% + \begin{minipage}{\textwidth} + \textit{\footnotesize\addresses}\par + \end{minipage}\rule[-2.7in]{\z@}{3.7in}\par + \begin{minipage}{\textwidth} + \@reporttype\par\vspace*{3\p@}% + {\IsLicensedUnderCC{\@distributionfont\@distribution\par}}% + \end{minipage} + \end{@titlelist}% + \vfill + \begin{@titlelist}% + \sffamily\normalsize\fontseries{k}\selectfont + \ifx\@additionalinfo\@empty\else\@additionalinfo\par\fi + \@titleblockfalse + \ifx\@empty\@preparedfor\relax\else\@titleblocktrue\fi + \ifx\@empty\@contractnum\relax\else\@titleblocktrue\fi + \ifx\@empty\@monitoredby\relax\else\@titleblocktrue\fi + \if@titleblock + \begin{@titleblock}% + \ifx\@empty\@preparedfor\else + \item[Prepared for]\@preparedfor + \fi + \ifx\@empty\@contractnum\else + \item[Under]\@contractnum + \fi + \ifx\@empty\@monitoredby\else + \item[Monitored by]\@monitoredby + \fi + \end{@titleblock} + \fi + \end{@titlelist}% + \clearpage + \ifvoid\abstractbox + \else + \box\abstractbox + \prevdepth\z@ + \fi + \IsLicensedUnderCC{ + \vfill + \bgroup + \setlength{\fboxsep}{5\p@}% + \makebox[\textwidth]{\fbox{\parbox{6.5in}{% + \fontsize{8.5\p@}{9.5\p@}\selectfont + \parskip\baselineskip + \textbf{Disclaimer:} \@disclaimer}}}% + \egroup + } + \clearpage} +\def\cl@chapter{} +\@addtoreset{section}{chapter}% +\@addtoreset{subsection}{chapter}% +\@addtoreset{subsection}{section}% +\renewcommand\chapter{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{% + \if@frontmatter + \addcontentsline{toc}{chapter}{#1}% + \@makechapterhead{#2}% + \else + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \if@appendix + \addcontentsline{toc}{chapter}% + {\@chapapp\space\thechapter: #1}% + \@makechapterhead{\@chapapp\space\thechapter: #2}% + \else + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% + \@makechapterhead{\makebox[35\p@]{\thechapter\hfill}#2}% + \fi + \fi + \@afterheading} +\def\@schapter#1{% + \if@appendix + \addcontentsline{toc}{chapter}{\@chapapp: #1}% + \@makeschapterhead{\@chapapp: #1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \@makeschapterhead{#1}% + \fi + \@afterheading} +\def\@makechapterhead#1{% + \vspace*{5\p@}% + {\hskip-35\p@% + \parindent\z@\raggedright + \interlinepenalty\@M + \@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\def\@makeschapterhead#1{% + \vspace*{5\p@}% + {% + \parindent\z@\raggedright + \interlinepenalty\@M + \leftskip-35\p@\@titlefont #1\par\nobreak + \vspace*{10\p@}% + }} +\renewcommand \theequation {\@arabic\c@equation} +\setcounter{tocdepth}{2} +\renewcommand\section{% + \addpenalty\@secpenalty\nobreak + \secdef\@section\@ssection} +\def\@section[#1]#2{% + \ifnum1>\c@secnumdepth + \addcontentsline{toc}{section}{#1}% + \else + \refstepcounter{section}% + \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}% + \fi + {\hskip-35\p@\raggedright\interlinepenalty\@M + \large\sffamily\bfseries + \ifnum1>\c@secnumdepth\else\makebox[35\p@]{\thesection\hfill}\fi#2\nobreak\par} + \@afterheading + \nobreak\par} +\def\@ssection#1{ + \addcontentsline{toc}{section}{#1}% + {\raggedright\interlinepenalty\@M + \large\sffamily\bfseries\leftskip-35\p@#1\nobreak\par} + \@afterheading + \nobreak\par} +\renewcommand\subsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsection\@ssubsection} +\def\@subsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsection}{\itshape#1}% + \else + \refstepcounter{subsection}% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsection#1{% + \addcontentsline{toc}{subsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\renewcommand\subsubsection{\par + \addpenalty\@secpenalty\nobreak + \secdef\@subsubsection\@ssubsubsection} +\def\@subsubsection[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{subsubsection}{\itshape#1}% + \else + \refstepcounter{subsubsection}% + \addcontentsline{toc}{subsubsection}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\thesubsubsection}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + \ifnum2>\c@secnumdepth\else\thesubsubsection\hspace{1em}\fi#2}\nobreak\par} +\def\@ssubsubsection#1{% + \addcontentsline{toc}{subsubsection}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\renewcommand\paragraph{\par + \addpenalty\@secpenalty\nobreak + \secdef\@paragraph\@sparagraph} +\def\@paragraph[#1]#2{% + \ifnum2>\c@secnumdepth + \addcontentsline{toc}{paragraph}{\itshape#1}% + \else + \refstepcounter{paragraph}% + \addcontentsline{toc}{paragraph}{\itshape\fontsize{9}{12}\selectfont + \protect\numberline{\theparagraph}% + #1}% + \fi + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries + #2} + \nobreak\par} +\def\@sparagraph#1{% + \addcontentsline{toc}{paragraph}{\itshape\fontsize{9}{12}\selectfont#1}% + {\noindent\raggedright\interlinepenalty\@M + \normalsize\sffamily\bfseries#1}\nobreak\par} +\def\specialchapter#1{% + \clearpage + \global\@topnum\z@ + \@afterindentfalse + \@makeschapterhead{#1}\par + \@afterheading} +\def\@dotsep{0.5} +\renewcommand\l@chapter[2]{% + \def\numberline##1{\makebox[1.9em]{##1\hfill}}% + \addpenalty{-\@highpenalty}% + \vskip5\p@ + \bgroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + \leavevmode\bfseries + \leftskip1.9em% + \hskip-\leftskip + #1\nobreak\leaders\hbox{$\m@th\mkern\@dotsep + mu\hbox{.}\mkern\@dotsep + mu$}\hfill\nobreak{\hfil\,#2}\par + \vskip5\p@ + \penalty\@highpenalty + \egroup} +\def\@dottedtocline#1#2#3#4#5{% + \bgroup + \def\numberline##1{\makebox[#3]{##1\hfill}}% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\def\@dottedtoclineLF#1#2#3#4#5{% + \bgroup + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #2\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\@tempdima + #4\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + {\hfil \normalcolor \,#5}% + \par}% + \fi + \egroup} +\renewcommand*\l@section{\@dottedtocline{1}{2em}{2.5em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.7em}{3em}} +\renewcommand*\l@figure{\@dottedtoclineLF{1}{0em}{2.3em}} +\let\l@table\l@figure +\renewcommand\contentsname{Table of Contents} +\renewcommand\tableofcontents{% + \specialchapter{\contentsname}% + \def\numberline##1{\hb@xt@\@pnumwidth{##1\hfill}}% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{toc}}} +\renewcommand\listoffigures{% + \chapter{\listfigurename}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}} +\renewcommand\listoftables{% + \chapter{\listtablename}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\def\listfiguretablename{Figures and Tables} +\newcommand\listoffiguresandtables{% + \chapter{\listfiguretablename} + {\sffamily\bfseries\normalsize Figures\par}% + \vspace*{10pt}% + \def\numberline##1{Figure ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lof}}% + {\sffamily\bfseries\normalsize Tables\par}% + \vspace*{10pt}% + \def\numberline##1{Table ##1. }% + {\parskip2.5\p@\footnotesize\sffamily\fontseries{k}\selectfont\raggedright + \@starttoc{lot}}} +\renewcommand\bibname{References} +\setlength{\@fptop}{0pt}% +\renewcommand \thefigure {\@arabic\c@figure} +\renewcommand \thetable {\@arabic\c@table} +\captionsetup{justification=centering,font={footnotesize,rm,bf}, +labelsep=period,aboveskip=3pt} +\captionsetup[table]{position=top} +\def\arraystretch{1.3} +\let\maketag@@@@\maketag@@@ +\def\maketag@@@#1{\hbox{\m@th\@eqtagfont#1}} +\renewcommand{\eqref}[1]{\textup{\tagform@@{\ref{#1}}}} +\def\tagform@@#1{\maketag@@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +\endinput +%% +%% End of file `openetcs_repport.cls'.