summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/bclogo/LISEZ-MOI40
-rw-r--r--Master/texmf-dist/doc/latex/bclogo/README32
-rw-r--r--Master/texmf-dist/doc/latex/bclogo/bclogo-doc.pdfbin116723 -> 139924 bytes
-rw-r--r--Master/texmf-dist/doc/latex/bclogo/bclogo-doc.tex503
-rw-r--r--Master/texmf-dist/doc/latex/bclogo/readme62
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/attention.eps127
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/attention.pdfbin0 -> 1856 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/aux-301.pdfbin0 -> 3072 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/bclogo.sty246
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/book.pgf84
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/book.pst72
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/coeur.eps43
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/coeur.pdfbin0 -> 1199 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/danger.eps71
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/danger.pdf77
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/etoile.eps57
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/etoile.pdf77
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/fleur.eps186
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/fleur.pdfbin0 -> 1659 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/lampe.pgf33
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/lampe.pst30
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/note.eps2242
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/note.pdfbin0 -> 2686 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/orne.eps267
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/orne.pdfbin0 -> 3934 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/ours.eps315
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/ours.pdfbin0 -> 1940 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/smiley_bonnehumeur.eps100
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/smiley_bonnehumeur.pdfbin0 -> 1465 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/smiley_mauvaisehumeur.eps100
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/smiley_mauvaisehumeur.pdfbin0 -> 1418 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/takecare.pgf44
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/takecare.pst28
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/trefle.eps150
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/trefle.pdfbin0 -> 2315 bytes
-rw-r--r--Master/texmf-dist/tex/latex/bclogo/trefle.tex145
36 files changed, 4860 insertions, 271 deletions
diff --git a/Master/texmf-dist/doc/latex/bclogo/LISEZ-MOI b/Master/texmf-dist/doc/latex/bclogo/LISEZ-MOI
index b5008fddba7..0287d6c57f7 100644
--- a/Master/texmf-dist/doc/latex/bclogo/LISEZ-MOI
+++ b/Master/texmf-dist/doc/latex/bclogo/LISEZ-MOI
@@ -1,8 +1,8 @@
-*- coding: utf-8 -*-
Paquet bclogo par Maxime Chupin
-Version 1.3 datée du 20/08/2008
+Version 2.1 datée du 4 Janvier 2009
-Ce paquet facilite la création de boîtes colorées avec un titre et un logo. Il s'appuie principalement sur PSTricks.
+Ce paquet facilite la création de boîtes colorées avec un titre et un logo. Il s'appuie principalement sur PSTricks et/ou sur Tikz.
La documentation pdf (en français) presente la syntaxe et les paramétrages
@@ -12,23 +12,53 @@ FICHIERS :
LISEZ-MOI
README
bclogo-doc.pdf
+bclogo-doc.tex
===== Fichiers pour LaTeX =====
bclogo.sty
attention.tex
+attention.eps
+attention.pdf
+aux-301.eps
+aux-301.pdf
+book.pst
+book.pgf
coeur.tex
+coeur.eps
+coeur.pdf
danger.tex
+danger.eps
+danger.pdf
etoile.tex
+etoile.eps
+etoile.pdf
fleur.tex
+fleur.eps
+fleur.pdf
+lampe.pst
+lampe.pgf
note.tex
+note.eps
+note.pdf
orne.tex
+orne.eps
+orne.pdf
ours.tex
+ours.eps
+ours.pdf
smiley_bonnehumeur.tex
+smiley_bonnehumeur.eps
+smiley_bonnehumeur.pdf
smiley_mauvaisehumeur.tex
-aux-301.eps
-
+smiley_mauvaisehumeur.eps
+smiley_mauvaisehumeur.pdf
+takecare.pgf
+takecare.pst
+trefle.tex
+trefle.eps
+trefle.pdf
==================
-L'archive bclogo-v1-3.zip contient tout ces fichiers à insérer dans une arborescence LaTeX.
+L'archive bclogo-v2-1.zip contient tout ces fichiers à insérer dans une arborescence LaTeX.
diff --git a/Master/texmf-dist/doc/latex/bclogo/README b/Master/texmf-dist/doc/latex/bclogo/README
deleted file mode 100644
index 3e94f501966..00000000000
--- a/Master/texmf-dist/doc/latex/bclogo/README
+++ /dev/null
@@ -1,32 +0,0 @@
-Bclogo package by Maxime Chupin
-Version 1.3 dated 20/08/2008
-
-This package facilitates the creation of colorful boxes with a title and logo. It relies mainly on PSTricks.
-
-The documentation pdf (in french) presents the syntax and parameters
-
-FICHIERS :
-===== documentation =====
-
-LISEZ-MOI
-README
-bclogo-doc.pdf
-
-===== Fichiers pour LaTeX =====
-
-bclogo.sty
-attention.tex
-coeur.tex
-danger.tex
-etoile.tex
-fleur.tex
-note.tex
-orne.tex
-ours.tex
-smiley_bonnehumeur.tex
-smiley_mauvaisehumeur.tex
-aux-301.eps
-
-==================
-
-The archive bclogo-v1-3.zip contains all the files to insert into a tree LaTeX.
diff --git a/Master/texmf-dist/doc/latex/bclogo/bclogo-doc.pdf b/Master/texmf-dist/doc/latex/bclogo/bclogo-doc.pdf
index b825bfc7168..dda627e9e13 100644
--- a/Master/texmf-dist/doc/latex/bclogo/bclogo-doc.pdf
+++ b/Master/texmf-dist/doc/latex/bclogo/bclogo-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/bclogo/bclogo-doc.tex b/Master/texmf-dist/doc/latex/bclogo/bclogo-doc.tex
index 3d799b92ae4..f7a24d1a399 100644
--- a/Master/texmf-dist/doc/latex/bclogo/bclogo-doc.tex
+++ b/Master/texmf-dist/doc/latex/bclogo/bclogo-doc.tex
@@ -1,4 +1,4 @@
-\documentclass[article, a4paper, 11pt]{article}
+\documentclass[ a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[garamond]{mathdesign}
\usepackage{bclogo}
@@ -11,30 +11,48 @@
\usepackage{listings}
\usepackage{pifont}
-\lstset{language=[LaTeX]TeX,defaultdialect=[LaTeX]TeX,basicstyle=\sffamily\small,breaklines=true}
+\lstset{% general command to set parameter(s)
+ basicstyle=\small, % print whole listing small
+ keywordstyle=\color{blue}\ttfamily,
+ % underlined bold black keywords
+% identifierstyle=,
+ basicstyle=\ttfamily\footnotesize, % nothing happens
+ commentstyle=\itshape\color{green}, % white comments
+ stringstyle=\ttfamily, % typewriter type for strings
+ showstringspaces=false,
+ language=[LaTeX]TeX,
+ defaultdialect=[LaTeX]TeX
+}
+\lstdefinestyle{numbers}
+ {numbers=left, stepnumber=1, numberstyle=\tiny, numbersep=10pt}
+
\newenvironment{enum}{%
\begin{dingautolist}{202}}
{\end{dingautolist}}
\newenvironment{Code}{%
-\begin{bclogo}[logo = \orne]{Code}%
+\begin{bclogo}[logo = \bcorne]{Code}%
}
{%
\end{bclogo}
}
+
+
+
+
\definecolor{cPG}{RGB}{235, 227, 150}
-\title{\texttt{bclogo} version 1.3}
-\author{Maxime \textsc{Chupin}\footnote{Merci à Jean-Côme \textsc{Charpentier}, Ulrike \textsc{Fischer} et Manuel \textsc{Pégourié-Gonnard}}\\\texttt{notezik@gmail.com}}
-\date{16 Septembre 2008}
+\title{\texttt{bclogo} version 2.1}
+\author{ Maxime \textsc{Chupin} et Patrick \textsc{Fradin} \footnote{Merci à Jean-Côme \textsc{Charpentier}, Ulrike \textsc{Fischer} et Manuel \textsc{Pégourié-Gonnard}}\\\texttt{notezik@gmail.com}}
+\date{4 Janvier 2009}
\begin{document}
\maketitle
\begin{abstract}
-Ce paquet permet la création, via \texttt{Pstricks}, de boîtes colorées avec un logo, un titre et une couleur de fond\footnote{Il y a bien entendu d'autres options}.
+Ce paquet permet la création, via \texttt{Pstricks} ou \texttt{Tikz}, de boîtes colorées avec un logo, un titre et une couleur de fond\footnote{Il y a bien entendu d'autres options}.
\end{abstract}
\vspace*{2cm}
@@ -43,24 +61,27 @@ Voici les logos :
\begin{multicols}{2}
\begin{itemize}
-\item La fleur : \fleur
-\item Le chantier : \panchant
-\item La note : \note
-\item L'étoile : \etoile
-\item L'ourson : \ours
+\item La fleur : \bcfleur
+\item Le chantier : \bcpanchant
+\item La note : \bcnote
+\item L'étoile : \bcetoile
+\item L'ourson : \bcours
+\item Take care : \bctakecare
+\item La lampe : \bclampe
\end{itemize}
\begin{itemize}
-\item Attention : \attention
-\item Le c\oe ur : \coeur
-\item Ornement : \danger
-\item Smiley heureux : \smbh
-\item Smiley malheureux : \smmh
+\item Attention : \bcattention
+\item Le c\oe ur : \bccoeur
+\item Ornement : \bcdanger
+\item Smiley heureux : \bcsmbh
+\item Smiley malheureux : \bcsmmh
+\item Le trêfle : \bctrefle
+\item LE livre : \bcbook
\end{itemize}
\end{multicols}
\end{bclogo}
-
\newpage
\tableofcontents
@@ -68,33 +89,60 @@ Voici les logos :
\section{Introduction}
-Ce paquet a été créé pour faciliter la fabrication de boîtes colorées plus ou moins complexes disposant d'un titre, d'un logo et d'une couleur de fond. \texttt{bclogo} s'appuie principalement sur \texttt{Pstricks} et comme il utilise \texttt{xkeyval}, la \textit{syntaxe} est habituelle pour les utilisateurs du dit language. Ces boîtes permettent de colorer un peu les pages d'un document \LaTeX{} tout en mettant en relief le contenu de la boîte.
+Ce paquet a été créé pour faciliter la fabrication de boîtes colorées plus ou moins complexes disposant d'un titre, d'un logo et d'une couleur de fond. Depuis la version 2.0, \texttt{bclogo} s'appuie principalement sur \texttt{Pstricks} \textbf{ou} sur \texttt{tikz}\footnote{Ceci grâce à Patrick \textsc{Fradin}}. Ce paquet utilise \texttt{xkeyval} pour la gestion des paramètres. Ces boîtes permettent de colorer un peu les pages d'un document \LaTeX{} tout en mettant en relief le contenu de la boîte.
Pour son bon fonctionnement, il est necessaire d'avoir les paquets suivants installés sur votre machine.
-\begin{bclogo}[couleur = cPG, logo = \attention, cadretitre = true, arrondi = 0.1]{Les paquets \textit{indispensables}}
+\begin{bclogo}[couleur = cPG, logo = \bcattention, cadretitre = true, arrondi = 0.1]{Les paquets \textit{indispensables}}
\begin{multicols}{2}
\begin{enum}
\item \verb+Pstricks+
-\item \verb+tabularx+
\item \verb+graphicx+
-\item \verb+ifthen+
\item \verb+pst-grad+
\item \verb+xkeyval+
\end{enum}
\end{multicols}
+et/ou \texttt{tikz} et sa librairie \texttt{shadows}.
+
+\verb+xkeyval+ est nécessaire dans les deux utilisations.
\end{bclogo}
+\section{La chargement du paquet}
+
+Depuis la version 2.0 de \texttt{bclogo}, le chargement s'effectue avec deux options, soit on utilise \texttt{pstricks} (par défaut)\footnote{Ceci est issue d'un conseil d'Herbert \textsc{Voss} qui vérifie à chaque nouvelle version le code, merci à lui.} soit \texttt{tikz}. Ceci s'effectue dans le préambule du document \LaTeX{} :
+
+\begin{Code}
+\begin{lstlisting}
+\usepackage[tikz]{bclogo}
+\end{lstlisting}
+ou
+\begin{lstlisting}
+\usepackage[pstrick]{bclogo}
+\end{lstlisting}
+\end{Code}
+
+\noindent\textbf{Remarque : } Les syntaxes
+\begin{lstlisting}
+\usepackage[pstricks]{bclogo}
+\end{lstlisting}
+et
+\begin{lstlisting}
+\usepackage{bclogo}
+\end{lstlisting}
+sont équivalentes.
\section{Syntaxe générale}
+Quelque soit l'option de chargement choisie, la syntaxe pour la création de boîte est la même.
+\bigskip
+
Voici le schéma de base pour réaliser une boîte :
\begin{Code}
-\begin{verbatim}
+\begin{lstlisting}
\begin{bclogo}[<options>]{Titre}
Corps de la boite...
\end{bclogo}
-\end{verbatim}
+\end{lstlisting}
\end{Code}
\section{Les options}
@@ -103,13 +151,13 @@ Corps de la boite...
On définit la couleur de fond grâce à \texttt{couleur = <macouleur>}, par exemple :
\begin{Code}
-\begin{verbatim}
+\begin{lstlisting}
\begin{bclogo}[couleur = blue!30]{Mon Titre}
- Du texte qui se répète encore et encore pour l'exemple, du texte qui
- se répète encore et encore pour l'exemple, du texte qui se répète
+ Du texte qui se r\'ep\`ete encore et encore pour l'exemple, du texte qui
+ se r\'ep\`ete encore et encore pour l'exemple, du texte qui se r\'ep\`ete
encore et encore pour l'exemple\dots
\end{bclogo}
-\end{verbatim}
+\end{lstlisting}
\end{Code}
\bigskip
@@ -126,16 +174,16 @@ Par défaut la couleur est blanche.
\subsection{L'arrondi des coins}
-On commande la taille de l'arrondi dans les options de la manière suivante \texttt{arrondi = <valeur>} :
+On commande la taille de l'arrondi dans les options de la manière suivante \texttt{arrondi = <valeur>} , elle se règle en cm :
\begin{Code}
-\begin{verbatim}
+\begin{lstlisting}
\begin{bclogo}[couleur = blue!30, arrondi = 0.1]{Mon Titre}
- Du texte qui se répète encore et encore pour l'exemple, du texte qui
- se répète encore et encore pour l'exemple, du texte qui se répète
+ Du texte qui se r\'ep\`ete encore et encore pour l'exemple, du texte qui
+ se r\'ep\`ete encore et encore pour l'exemple, du texte qui se r\'ep\`ete
encore et encore pour l'exemple\dots
\end{bclogo}
-\end{verbatim}
+\end{lstlisting}
\end{Code}
\bigskip
@@ -152,19 +200,19 @@ Par défaut, l'arrondi est à 0.
\subsection{Le style de titre}
-Il y a deux styles de titre. Un, par défaut ou avec la commande \texttt{cadretitre = false}. Les boîtes précédentes utilise ce style de titre.
+Il y a deux styles de titre. Un, par défaut ou avec la commande \texttt{cadretitre = false}. Les boîtes précédentes utilisent ce style de titre.
\bigskip
Le second style, plus élaboré, est un cadre avec un gradient de couleur \textit{gold}. Ceci s'obtient avec la commande \texttt{cadretitre = true}.
\begin{Code}
-\begin{verbatim}
+\begin{lstlisting}
\begin{bclogo}[couleur = blue!30, arrondi = 0.1, cadretitre = true]{Mon Titre}
- Du texte qui se répète encore et encore pour l'exemple, du texte qui
- se répète encore et encore pour l'exemple, du texte qui se répète
+ Du texte qui se r\'ep\`ete encore et encore pour l'exemple, du texte qui
+ se r\'ep\`ete encore et encore pour l'exemple, du texte qui se r\'ep\`ete
encore et encore pour l'exemple\dots
\end{bclogo}
-\end{verbatim}
+\end{lstlisting}
\end{Code}
\bigskip
@@ -178,159 +226,312 @@ Ce qui donne :
\subsection{Les logos}
-C'est là que réside l'originalité de \texttt{bclogo}\dots Pour la plupart, je les ai dessinés avec \textit{Inkscape} et exportés en PSTricks. Chaque logo (dessiné avec \textit{Inkscape}) est contenu dans un fichier \textit{<monlogo>}\texttt{.tex} qui est appelé dans le fichier \texttt{bclogo.sty}. La création de logo est un travail amusant, ceux qui veulent y participer n'ont qu'à me contacter par mail.
+C'est là que réside l'originalité de \texttt{bclogo}\dots{} Pour la plupart, je les ai dessinés avec \textit{Inkscape} et exportés en PSTricks.
+
+Il y a depuis la version 2.0, plusieurs façons de créer des logos, soit au format \texttt{pstricks}, soit au format \texttt{pgf}, soit au format \texttt{eps}, soit au format \texttt{pdf}. Des commandes sont définies appelant les fichiers aux différents formats.
-Les logos sont définis avec une largeur de 17pt.
+La création de logo est un travail amusant, ceux qui veulent y participer n'ont qu'à me contacter par mail (les logos sont définis avec une largeur de 17pt, la hauteur est plus ou moins libre dans la mesure du raisonable). Lors de la création des logos il faut veiller à permettre la double utilisation \texttt{tikz} et \texttt{pstricks}.
-Le \og{}panneau chantier\fg{} est un logo particulier car c'est une image \texttt{.eps}.
Voici la liste des logos :
-\begin{bclogo}[arrondi=0.05, logo=\fleur, couleur= cPG, cadretitre = true]{Les logos}:
+\begin{bclogo}[arrondi=0.05, logo=\bctrefle, couleur= cPG, cadretitre = true]{Les logos}:
\begin{enumerate}
-\item la fleur : commande \verb+\fleur+ \raisebox{-3mm}{\fleur}
-\item \og{}en chantier\fg{} : commande \verb+\panchant+ \raisebox{-3mm}{\panchant} (Jean-Michel \textsc{Sarlat})
-\item la note : commande \verb+\note+ \raisebox{-3mm}{\note} (Thomas \textsc{Labarrusias})
-\item l'étoile : commande \verb+\etoile+ \raisebox{-3mm}{\etoile}
-\item l'ourson : commande \verb+\ours+ \raisebox{-3mm}{\ours}
-\item \og{}attention\fg{} : commande \verb+\attention+ \raisebox{-3mm}{\attention}
-\item le c\oe{}ur : commande \verb+\coeur+ \raisebox{-3mm}{\coeur}
-\item ornement : commande \verb+\orne+ \raisebox{-3mm}{\orne}
-\item danger : commande \verb+\danger+ \raisebox{-3mm}{\danger} (François \textsc{Boerkmann})
-\item smiley heureux : commande \verb+\smbh+ \raisebox{-3mm}{\smbh} (François \textsc{Boerkmann})
-\item smiley malheureux : commande \verb+\smmh+ \raisebox{-3mm}{\smmh} (François \textsc{Boerkmann})
+\item la fleur : commande \verb+\bcfleur+ \raisebox{-3mm}{\bcfleur}
+\item \og{}en chantier\fg{} : commande \verb+\bcpanchant+ \raisebox{-3mm}{\bcpanchant} (Jean-Michel \textsc{Sarlat})
+\item la note : commande \verb+\bcnote+ \raisebox{-3mm}{\bcnote} (Thomas \textsc{Labarrusias})
+\item l'étoile : commande \verb+\bcetoile+ \raisebox{-3mm}{\bcetoile}
+\item l'ourson : commande \verb+\bcours+ \raisebox{-3mm}{\bcours}
+\item \og{}attention\fg{} : commande \verb+\bcattention+ \raisebox{-3mm}{\bcattention}
+\item le c\oe{}ur : commande \verb+\bccoeur+ \raisebox{-3mm}{\bccoeur}
+\item ornement : commande \verb+\bcorne+ \raisebox{-3mm}{\bcorne}
+\item danger : commande \verb+\bcdanger+ \raisebox{-3mm}{\bcdanger} (François \textsc{Boerkmann})
+\item smiley heureux : commande \verb+\bcsmbh+ \raisebox{-3mm}{\bcsmbh} (François \textsc{Boerkmann})
+\item smiley malheureux : commande \verb+\bcsmmh+ \raisebox{-3mm}{\bcsmmh} (François \textsc{Boerkmann})
+\item Take care : commande \verb+\bctakecare+ \raisebox{-3mm}{\bctakecare} (Patrick \textsc{Fradin})
+\item La lampe : commande \verb+\bclampe+ \raisebox{-3mm}{\bclampe} (Patrick \textsc{Fradin})
+\item Le livre : commande \verb+\bcbook+ \raisebox{-3mm}{\bcbook} (Patrick \textsc{Fradin})
+\item Le trêfle : commande \verb+\bctrefle+ \raisebox{-3mm}{\bctrefle}
\end{enumerate}
\end{bclogo}
+Par exemple,
+
+\begin{Code}
+\begin{lstlisting}
+\begin{bclogo}[couleur = blue!30, arrondi = 0.1, logo = \bctrefle]{Mon Titre}
+ Du texte qui se r\'ep\`ete encore et encore pour l'exemple, du texte qui
+ se r\'ep\`ete encore et encore pour l'exemple, du texte qui se r\'ep\`ete
+ encore et encore pour l'exemple\dots
+\end{bclogo}
+\end{lstlisting}
+\end{Code}
+
+produit :
+
+\begin{bclogo}[couleur = blue!30, arrondi = 0.1, logo = \bctrefle]{Mon Titre}
+ Du texte qui se répète encore et encore pour l'exemple, du texte qui
+ se répète encore et encore pour l'exemple, du texte qui se répète
+ encore et encore pour l'exemple\dots
+\end{bclogo}
+
+\subsection{L'ombre}
+
+La gestion de l'ombre se règle comme les autres options. Par défaut, il n'y en a pas (la valeur \texttt{ombre} vaut \texttt{false}). On active l'ombre avec la commande \texttt{ombre = true}. Par exemple :
+
+\begin{Code}
+\begin{lstlisting}
+\begin{bclogo}[couleur = blue!30, arrondi = 0.1, ombre = true]{Mon Titre}
+ Du texte qui se r\'ep\`ete encore et encore pour l'exemple, du texte qui
+ se r\'ep\`ete encore et encore pour l'exemple, du texte qui se r\'ep\`ete
+ encore et encore pour l'exemple\dots
+\end{bclogo}
+\end{lstlisting}
+\end{Code}
+
+Ce qui produit :
+\begin{bclogo}[couleur = blue!30, arrondi = 0.1, ombre = true]{Mon Titre}
+ Du texte qui se répète encore et encore pour l'exemple, du texte qui
+ se répète encore et encore pour l'exemple, du texte qui se répète
+ encore et encore pour l'exemple\dots
+\end{bclogo}
+
+\subsubsection{Paramètres de l'ombre}
+
+\paragraph{Épaisseur} On règle l'épaisseur de l'ombre avec la commande \texttt{epOmbre = <\textrm{valeur en cm}>}. La valeur par défaut est de 0.125 cm.
+
+\paragraph{Couleur} On régle la couleur avec la commande \texttt{couleurOmbre = <\textrm{couleur}>}. La valeur par défaut est \textit{black}.
+
+Voici un exemple illustrant les deux options :
+
+\begin{Code}
+\begin{lstlisting}[ breaklines=true,breakindent=30pt]
+\begin{bclogo}[couleur = blue!30, arrondi = 0.1, ombre = true, epOmbre = 0.25, couleurOmbre = black!30]{Mon Titre}
+ Du texte qui se r\'ep\`ete encore et encore pour l'exemple, du texte qui
+ se r\'ep\`ete encore et encore pour l'exemple, du texte qui se r\'ep\`ete
+ encore et encore pour l'exemple\dots
+\end{bclogo}
+\end{lstlisting}
+\end{Code}
+
+produit :
+
+\begin{bclogo}[couleur = blue!30, arrondi = 0.1, ombre = true, epOmbre = 0.25, couleurOmbre = black!30]{Mon Titre}
+ Du texte qui se répète encore et encore pour l'exemple, du texte qui
+ se répète encore et encore pour l'exemple, du texte qui se répète
+ encore et encore pour l'exemple\dots
+\end{bclogo}
+
\section{Liste des boîtes}
On peut, comme avec table of contents, lister les boîtes utilisées dans le document et ce grâce à la commande :
-\begin{verbatim}
+\begin{lstlisting}
\listofbclogo
-\end{verbatim}
-
-Les noms affichés dans la liste sont les différents titres des boîtes. Par exemple dans ce document la liste donne :
+\end{lstlisting}
+Les noms affichés dans la liste sont les différents titres des boîtes. Par exemple dans ce document la liste donne (ici j'utilise un \texttt{multicols} pour l'affichage sur deux colonnes) :
+\begin{multicols}{2}
\listofbclogo
+\end{multicols}
\bigskip
Le titre de la liste peut alors être modifié par la commande :
-\begin{verbatim}
+\begin{lstlisting}
\renewcommand{\titrebclogo}{Liste des fiches}
-\end{verbatim}
+\end{lstlisting}
\section{Le code}
-Voici le code de \texttt{bclogo.sty}, je ne mets pas le code des logos car cela manque d'intérêt.
-
-\begin{lstlisting}[numbers=left]
+\begin{lstlisting}[style=numbers, breaklines=true,breakindent=30pt]
\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesPackage{bclogo}[2008/03/12, V1.3]
-
-% extensions
-
-\RequirePackage{pstricks}
-\RequirePackage{pst-grad}
-\RequirePackage{tabularx}
-\RequirePackage{graphicx}
-\RequirePackage{ifthen}
+\def\PackageName{bclogo}
+\def\fileversion{v2.1}
+\def\filedate{2009/04/01}
+\ProvidesPackage{bclogo}
+ [\filedate\space\fileversion]
\RequirePackage{xkeyval}
-%les symboles
-%======================================================================
-%la fleur
-\newcommand\fleur{\begingroup\input{fleur}\endgroup}
-%une note (Thomas Laburussias)
-\newcommand\note{\begingroup\input{note}\endgroup}
-%panneau chantier (Jean-Michel Sarlat)
-\newcommand{\panchant}{\includegraphics[width=17pt]{aux-301.eps}}
-%ours
-\newcommand\ours{\begingroup\input{ours.tex}\endgroup}
-%etoile
-\newcommand\etoile{\begingroup\input{etoile.tex}\endgroup}
-%attention
-\newcommand\attention{\begingroup\input{attention.tex}\endgroup}
-%coeur
-\newcommand\coeur{\begingroup\input{coeur.tex}\endgroup}
-%ornement (tire du site http://openclipart.org )
-\newcommand\orne{\begingroup\input{orne.tex}\endgroup}
-%danger (Francois)
-\newcommand\danger{\begingroup\input{danger.tex}\endgroup}
-%smiley bonne humeur (Francois)
-\newcommand\smbh{\begingroup\input{smiley_bonnehumeur.tex}\endgroup}
-%smiley bonne humeur (Francois)
-\newcommand\smmh{\begingroup\input{smiley_mauvaisehumeur.tex}\endgroup}
-%======================================================================
-
-%=========================== La fonction listable =====================
+
+%% Les options globales du package sont au nombre de 2: tikz ou pstricks
+
+\newif\iftikz\tikzfalse%
+\define@key{bclogo.sty}{pstricks}[]{\tikzfalse}%
+\define@key{bclogo.sty}{tikz}[]{\tikztrue}%
+\ProcessOptionsX%
+
+
+
+\iftikz%
+\RequirePackage{tikz}%
+\usetikzlibrary{shadows}%
+\else%
+\RequirePackage{pstricks}%
+\RequirePackage{pst-grad}%
+\RequirePackage{graphicx}%
+\fi%
+% les symboles
+% ==============================================================================
+\iftikz%
+% la fleur
+\newcommand\bcfleur{\includegraphics[width=17pt]{fleur}}
+% une note (Thomas Laburussias)
+\newcommand\bcnote{\includegraphics[width=17pt]{note}}
+% panneau chantier (Jean-Michel Sarlat)
+\newcommand\bcpanchant{\includegraphics[width=17pt]{aux-301}}
+% ours
+\newcommand\bcours{\includegraphics[width=17pt]{ours}}
+% etoile
+\newcommand\bcetoile{\includegraphics[width=17pt]{etoile}}
+% attention
+\newcommand\bcattention{\includegraphics[width=17pt]{attention}}
+% attention P.Fradin
+\newcommand\bctakecare{\begingroup\input{takecare.pgf}\endgroup}
+% lampe P.Fradin
+\newcommand\bclampe{\begingroup\input{lampe.pgf}\endgroup}
+% coeur
+\newcommand\bccoeur{\includegraphics[width=17pt]{coeur}}
+% ornement (tire du site http://openclipart.org )
+\newcommand\bcorne{\includegraphics[width=17pt]{orne}}
+% danger (Francois)
+\newcommand\bcdanger{\includegraphics[width=17pt]{danger}}
+% smiley bonne humeur (Francois)
+\newcommand\bcsmbh{\includegraphics[width=17pt]{smiley_bonnehumeur}}
+% smiley bonne humeur (Francois)
+\newcommand\bcsmmh{\includegraphics[width=17pt]{smiley_mauvaisehumeur}}
+% le trefle
+\newcommand\bctrefle{\includegraphics[width=17pt]{trefle}}
+% livre P.Fradin
+\newcommand\bcbook{\begingroup\input{book.pgf}\endgroup}
+
+\else%pstricks
+% la fleur
+\newcommand\bcfleur{\begingroup\input{fleur.tex}\endgroup}
+% une note (Thomas Laburussias)
+\newcommand\bcnote{\begingroup\input{note.tex}\endgroup}
+% panneau chantier (Jean-Michel Sarlat)
+\newcommand\bcpanchant{\includegraphics[width=17pt]{aux-301.eps}}
+% ours
+\newcommand\bcours{\begingroup\input{ours.tex}\endgroup}
+% etoile
+\newcommand\bcetoile{\begingroup\input{etoile.tex}\endgroup}
+% attention
+\newcommand\bcattention{\begingroup\input{attention.tex}\endgroup}
+% attention P.Fradin
+\newcommand\bctakecare{\begingroup\input{takecare.pst}\endgroup}
+% lampe P.Fradin
+\newcommand\bclampe{\begingroup\input{lampe.pst}\endgroup}
+% coeur
+\newcommand\bccoeur{\begingroup\input{coeur.tex}\endgroup}
+% ornement (tire du site http://openclipart.org )
+\newcommand\bcorne{\begingroup\input{orne.tex}\endgroup}
+% danger (Francois)
+\newcommand\bcdanger{\begingroup\input{danger.tex}\endgroup}
+% smiley bonne humeur (Francois)
+\newcommand\bcsmbh{\begingroup\input{smiley_bonnehumeur.tex}\endgroup}
+% smiley bonne humeur (Francois)
+\newcommand\bcsmmh{\begingroup\input{smiley_mauvaisehumeur.tex}\endgroup}
+% le trefle
+\newcommand\bctrefle{\begingroup\input{trefle.tex}\endgroup}
+% livre P.Fradin
+\newcommand\bcbook{\begingroup\input{book.pst}\endgroup}
+\fi
+
+% =========================== La fonction listable =============================
\newcommand{\titrebclogo}{Liste des \texttt{bclogo}}
\newcommand\bccaption[1]{\addcontentsline{bcl}{bclogo}{#1}}
-\makeatletter
\newcommand\listofbclogo{\section*{\titrebclogo}\@starttoc{bcl}}
\newcommand\l@bclogo[2]{\par\noindent #1,~\textit{page~#2}}
-\makeatother
-%======================================================================
-\makeatletter
-%======================================= les keys =====================
-
-\define@key{bclogo}{logo}[\fleur]{\def\val@logo{#1}}
+% ======================================= les keys =============================
+
+\define@key{bclogo}{logo}[\bcfleur]{\def\val@logo{#1}}
\define@key{bclogo}{couleur}[white]{\def\val@couleur{#1}}
\define@key{bclogo}{arrondi}[0]{\def\val@arrondi{#1}}
-\define@boolkey{bclogo}{cadretitre}[false]{}
-
-\setkeys{bclogo}{logo, couleur, arrondi} %on recupere les valeur par
- %defaut
-
-%======================================================================
-
+\define@key{bclogo}{epOmbre}[0.125]{\def\val@epOmbre{#1}}
+\define@key{bclogo}{arrondi}[0]{\def\val@arrondi{#1}}
+\define@key{bclogo}{couleurOmbre}[black]{\def\val@couleurOmbre{#1}}
+\define@boolkey{bclogo}{cadretitre}[true]{}
+\define@boolkey{bclogo}{ombre}[true]{}
+
+% selection par defaut
+\presetkeys{bclogo}{logo, couleur, arrondi, couleurOmbre, epOmbre, ombre=false, cadretitre=false}{}%
+
+%===============================================================================
+
\newsavebox{\envbox}
%%% precaution JCC
-\newcommand*\bclogocolor{}
\newcommand*\bclogotitre{}
-
+\newlength{\pgfframesep}
+\setlength{\pgfframesep}{\iftikz3pt\else\psframesep\fi}
+
\newenvironment*{bclogo}[2][]{%
- \setkeys{bclogo}{#1} %on recupere les options
- \par\noindent % attention au retrait d'alinea
- %%% Ajout de JCC : il faut definir les commandes qui seront
- %%% untilisees dans la deuxieme partie de l'environnement commande
- %%% titre
- \renewcommand*\bclogotitre{#2}
- \renewcommand*\bclogocolor{\val@couleur}
-%La commande pour les coins arrondis
- \newcommand{\arr}{\val@arrondi}
-%%% deux types de titres
- \ifKV@bclogo@cadretitre %si cadretitre = true
- \newcommand{\structitre}{ \rput({\dimexpr
- -17pt+0.5\linewidth},0.1)%
- {\psframebox[fillstyle=gradient,gradmidpoint=0.2,%
- gradangle=0,gradbegin=red!60!green!40, gradend=white]{\large #2}}}
- \else %sinon
- \newcommand{\structitre}{{\large \textbf{#2}}} \fi
-%
-\begin{lrbox}{\envbox}
-\begin{tabular}{@{}c@{}p{\dimexpr\linewidth-2\psframesep-%
-2\pslinewidth-17pt}@{}}
- \raisebox{-3mm}{\val@logo} &\structitre \\[1ex]
- \vrule width 0.05cm&
+ \setkeys{bclogo}{#1} %on recupere les options
+ \par\noindent % attention au retrait d'alinea
+ %%% Ajout de JCC : il faut definir les commandes qui seront
+ %%% utilisees dans la deuxieme partie de l'environnement
+ %%% commande titre
+ \renewcommand*\bclogotitre{#2}
+ % La commande pour les coins arrondis
+ \newcommand{\arr}{\val@arrondi}
+ %%% deux types de titres
+ \ifKV@bclogo@cadretitre %si cadretitre = true
+ \newcommand{\structitre}{%
+ \iftikz% cadretitre tizk
+ \hfil
+ \raisebox{-0.0ex}{%
+ \begin{tikzpicture}\node[rectangle, thick, top color=red!60!green!40, bottom color=white,draw]{\large #2};
+ \end{tikzpicture}}
+ \hfil%
+ \else% cadretitre pstricks
+ \hfil
+ \psframebox[fillstyle=gradient,gradmidpoint=0.2, gradangle=0,gradbegin=red!60!green!40, gradend=white]{\large #2}
+ \hfil%
+ \fi
+ }
+ \else %sinon
+ \newcommand{\structitre}{\large \textbf{#2}}%
+ \fi%
+ \begin{lrbox}{\envbox}
+ \ifKV@bclogo@ombre % si l'ombre, on reduit pour que ca loge sur la
+ % largeur de la page (-\val@epOmbre)
+ \begin{tabular}{@{}c@{}p{\dimexpr\linewidth-2\pgfframesep-4pt-17pt-\val@epOmbre cm}@{}}
+ \else
+ \begin{tabular}{@{}c@{}p{\dimexpr\linewidth-2\pgfframesep-4pt-17pt}@{}}
+ \fi
+ \begin{minipage}{20pt}{\val@logo}\end{minipage}&
+ \begin{minipage}{\dimexpr\linewidth-2\pgfframesep-4pt-17pt}{\structitre}\end{minipage}\\%[0ex]
+ \vrule width 0.05cm&%
}
{%
- \bccaption{\bclogotitre}
- \end{tabular}%
+ \bccaption{\bclogotitre}
+ \end{tabular}%
\end{lrbox}%
% Affiche le texte dans un cadre en couleur.
+ \iftikz% texte tikz
+ \par\noindent
+ \begin{tikzpicture}%
+ \ifKV@bclogo@ombre %cadre ombre
+ \node[fill=\val@couleur,thick, shape=rectangle, inner sep=\pgfframesep, rounded corners=\arr cm,%
+ general shadow={fill=\val@couleurOmbre},shadow xshift=\val@epOmbre cm, shadow yshift=-\val@epOmbre cm, draw]{\usebox{\envbox}};
+ \else %cadre sans ombre
+ \node[fill=\val@couleur,thick, shape=rectangle, inner sep=\pgfframesep,rounded corners=\arr cm, draw]{\usebox{\envbox}};
+ \fi
+ \end{tikzpicture}
+ \par%
+ \else% texte pstricks
\noindent
- \rput[tl](-0.18,0){%
- \psframebox[fillstyle=solid, fillcolor=\bclogocolor,framearc=\arr]{%
- \usebox{\envbox}%
- }%
- }%
- \par\vspace*{\dimexpr\ht\envbox+\dp\envbox+2\psframesep+2\pslinewidth}
-}
-
-\makeatother
-
+ \ifKV@bclogo@ombre%cadre ombre
+ \rput[tl](-0.21,0){\psframebox[fillstyle=solid, shadow=true, shadowsize=\val@epOmbre cm,%
+ shadowcolor=\val@couleurOmbre, fillcolor=\val@couleur,framearc=\arr]{\usebox{\envbox}}}%
+ \else%cadre sans ombre
+ \rput[tl](-0.21,0){\psframebox[fillstyle=solid, fillcolor=\val@couleur,framearc=\arr]{\usebox{\envbox}}}%
+ \fi%
+ \par\vspace*{\dimexpr\ht\envbox+\dp\envbox+2\psframesep+2\pslinewidth}
+ \fi%fin
+ \ifKV@bclogo@ombre\vspace*{\val@epOmbre cm}\fi
+}%
\end{lstlisting}
-\end{document} \ No newline at end of file
+
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/bclogo/readme b/Master/texmf-dist/doc/latex/bclogo/readme
new file mode 100644
index 00000000000..4e684fb23f7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/bclogo/readme
@@ -0,0 +1,62 @@
+Bclogo package by Maxime Chupin
+Version 2.1 dated 04/01/2009
+
+This package facilitates the creation of colorful boxes with a title and logo. It relies mainly on PSTricks and/or Tikz.
+
+The documentation pdf (in french) presents the syntax and parameters
+
+FICHIERS :
+===== documentation =====
+
+LISEZ-MOI
+README
+bclogo-doc.pdf
+bclogo-doc.tex
+
+===== Fichiers pour LaTeX =====
+
+bclogo.sty
+attention.tex
+attention.eps
+attention.pdf
+aux-301.eps
+aux-301.pdf
+book.pst
+book.pgf
+coeur.tex
+coeur.eps
+coeur.pdf
+danger.tex
+danger.eps
+danger.pdf
+etoile.tex
+etoile.eps
+etoile.pdf
+fleur.tex
+fleur.eps
+fleur.pdf
+lampe.pst
+lampe.pgf
+note.tex
+note.eps
+note.pdf
+orne.tex
+orne.eps
+orne.pdf
+ours.tex
+ours.eps
+ours.pdf
+smiley_bonnehumeur.tex
+smiley_bonnehumeur.eps
+smiley_bonnehumeur.pdf
+smiley_mauvaisehumeur.tex
+smiley_mauvaisehumeur.eps
+smiley_mauvaisehumeur.pdf
+takecare.pgf
+takecare.pst
+trefle.tex
+trefle.eps
+trefle.pdf
+==================
+
+The archive bclogo-v2-1.zip contains all the files to insert into a tree LaTeX.
diff --git a/Master/texmf-dist/tex/latex/bclogo/attention.eps b/Master/texmf-dist/tex/latex/bclogo/attention.eps
new file mode 100644
index 00000000000..0b523eb06c2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/attention.eps
@@ -0,0 +1,127 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 0 1 14 15
+%%HiResBoundingBox: 0.8440669 1.2474533 13.206494 14.649781
+%%EndComments
+%%Page: 1 1
+0 16 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave
+1 0.21568628 0 setrgbcolor
+newpath
+16.345058 13.829951 moveto
+6.3593534 2.3931728 lineto
+6.3593534 2.3931728 5.0864557 0.71273825 4.5460761 2.7855131 curveto
+4.0056966 4.8582879 1.14834 17.022969 1.14834 17.022969 curveto
+1.14834 17.022969 0.77593772 18.760269 2.6228105 18.300834 curveto
+4.4696834 17.841398 15.584513 15.017689 15.584513 15.017689 curveto
+15.584513 15.017689 16.795929 14.83381 16.345058 13.829951 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.10000001 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+16.345058 13.829951 moveto
+6.3593534 2.3931728 lineto
+6.3593534 2.3931728 5.0864557 0.71273825 4.5460761 2.7855131 curveto
+4.0056966 4.8582879 1.14834 17.022969 1.14834 17.022969 curveto
+1.14834 17.022969 0.77593772 18.760269 2.6228105 18.300834 curveto
+4.4696834 17.841398 15.584513 15.017689 15.584513 15.017689 curveto
+15.584513 15.017689 16.795929 14.83381 16.345058 13.829951 curveto
+closepath
+stroke
+gsave
+1 1 1 setrgbcolor
+newpath
+13.848306 13.108359 moveto
+6.7564312 5.1552207 lineto
+6.7564312 5.1552207 5.8533574 3.9858241 5.4581908 5.4371749 curveto
+5.0630244 6.8885256 2.968413 15.404869 2.968413 15.404869 curveto
+2.968413 15.404869 2.694777 16.620981 4.017324 16.29198 curveto
+5.3398703 15.962977 13.299455 13.941917 13.299455 13.941917 curveto
+13.299455 13.941917 14.166452 13.808242 13.848306 13.108359 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.099999987 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+13.848306 13.108359 moveto
+6.7564312 5.1552207 lineto
+6.7564312 5.1552207 5.8533574 3.9858241 5.4581908 5.4371749 curveto
+5.0630244 6.8885256 2.968413 15.404869 2.968413 15.404869 curveto
+2.968413 15.404869 2.694777 16.620981 4.017324 16.29198 curveto
+5.3398703 15.962977 13.299455 13.941917 13.299455 13.941917 curveto
+13.299455 13.941917 14.166452 13.808242 13.848306 13.108359 curveto
+closepath
+stroke
+gsave [1.0656881 -0.2651049 0.2810979 1.1299779 -5.172826 0.3353014] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+9.4642853 9.84375 moveto
+9.4642853 11.260714 9.1642853 12.410714 8.7946424 12.410714 curveto
+8.4249996 12.410714 8.1249996 11.260714 8.1249996 9.84375 curveto
+8.1249996 8.4267857 8.4249996 7.2767856 8.7946424 7.2767856 curveto
+9.1642853 7.2767856 9.4642853 8.4267857 9.4642853 9.84375 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.088432416 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+9.4642853 9.84375 moveto
+9.4642853 11.260714 9.1642853 12.410714 8.7946424 12.410714 curveto
+8.4249996 12.410714 8.1249996 11.260714 8.1249996 9.84375 curveto
+8.1249996 8.4267857 8.4249996 7.2767856 8.7946424 7.2767856 curveto
+9.1642853 7.2767856 9.4642853 8.4267857 9.4642853 9.84375 curveto
+closepath
+stroke
+grestore
+gsave [0.9704241 -0.2414066 0.2414066 0.9704241 -3.6361902 2.1038823] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+9.6428576 14.0625 moveto
+9.6428576 14.530714 9.2228576 14.910714 8.7053576 14.910714 curveto
+8.1878576 14.910714 7.7678576 14.530714 7.7678576 14.0625 curveto
+7.7678576 13.594286 8.1878576 13.214286 8.7053576 13.214286 curveto
+9.2228576 13.214286 9.6428576 13.594286 9.6428576 14.0625 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.1 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+9.6428576 14.0625 moveto
+9.6428576 14.530714 9.2228576 14.910714 8.7053576 14.910714 curveto
+8.1878576 14.910714 7.7678576 14.530714 7.7678576 14.0625 curveto
+7.7678576 13.594286 8.1878576 13.214286 8.7053576 13.214286 curveto
+9.2228576 13.214286 9.6428576 13.594286 9.6428576 14.0625 curveto
+closepath
+stroke
+grestore
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/attention.pdf b/Master/texmf-dist/tex/latex/bclogo/attention.pdf
new file mode 100644
index 00000000000..aab851a1569
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/attention.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/aux-301.pdf b/Master/texmf-dist/tex/latex/bclogo/aux-301.pdf
new file mode 100644
index 00000000000..3ef544429fb
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/aux-301.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/bclogo.sty b/Master/texmf-dist/tex/latex/bclogo/bclogo.sty
index 38d107de868..34df91222ed 100644
--- a/Master/texmf-dist/tex/latex/bclogo/bclogo.sty
+++ b/Master/texmf-dist/tex/latex/bclogo/bclogo.sty
@@ -1,105 +1,185 @@
\NeedsTeXFormat{LaTeX2e}
+\def\PackageName{bclogo}
+\def\fileversion{v2.1}
+\def\filedate{2009/04/01}
+\ProvidesPackage{bclogo}
+ [\filedate\space\fileversion]
+\RequirePackage{xkeyval}
-\ProvidesPackage{bclogo}[2008/03/12, V1.31]
+%% Les options globales du package sont au nombre de 2: tikz ou pstricks
-% extensions
-
-\RequirePackage{pstricks}
-\RequirePackage{pst-grad}
-\RequirePackage{tabularx}
-\RequirePackage{graphicx}
-\RequirePackage{ifthen}
-%\RequirePackage{xkeyval}
-%les symboles
-%==========================================================================================
-%la fleur
-\newcommand\fleur{\begingroup\input{fleur}\endgroup}
-%une note (Thomas Laburussias)
-\newcommand\note{\begingroup\input{note}\endgroup}
-%panneau chantier (Jean-Michel Sarlat)
-\newcommand{\panchant}{\includegraphics[width=17pt]{aux-301.eps}}
-%ours
-\newcommand\ours{\begingroup\input{ours.tex}\endgroup}
-%toile
-\newcommand\etoile{\begingroup\input{etoile.tex}\endgroup}
-%attention
-\newcommand\attention{\begingroup\input{attention.tex}\endgroup}
-%coeur
-\newcommand\coeur{\begingroup\input{coeur.tex}\endgroup}
-%ornement (tir du site http://openclipart.org )
-\newcommand\orne{\begingroup\input{orne.tex}\endgroup}
-%danger (Franois)
-\newcommand\danger{\begingroup\input{danger.tex}\endgroup}
-%smiley bonne humeur (Franois)
-\newcommand\smbh{\begingroup\input{smiley_bonnehumeur.tex}\endgroup}
-%smiley bonne humeur (Franois)
-\newcommand\smmh{\begingroup\input{smiley_mauvaisehumeur.tex}\endgroup}
-%=================================================================================
+\newif\iftikz\tikzfalse%
+\define@key{bclogo.sty}{pstricks}[]{\tikzfalse}%
+\define@key{bclogo.sty}{tikz}[]{\tikztrue}%
+\ProcessOptionsX%
-%=========================== La fonction listable ================================
+
+
+\iftikz%
+\RequirePackage{tikz}%
+\usetikzlibrary{shadows}%
+\else%
+\RequirePackage{pstricks}%
+\RequirePackage{pst-grad}%
+\RequirePackage{graphicx}%
+\fi%
+% les symboles
+% ==============================================================================
+\iftikz%
+% la fleur
+\newcommand\bcfleur{\includegraphics[width=17pt]{fleur}}
+% une note (Thomas Laburussias)
+\newcommand\bcnote{\includegraphics[width=17pt]{note}}
+% panneau chantier (Jean-Michel Sarlat)
+\newcommand\bcpanchant{\includegraphics[width=17pt]{aux-301}}
+% ours
+\newcommand\bcours{\includegraphics[width=17pt]{ours}}
+% etoile
+\newcommand\bcetoile{\includegraphics[width=17pt]{etoile}}
+% attention
+\newcommand\bcattention{\includegraphics[width=17pt]{attention}}
+% attention P.Fradin
+\newcommand\bctakecare{\begingroup\input{takecare.pgf}\endgroup}
+% lampe P.Fradin
+\newcommand\bclampe{\begingroup\input{lampe.pgf}\endgroup}
+% coeur
+\newcommand\bccoeur{\includegraphics[width=17pt]{coeur}}
+% ornement (tire du site http://openclipart.org )
+\newcommand\bcorne{\includegraphics[width=17pt]{orne}}
+% danger (Francois)
+\newcommand\bcdanger{\includegraphics[width=17pt]{danger}}
+% smiley bonne humeur (Francois)
+\newcommand\bcsmbh{\includegraphics[width=17pt]{smiley_bonnehumeur}}
+% smiley bonne humeur (Francois)
+\newcommand\bcsmmh{\includegraphics[width=17pt]{smiley_mauvaisehumeur}}
+% le trefle
+\newcommand\bctrefle{\includegraphics[width=17pt]{trefle}}
+% livre P.Fradin
+\newcommand\bcbook{\begingroup\input{book.pgf}\endgroup}
+
+\else%pstricks
+% la fleur
+\newcommand\bcfleur{\begingroup\input{fleur.tex}\endgroup}
+% une note (Thomas Laburussias)
+\newcommand\bcnote{\begingroup\input{note.tex}\endgroup}
+% panneau chantier (Jean-Michel Sarlat)
+\newcommand\bcpanchant{\includegraphics[width=17pt]{aux-301.eps}}
+% ours
+\newcommand\bcours{\begingroup\input{ours.tex}\endgroup}
+% etoile
+\newcommand\bcetoile{\begingroup\input{etoile.tex}\endgroup}
+% attention
+\newcommand\bcattention{\begingroup\input{attention.tex}\endgroup}
+% attention P.Fradin
+\newcommand\bctakecare{\begingroup\input{takecare.pst}\endgroup}
+% lampe P.Fradin
+\newcommand\bclampe{\begingroup\input{lampe.pst}\endgroup}
+% coeur
+\newcommand\bccoeur{\begingroup\input{coeur.tex}\endgroup}
+% ornement (tire du site http://openclipart.org )
+\newcommand\bcorne{\begingroup\input{orne.tex}\endgroup}
+% danger (Francois)
+\newcommand\bcdanger{\begingroup\input{danger.tex}\endgroup}
+% smiley bonne humeur (Francois)
+\newcommand\bcsmbh{\begingroup\input{smiley_bonnehumeur.tex}\endgroup}
+% smiley bonne humeur (Francois)
+\newcommand\bcsmmh{\begingroup\input{smiley_mauvaisehumeur.tex}\endgroup}
+% le trefle
+\newcommand\bctrefle{\begingroup\input{trefle.tex}\endgroup}
+% livre P.Fradin
+\newcommand\bcbook{\begingroup\input{book.pst}\endgroup}
+\fi
+
+% =========================== La fonction listable =============================
\newcommand{\titrebclogo}{Liste des \texttt{bclogo}}
\newcommand\bccaption[1]{\addcontentsline{bcl}{bclogo}{#1}}
-\makeatletter
\newcommand\listofbclogo{\section*{\titrebclogo}\@starttoc{bcl}}
\newcommand\l@bclogo[2]{\par\noindent #1,~\textit{page~#2}}
-\makeatother
-%=================================================================================
-\makeatletter
-%======================================= les keys ================================
-\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
-\def\fileversion{1.31}
-\def\filedate{2008/09/18}
-\message{`bclogo' v\fileversion, \filedate}
+% ======================================= les keys =============================
-\pst@addfams{bclogo}
-\define@key[psset]{bclogo}{logo}{\def\val@logo{#1}}
-\define@key[psset]{bclogo}{couleur}{\def\val@couleur{#1}}
-\define@key[psset]{bclogo}{arrondi}{\def\val@arrondi{#1}}
-\psset[bclogo]{logo=\fleur,couleur=white,arrondi=0}
+\define@key{bclogo}{logo}[\bcfleur]{\def\val@logo{#1}}
+\define@key{bclogo}{couleur}[white]{\def\val@couleur{#1}}
+\define@key{bclogo}{arrondi}[0]{\def\val@arrondi{#1}}
+\define@key{bclogo}{epOmbre}[0.125]{\def\val@epOmbre{#1}}
+\define@key{bclogo}{arrondi}[0]{\def\val@arrondi{#1}}
+\define@key{bclogo}{couleurOmbre}[black]{\def\val@couleurOmbre{#1}}
+\define@boolkey{bclogo}{cadretitre}[true]{}
+\define@boolkey{bclogo}{ombre}[true]{}
-\define@boolkey[psset]{bclogo}[Pst@]{cadretitre}[false]{}
-\psset[bclogo]{cadretitre}% set to the default, which is false
+% selection par defaut
+\presetkeys{bclogo}{logo, couleur, arrondi, couleurOmbre, epOmbre, ombre=false, cadretitre=false}{}%
-%=================================================================================
+%===============================================================================
\newsavebox{\envbox}
-%%% prcaution JCC
-\newcommand*\bclogocolor{}
+%%% precaution JCC
\newcommand*\bclogotitre{}
+\newlength{\pgfframesep}
+\setlength{\pgfframesep}{\iftikz3pt\else\psframesep\fi}
\newenvironment*{bclogo}[2][]{%
- \psset[bclogo]{#1} %on rcupre les options
- \par\noindent % attention au retrait d'alina
-%%% Ajout de JCC : il faut dfinir les commandes qui seront untilises dans la deuxime partie de l'environnement
-%%% commande titre
- \renewcommand*\bclogotitre{#2}
- \renewcommand*\bclogocolor{\val@couleur}
-%La commande pour les coins arrondis
- \newcommand{\arr}{\val@arrondi}
-%%% deux types de titres
- \ifPst@cadretitre %si cadretitre = true
- \newcommand{\structitre}{ \rput({\dimexpr -17pt+0.5\linewidth},0.1){\psframebox[fillstyle=gradient,gradmidpoint=0.2, gradangle=0,gradbegin=red!60!green!40, gradend=white]{\large #2}}}
- \else %sinon
- \newcommand{\structitre}{{\large \textbf{#2}}}
- \fi
-%
- \begin{lrbox}{\envbox}
- \begin{tabular}{@{}c@{}p{\dimexpr\linewidth-2\psframesep-2\pslinewidth-17pt}@{}}
- \raisebox{-3mm}{\val@logo} &\structitre \\[1ex]
- \vrule width 0.05cm&
+ \setkeys{bclogo}{#1} %on recupere les options
+ \par\noindent % attention au retrait d'alinea
+ %%% Ajout de JCC : il faut definir les commandes qui seront
+ %%% utilisees dans la deuxieme partie de l'environnement
+ %%% commande titre
+ \renewcommand*\bclogotitre{#2}
+ % La commande pour les coins arrondis
+ \newcommand{\arr}{\val@arrondi}
+ %%% deux types de titres
+ \ifKV@bclogo@cadretitre %si cadretitre = true
+ \newcommand{\structitre}{%
+ \iftikz% cadretitre tizk
+ \hfil
+ \raisebox{-0.0ex}{%
+ \begin{tikzpicture}\node[rectangle, thick, top color=red!60!green!40, bottom color=white,draw]{\large #2};
+ \end{tikzpicture}}
+ \hfil%
+ \else% cadretitre pstricks
+ \hfil
+ \psframebox[fillstyle=gradient,gradmidpoint=0.2, gradangle=0,gradbegin=red!60!green!40, gradend=white]{\large #2}
+ \hfil%
+ \fi
+ }
+ \else %sinon
+ \newcommand{\structitre}{\large \textbf{#2}}%
+ \fi%
+ \begin{lrbox}{\envbox}
+ \ifKV@bclogo@ombre % si l'ombre, on reduit pour que ca loge sur la
+ % largeur de la page (-\val@epOmbre)
+ \begin{tabular}{@{}c@{}p{\dimexpr\linewidth-2\pgfframesep-4pt-17pt-\val@epOmbre cm}@{}}
+ \else
+ \begin{tabular}{@{}c@{}p{\dimexpr\linewidth-2\pgfframesep-4pt-17pt}@{}}
+ \fi
+ \begin{minipage}{20pt}{\val@logo}\end{minipage}&
+ \begin{minipage}{\dimexpr\linewidth-2\pgfframesep-4pt-17pt}{\structitre}\end{minipage}\\%[0ex]
+ \vrule width 0.05cm&%
}
{%
- \bccaption{\bclogotitre}
- \end{tabular}%
+ \bccaption{\bclogotitre}
+ \end{tabular}%
\end{lrbox}%
% Affiche le texte dans un cadre en couleur.
+ \iftikz% texte tikz
+ \par\noindent
+ \begin{tikzpicture}%
+ \ifKV@bclogo@ombre %cadre ombre
+ \node[fill=\val@couleur,thick, shape=rectangle, inner sep=\pgfframesep, rounded corners=\arr cm,%
+ general shadow={fill=\val@couleurOmbre},shadow xshift=\val@epOmbre cm, shadow yshift=-\val@epOmbre cm, draw]{\usebox{\envbox}};
+ \else %cadre sans ombre
+ \node[fill=\val@couleur,thick, shape=rectangle, inner sep=\pgfframesep,rounded corners=\arr cm, draw]{\usebox{\envbox}};
+ \fi
+ \end{tikzpicture}
+ \par%
+ \else% texte pstricks
\noindent
- \rput[tl](-0.18,0){%
- \psframebox[fillstyle=solid, fillcolor=\bclogocolor,framearc=\arr]{%
- \usebox{\envbox}%
- }%
- }%
+ \ifKV@bclogo@ombre%cadre ombre
+ \rput[tl](-0.21,0){\psframebox[fillstyle=solid, shadow=true, shadowsize=\val@epOmbre cm,%
+ shadowcolor=\val@couleurOmbre, fillcolor=\val@couleur,framearc=\arr]{\usebox{\envbox}}}%
+ \else%cadre sans ombre
+ \rput[tl](-0.21,0){\psframebox[fillstyle=solid, fillcolor=\val@couleur,framearc=\arr]{\usebox{\envbox}}}%
+ \fi%
\par\vspace*{\dimexpr\ht\envbox+\dp\envbox+2\psframesep+2\pslinewidth}
-}
-
-\makeatother
+ \fi%fin
+ \ifKV@bclogo@ombre\vspace*{\val@epOmbre cm}\fi
+}%
diff --git a/Master/texmf-dist/tex/latex/bclogo/book.pgf b/Master/texmf-dist/tex/latex/bclogo/book.pgf
new file mode 100644
index 00000000000..e75361f8ee3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/book.pgf
@@ -0,0 +1,84 @@
+% TeXgraph version 1.94 beta-7.3
+\begin{pgfpicture}{0cm}{0cm}{0.59cm}{0.75cm}%
+\pgfsetxvec{\pgfxy(0.1,0)}
+\pgfsetyvec{\pgfxy(0,0.1)}
+\pgfsetroundjoin%
+%Mbezier3 (Utilisateur)
+\pgfsetstrokecolor{black}
+\pgfsetlinewidth{0.6pt}
+\pgfmoveto{\pgfxy(0.256,6.0067)}
+\pgfcurveto{\pgfxy(0.9462,6.7311)}{\pgfxy(2.8058,7.4532)}{\pgfxy(3.2506,7.422)}
+\pgfcurveto{\pgfxy(3.2506,6.7533)}{\pgfxy(4.1189,6.3299)}{\pgfxy(4.8647,6.341)}
+\pgfcurveto{\pgfxy(3.2394,4.8923)}{\pgfxy(1.6921,4.792)}{\pgfxy(0.3006,5.5052)}
+\pgfsetfillcolor{rgb,1:red,1;green,0.7529;blue,0.7961}\pgffillstroke
+%Mbezier1 (Utilisateur)
+\pgfmoveto{\pgfxy(0.256,6.0067)}
+\pgfcurveto{\pgfxy(0.4564,5.7281)}{\pgfxy(0.9574,5.5052)}{\pgfxy(1.4694,5.5386)}
+\pgfcurveto{\pgfxy(2.0928,5.7727)}{\pgfxy(3.9296,6.3299)}{\pgfxy(4.8647,6.341)}
+\pgfcurveto{\pgfxy(4.7311,5.0706)}{\pgfxy(5.0428,2.8195)}{\pgfxy(5.5104,2.0282)}
+\pgfcurveto{\pgfxy(5.0428,1.5936)}{\pgfxy(2.5158,0.6798)}{\pgfxy(2.0149,0.7355)}
+\pgfcurveto{\pgfxy(1.5585,0.6909)}{\pgfxy(0.9351,0.925)}{\pgfxy(0.7458,1.2816)}
+\pgfcurveto{\pgfxy(0.334,2.7303)}{\pgfxy(0.0445,5.1597)}{\pgfxy(0.256,6.0067)}
+\pgfclosepath
+\pgfsetfillcolor{rgb,1:red,1;green,1;blue,0}
+\pgffillstroke
+%Mbezier2 (Utilisateur)
+\pgfmoveto{\pgfxy(1.4694,5.5386)}
+\pgfcurveto{\pgfxy(1.3804,4.1122)}{\pgfxy(1.6698,2.0282)}{\pgfxy(2.0149,0.7355)}
+\pgfstroke
+%Mbezier7 (Utilisateur)
+\pgfsetlinewidth{0.4pt}
+\pgfmoveto{\pgfxy(4.6494,2.9045)}
+\pgfcurveto{\pgfxy(4.8403,2.207)}{\pgfxy(3.5419,1.7006)}{\pgfxy(3.0932,2.4076)}
+\pgfstroke
+%Mbezier8 (Utilisateur)
+\pgfmoveto{\pgfxy(3.3987,3.9936)}
+\pgfcurveto{\pgfxy(4.6465,4.2261)}{\pgfxy(4.9139,3.3909)}{\pgfxy(3.6213,3.0798)}
+\pgffillstroke
+%Mcourbe1 (Utilisateur)
+\pgfmoveto{\pgfxy(4.0298,5.5386)}
+\pgfcurveto{\pgfxy(4.1183,5.3827)}{\pgfxy(4.1187,5.1391)}{\pgfxy(4.0855,5.0037)}
+\pgfcurveto{\pgfxy(4.0522,4.8684)}{\pgfxy(3.9854,4.8413)}{\pgfxy(3.9185,4.9591)}
+\pgfcurveto{\pgfxy(3.8516,5.077)}{\pgfxy(3.7847,5.3397)}{\pgfxy(3.8072,5.4941)}
+\pgfcurveto{\pgfxy(3.8296,5.6485)}{\pgfxy(3.9413,5.6945)}{\pgfxy(4.0298,5.5386)}
+\pgfsetfillcolor{black}\pgffillstroke
+%Mcourbe3 (Utilisateur)
+\pgfmoveto{\pgfxy(2.6063,5.1783)}
+\pgfcurveto{\pgfxy(2.81,5.1991)}{\pgfxy(2.8286,4.7951)}{\pgfxy(2.7686,4.586)}
+\pgfcurveto{\pgfxy(2.7086,4.3769)}{\pgfxy(2.5701,4.3628)}{\pgfxy(2.4936,4.5579)}
+\pgfcurveto{\pgfxy(2.4171,4.7531)}{\pgfxy(2.4026,5.1576)}{\pgfxy(2.6063,5.1783)}
+\pgffillstroke
+%Mbezier11 (Utilisateur)
+\pgfsetlinewidth{0.2pt}
+\pgfmoveto{\pgfxy(4.172,5.7707)}
+\pgfcurveto{\pgfxy(4.0479,6.0478)}{\pgfxy(3.6183,5.8758)}{\pgfxy(3.5706,5.5605)}
+\pgfstroke
+%Mbezier12 (Utilisateur)
+\pgfmoveto{\pgfxy(2.7686,5.3121)}
+\pgfcurveto{\pgfxy(2.6445,5.5892)}{\pgfxy(2.2149,5.4172)}{\pgfxy(2.1672,5.1019)}
+\pgfstroke
+%Mligne5 (Utilisateur)
+\pgfxyline(0.8401,2.6369)(1.3079,2.7038)
+%Mligne6 (Utilisateur)
+\pgfxyline(0.7828,2.828)(0.8592,2.4268)
+%Mligne7 (Utilisateur)
+\pgfmoveto{\pgfxy(0.716,3.3631)}\pgflineto{\pgfxy(0.7733,3.0573)}\pgflineto{\pgfxy(1.1838,3.1146)}
+\pgflineto{\pgfxy(1.1934,3.3822)}
+\pgfstroke
+%Mligne8 (Utilisateur)
+\pgfxyline(0.9738,3.0955)(0.9738,3.2484)
+%Mcourbe11 (Utilisateur)
+\pgfmoveto{\pgfxy(0.611,4.0223)}
+\pgfcurveto{\pgfxy(0.6583,3.9282)}{\pgfxy(0.7056,3.8342)}{\pgfxy(0.7924,3.8121)}
+\pgfcurveto{\pgfxy(0.8792,3.79)}{\pgfxy(1.0054,3.8399)}{\pgfxy(1.0788,3.8312)}
+\pgfcurveto{\pgfxy(1.1522,3.8225)}{\pgfxy(1.1728,3.7552)}{\pgfxy(1.1934,3.6879)}
+\pgfstroke
+%Mcourbe12 (Utilisateur)
+\pgfmoveto{\pgfxy(0.7351,3.5732)}
+\pgfcurveto{\pgfxy(0.7512,3.6537)}{\pgfxy(0.7674,3.7342)}{\pgfxy(0.821,3.7739)}
+\pgfcurveto{\pgfxy(0.8747,3.8136)}{\pgfxy(0.9659,3.8125)}{\pgfxy(1.0215,3.8503)}
+\pgfcurveto{\pgfxy(1.0771,3.8881)}{\pgfxy(1.097,3.9648)}{\pgfxy(1.117,4.0414)}
+\pgfstroke
+%Controles (Utilisateur)
+%Selection (Utilisateur)
+\end{pgfpicture}%
diff --git a/Master/texmf-dist/tex/latex/bclogo/book.pst b/Master/texmf-dist/tex/latex/bclogo/book.pst
new file mode 100644
index 00000000000..80a5f6122df
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/book.pst
@@ -0,0 +1,72 @@
+% TeXgraph version 1.94 beta-7.3
+\psset{xunit=0.1cm, yunit=0.1cm}
+\begin{pspicture}(0,0)(5.9,7.5)%
+\pstVerb{1 setlinejoin}%
+%Mbezier3 (Utilisateur)
+\psset{linecolor={black},linewidth=0.6pt,fillstyle=solid,fillcolor=[rgb]{1,0.7529,0.7961}}
+\pscustom{%
+\psbezier(0.256,6.0067)(0.9462,6.7311)(2.8058,7.4532)(3.2506,7.422)
+\psbezier(3.2506,6.7533)(4.1189,6.3299)(4.8647,6.341)
+\psbezier(3.2394,4.8923)(1.6921,4.792)(0.3006,5.5052)
+}
+%Mbezier1 (Utilisateur)
+\psset{fillcolor=[rgb]{1,1,0}}
+\pscustom{
+\psbezier(0.256,6.0067)(0.4564,5.7281)(0.9574,5.5052)(1.4694,5.5386)
+\psbezier(2.0928,5.7727)(3.9296,6.3299)(4.8647,6.341)
+\psbezier(4.7311,5.0706)(5.0428,2.8195)(5.5104,2.0282)
+\psbezier(5.0428,1.5936)(2.5158,0.6798)(2.0149,0.7355)
+\psbezier(1.5585,0.6909)(0.9351,0.925)(0.7458,1.2816)
+\psbezier(0.334,2.7303)(0.0445,5.1597)(0.256,6.0067)
+\closepath}
+%Mbezier2 (Utilisateur)
+\psset{fillstyle=none}
+\psbezier(1.4694,5.5386)(1.3804,4.1122)(1.6698,2.0282)(2.0149,0.7355)
+%Mbezier7 (Utilisateur)
+\psset{linewidth=0.4pt}
+\psbezier(4.6494,2.9045)(4.8403,2.207)(3.5419,1.7006)(3.0932,2.4076)
+%Mbezier8 (Utilisateur)
+\psset{fillstyle=solid}
+\psbezier(3.3987,3.9936)(4.6465,4.2261)(4.9139,3.3909)(3.6213,3.0798)
+%Mcourbe1 (Utilisateur)
+\psset{fillcolor={black}}
+\pscustom{%
+\psbezier(4.0298,5.5386)(4.1183,5.3827)(4.1187,5.1391)(4.0855,5.0037)
+\psbezier(4.0522,4.8684)(3.9854,4.8413)(3.9185,4.9591)
+\psbezier(3.8516,5.077)(3.7847,5.3397)(3.8072,5.4941)
+\psbezier(3.8296,5.6485)(3.9413,5.6945)(4.0298,5.5386)
+}
+%Mcourbe3 (Utilisateur)
+\pscustom{%
+\psbezier(2.6063,5.1783)(2.81,5.1991)(2.8286,4.7951)(2.7686,4.586)
+\psbezier(2.7086,4.3769)(2.5701,4.3628)(2.4936,4.5579)
+\psbezier(2.4171,4.7531)(2.4026,5.1576)(2.6063,5.1783)
+}
+%Mbezier11 (Utilisateur)
+\psset{linewidth=0.2pt,fillstyle=none}
+\psbezier(4.172,5.7707)(4.0479,6.0478)(3.6183,5.8758)(3.5706,5.5605)
+%Mbezier12 (Utilisateur)
+\psbezier(2.7686,5.3121)(2.6445,5.5892)(2.2149,5.4172)(2.1672,5.1019)
+%Mligne5 (Utilisateur)
+\psline(0.8401,2.6369)(1.3079,2.7038)
+%Mligne6 (Utilisateur)
+\psline(0.7828,2.828)(0.8592,2.4268)
+%Mligne7 (Utilisateur)
+\psline(0.716,3.3631)(0.7733,3.0573)(1.1838,3.1146)(1.1934,3.3822)
+%Mligne8 (Utilisateur)
+\psline(0.9738,3.0955)(0.9738,3.2484)
+%Mcourbe11 (Utilisateur)
+\pscustom{%
+\psbezier(0.611,4.0223)(0.6583,3.9282)(0.7056,3.8342)(0.7924,3.8121)
+\psbezier(0.8792,3.79)(1.0054,3.8399)(1.0788,3.8312)
+\psbezier(1.1522,3.8225)(1.1728,3.7552)(1.1934,3.6879)
+}
+%Mcourbe12 (Utilisateur)
+\pscustom{%
+\psbezier(0.7351,3.5732)(0.7512,3.6537)(0.7674,3.7342)(0.821,3.7739)
+\psbezier(0.8747,3.8136)(0.9659,3.8125)(1.0215,3.8503)
+\psbezier(1.0771,3.8881)(1.097,3.9648)(1.117,4.0414)
+}
+%Controles (Utilisateur)
+%Selection (Utilisateur)
+\end{pspicture}%
diff --git a/Master/texmf-dist/tex/latex/bclogo/coeur.eps b/Master/texmf-dist/tex/latex/bclogo/coeur.eps
new file mode 100644
index 00000000000..d5bd265a536
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/coeur.eps
@@ -0,0 +1,43 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 3 13 15
+%%HiResBoundingBox: 1.2699708 3.2057144 12.259593 14.395244
+%%EndComments
+%%Page: 1 1
+0 16 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave
+0.92941177 0.1254902 0.027450981 setrgbcolor
+newpath
+2.440842 7.7086427 moveto
+-0.72890001 3.4818153 7.0374953 -1.3496822 8.4921679 5.9909678 curveto
+10.174423 -1.3685175 17.849145 3.1519649 14.2965 7.8602021 curveto
+8.4304198 15.892857 lineto
+2.440842 7.7086427 lineto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.2 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+2.440842 7.7086427 moveto
+-0.72890001 3.4818153 7.0374953 -1.3496822 8.4921679 5.9909678 curveto
+10.174423 -1.3685175 17.849145 3.1519649 14.2965 7.8602021 curveto
+8.4304198 15.892857 lineto
+2.440842 7.7086427 lineto
+closepath
+stroke
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/coeur.pdf b/Master/texmf-dist/tex/latex/bclogo/coeur.pdf
new file mode 100644
index 00000000000..7c2e3ad2806
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/coeur.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/danger.eps b/Master/texmf-dist/tex/latex/bclogo/danger.eps
new file mode 100644
index 00000000000..f68b7aa4d75
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/danger.eps
@@ -0,0 +1,71 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 0 1 14 13
+%%HiResBoundingBox: 0.51301584 1.6571435 13.200001 12.742857
+%%EndComments
+%%Page: 1 1
+0 14 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave
+1 1 0 setrgbcolor
+newpath
+0.79319443 14.776646 moveto
+8.5240635 1.2233535 lineto
+16.348076 14.776646 lineto
+0.79319443 14.776646 lineto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.30384925 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+0.79319443 14.776646 moveto
+8.5240635 1.2233535 lineto
+16.348076 14.776646 lineto
+0.79319443 14.776646 lineto
+closepath
+stroke
+gsave
+1 0 0 setrgbcolor
+newpath
+8.3377775 4.9049945 moveto
+6.0557745 9.3553291 lineto
+8.8500645 9.9217351 lineto
+6.2420605 13.360631 lineto
+11.271783 9.5980751 lineto
+7.7789195 8.8698385 lineto
+9.9677809 5.0263675 lineto
+8.3377775 4.9049945 lineto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.30384925 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+8.3377775 4.9049945 moveto
+6.0557745 9.3553291 lineto
+8.8500645 9.9217351 lineto
+6.2420605 13.360631 lineto
+11.271783 9.5980751 lineto
+7.7789195 8.8698385 lineto
+9.9677809 5.0263675 lineto
+8.3377775 4.9049945 lineto
+closepath
+stroke
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/danger.pdf b/Master/texmf-dist/tex/latex/bclogo/danger.pdf
new file mode 100644
index 00000000000..b36f62a17fe
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/danger.pdf
@@ -0,0 +1,77 @@
+%PDF-1.4
+%
+3 0 obj
+<< /Length 4 0 R
+ /Filter /FlateDecode
+ /Type /XObject
+ /Subtype /Form
+ /BBox [ 0 0 13.6 13.6 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources 2 0 R
+>>
+stream
+xO
+1S lȣ Q8ݍ"j-!,LÃq80cۮޘBw/n"610"`mp./jp9C0QB5$TbDX-a*8R^'%=uSIutfߎYMd
+endstream
+endobj
+4 0 obj
+ 184
+endobj
+2 0 obj
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+>>
+endobj
+5 0 obj
+<< /Type /Page
+ /Parent 1 0 R
+ /MediaBox [ 0 0 13.6 13.6 ]
+ /Contents 3 0 R
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources 2 0 R
+>>
+endobj
+1 0 obj
+<< /Type /Pages
+ /Kids [ 5 0 R ]
+ /Count 1
+>>
+endobj
+6 0 obj
+<< /Creator (cairo 1.6.0 (http://cairographics.org))
+ /Producer (cairo 1.6.0 (http://cairographics.org))
+>>
+endobj
+7 0 obj
+<< /Type /Catalog
+ /Pages 1 0 R
+>>
+endobj
+xref
+0 8
+0000000000 65535 f
+0000000736 00000 n
+0000000462 00000 n
+0000000015 00000 n
+0000000440 00000 n
+0000000534 00000 n
+0000000801 00000 n
+0000000926 00000 n
+trailer
+<< /Size 8
+ /Root 7 0 R
+ /Info 6 0 R
+>>
+startxref
+978
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/etoile.eps b/Master/texmf-dist/tex/latex/bclogo/etoile.eps
new file mode 100644
index 00000000000..5112dd50d81
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/etoile.eps
@@ -0,0 +1,57 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 3 13 14
+%%HiResBoundingBox: 1.4111469 3.6214288 12.179769 13.901107
+%%EndComments
+%%Page: 1 1
+0 16 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [1 0 0 1 6.1607143 5.4910714] concat
+gsave
+1 0.83137256 0 setrgbcolor
+newpath
+6.2946429 9.7321426 moveto
+2.301722 7.6033702 lineto
+-1.7155579 9.6858095 lineto
+-0.9248554 5.2304892 lineto
+-4.1467806 2.0533381 lineto
+0.33482129 1.4285712 lineto
+2.3608419 -2.6174555 lineto
+4.3399217 1.4517376 lineto
+8.8139965 2.1283067 lineto
+5.5555332 5.2679733 lineto
+6.2946429 9.7321426 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+6.2946429 9.7321426 moveto
+2.301722 7.6033702 lineto
+-1.7155579 9.6858095 lineto
+-0.9248554 5.2304892 lineto
+-4.1467806 2.0533381 lineto
+0.33482129 1.4285712 lineto
+2.3608419 -2.6174555 lineto
+4.3399217 1.4517376 lineto
+8.8139965 2.1283067 lineto
+5.5555332 5.2679733 lineto
+6.2946429 9.7321426 lineto
+closepath
+stroke
+grestore
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/etoile.pdf b/Master/texmf-dist/tex/latex/bclogo/etoile.pdf
new file mode 100644
index 00000000000..14efdaa0a64
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/etoile.pdf
@@ -0,0 +1,77 @@
+%PDF-1.4
+%
+3 0 obj
+<< /Length 4 0 R
+ /Filter /FlateDecode
+ /Type /XObject
+ /Subtype /Form
+ /BBox [ 0 0 13.6 16 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources 2 0 R
+>>
+stream
+x]=
+A 9Ż1ٙdZAX[-V of !|2E%>3g`9lL /7|x!yՎd\Pft$ JxT?Zs\=QT.ɼ-hk6M`MNbwd^j~q{o> :5m
+endstream
+endobj
+4 0 obj
+ 172
+endobj
+2 0 obj
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+>>
+endobj
+5 0 obj
+<< /Type /Page
+ /Parent 1 0 R
+ /MediaBox [ 0 0 13.6 16 ]
+ /Contents 3 0 R
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources 2 0 R
+>>
+endobj
+1 0 obj
+<< /Type /Pages
+ /Kids [ 5 0 R ]
+ /Count 1
+>>
+endobj
+6 0 obj
+<< /Creator (cairo 1.6.0 (http://cairographics.org))
+ /Producer (cairo 1.6.0 (http://cairographics.org))
+>>
+endobj
+7 0 obj
+<< /Type /Catalog
+ /Pages 1 0 R
+>>
+endobj
+xref
+0 8
+0000000000 65535 f
+0000000720 00000 n
+0000000448 00000 n
+0000000015 00000 n
+0000000426 00000 n
+0000000520 00000 n
+0000000785 00000 n
+0000000910 00000 n
+trailer
+<< /Size 8
+ /Root 7 0 R
+ /Info 6 0 R
+>>
+startxref
+962
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/fleur.eps b/Master/texmf-dist/tex/latex/bclogo/fleur.eps
new file mode 100644
index 00000000000..219c049dafc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/fleur.eps
@@ -0,0 +1,186 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 0 5 27 37
+%%HiResBoundingBox: 0.91428354 5.6577152 26.314286 36
+%%EndComments
+%%Page: 1 1
+0 39 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+0.99999994 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+13.086997 15.285 moveto
+13.086997 15.285 20.151267 30.156078 15.12065 40.427856 curveto
+stroke
+gsave
+1 0.76078433 0 setrgbcolor
+newpath
+13.142856 10.206774 moveto
+13.142856 10.206774 15.01946 7.1825322 18.303085 5.9454255 curveto
+21.938701 4.5757063 23.951458 8.4010428 18.889475 11.424302 curveto
+16.594614 12.794904 14.432913 12.64183 14.432913 12.64183 curveto
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+13.142856 10.206774 moveto
+13.142856 10.206774 15.01946 7.1825322 18.303085 5.9454255 curveto
+21.938701 4.5757063 23.951458 8.4010428 18.889475 11.424302 curveto
+16.594614 12.794904 14.432913 12.64183 14.432913 12.64183 curveto
+stroke
+gsave
+1 0.76078433 0 setrgbcolor
+newpath
+13.571428 15.447854 moveto
+13.571428 15.447854 15.356491 18.482518 18.479939 19.723886 curveto
+21.938208 21.098325 23.852782 17.259807 19.037724 14.226131 curveto
+16.854808 12.850806 14.798555 13.004407 14.798555 13.004407 curveto
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+13.571428 15.447854 moveto
+13.571428 15.447854 15.356491 18.482518 18.479939 19.723886 curveto
+21.938208 21.098325 23.852782 17.259807 19.037724 14.226131 curveto
+16.854808 12.850806 14.798555 13.004407 14.798555 13.004407 curveto
+stroke
+gsave
+1 0.76078433 0 setrgbcolor
+newpath
+12.642859 10.008173 moveto
+12.642859 10.008173 11.94037 4.3670514 8.0353193 3.3244513 curveto
+5.549462 2.6607585 5.151303 6.5778452 7.4104473 9.3690073 curveto
+8.6399763 10.888084 9.1857033 11.707625 9.1857033 11.707625 curveto
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+12.642859 10.008173 moveto
+12.642859 10.008173 11.94037 4.3670514 8.0353193 3.3244513 curveto
+5.549462 2.6607585 5.151303 6.5778452 7.4104473 9.3690073 curveto
+8.6399763 10.888084 9.1857033 11.707625 9.1857033 11.707625 curveto
+stroke
+gsave
+1 0.76078433 0 setrgbcolor
+newpath
+10.535714 15.298976 moveto
+9.7444813 17.458604 9.1733293 19.785051 10.217462 21.860722 curveto
+11.865121 25.136169 15.641319 24.5395 14.194284 19.505824 curveto
+13.490166 17.056469 13.027579 15.855529 13.027579 15.855529 curveto
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+10.535714 15.298976 moveto
+9.7444813 17.458604 9.1733293 19.785051 10.217462 21.860722 curveto
+11.865121 25.136169 15.641319 24.5395 14.194284 19.505824 curveto
+13.490166 17.056469 13.027579 15.855529 13.027579 15.855529 curveto
+stroke
+gsave
+1 0.76078433 0 setrgbcolor
+newpath
+9.7499973 14.763839 moveto
+9.7499973 14.763839 8.5266513 17.203659 5.136241 18.318577 curveto
+1.3823934 19.553008 -0.69581861 16.105503 4.530781 13.380853 curveto
+6.900273 12.145627 9.1322733 12.283582 9.1322733 12.283582 curveto
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+9.7499973 14.763839 moveto
+9.7499973 14.763839 8.5266513 17.203659 5.136241 18.318577 curveto
+1.3823934 19.553008 -0.69581861 16.105503 4.530781 13.380853 curveto
+6.900273 12.145627 9.1322733 12.283582 9.1322733 12.283582 curveto
+stroke
+gsave [1 0 0 1 -8.2857143 1.7850002] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+23.142856 11.142858 moveto
+23.142856 12.72 21.830856 14 20.214285 14 curveto
+18.597713 14 17.285713 12.72 17.285713 11.142858 curveto
+17.285713 9.5657147 18.597713 8.2857146 20.214285 8.2857146 curveto
+21.830856 8.2857146 23.142856 9.5657147 23.142856 11.142858 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.60000002 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+23.142856 11.142858 moveto
+23.142856 12.72 21.830856 14 20.214285 14 curveto
+18.597713 14 17.285713 12.72 17.285713 11.142858 curveto
+17.285713 9.5657147 18.597713 8.2857146 20.214285 8.2857146 curveto
+21.830856 8.2857146 23.142856 9.5657147 23.142856 11.142858 curveto
+closepath
+stroke
+grestore
+gsave
+0.17647059 0.60392159 0 setrgbcolor
+newpath
+17 31.785 moveto
+26.285713 19.356429 31.285714 21.070715 32.428571 20.785 curveto
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+17 31.785 moveto
+26.285713 19.356429 31.285714 21.070715 32.428571 20.785 curveto
+stroke
+gsave
+0.17647059 0.60392159 0 setrgbcolor
+newpath
+17.500001 31.427857 moveto
+28.457673 30.142142 31.489419 20.7414 32.642858 20.570714 curveto
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+17.500001 31.427857 moveto
+28.457673 30.142142 31.489419 20.7414 32.642858 20.570714 curveto
+stroke
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/fleur.pdf b/Master/texmf-dist/tex/latex/bclogo/fleur.pdf
new file mode 100644
index 00000000000..0fd49c02943
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/fleur.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/lampe.pgf b/Master/texmf-dist/tex/latex/bclogo/lampe.pgf
new file mode 100644
index 00000000000..b7f3fd56fbe
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/lampe.pgf
@@ -0,0 +1,33 @@
+% TeXgraph version 1.94 beta-7.3
+\begin{pgfpicture}{-0.3019cm}{-0.3447cm}{0.2881cm}{0.4053cm}%
+\pgfsetxvec{\pgfxy(0.055,0)}
+\pgfsetyvec{\pgfxy(0,0.055)}
+\pgfsetroundjoin%
+\pgfsetstrokecolor{black}
+\pgfsetlinewidth{0.6pt}
+\pgfmoveto{\pgfxy(-0.75,-4.25)}\pgflineto{\pgfxy(0.75,-4.25)}\pgflineto{\pgfxy(0.75,-2.75)}
+\pgflineto{\pgfxy(-0.75,-2.75)}\pgfclosepath
+\pgfsetfillcolor{black}
+\pgffillstroke
+\pgfmoveto{\pgfxy(0.75,-2.75)}
+\pgflineto{\pgfxy(0.75,-2.25)}
+\pgfcurveto{\pgfxy(0.75,-0.75)}{\pgfxy(1.5,-0.5)}{\pgfxy(2,0.25)}
+\pgfcurveto{\pgfxy(2.75,1.5)}{\pgfxy(2.25,3.75)}{\pgfxy(0,3.75)}
+\pgfcurveto{\pgfxy(-2.25,3.75)}{\pgfxy(-2.75,1.5)}{\pgfxy(-2,0.25)}
+\pgfcurveto{\pgfxy(-1.5,-0.5)}{\pgfxy(-0.75,-0.75)}{\pgfxy(-0.75,-2.25)}
+\pgflineto{\pgfxy(-0.75,-2.75)}
+\pgfsetfillcolor{rgb,1:red,1;green,1;blue,0}\pgffillstroke
+\pgfxyline(-1.25,-3.5)(1.25,-3.5)
+\pgfsetlinewidth{0.2pt}
+\pgfmoveto{\pgfxy(-0,-4)}
+\pgfcurveto{\pgfxy(0.25,-1.75)}{\pgfxy(-0.25,0.25)}{\pgfxy(1,1.25)}
+\pgfcurveto{\pgfxy(0.5,2)}{\pgfxy(-0.75,1.75)}{\pgfxy(-1,1.25)}
+\pgfcurveto{\pgfxy(0.25,0.25)}{\pgfxy(-0.25,-1.75)}{\pgfxy(-0,-4)}
+\pgfstroke
+\pgfsetlinewidth{0.6pt}
+\pgfxyline(-2.5,4)(-4,5.5)
+\pgfxyline(0,5)(0,6.75)
+\pgfxyline(2.5,3.75)(4.0562,5.0595)
+\pgfxyline(3.25,2)(4.75,2)
+\pgfxyline(-3.25,2)(-5,2)
+\end{pgfpicture}%
diff --git a/Master/texmf-dist/tex/latex/bclogo/lampe.pst b/Master/texmf-dist/tex/latex/bclogo/lampe.pst
new file mode 100644
index 00000000000..644c55fe8e6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/lampe.pst
@@ -0,0 +1,30 @@
+% TeXgraph version 1.94 beta-7.3
+\psset{xunit=0.055cm, yunit=0.055cm}
+\begin{pspicture}(-5.4875,-6.2666)(5.2375,7.3669)%
+\pstVerb{1 setlinejoin}%
+\psset{linecolor={black},linewidth=0.6pt,fillstyle=solid,fillcolor={black}}
+\pspolygon(-0.75,-4.25)(0.75,-4.25)(0.75,-2.75)(-0.75,-2.75)
+\psset{fillcolor=[rgb]{1,1,0}}
+\pscustom{%
+\psline(0.75,-2.75)(0.75,-2.25)
+\psbezier(0.75,-0.75)(1.5,-0.5)(2,0.25)
+\psbezier(2.75,1.5)(2.25,3.75)(0,3.75)
+\psbezier(-2.25,3.75)(-2.75,1.5)(-2,0.25)
+\psbezier(-1.5,-0.5)(-0.75,-0.75)(-0.75,-2.25)
+\psline(-0.75,-2.75)
+}
+\psset{fillstyle=none}
+\psline(-1.25,-3.5)(1.25,-3.5)
+\psset{linewidth=0.2pt}
+\pscustom{%
+\psbezier(-0,-4)(0.25,-1.75)(-0.25,0.25)(1,1.25)
+\psbezier(0.5,2)(-0.75,1.75)(-1,1.25)
+\psbezier(0.25,0.25)(-0.25,-1.75)(-0,-4)
+}
+\psset{linewidth=0.6pt}
+\psline(-2.5,4)(-4,5.5)
+\psline(0,5)(0,6.75)
+\psline(2.5,3.75)(4.0562,5.0595)
+\psline(3.25,2)(4.75,2)
+\psline(-3.25,2)(-5,2)
+\end{pspicture}%
diff --git a/Master/texmf-dist/tex/latex/bclogo/note.eps b/Master/texmf-dist/tex/latex/bclogo/note.eps
new file mode 100644
index 00000000000..13b8fe777a5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/note.eps
@@ -0,0 +1,2242 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: dvips(k) 5.96.1 Copyright 2007 Radical Eye Software
+%%Title: CompileEps.dvi
+%%CreationDate: Tue Dec 23 19:18:45 2008
+%%BoundingBox: 71 696 94 721
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -E -o CompileEps.eps CompileEps.dvi
+%DVIPSParameters: dpi=600
+%DVIPSSource: TeX output 2008.12.23:1918
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: pstricks.pro 0 0
+% $Id: pstricks.pro 34 2008-06-25 17:20:01Z herbert $
+%
+%% PostScript prologue for pstricks.tex.
+%% Version 1.05, 2008/06/25
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%
+%
+% Define the follwing gs-functions if not known, eg when using distiller
+%
+systemdict /.setopacityalpha known not {/.setopacityalpha { pop } def } if
+systemdict /.setblendmode known not {/.setblendmode { pop } def } if
+systemdict /.setshapealpha known not {/.setshapealpha { pop } def } if
+%
+/tx@Dict 200 dict def % the main PSTricks dictionary
+tx@Dict begin
+/ADict 25 dict def % The arrow dictionaray
+/CM { matrix currentmatrix } bind def
+/SLW /setlinewidth load def
+/CLW /currentlinewidth load def
+/CP /currentpoint load def
+/ED { exch def } bind def
+/L /lineto load def
+/T /translate load def
+/TMatrix { } def
+/RAngle { 0 } def
+/Sqrt { dup 0 lt { pop 0 } { sqrt } ifelse } def % return 0 for negative arguments
+/Atan { /atan load stopped { pop pop 0 } if } def % return 0 if atan not known
+/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter)
+/Div { dup 0 eq { pop } { div } ifelse } def % control the division
+/tan { dup cos abs 1.e-10 lt
+ { pop 1.e10 } % return 1.e10 as infinit
+ { dup sin exch cos div } ifelse % default sin/cos
+} def
+/Tan { dup sin exch cos Div } def % sin(x)/cos(x) x in degrees
+/Acos {dup dup mul neg 1 add dup 0 lt { % arc cos, returns 0 when negative root
+ pop pop 0 }{ sqrt exch atan} ifelse } def
+/NET { neg exch neg exch T } def % change coordinate system to the negative one
+/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, expects 2 parameter
+/Pyth2 { % Pythagoras, xA yA xB yB
+ 3 -1 roll % xA xB yB yA
+ sub % xA xB yB-yA
+ 3 1 roll % yB-yA xA xB
+ sub % yB-yA xA-xB
+ Pyth } def
+/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian
+/Rand { rand 4294967295 div } def % a real random number
+%----------------- hv added 20050516 ---------------
+/PiDiv2 1.57079632680 def
+/Pi 3.14159265359 def
+/TwoPi 6.28318530718 def
+/Euler 2.71828182846 def
+%/e Euler bind def
+/RadtoDeg { 180 mul Pi div } bind def % convert from radian to degrees
+/DegtoRad { Pi mul 180 div } bind def % viceversa
+%----------------- hv end---------------------------
+/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def
+/PathLength {
+ flattenpath /z 0 def
+ { /y1 ED /x1 ED /y2 y1 def /x2 x1 def }
+ { /y ED /x ED PathLength@ }
+ {}
+ { /y y2 def /x x2 def PathLength@ }
+ /pathforall load stopped { pop pop pop pop } if
+ z
+} def
+%
+/STP { .996264 dup scale } def % BP/PT scaling
+/STV { SDict begin normalscale end STP } def %
+%
+%%-------------- DG begin patch 15 ---------------%%
+%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def
+%PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y
+%mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul
+%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ]
+%0 } ifelse setdash stroke } def
+/DashLine {
+ dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse
+ /b ED /x1 ED /y1 ED /x ED /y ED
+ /z y x add y1 add x1 add def
+ /Coef b a .5 sub 2 mul y mul sub z Div round
+ z mul a .5 sub 2 mul y mul add b exch Div def
+ /y y Coef mul def
+ /x x Coef mul def
+ /y1 y1 Coef mul def
+ /x1 x1 Coef mul def
+ x1 0 gt y1 0 gt or x 0 gt or y 0 gt and
+ { [ y x y1 x1 ] 1 a sub y mul }
+ { [ 1 0 ] 0 } ifelse
+ setdash stroke
+} def
+%%-------------- DG end patch 15 ---------------%%
+/DotLine {
+ /b PathLength def
+ /a ED /z ED /y CLW def
+ /z y z add def
+ a 0 gt {
+ /b b a div def
+ }{
+ a 0 eq {
+ /b b y sub def
+ }{ a -3 eq {
+ /b b y add def } if
+ } ifelse
+ } ifelse
+ [ 0 b b z Div round Div dup 0 le { pop 1 } if ]
+ a 0 gt { 0 }{ y 2 div a -2 gt { neg }if } ifelse
+ setdash 1 setlinecap stroke
+} def
+%
+/LineFill { % hv ------------ patch 7 -------------
+ gsave
+ abs /hatchWidthInc ED
+ abs /hatchSepInc ED
+ abs CLW add /a ED
+ a 0 dtransform round exch round exch
+ 2 copy idtransform
+ exch Atan rotate
+ idtransform pop /a ED
+ .25 .25 itransform pathbbox
+ /y2 ED
+ a Div ceiling cvi /x2 ED /y1 ED
+ a Div cvi /x1 ED /y2 y2 y1 sub def
+ clip
+ newpath
+ 2 setlinecap
+ systemdict
+ /setstrokeadjust known { true setstrokeadjust } if
+ x2 x1 sub 1 add {
+ x1 a mul y1 moveto 0 y2 rlineto stroke
+ /x1 x1 1 add
+ hatchWidthInc 0 gt { CLW add } if
+ def
+ hatchSepInc 0 gt hatchWidthInc 0 gt or {
+ /a a hatchSepInc add def
+ CLW hatchWidthInc add SLW
+ } if
+ } repeat
+ grestore
+ pop pop } def
+%
+/PenroseFill {% on stack: scaling factor
+ dup dup scale
+ 1 exch div round /penroseFactor ED
+ a 0 dtransform round exch round exch
+ 2 copy idtransform
+ exch Atan rotate
+ idtransform pop /a ED
+ .25 .25 itransform pathbbox
+ /y2 ED
+ a Div ceiling cvi /x2 ED /y1 ED
+ a Div cvi /x1 ED /y2 y2 y1 sub def
+ clip
+ newpath
+ systemdict
+ /setstrokeadjust known { true setstrokeadjust } if
+ /I/S/L/W/G/+/Z/F/E/D[/def/exch/for{E D}/add{s E get mul}
+ { Z -36.2001 1 33 }{25 E S rlineto}{/q Z dup q G E q 1 + G}{Z 2 2}]{cvx def}forall
+ [0 72 1008 {dup sin E cos }F ]1 setlinejoin/s W{/a W{/b I 10{/i I 4{/m I moveto
+ i m +/j I 10{/l Z b m l + G a l G sub s m get div .2 + floor .3 + 25
+ mul j l + S rmoveto}F i L j L stroke }F}F}F}F
+ grestore
+ pop pop
+} def
+%
+%gsave abs CLW add /a ED a 0 dtransform round exch round exch
+%2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25
+%% DG/SR modification begin - Dec. 12, 1997 - Patch 2
+%%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
+%itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
+%% DG/SR modification end
+%Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict
+%/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1
+%% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
+%% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore }
+%% def
+%a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore
+%pop pop } def
+%% DG/SR modification end
+%
+/BeginArrow {
+ ADict begin % hold it local, for end see EndArrow
+ /@mtrx CM def
+ gsave
+ 2 copy T
+ 2 index sub neg exch
+ 3 index sub exch Atan
+ rotate newpath
+} def
+%
+/EndArrow { @mtrx setmatrix CP grestore end } def % end the ADict
+%
+/Arrow {
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /a ED
+ { 0 h T 1 -1 scale } if
+ w neg h moveto
+ 0 0 L w h L w neg a neg rlineto
+ gsave fill grestore
+} def
+%
+/ArrowD { % the sides are drawn as curves (hv 20071211)
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /Inset ED
+ { 0 h T 1 -1 scale } if % changes the direction
+% we use y=w/h^2 * x^2 as equation for the control points
+% for the coordinates the arrow is seen from top to bottom
+% the bottom (tip) is (0;0)
+ w neg h moveto % lower left of >
+ w 9 div 4 mul neg h 3 div 2 mul
+ w 9 div neg h 3 div
+ 0 0 curveto % tip of >
+ w 9 div h 3 div
+ w 9 div 4 mul h 3 div 2 mul
+ w h curveto % upper left of >
+ w neg Inset neg rlineto % move to x=0 and inset
+ gsave fill grestore
+} def
+%
+/Tbar {
+ CLW mul add /z ED
+ z -2 div CLW 2 div moveto
+ z 0 rlineto stroke
+ 0 CLW moveto
+} def
+%
+/Bracket {
+ CLW mul add dup CLW sub 2 div
+ /x ED mul CLW add /y ED /z CLW 2 div def
+ x neg y moveto
+ x neg CLW 2 div L x CLW 2 div L x y L stroke
+ 0 CLW moveto
+} def
+%
+/RoundBracket {
+ CLW mul add dup 2 div
+ /x ED mul /y ED /mtrx CM def
+ 0 CLW 2 div T x y mul 0 ne { x y scale } if
+ 1 1 moveto
+ .85 .5 .35 0 0 0 curveto
+ -.35 0 -.85 .5 -1 1 curveto
+ mtrx setmatrix stroke 0 CLW moveto
+} def
+%
+/SD { 0 360 arc fill } def
+%
+/EndDot { % DS is the dot size
+ { /z DS def } { /z 0 def } ifelse
+ /b ED 0 z DS SD b { 0 z DS CLW sub SD } if
+ 0 DS z add CLW 4 div sub moveto } def
+%
+/Shadow { [ { /moveto load } { /lineto load } { /curveto load } {
+ /closepath load } /pathforall load stopped { pop pop pop pop CP /moveto
+ load } if ] cvx newpath 3 1 roll T exec } def
+%
+%/NArray {
+% aload length 2 div dup dup cvi eq not { exch pop } if /n exch
+% cvi def
+%} def
+%
+/NArray { % holds the coordinates and on top of stack the showpoints boolean
+ /showpoints ED
+ counttomark 2 div dup cvi /n ED
+ n eq not { exch pop } if
+ showpoints { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse
+} def
+%
+/Line {
+ NArray n 0 eq not
+ { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub def
+ n { Lineto } repeat
+ CP 4 2 roll ArrowB L pop pop
+ } if
+} def
+%
+/Arcto {
+ /a [ 6 -2 roll ] cvx def
+ a r
+ /arcto load stopped { 5 } { 4 } ifelse { pop } repeat
+ a
+} def
+%
+/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq
+ and { pop pop /n n 1 sub def } if } def
+/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop }
+ repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1
+ ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1
+ moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto
+ Lineto pop pop closepath } ifelse } def
+/Diamond {
+ /mtrx CM def
+ T rotate
+ /h ED
+ /w ED
+ dup 0 eq { pop } { CLW mul neg
+ /d ED
+ /a w h Atan def
+ /h d a sin Div h add def
+ /w d a cos Div w add def } ifelse
+ mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 div
+ /ArrowA { moveto } def
+ /ArrowB { } def
+ false Line
+ closepath mtrx setmatrix } def
+% DG modification begin - Jan. 15, 1997
+%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq {
+%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
+%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0
+%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
+%setmatrix } def
+/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup
+CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
+div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0
+d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
+% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
+% setmatrix } def
+setmatrix pop } def
+% DG/SR modification end
+%
+/CCA {
+ /y ED /x ED
+ 2 copy y sub /dy1 ED
+ x sub /dx1 ED
+ /l1 dx1 dy1 Pyth def
+} def
+%
+/CC {
+ /l0 l1 def
+ /x1 x dx sub def
+ /y1 y dy sub def
+ /dx0 dx1 def
+ /dy0 dy1 def
+ CCA
+ /dx dx0 l1 c exp mul dx1 l0 c exp mul add def
+ /dy dy0 l1 c exp mul dy1 l0 c exp mul add def
+ /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos abs b exp a mul dx dy Pyth Div 2 div def
+ /x2 x l0 dx mul m mul sub def
+ /y2 y l0 dy mul m mul sub def
+ /dx l1 dx mul m mul neg def
+ /dy l1 dy mul m mul neg def
+} def
+%
+/IC {
+ /c c 1 add def
+ c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } ifelse
+ /a a 2 mul 3 div 45 cos b exp div def
+ CCA
+ /dx 0 def
+ /dy 0 def
+} def
+%
+/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def
+/NC { CC x1 y1 x2 y2 x y curveto } def
+/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def
+/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def
+/NAC { x2 y2 x y curveto CC x1 y1 } def
+/EAC { x2 y2 x y ArrowB curveto pop pop } def
+%
+/OpenCurve {
+ NArray n 3 lt
+ { n { pop pop } repeat }
+ { BOC /n n 3 sub def n { NC } repeat EOC } ifelse
+} def
+%
+/AltCurve {
+ { false NArray n 2 mul 2 roll
+ [ n 2 mul 3 sub 1 roll ] aload
+ /Points ED
+ n 2 mul -2 roll }
+ { false NArray } ifelse
+ n 4 lt { n { pop pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse
+} def
+%
+/ClosedCurve {
+ NArray n 3 lt
+ { n { pop pop } repeat }
+ { n 3 gt { CheckClosed } if
+ 6 copy n 2 mul 6 add 6 roll
+ IC CC x y moveto n { NC } repeat
+ closepath pop pop
+ } ifelse
+} def
+%
+/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
+/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
+/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore }
+def
+/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix
+rotate matrix concatmatrix exch findfont exch makefont setfont } def
+/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto
+x1 y1 lineto closepath } def
+/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1
+y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div
+exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse
+/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto
+x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath }
+ifelse } def
+/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add
+/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq {
+pop pop Rect } { OvalFrame } ifelse } def
+%
+/BezierNArray {
+ /f ED
+ counttomark 2 div dup cvi /n ED
+ n eq not { exch pop } if
+ n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat
+ f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse
+} def
+%
+/OpenBezier {
+ BezierNArray
+ n 1 eq
+ { pop pop }
+ { ArrowA n 4 sub 3 idiv
+ { 6 2 roll 4 2 roll curveto } repeat
+ 6 2 roll 4 2 roll ArrowB curveto } ifelse
+} def
+%
+/ClosedBezier {
+ BezierNArray
+ n 1 eq
+ { pop pop }
+ { moveto n 1 sub 3 idiv
+ { 6 2 roll 4 2 roll curveto } repeat
+ closepath } ifelse
+} def
+%
+/BezierShowPoints {
+ gsave
+ Points aload length 2 div cvi /n ED
+ moveto
+ n 1 sub { lineto } repeat
+ CLW 2 div SLW [ 4 4 ] 0 setdash stroke
+ grestore
+} def
+%
+/Parab {
+ /y0 ED /x0 ED /y1 ED /x1 ED
+ /dx x0 x1 sub 3 div def
+ /dy y0 y1 sub 3 div def
+ x0 dx sub y0 dy add x1 y1 ArrowA
+ x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB
+ curveto
+ /Points [ x1 y1 x0 y0 x0 2 mul x1 sub y1 ] def
+} def
+%
+/Grid {
+ newpath
+ /a 4 string def
+ /b ED /c ED /n ED
+ cvi dup 1 lt { pop 1 } if
+ /s ED
+ s div dup 0 eq { pop 1 } if
+ /dy ED s div dup 0 eq { pop 1 } if
+ /dx ED dy div round dy mul
+ /y0 ED dx div round dx mul
+ /x0 ED dy div round cvi
+ /y2 ED dx div round cvi
+ /x2 ED dy div round cvi
+ /y1 ED dx div round cvi
+ /x1 ED
+ /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def
+ /w x2 x1 sub 0 gt { 1 } { -1 } ifelse def
+ b 0 gt {
+ /z1 b 4 div CLW 2 div add def
+% /Helvetica findfont b scalefont setfont
+ /b b .95 mul CLW 2 div add def } if
+ systemdict /setstrokeadjust known
+ { true setstrokeadjust /t { } def }
+ { /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add
+ exch itransform } bind def } ifelse
+ gsave n 0 gt { 1 setlinecap [ 0 dy n div ] dy n div 2 div setdash } { 2 setlinecap } ifelse
+ /i x1 def
+ /f y1 dy mul n 0 gt { dy n div 2 div h mul sub } if def
+ /g y2 dy mul n 0 gt { dy n div 2 div h mul add } if def
+ x2 x1 sub w mul 1 add dup 1000 gt { pop 1000 } if
+ { i dx mul dup y0 moveto
+ b 0 gt
+ { gsave c i a cvs dup stringwidth pop
+ /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse
+ h 0 gt {b neg}{z1} ifelse
+ rmoveto show grestore } if
+ dup t f moveto
+ g t L stroke
+ /i i w add def
+ } repeat
+ grestore
+ gsave
+ n 0 gt
+ % DG/SR modification begin - Nov. 7, 1997 - Patch 1
+ %{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash }
+ { 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash }
+ % DG/SR modification end
+ { 2 setlinecap } ifelse
+ /i y1 def
+ /f x1 dx mul n 0 gt { dx n div 2 div w mul sub } if def
+ /g x2 dx mul n 0 gt { dx n div 2 div w mul add } if def
+ y2 y1 sub h mul 1 add dup 1000 gt { pop 1000 } if
+ { newpath i dy mul dup x0 exch moveto
+ b 0 gt { gsave c i a cvs dup stringwidth pop
+ /z2 ED
+ w 0 gt {z1 z2 add neg} {z1} ifelse
+ h 0 gt {z1} {b neg} ifelse
+ rmoveto show grestore } if
+ dup f exch t moveto
+ g exch t L stroke
+ /i i h add def
+ } repeat
+ grestore
+} def
+%
+/ArcArrow {
+ /d ED /b ED /a ED
+ gsave
+ newpath 0 -1000 moveto clip
+ newpath
+ 0 1 0 0 b
+ grestore
+ c mul
+ /e ED
+ pop pop pop r a e d PtoC y add exch x add
+ exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c
+ mul neg d
+} def
+%
+/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def
+%
+/ArcAdjust { %%%% Vincent Guirardel
+% given a target length (targetLength) and an initial angle (angle0) [in the stack],
+% let M(angle0)=(rx*cos(angle0),ry*sin(angle0))=(x0,y0).
+% This computes an angle t such that (x0,y0) is at distance
+% targetLength from the point M(t)=(rx*cos(t),ry*sin(t)).
+% NOTE: this an absolute angle, it does not have to be added or substracted to angle0
+% contrary to TvZ's code.
+% To achieve, this, one iterates the following process: start with some angle t,
+% compute the point M' at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)].
+% Now take t' (= new angle) so that (0,0) M(t') and M' are aligned.
+%
+% Another difference with TvZ's code is that we need d (=add/sub) to be defined.
+% the value of d = add/sub is used to know on which side we have to move.
+% It is only used in the initialisation of the angle before the iteration.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Input stack: 1: target length 2: initial angle
+% variables used : rx, ry, d (=add/sub)
+%
+ /targetLength ED /angle0 ED
+ /x0 rx angle0 cos mul def
+ /y0 ry angle0 sin mul def
+% we are looking for an angle t such that (x0,y0) is at distance targetLength
+% from the point M(t)=(rx*cos(t),ry*sin(t)))
+%initialisation of angle (using 1st order approx = TvZ's code)
+ targetLength 57.2958 mul
+ angle0 sin rx mul dup mul
+ angle0 cos ry mul dup mul
+ add sqrt div
+% if initialisation angle is two large (more than 90 degrees) set it to 90 degrees
+% (if the ellipse is very curved at the point where we draw the arrow, %
+% the value can be much more than 360 degrees !)
+% this should avoid going on the wrong side (more than 180 degrees) or go near
+% a bad attractive point (at 180 degrees)
+ dup 90 ge { pop 90 } if
+ angle0 exch d % add or sub
+% maximum number of times to iterate the iterative procedure:
+% iterative procedure: takes an angle t on top of stack, computes a
+% better angle (and put it on top of stack)
+ 30 { dup
+% compute distance D between (x0,y0) and M(t)
+ dup cos rx mul x0 sub dup mul exch sin ry mul y0 sub dup mul add sqrt
+% if D almost equals targetLength, we stop
+ dup targetLength sub abs 1e-5 le { pop exit } if
+% stack now contains D t
+% compute the point M(t') at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]:
+% M(t')= ( (x(t)-x0)*targetLength/d+x0 , (y(t)-y0)*targetLength/d+y0 )
+ exch dup cos rx mul x0 sub exch sin ry mul y0 sub
+% stack contains: y(t)-y0, x(t)-x0, d
+ 2 index Div targetLength mul y0 add ry Div exch
+ 2 index Div targetLength mul x0 add rx Div
+% stack contains x(t')/rx , y(t')/ry , d
+% now compute t', and remove D from stack
+ atan exch pop
+ } repeat
+% we don't look at what happened... in particular, if targetLength is greater
+% than the diameter of the ellipse...
+% the final angle will be around /angle0 + 180. maybe we should treat this pathological case...
+% after iteration, stack contains an angle t such that M(t) is the tail of the arrow
+% to give back the result as a an angle relative to angle0 we could add the following line:
+% angle0 sub 0 exch d
+%
+% begin bug fix 2006-01-11
+% we want to adjust the new angle t' by a multiple of 360 so that | t'-angle0 | <= 180
+%(we don't want to make the ellipse turn more or less than it should)...
+dup angle0 sub dup abs 180 gt { 180 add 360 div floor 360 mul sub } { pop } ifelse
+% end bug fix
+} def
+%
+/EllipticArcArrow {
+ /d ED % is add or sub
+ /b ED % arrow procedure
+ /a1 ED % angle
+ gsave
+ newpath
+ 0 -1000 moveto
+ clip % Set clippath far from arrow.
+ newpath
+ 0 1 0 0 b % Draw arrow to determine length.
+ grestore
+% Length of arrow is on top of stack. Next 3 numbers are junk.
+%
+ a1 exch ArcAdjust % Angular position of base of arrow.
+ /a2 ED
+ pop pop pop
+ a2 cos rx mul xOrig add % hv 2007-08-29 x->xOrig
+ a2 sin ry mul yOrig add % hv 2007-08-29 y->yOrig
+ a1 cos rx mul xOrig add %
+ a1 sin ry mul yOrig add %
+% Now arrow tip coor and base coor are on stack.
+ b pop pop pop pop % Draw arrow, and discard coordinates.
+ a2 CLW 8 div
+% change value of d (test it by looking if `` 1 1 d '' gives 2 or not )
+ 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse
+ ArcAdjust
+% resets original value of d
+ 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse % Adjust angle to give overlap.
+} def
+%%------------------ tvz/DG/hv (2004-05-10) end -------------------%%
+%
+/Rot { CP CP translate 3 -1 roll neg rotate NET } def
+%
+/RotBegin {
+ tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } def } if
+ /TMatrix [ TMatrix CM ] cvx def
+ /a ED
+ a Rot /RAngle [ RAngle dup a add ] cvx def
+} def
+%
+/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ] cvx def } def
+%
+/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def
+/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def
+/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def
+/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s
+abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b
+div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } {
+h1 abs h sub dup s mul abs } ifelse } def
+/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s
+mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q
+{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add
+exch } def
+/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible
+/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def
+} if } ifelse } def
+/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
+/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit
+neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def
+/IfVisible true def } def
+end
+%-----------------------------------------------------------------------------%
+%
+% END pstricks.pro
+
+%%EndProcSet
+%%BeginProcSet: pst-algparser.pro 0 0
+% $Id: pst-algparser.pro 26 2008-06-14 11:50:02Z herbert $
+%%
+%% PostScript prologue for PSTricks algorithm parser
+%% Version 0.01, 2008/01/01
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%%-----------------------------------------------------------------------------%
+%
+/AlgParser { tx@AlgToPs begin AlgToPs end } def % Dominique Rodriguez
+%
+/tx@CoreAnalyzerDict 100 dict def tx@CoreAnalyzerDict begin
+%
+% PS ANALYZER FOR ALGEBRAIC EXPRESSION V1.12
+% E->T|E+T
+% T->FS|T*FS
+% FS -> F | +FS | -FS
+% F->P|F^SF
+% P->(E)|literal
+% literal->number|var|var[E]|func(params)
+% params->E|E,param
+% number->TOBEFINISHED
+%
+%% E expression, T term, SF signed factor, F factor, P power
+%
+%% parser
+%
+%% str
+%
+%% C->E<condition_operators>E
+%% STR index -> STR index+lenExpr
+/AnalyzeCond { AnalyzeExpr ReadCondOp AnalyzeExpr EvalCondOp } def
+%
+%% analyze Expression List (separator , or | )
+%% STR index -> STR index+lenExpr
+%% /AnalyzeListOfE {
+%% { NextNonBlankChar pop AnalyzeExpr%%dup Strlen eq { exit } if NextNonBlankChar
+%% NextNonBlankChar dup 0 eq { pop exit } if
+%% dup 44 ne 1 index 124 ne and { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse } if
+%% pop NextNonBlankChar dup 0 eq { exit } if 124 ne { PROBLEMCONTACTBILLOU } if 1 add NextNonBlankChar 0 eq {toto} if } loop
+%% AnalyzeListOfEPostHook
+%% } def
+/AnalyzeListOfE {
+ /NotFirst false def
+ { NextNonBlankChar pop AnalyzeExpr
+ NotFirst { EvalListOfExpr } { /NotFirst true def } ifelse
+ dup Strlen eq { exit } if NextNonBlankChar
+ dup 44 ne 1 index 124 ne and
+ { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse }
+ if pop 1 add } loop
+ AnalyzeListOfEPostHook
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% E->T|E+T
+%% STR index -> STR index+lenExpr
+/AnalyzeExpr {
+ AnalyzePreHook AnalyzeTerm IsEndingExpr
+ { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
+ { { RollOp 1 add NextNonBlankChar pop AnalyzeTerm PreEvalHook EvalAddSub IsEndingExpr { pop exit } if } loop }
+ ifelse
+ AnalyzePostHook
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% T->FS|T*FS
+%% STR index
+/AnalyzeTerm {
+ AnalyzePreHook AnalyzeSignedFactor IsEndingTerm
+ { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
+ { { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor PreEvalHook EvalMulDiv IsEndingTerm { pop exit } if} loop }
+ ifelse
+ AnalyzePostHook
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% FS -> F | +FS | -FS
+%% STR index
+/AnalyzeSignedFactor {
+ AnalyzePreHook 2 copy get dup IsUnaryOp
+ { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor EvalUnaryOp }
+ { pop AnalyzeFactor }
+ ifelse AnalyzePostHook
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% F->P|F^P
+%% STR index
+/AnalyzeFactor {
+ AnalyzePreHook AnalyzePower IsEndingFactor
+ { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse }
+ { { RollOp 1 add NextNonBlankChar pop AnalyzePower PreEvalHook EvalPower IsEndingFactor { pop exit } if} loop }
+ ifelse AnalyzePostHook
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% P->(E)|literal
+%% STR index
+/AnalyzePower {
+ %% depending of first char either a number, or a literal
+ 2 copy get dup 40 eq%%an open par
+ { pop 1 add NextNonBlankChar pop AnalyzeExpr 1 add NextNonBlankChar pop }
+ { AnalyzeLiteral }
+ ifelse
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% STR index STR[index] -> STR index
+%/AnalyzeLiteral { IsNumber { EvalNumber } { EvalLiteral } ifelse } def
+/AnalyzeLiteral { dup IsUnaryOp exch IsNumber or { EvalNumber } { EvalLiteral } ifelse } def%%dr 09102006
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% recognize + or -
+%% chr -> T/F
+/IsUnaryOp { dup 43 eq exch 45 eq or } bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% a number can contain only : 0123456789.
+%% chr -> T/F
+/IsNumber { dup 48 ge exch dup 57 le 3 -1 roll and exch 46 eq or } bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% STR index -> STR index number
+%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)?
+%% STR index -> STR index' number
+/ReadNumber {
+ exch dup 3 -1 roll dup 3 1 roll
+ %%read mantissa
+ { 1 add 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsNumber not { exit } if pop } loop
+ dup 101 eq exch 69 eq or
+ %%% there is a "e" or "E" -> read exponant
+ { 1 add 2 copy get dup IsUnaryOp
+ { pop 1 add 2 copy get } if
+ { IsNumber not { exit } if 1 add 2 copy get } loop }
+ if
+ dup 4 1 roll
+ 3 -1 roll exch 1 index sub getinterval
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% a number can contain only : 0123456789.
+%% chr -> T/F
+/IsCondOp { dup 30 eq exch dup 60 ge exch 62 le and or } bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% STR index -> STR index number
+%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)?
+%% STR index -> STR index' number
+/ReadCondOp {
+ NextNonBlankChar 1 index 4 1 roll
+ { IsCondOp not { exit } if 1 add 2 copy get } loop
+ 2 copy 5 -1 roll
+ exch 1 index sub getinterval 3 1 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% a literal can contain only : 0123456789.
+%% chr -> T/F
+/IsLiteral {%
+ dup 48 ge exch dup 57 le 3 -1 roll and exch
+ dup 65 ge exch dup 90 le 3 -1 roll and 3 -1 roll or exch
+ dup 97 ge exch 122 le and or } bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% a literal can be of the form [a-zA-Z][a-zA-Z0-9]*\(\((Expression)\)|\(\[Expression\]\)\)?
+%% STR index -> literal STR index' nextchr
+/ReadLiteral {
+ exch dup 3 -1 roll dup 3 1 roll
+ %%read literal core
+ { 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsLiteral not { exit } if pop 1 add } loop
+ 4 1 roll dup 5 1 roll 3 -1 roll exch 1 index sub getinterval 4 1 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% expr is ended by end of str or a clpar
+%% STR index -> STR index STR[index] T/F
+/IsEndingExpr {%
+ 2 copy dup Strlen eq
+ %% if end of str is reached -> end !
+ { pop pop 0 true }
+ %% ending chr -> clpar, comma, |, <, >, =, !,
+ {get dup dup 41 eq
+ exch dup 124 eq
+ exch dup 93 eq
+ exch dup 44 eq
+ exch dup 30 eq
+ exch dup 60 ge exch 62 le and or or or or or}
+ ifelse } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% expr is ended by end of str or a +-
+%% STR index -> STR index STR[index] T/F
+/IsEndingTerm { IsEndingExpr { true } { dup dup 43 eq exch 45 eq or } ifelse } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% expr is ended by end of str or */
+%% STR index -> STR index STR[index] T/F
+/IsEndingFactor { IsEndingTerm { true } { dup dup 42 eq exch 47 eq or } ifelse } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% expr is ended by end of str or ^
+%% STR index -> STR index STR[index] T/F
+/IsEndingPower { IsEndingFactor { true } { dup 94 eq } ifelse } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% STR index -> STR index STR[index]
+/NextNonBlankChar { { dup Strlen eq { 0 exit } if 2 copy get dup neBlkChar { exit } if pop 1 add } loop } bind def
+/neBlkChar { dup 32 ne exch dup 10 ne exch 9 ne and and } bind def
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% DEBUG
+/BRK {false} def
+/BRKtrue {/BRK true def} def
+/BRKStop {BRK {BRKtoto} if } def
+/BRKEvalStop {BRK exch if } def
+/BRKBRK2true {BRK {BRK2true} if } def
+/BRK2 {false} def
+/BRK2true {/BRK2 true def} def
+/BRK2Stop {BRK2 {BRK2toto} if } def/BRK {false} def
+end
+%
+%-------------------------------------------------------------------------------%
+%
+/tx@AlgToPs 12 dict def tx@AlgToPs begin
+%
+%% algExpr -> PSVector
+/AlgToPs { tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE pop pop EndingSequence end } def
+/EndingSequence { ExpressionVector aload length /end cvx exch 1 add array astore } def
+/InitParser { /ExpressionVector [ /tx@AddMathFunc cvx /begin cvx ] def dup length /Strlen exch def 0 } def
+/Strlen 0 def
+/EvalListOfExpr {} def%
+/EvalNumber {%
+ ReadNumber cvr /ExpressionVector ExpressionVector aload length dup 3 add -1 roll cvx
+ exch 1 add array astore def NextNonBlankChar pop } def
+/EvalAddSub {%
+ /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
+ 43 eq { /add } { /sub } ifelse cvx exch 1 add array astore def
+} def
+/EvalMulDiv {%
+ /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
+ 42 eq { /mul } { /div } ifelse cvx exch 1 add array astore def
+} def
+/EvalPower {%
+ /ExpressionVector ExpressionVector aload length dup 5 add -1 roll
+ pop /exp cvx exch 1 add array astore def
+} def
+/EvalLiteral {%
+ ReadLiteral
+ dup 40 eq%%% there is an open par -> function call
+ { pop 2 index
+ dup (Sum) eq { EvalSum }
+ { dup (IfTE) eq { EvalCond }
+ { dup (Derive) eq { pop EvalDerive }
+ { pop 1 add NextNonBlankChar pop AnalyzeListOfE 2 index TrigoFunc
+ /ExpressionVector ExpressionVector aload length dup 5 add -1 roll cvn cvx
+ exch 1 add array astore def 1 add NextNonBlankChar pop } ifelse } ifelse} ifelse }
+ { /ExpressionVector ExpressionVector aload length dup 6 add -1 roll cvn cvx exch 1 add array astore def
+ dup 91 eq%%% there is an open bracket -> vector element
+ { pop 1 add NextNonBlankChar pop AnalyzeExpr
+ /ExpressionVector ExpressionVector aload length /cvi cvx exch /get cvx exch 2 add array astore def 1 add }
+ { pop NextNonBlankChar pop }
+ ifelse}
+ ifelse
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% the derive function : Derive(n,f(x))
+%% firstparindex lastparindex ->
+/EvalDerive {
+ %% manage the function descripiton
+ 1 add ReadNumber 3 1 roll NextNonBlankChar
+ 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
+ 1 add NextNonBlankChar pop
+ 3 -1 roll cvi
+ dup 0 eq
+ { pop AnalyzeExpr 3 -1 roll pop 1 add }
+ { 1 sub 3 1 roll (x) exch tx@Derive begin DeriveIndexed end 4 -1 roll
+ { (x) tx@Derive begin Derive end } repeat
+ ExpressionVector exch /ExpressionVector [] def
+ AlgToPs aload length
+ /ExpressionVector 1 index 3 add -1 roll aload length dup 3 add -1 roll /l2 exch def /l1 exch def
+ l1 l2 add 1 add l2 neg roll l1 l2 add array astore def 3 -1 roll pop 1 add
+ 1 index length /Strlen exch def } ifelse
+} def
+/EvalSum {%
+ pop 1 add NextNonBlankChar pop
+ %% read the variable name
+ ReadLiteral pop NextNonBlankChar
+ 44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if
+ %% read the initial value
+ 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
+ 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
+ %% read the increment value
+ 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
+ 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
+ %% read the limit value
+ 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll
+ 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
+ /ExpressionVector ExpressionVector aload length dup 7 add -3 roll 0 4 1 roll
+ 5 -1 roll 4 add array astore def
+ %% keep ExpressionVector for later and create a new one for internal Sum computation
+ ExpressionVector 3 1 roll /ExpressionVector [ 6 -1 roll cvn /exch cvx /def cvx ] def
+ 1 add NextNonBlankChar pop AnalyzeExpr
+ %% add each term
+ /ExpressionVector ExpressionVector aload length 1 add /add cvx exch array astore def
+ /ExpressionVector 4 -1 roll aload length ExpressionVector cvx /for cvx 3 -1 roll 2 add
+ array astore def 3 -1 roll pop 1 add
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Convert to radians if trigo function call
+%% (name) ->
+/TrigoFunc {
+ dup (cos) eq 1 index (sin) eq or exch (tan) eq or
+ { /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add
+ array astore def
+ } if
+} def
+/EvalCond {%
+ pop 1 add AnalyzeCond NextNonBlankChar
+ 44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if
+ ExpressionVector 3 1 roll /ExpressionVector [] def
+ 1 add AnalyzeExpr ExpressionVector 3 1 roll /ExpressionVector [] def
+ NextNonBlankChar 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if
+ 1 add AnalyzeExpr
+ NextNonBlankChar 41 ne { ANALYZER_ERROR_missing_ending parenthesis_in_IfTE } if
+ ExpressionVector
+ /ExpressionVector 6 -1 roll aload length dup
+ 6 add -1 roll cvx exch dup 4 add -1 roll cvx /ifelse cvx 3 -1 roll 3 add array astore def
+ 1 add 3 -1 roll pop
+} def
+%% CondOp STR index
+/EvalCondOp {%
+ 3 -1 roll
+ dup (=) eq { /eq } {%
+ dup (<) eq { /lt } {%
+ dup (>) eq { /gt } {%
+ dup (>=) eq { /ge } {%
+ dup (<=) eq { /ge } {%
+ dup (!=) eq { /ne } { ERROR_non_valid_conditional_operator }
+ ifelse } ifelse } ifelse } ifelse } ifelse } ifelse
+ cvx exch pop
+ /ExpressionVector ExpressionVector aload length dup 3 add -1 roll exch 1 add array astore def } def
+/EvalUnaryOp {
+ 3 -1 roll 45 eq { /ExpressionVector ExpressionVector aload length /neg cvx exch 1 add array astore def } if
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% H O O K S
+/AnalyzePreHook {} bind def
+/PreEvalHook {} bind def
+/AnalyzeListOfEPostHook {} bind def
+/AnalyzePostHook {} def
+/RollOp { 3 1 roll } bind def
+end %tx@CoreAnalyzerDict
+%
+%--------------------------------------------------------------------%
+%
+/tx@Derive 41 dict def tx@Derive begin
+%%increase ^^ for each function added
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% algExpr variable -> PSVector
+/Derive {%
+ 10240 string 3 1 roll 0 3 1 roll
+ /Variable exch def
+ tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE end
+} def
+/Strlen 0 def
+/InitParser { dup length /Strlen exch def 0 } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% algExpr variable index -> PSVector
+/DeriveIndexed {%
+ 3 1 roll 10240 string 3 1 roll 0 3 1 roll
+ /Variable exch def
+ tx@CoreAnalyzerDict begin InitParser pop 4 -1 roll AnalyzeExpr 4 -2 roll pop pop 4 -2 roll exch pop end
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (u,v)'=-(u',v')
+/EvalListOfExpr {%
+ 4 2 roll 2 copy 9 -1 roll dup length 4 1 roll putinterval add AddPipe
+ 2 copy 7 -1 roll dup length 4 1 roll putinterval add
+ 6 -2 roll pop pop
+ 2 copy pop 0 6 2 roll GetIntervalNewStr 5 1 roll 2 copy 0 exch getinterval 6 1 roll } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (-u)'=-(u')
+/EvalUnaryOp {
+ 4 -2 roll 4 index (0) eq
+ { (0) StrConcat 7 -1 roll pop }
+ { 7 -1 roll 45 eq
+ { AddSub AddOpPar true } { false } ifelse
+ 3 1 roll 5 index StrConcat 3 -1 roll { AddClPar } if } ifelse
+ 2 copy pop 0 6 2 roll GetIntervalNewStr
+ 7 -2 roll pop pop 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (number)'=0
+/EvalNumber { ReadNumber (0) 6 2 roll } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (u+v)'=u'+v'
+/EvalAddSub {%
+ 7 index dup (0) eq
+ { pop true }%% du=0 nothing added
+ { dup length exch 5 index 5 index 3 -1 roll putinterval 4 -1 roll add 3 1 roll false }
+ ifelse
+ 5 index dup (0) eq
+ { pop { (0) } { 4 -2 roll 2 copy pop 0 6 2 roll GetIntervalNewStr } ifelse }%%dv=0
+ { exch
+ { 5 -2 roll 7 index 45 eq { AddSub } if false } %%nothing yet added
+ { 5 -2 roll 7 index 43 eq%%something yet added
+ { AddAdd false } { AddSub AddOpPar true } ifelse }
+ ifelse 11 1 roll
+ 3 -1 roll StrConcat 10 -1 roll { AddClPar } if
+ 2 copy pop 0 6 2 roll GetIntervalNewStr }
+ ifelse
+ mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (u*v)' or (u/v)'
+/EvalMulDiv { 6 index 42 eq {EvalMul} {EvalDiv} ifelse } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (u*v)'=u'*v+u*v'
+/EvalMul {%
+ 4 -2 roll 7 index dup (0) eq
+ { pop false }%%du=0
+ { (1) eq%%du=1
+ { false }
+ { AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse
+ 3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if
+ true }%%du!=0
+ ifelse
+ 5 1 roll 5 index (0) eq
+ { 5 -1 roll not { (0) StrConcat } if }%%dv=0
+ { 5 -1 roll { AddAdd } if
+ 4 index (1) eq
+ { 8 index StrConcat }
+ { AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar }
+ ifelse
+ }%%dv!=0
+ ifelse
+ 2 copy pop 0 6 2 roll GetIntervalNewStr
+ mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (u/v)'=(u'*v-u*v')/v^2
+/EvalDiv {%
+ 4 -2 roll
+ 4 index (0) eq%%dv=0 -> u'/v
+ { 7 index (0) eq { (0) StrConcat } { AddOpPar 7 index StrConcat AddClPar AddDiv 5 index StrConcat } ifelse }
+ { 7 index dup (0) eq
+ { pop }%%du=0
+ { (1) eq%%du=1
+ { false }
+ { AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse
+ 3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if}%%du!=0
+ ifelse
+ AddSub
+ 4 index (1) eq
+ { 8 index StrConcat }
+ { AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar }
+ ifelse
+ %}%%dv!=0
+ 2 copy GetIntervalNewStr 3 1 roll pop 0 AddOpPar 3 -1 roll StrConcat AddClPar
+ AddDiv AddOpPar 5 index StrConcat AddClPar 2 copy (^2) putinterval 2 add }
+ ifelse
+ 2 copy pop 0 6 2 roll GetIntervalNewStr
+ mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% str1 index str2 -> str1 index
+/StrConcat { dup length 4 2 roll 2 copy 6 -1 roll putinterval 3 -1 roll add } bind def
+/GetIntervalNewStr { 0 exch getinterval dup length string copy } bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (u^v)'=(u^v)'=u'vu^(v-1)+v'u^(v)ln(u)
+/EvalPower {%
+ 4 -2 roll 7 index (0) eq
+ {%%if du=0 then (u^v)'=v'ln(u)u^v
+ 4 index (0) eq
+ { (0) StrConcat }%%if dv=0 then (u^v)'=0
+ { 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if
+ 8 index (e) ne { (ln\() StrConcat 8 index StrConcat (\)*) StrConcat } if
+ AddOpPar 8 index StrConcat (\)^\() StrConcat 5 index StrConcat AddClPar } ifelse
+ }
+ {%%du!=0
+ 4 index (0) eq
+ {%%if dv=0 then (u^v)'=vu'u^(v-1)
+ 5 index dup IsStrNumber
+ { dup (0) eq
+ { StrConcat }
+ { dup dup (1) eq exch (1.0) eq or
+ { StrConcat }
+ { StrConcat
+ 7 index dup (1) ne exch (1.0) ne and%%%dr 09102006 insert du if <> 1
+ { (*\() StrConcat 7 index StrConcat (\)) StrConcat } if%%%dr 09102006
+ (*\() StrConcat 8 index StrConcat (\)) StrConcat
+ 5 index dup dup (2) eq exch (2.0) eq or
+ { pop } { cvr 1 sub 20 string cvs 3 1 roll (^) StrConcat 3 -1 roll StrConcat } ifelse } ifelse } ifelse }
+ { pop AddOpPar 5 index StrConcat (\)*\() StrConcat 8 index StrConcat (\)^\() StrConcat
+ 5 index StrConcat (-1\)) StrConcat } ifelse
+ }
+ {%%if dv!=0 and du!=0 then (u^v)'=u'vu^(v-1)+v'u^(v)ln(u)
+ 7 index (1) ne { AddOpPar 7 index StrConcat (\)*) StrConcat } if
+ AddOpPar 5 index StrConcat (\)*\() StrConcat
+ 8 index StrConcat (\)^\() StrConcat
+ 5 index StrConcat (-1\)+\() StrConcat
+ 4 index (1) ne { 4 index StrConcat (\)*\() StrConcat } if
+ 8 index StrConcat (\)^\() StrConcat
+ 5 index StrConcat (\)*ln\() StrConcat
+ 8 index StrConcat AddClPar
+ } ifelse
+ } ifelse
+ 2 copy pop 0 6 2 roll GetIntervalNewStr
+ mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% str -> true/false
+/IsStrNumber {%
+ true exch
+ { dup 48 lt exch dup 57 gt 3 -1 roll or
+ exch dup 46 ne%%.
+ exch dup 43 ne%%+
+ exch 45 ne%%-
+ and and and { pop false } if } forall
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% literal switch -> func call, vector, variables
+/EvalLiteral {%
+ ReadLiteral dup 40 eq%%% there is an open par -> function call
+ { pop (EvalFunc_ ) 9 4 index StrConcat 0 exch getinterval cvn cvx exec }
+ { dup 91 eq%%% there is an open bracket -> vector element
+ { ERROR_vector_not_yet_implemented }
+ { pop EvalVariable }
+ ifelse }
+ ifelse
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% first last parpos Expr[first:parpos-1] ->
+/EvalVariable { 2 index Variable eq { (1) } { (0) } ifelse 4 -1 roll exch 6 2 roll } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% (f(u))'=u'f'(u)
+/EvalFunc {
+ 4 2 roll 4 index (1) ne
+ { AddOpPar 4 index StrConcat (\)*) StrConcat } if
+ (Eval ) 4 8 index StrConcat 0 exch getinterval cvn cvx exec
+ 2 copy pop 0 6 2 roll GetIntervalNewStr
+ mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Func derivative -> Eval<func>
+/EvalFunc_sin {%
+ PreCommonFunc
+ { (cos\() StrConcat 5 index StrConcat AddClPar } if
+ PostCommonFunc } def
+/EvalFunc_cos {%
+ PreCommonFunc
+ { (\(-sin\() StrConcat 5 index StrConcat (\)\)) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_tan {%
+ PreCommonFunc
+ { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/cos\() StrConcat 5 index StrConcat (\)^2) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_asin {%
+ PreCommonFunc
+ { (1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_acos {%
+ PreCommonFunc
+ { (-1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_atg {%
+ PreCommonFunc
+ { (1/\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_ln {%
+ PreCommonFunc
+ { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\() StrConcat 5 index StrConcat AddClPar } if
+ PostCommonFunc } def
+/EvalFunc_exp {%
+ PreCommonFunc
+ { (exp\() StrConcat 5 index StrConcat AddClPar } if
+ PostCommonFunc } def
+/EvalFunc_sqrt {%
+ PreCommonFunc
+ { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\(2*sqrt\() StrConcat 5 index StrConcat (\)\)) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_Fact {%
+ PreCommonFunc { ERROR_no_variable_expression_in_Fact } if
+ PostCommonFunc } def
+/EvalFunc_sh {%
+ PreCommonFunc
+ { (ch\() StrConcat 5 index StrConcat AddClPar } if
+ PostCommonFunc } def
+/EvalFunc_ch {%
+ PreCommonFunc
+ { (sh\() StrConcat 5 index StrConcat AddClPar } if
+ PostCommonFunc } def
+/EvalFunc_th {%
+ PreCommonFunc
+ { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/ch\() StrConcat 5 index StrConcat (\)^2) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_Argsh {%
+ PreCommonFunc
+ { (1/sqrt\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_Argch {%
+ PreCommonFunc
+ { (1/sqrt\(\() StrConcat 5 index StrConcat (\)^2-1\)\)) StrConcat } if
+ PostCommonFunc } def
+/EvalFunc_Argth {%
+ PreCommonFunc
+ { (1/\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if
+ PostCommonFunc } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/PreCommonFunc {
+ 1 add NextNonBlankChar pop 3 -1 roll 5 1 roll AnalyzeExpr 1 add NextNonBlankChar pop
+ 4 2 roll 4 index (0) eq
+ { (0) StrConcat false }
+ { 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if true } ifelse
+} def
+/PostCommonFunc {
+ 2 copy pop 0 6 2 roll GetIntervalNewStr
+ mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+/EvalFunc_Derive {%
+ 1 add ReadNumber cvi 1 add dup cvr log 1 add cvi string cvs
+ 4 -1 roll pop 5 1 roll 1 add NextNonBlankChar pop AnalyzeExpr 1 add
+ 4 -2 roll (Derive\() StrConcat 7 -1 roll StrConcat (,) StrConcat 6 -1 roll StrConcat AddClPar
+ 2 copy pop 0 6 2 roll GetIntervalNewStr 6 -1 roll pop 2 index 6 index dup 4 index exch sub getinterval
+ exch 6 2 roll } def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% literal switch -> func call, vector, variables
+/EvalFunc_Sum {%
+ 1 add NextNonBlankChar pop
+ %% read the variable name
+ ReadLiteral pop 3 -1 roll pop NextNonBlankChar
+ 44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if
+ %% read the initial value
+ 1 add NextNonBlankChar pop ReadNumber pop
+ 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if
+ %% read the increment value
+ 1 add NextNonBlankChar pop ReadNumber pop
+ 2 copy get 44 ne { ANALYZER_ERROR_missing_third_comma_in_Sum } if
+ %% read the limit value
+ 1 add NextNonBlankChar pop ReadNumber pop
+ 2 copy get 44 ne { ANALYZER_ERROR_missing_fourth_comma_in_Sum } if
+ 1 add NextNonBlankChar pop dup 6 1 roll 3 -1 roll pop AnalyzeExpr 1 add NextNonBlankChar pop
+ 4 -2 roll 3 index 8 index dup 9 index exch sub getinterval StrConcat
+ 4 index StrConcat AddClPar
+ 2 copy pop 0 6 2 roll GetIntervalNewStr
+ mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% literal switch -> func call, vector, variables
+/EvalFunc_IfTE {%
+ 3 -1 roll pop 1 add NextNonBlankChar pop SkipCond
+ NextNonBlankChar
+ 44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if
+ 1 add NextNonBlankChar pop dup 5 1 roll
+ AnalyzeExpr NextNonBlankChar
+ 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if
+ 1 add NextNonBlankChar pop
+ AnalyzeExpr 1 add NextNonBlankChar pop
+ 4 -2 roll 3 index 10 index dup 11 index exch sub getinterval StrConcat
+ 6 index StrConcat (,) StrConcat 4 index StrConcat AddClPar
+ 2 copy pop 0 6 2 roll GetIntervalNewStr
+ mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% advance in str until a comma is found (no error detection!)
+%% str index -> str index'
+/SkipCond { { 1 add 2 copy get 44 eq {exit } if } loop } bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Convert to radians if trigo function call
+%% (name) ->
+/TrigoFunc {
+ dup (cos) eq 1 index (sin) eq or exch (tan) eq or
+ { /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add
+ array astore def
+ } if
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% No derivative for condition....
+/EvalCondOp { 3 -1 roll pop } bind def
+/PutIntervalOneAdd {putinterval 1 add} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Add open parenthesis in string at the given index
+%% str index -> str index+1
+/AddOpPar {2 copy (\() PutIntervalOneAdd} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Add close parenthesis in string at the given index
+%% str index -> str index+1
+/AddClPar {2 copy (\)) PutIntervalOneAdd} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Add 0 in string at the given index
+%% str index -> str index+1
+/AddZero {2 copy (0) PutIntervalOneAdd} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Add open parenthesis in string at the given index
+%% str index -> str index+1
+/AddMul {2 copy (*) PutIntervalOneAdd} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Add open parenthesis in string at the given index
+%% str index -> str index+1
+/AddDiv {2 copy (/) PutIntervalOneAdd} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Add a plus sign in string at the given index
+%% str index -> str index+1
+/AddAdd {2 copy (+) PutIntervalOneAdd} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Add a minus sign in string at the given index
+%% str index -> str index+1
+/AddSub {2 copy (-) PutIntervalOneAdd} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Add a pipe sign in string at the given index
+%% str index -> str index+1
+/AddPipe {2 copy (|) PutIntervalOneAdd} bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% H O O K S
+/AnalyzePreHook { dup 5 1 roll } bind def
+/PreEvalHook {} def
+/AnalyzePostHook { 7 -1 roll pop } bind def
+/AnalyzeListOfEPostHook { 6 -1 roll mark 6 1 roll cleartomark } bind def
+/RollOp { 5 1 roll } bind def
+end%%%tx@CoreAnalyzerDict
+/tx@AddMathFunc 12 dict def tx@AddMathFunc begin
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% NEW FUNC
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% function arcsine in radians asin(x)=atan(x/sqrt(1-x^2))
+%% x -> theta
+/asin {%
+ dup abs 1 gt { EQDFasinrangeerror } if
+ dup dup dup mul 1 exch sub sqrt atan exch 0 lt { 360 sub } if DegtoRad
+} def
+%% function arccosine in radians acos(x)=atan(sqrt(1-x^2)/x)
+%% x -> theta
+/acos {%
+ dup abs 1 gt { EQDFacosrangeerror } if
+ dup dup mul 1 exch sub sqrt exch atan DegtoRad
+} def
+%% function arctangent in radians
+%% x -> theta
+/atg { 1 atan dup 90 gt { 360 sub } if DegtoRad } bind def
+%% HYPERBOLIC FUNCTIONS
+/sh { dup Ex exch neg Ex sub 2 div } def
+/ch { dup Ex exch neg Ex add 2 div } def
+/th { dup sh exch ch div } def
+/Argsh { dup dup mul 1 add sqrt add ln } def
+/Argch { dup dup mul 1 sub sqrt add ln } def
+/Argth { dup 1 add exch 1 exch sub div ln 2 div } def
+%% modified exponential funtion for 0
+%% x n -> x^n
+/Exp { dup 0 eq { pop pop 1 } { exp } ifelse } bind def
+%% modified exponential funtion for 0
+%% x -> e^x
+/Ex { Euler exch exp } bind def
+%%
+%% factorial function
+%% n -> n!
+/Fact { 1 exch 2 exch 1 exch { mul } for } bind def
+/fact { Fact } bind def
+end
+%
+% END pstricks.pro
+
+%%EndProcSet
+%%BeginProcSet: pst-dots.pro 0 0
+% $Id: pst-dots.pro 22 2008-04-18 16:03:12Z herbert $
+%
+%% PostScript prologue for pstricks.tex.
+%% Version 2.01, 2008/04/18
+%%
+%% For distribution, see pstricks.tex.
+%%
+%% Timothy Van Zandt <tvz@Princeton.EDU>
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% Modified by Etienne Riga - Dec. 16, 1999
+%% Modified by Etienne Riga - 2005/01/01 (er)
+%% to add /Diamond, /SolidDiamond and /BoldDiamond
+%% Modified by Herbert Voss (hv) - 2008/04/17
+%
+10 dict dup begin % hold local
+ /FontType 3 def
+ /FontMatrix [.001 0 0 .001 0 0] def
+ /FontBBox [-571.5 -742.5 571.5 742.5] def
+% /FontBBox [-1000 -1000 1000 1000] def % See end of file in /BuildGlyph
+ /Encoding 256 array def
+ 0 1 255 {Encoding exch /.notdef put} for % fill the array with /.notdef
+ Encoding % replace with given dot names
+ dup (b) 0 get /Bullet put % get the numerical position of b in ASCII
+% % and save /Bullet at this place in Encoding
+ dup (c) 0 get /Circle put
+ dup (C) 0 get /BoldCircle put % 67
+ dup (u) 0 get /SolidTriangle put
+ dup (t) 0 get /Triangle put
+ dup (T) 0 get /BoldTriangle put
+ dup (r) 0 get /SolidSquare put
+ dup (s) 0 get /Square put
+ dup (S) 0 get /BoldSquare put
+ dup (q) 0 get /SolidPentagon put
+ dup (p) 0 get /Pentagon put
+ dup (P) 0 get /BoldPentagon put
+%%%
+ dup (k) 0 get /Asterisk put
+ dup (K) 0 get /BoldAsterisk put
+ dup (J) 0 get /SolidAsterisk put
+ dup (h) 0 get /Hexagon put
+ dup (H) 0 get /BoldHexagon put
+ dup (G) 0 get /SolidHexagon put
+ dup (a) 0 get /Add put
+ dup (A) 0 get /BoldAdd put % 65
+ dup (x) 0 get /Mul put
+ dup (X) 0 get /BoldMul put
+ dup (m) 0 get /Oplus put
+ dup (M) 0 get /BOplus put
+ dup (e) 0 get /SolidOplus put
+ dup (n) 0 get /Otimes put
+ dup (N) 0 get /BOtimes put
+ dup (E) 0 get /SolidOtimes put
+ dup (i) 0 get /Bar put
+ dup (I) 0 get /BoldBar put
+ dup (l) 0 get /SolidDiamond put
+ dup (d) 0 get /Diamond put
+ (D) 0 get /BoldDiamond put
+%%%
+/CharProcs 47 dict def
+CharProcs begin
+ /CirclePath {0 0 500 0 360 arc closepath} def
+ /Bullet {CirclePath fill} def
+ /Circle {CirclePath .9 .9 scale CirclePath eofill} def
+ /BoldCircle {CirclePath .8 .8 scale CirclePath eofill} def
+ /TrianglePath {0 660 moveto -571.5 -330 lineto 571.5 -330 lineto closepath} def
+ /SolidTriangle {TrianglePath fill} def
+ /Triangle {TrianglePath .85 .85 scale TrianglePath eofill} def
+ /BoldTriangle {TrianglePath .7 .7 scale TrianglePath eofill} def
+ /SquarePath {-450 450 moveto 450 450 lineto 450 -450 lineto -450 -450 lineto closepath} def
+ /SolidSquare {SquarePath fill} def
+ /Square {SquarePath .89 .89 scale SquarePath eofill} def
+ /BoldSquare {SquarePath .78 .78 scale SquarePath eofill} def
+ /PentagonPath {
+ -337.8 -465 moveto 337.8 -465 lineto 546.6 177.6 lineto
+ 0 574.7 lineto -546.6 177.6 lineto closepath
+ } def
+ /SolidPentagon {PentagonPath fill} def
+ /Pentagon {PentagonPath .89 .89 scale PentagonPath eofill} def
+ /BoldPentagon {PentagonPath .78 .78 scale PentagonPath eofill} def
+%-------------- hv begin 2004/07/25 from: er 2003/03/24
+ /HexagonPath {
+ 0 550 moveto -476 275 lineto -476 -275 lineto
+ 0 -550 lineto 476 -275 lineto 476 275 lineto closepath
+ } def
+ /SolidHexagon {HexagonPath fill} def
+ /Hexagon {HexagonPath .89 .89 scale HexagonPath eofill} def
+ /BoldHexagon {HexagonPath .79 .79 scale HexagonPath eofill} def
+ /AsteriskPath {
+ 20 0 moveto 10 250 180 500 0 500 curveto
+ -180 500 -10 250 -20 0 curveto closepath
+ } def
+ /Asterisk {
+ AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath
+ 60 rotate AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath fill
+ } def
+ /Basterp {50 250 220 500 0 500 curveto -220 500 -50 250 -50 30 cos 100 mul curveto} def
+ /BoldAsteriskPath {
+ 50 30 cos 100 mul moveto Basterp
+ 60 rotate Basterp 60 rotate Basterp
+ 60 rotate Basterp 60 rotate Basterp
+ 60 rotate Basterp closepath
+ } def
+ /BoldAsterisk {BoldAsteriskPath fill} def
+ /SolidAsterisk {CirclePath .9 .9 scale BoldAsteriskPath eofill} def
+ /CrossPath {
+ 40 550 moveto -40 550 lineto -40 40 lineto -550 40 lineto
+ -550 -40 lineto -40 -40 lineto -40 -550 lineto 40 -550 lineto
+ 40 -40 lineto 550 -40 lineto 550 40 lineto 40 40 lineto closepath
+ } def
+ /BoldCrossPath {80 550 moveto -80 550 lineto -80 80 lineto -550 80 lineto
+ -550 -80 lineto -80 -80 lineto -80 -550 lineto 80 -550 lineto
+ 80 -80 lineto 550 -80 lineto 550 80 lineto 80 80 lineto closepath
+ } def
+ /Add {CrossPath fill} def
+ /Mul {45 rotate CrossPath fill} def
+ /BoldAdd {BoldCrossPath fill} def
+ /BoldMul {45 rotate BoldCrossPath fill} def
+ /Oplus {CirclePath .9 .9 scale CirclePath eofill .775 .775 scale CrossPath fill } def
+ /SolidOplus {CirclePath .775 .775 scale BoldCrossPath eofill} def
+ /BOplus {CirclePath .8 .8 scale CirclePath eofill .775 .775 scale BoldCrossPath fill} def
+ /Otimes {CirclePath .9 .9 scale CirclePath eofill 45 rotate .775 .775 scale CrossPath fill} def
+ /BOtimes {CirclePath .8 .8 scale CirclePath eofill 45 rotate .775 .775 scale BoldCrossPath fill } def
+ /SolidOtimes {CirclePath 45 rotate .775 .775 scale BoldCrossPath eofill} def
+ /BarPath {40 660 moveto -40 660 lineto -40 -660 lineto 40 -660 lineto closepath} def
+ /Bar {BarPath fill} def
+ /BoldBarPath {80 660 moveto -80 660 lineto -80 -660 lineto 80 -660 lineto closepath} def
+ /BoldBar {BoldBarPath fill} def
+ /DiamondPath {0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto 428.5 0 lineto closepath} def
+ /SolidDiamond {DiamondPath fill} def
+ /Diamond {DiamondPath .865 .865 scale DiamondPath eofill} def
+ /BoldDiamond {DiamondPath .73 .73 scale DiamondPath eofill} def
+%%%
+ /.notdef { } def
+end
+%
+/BuildGlyph {
+ exch
+ begin
+% Metrics 1 index get exec 0
+ 0 0
+% BBoxes 3 index get exec
+ -1000 -1000 1000 1000
+% -571.5 -742.5 571.5 742.5
+ setcachedevice
+ CharProcs begin load exec end
+ end
+} def
+%
+/BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+} bind def
+
+end
+/PSTricksDotFont exch definefont pop
+
+%% end
+
+%%EndProcSet
+%%BeginProcSet: pst-node.pro 0 0
+% $Id: pst-node.pro 26 2008-06-14 11:50:02Z herbert $
+%%
+%% PostScript prologue for pst-node.tex.
+%% Version 1.01, 2008/08/02.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%
+/tx@NodeDict 400 dict def tx@NodeDict begin
+tx@Dict begin % from main pstricks dict
+ /T /translate load def
+end
+/NewNode { % on stack: { x y } boolean N@name type InitXnode
+ gsave
+ /next ED % { x y } boolean N@name type
+ dict dup % { x y } boolean N@name dict dict
+ 3 1 roll def % { x y } boolean dict N@name dict def
+ exch { dup 3 1 roll def } if % { x y } dict boolean
+ begin % { x y } dict begin
+ tx@Dict begin
+ STV CP T exec % set scaling
+ end
+ /NodeMtrx CM def % save CM
+ next % InitXNode
+ end
+ grestore
+} def
+%
+/InitPnode {
+ /Y ED /X ED
+ /NodePos { NodeSep Cos mul NodeSep Sin mul } def
+} def
+%
+/InitCnode {
+ /r ED /Y ED /X ED
+ /NodePos { NodeSep r add dup Cos mul exch Sin mul } def
+} def
+%
+/GetRnodePos {
+ Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def } ifelse
+ Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } ifelse
+ dx Sin mul abs dy
+ Cos mul abs gt { dy Cos mul Sin div dy } { dx dup Sin mul Cos Div } ifelse
+} def
+%
+/InitRnode {
+ /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub /u ED
+ /NodePos { GetRnodePos } def
+} def
+%
+/DiaNodePos {
+ w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup
+ Cos mul exch Sin mul
+} def
+%
+/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h
+mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul
+} ifelse } def
+/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d
+ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d
+sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan
+sin def /NodePos { TriNodePos } def } def
+/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos
+hh mul Atan dup cos ww mul exch sin hh mul } def
+/GetCenter { begin X Y NodeMtrx transform CM itransform end } def
+%
+/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist
+ Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg }
+ { 0 Dist Sin mul } ifelse } ifelse Do
+} def
+/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform
+ exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx
+ dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop
+ XYPos } ifelse
+} def
+/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1
+roll sin mul sub exch } ifelse } def
+/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA
+AddOffset yA add /yA1 ED xA add /xA1 ED } def
+/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB
+AddOffset yB add /yB1 ED xB add /xB1 ED } def
+/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA
+AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED
+ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED
+} ifelse } def
+/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB
+AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED
+ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED
+} ifelse } def
+/InitNC {
+ /b ED /a ED % second and first node
+ /NodeSepTypeB ED /NodeSepTypeA ED
+ /NodeSepB ED /NodeSepA ED
+ /OffsetB ED /OffsetA ED
+ tx@NodeDict a known tx@NodeDict b known and dup {
+ /NodeA a load def
+ /NodeB b load def
+ NodeA GetCenter /yA ED /xA ED
+ NodeB GetCenter /yB ED /xB ED } if
+} def
+%
+/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub
+mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def
+/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt
+{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop
+} repeat LPutLine cleartomark } def
+/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED
+/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3
+mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx
+sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul
+add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add
+y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul
+mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def
+/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def
+} def
+/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def
+/NAngle yyB yyA sub xxB xxA sub Atan def } def
+/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def
+/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def
+} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit
+} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd
+} def
+/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def
+} def
+/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def
+/NAngle yyB yyA sub xxB xxA sub Atan def } def
+/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def
+/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def
+} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check {
+exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark
+VPosEnd } def
+/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2
+roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx
+def grestore exec /LPutVar /SaveLPutVar load def } def
+/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def
+GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos {
+LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos {
+LPutVar VPutLine } def LPutVar } def
+/NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop
+end } def
+/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub
+Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan
+/AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1
+yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos {
+LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
+ifelse } def
+/NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1
+roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA
+GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict
+begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ]
+cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines
+} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def
+%
+/NCAngles {
+ GetEdgeA GetEdgeB GetArmA GetArmB
+ /mtrx AngleA matrix rotate def
+ xA2 yA2 mtrx transform pop
+ xB2 yB2 mtrx transform exch pop
+ mtrx itransform
+ /y0 ED /x0 ED
+ mark ArmB 0 ne { xB1 yB1 } if
+ xB2 yB2 x0 y0 xA2 yA2
+ ArmA 0 ne { xA1 yA1 } if
+ tx@Dict begin false Line end
+ /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def
+ /LPutPos { LPutLines } def
+ /HPutPos { HPutLines } def
+ /VPutPos { VPutLines } def } def
+%
+/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2
+yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform
+/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1
+tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ]
+cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
+VPutLines } def } def
+/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def
+xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx
+transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def }
+{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB
+0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict
+begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx
+def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
+VPutLines } def } def
+/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if
+xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end
+/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos {
+LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
+def
+/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED
+GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin
+false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos {
+LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
+def
+/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate
+def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2
+mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3
+mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2
+xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false
+Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ]
+cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
+VPutLines } def } def
+% DG/SR modification begin - May 9, 1997 - Patch 1
+%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r
+%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
+%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
+%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
+/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r
+r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
+exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
+mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
+% DG/SR modification end
+} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add
+AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r
+Div def /y ED /x ED } def
+/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB
+180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos
+mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def
+/LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy
+add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos
+{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar
+tx@Dict begin false Polygon end } def
+/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan
+def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2
+mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def
+/x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div
+def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def
+GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul
+sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0
+eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn }
+{ x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def
+0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2
+roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0
+0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2
+roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat }
+ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos
+{ LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le {
+r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC }
+{ t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add
+add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub
+mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t
+sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse
+y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos {
+LPutPos } def } def
+/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB
+sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1
+ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB
+w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos
+{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop }
+{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine }
+def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin
+/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def
+%
+/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg
+exch X sub neg exch moveto setmatrix CP grestore } def
+%
+/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0
+def } ifelse LPutCoor } def
+/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg }
+if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop }
+ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED }
+def
+/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if
+r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop }
+ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED }
+def
+end
+%
+% END pst-node.pro
+
+%%EndProcSet
+%%BeginProcSet: pstricks-add.pro 0 0
+%% $Id: pstricks-add.pro 49 2008-10-13 10:59:27Z herbert $
+% PostScript prologue for pstricks-add.tex.
+% Version 0.21, 2008/10/15
+% For distribution, see pstricks.tex.
+%
+% HISTORY -> see file Changes
+%
+/tx@addDict 410 dict def tx@addDict begin
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/GTriangle {
+ gsave
+ /mtrx CM def
+ /colorA ED /colorB ED /colorC ED % save the colors
+ /yA ED /xA ED % save the origin
+ xA yA translate
+ rotate % \psk@gangle
+ /yB ED /xB ED /yC ED /xC ED % save other coordinates
+ /ds [ % save data in a array
+ 0 0 0 colorA aload pop % fd x y xr xg xb
+ 0 xB xA sub yB yA sub colorB aload pop
+ 0 xC xA sub yC yA sub colorC aload pop
+% 1 xC xB add yB colorA aload pop % for use with 4 points ABCD
+ ] def
+ newpath
+ <<
+ /ShadingType 4 % single Gouraud
+ /ColorSpace [ /DeviceRGB ]
+ /DataSource ds
+ >>
+ shfill
+ closepath
+ mtrx
+ setmatrix grestore} def
+%
+/RGBtoCMYK { % on stack r g b -> C M Y K
+ 3 dict begin
+ /Blue ED /Green ED /Red ED
+ 1 Red sub % Cyan
+ 1 Green sub % Magenta
+ 1 Blue sub % Yellow
+ 0 % Black
+ end
+} def
+%
+/CMYKtoGRAY { % on stack c m y k -> gray
+ exch 0.11 mul add
+ exch 0.59 mul add
+ exch 0.3 mul add
+ dup 1 gt { pop 1 } if
+ neg 1 add
+} def
+%
+/RGBtoGRAY { % on stack r g b -> gray
+ 0.11 mul
+ exch 0.59 mul add
+ exch 0.3 mul add
+} def
+%
+/HSBtoGRAY {
+ 6 dict begin
+ /b exch def
+ /s exch def 6 mul dup cvi dup
+ /i exch def sub
+ /f exch def
+ /F [[0 1 f sub 1][f 0 1][1 0 1 f sub][1 f 0][1 f sub 1 0][0 1 f][0 1 1]] def
+ F i get { s mul neg 1 add b mul} forall
+ 0.11 mul
+ exch 0.59 mul add
+ exch 0.3 mul add
+ end
+} def
+%
+%% convertisseur longueur d'onde ->R,G,B Manuel Luque
+%% lambda max=780 nanometres
+%% lambda min=380 nanometres
+%% adaptation de :
+%% http://www.physics.sfasu.edu/astro/color.html
+%% www.efg2.com/lab
+%
+/Gamma 0.8 def
+/calculateRGB {
+ lambda 379 le {/Red 0 def /Green 0 def /Blue 0 def} if
+ lambda 781 ge {/Red 0 def /Green 0 def /Blue 0 def} if
+ lambda 380 ge {lambda 439 le {
+ /R {lambda 440 sub neg 440 380 sub div} def
+ /Red R factor mul Gamma exp def
+ /G 0 def
+ /Green G factor mul Gamma exp def
+ /B 1 def
+ /Blue B factor mul Gamma exp def} if
+ } if
+ lambda 440 ge { lambda 489 le {
+ /G {lambda 440 sub 490 440 sub div} def
+ /Green G factor mul Gamma exp def
+ /R 0 def /Red 0 def
+ /B 1 def
+ /Blue B factor mul Gamma exp def } if
+ } if
+ lambda 490 ge {lambda 509 le {
+ /B {lambda 510 sub neg 510 490 sub div} def
+ /Blue B factor mul Gamma exp def
+ /R 0 def /Red 0 def
+ /G 1 def
+ /Green G factor mul Gamma exp def } if
+ } if
+ lambda 510 ge {lambda 579 le {
+ /R {lambda 510 sub 580 510 sub div } def
+ /Red R factor mul Gamma exp def
+ /Blue 0 def
+ /G 1 def
+ /Green G factor mul Gamma exp def } if
+ } if
+ lambda 580 ge {lambda 644 le {
+ /G {lambda 645 sub neg 645 580 sub div } def
+ /Green G factor mul Gamma exp def
+ /Blue 0 def
+ /R 1 def
+ /Red R factor mul Gamma exp def } if
+ } if
+ lambda 645 ge { lambda 780 le {
+ /Red 1 factor mul Gamma exp def
+ /Blue 0 def
+ /Green 0 def } if
+ } if
+} def
+%
+/factor {
+ lambda 380 ge {lambda 419 le { 0.3 0.7 lambda 380 sub mul 420 380 sub div add} if } if
+ lambda 420 ge {lambda 700 le { 1 } if } if
+ lambda 701 ge {lambda 780 le { 0.3 0.7 780 lambda sub mul 780 700 sub div add} if } if
+} def
+%
+/wavelengthToRGB { % the wavelength in nm must be on top of the stack
+ cvi /lambda exch def % no floating point here
+ calculateRGB
+} def % now the colors are saved in Red Green Blue
+%
+/wavelengthToCMYK { % the wavelength in nm must be on top of the stack
+ cvi /lambda exch def % no floating point here
+ gsave
+ calculateRGB Red Green Blue RGBtoCMYK
+ /Black ED /Yellow ED /Magenta ED /Cyan ED
+ grestore
+} def % now the colors are saved in Cyan Magenta Yellow Black
+%
+/axfill {
+ 8 dict begin
+ /xw exch def /nl exch def
+ /C1 exch def /y1 exch def/x1 exch def
+ /C0 exch def /y0 exch def/x0 exch def
+ << /ShadingType 2
+ /ColorSpace /DeviceRGB
+ /Coords [ x0 y0 x1 y1 ]
+ /EmulatorHints [ xw 2 div dup ]
+ /Function <<
+ /FunctionType 2
+ /Domain [0 1]
+ /C0 C0
+ /C1 C1
+ /N 1
+ >>
+ >> shfill
+ end
+} bind def
+%
+%%%%% ### bubblesort ###
+%% syntax : array bubblesort --> array2 trie par ordre croissant
+%% code de Bill Casselman
+%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/
+/bubblesort {
+4 dict begin
+ /a exch def
+ /n a length 1 sub def
+ n 0 gt {
+ % at this point only the n+1 items in the bottom of a remain to
+ % the sorted largest item in that blocks is to be moved up into
+ % position n
+ n {
+ 0 1 n 1 sub {
+ /i exch def
+ a i get a i 1 add get gt {
+ % if a[i] > a[i+1] swap a[i] and a[i+1]
+ a i 1 add
+ a i get
+ a i a i 1 add get
+ % set new a[i] = old a[i+1]
+ put
+ % set new a[i+1] = old a[i]
+ put
+ } if
+ } for
+ /n n 1 sub def
+ } repeat
+ } if
+ a
+end
+} def
+%
+end
+%
+% END pstricks-add.pro
+
+
+%%EndProcSet
+%%BeginProcSet: special.pro 0 0
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
+@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginProcSet: color.pro 0 0
+%!
+TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
+setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
+}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
+/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
+setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
+/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
+known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
+/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
+/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
+setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
+setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
+0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
+/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
+setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
+0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
+0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
+0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
+/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
+setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
+setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
+0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
+/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
+setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
+0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
+0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
+0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
+/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
+setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
+/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
+0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
+0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
+0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
+setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
+0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
+/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
+setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
+0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
+1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
+/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
+setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
+0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
+DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
+setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
+setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
+setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
+
+%%EndProcSet
+TeXDict begin 40258437 52099154 1000 600 600 (CompileEps.dvi)
+@start end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+ end
+%%EndSetup
+TeXDict begin 1 0 bop 0 TeXcolorgray 0 195 a
+ tx@Dict begin gsave CM STV CP newpath moveto 3.0 neg 0 rmoveto clip setmatrix end
+ 0 195 a
+0 195 172 196 v 172 195 a
+ currentpoint grestore moveto
+ 172 195 a -172 w @beginspecial
+@setspecial
+ tx@Dict begin STP newpath 0.8 SLW 0 setgray newpath 8.72688 19.73405 moveto 8.60541 19.7331 8.50914 19.64381 8.51106 19.53389 curveto 8.7201 7.55453 lineto 7.97118 8.00154 6.66852 8.06793 5.33263 7.65157 curveto 3.51872 7.0862 2.34895 5.85117 2.72156 4.88976 curveto 3.09416 3.92834 4.86807 3.5994 6.68199 4.16475 curveto 8.45811 4.71832 9.60992 5.92474 9.30763 6.87706 curveto 9.1581 15.44615 lineto 10.9496 15.3663 14.96774 15.08046 12.96512 9.89536 curveto 14.0456 11.34938 14.89577 13.04468 13.32227 15.0867 curveto 12.4258 16.25014 9.65515 16.81227 9.09837 18.86882 curveto 9.0867 19.53848 lineto 9.08478 19.6484 8.98543 19.73611 8.86394 19.73514 curveto 8.72688 19.73405 lineto closepath gsave 0 0 0 setrgbcolor 1. .setopacityalpha fill grestore gsave 0.8 SLW 0 setgray 1. .setopacityalpha 0 setlinecap stroke grestore end
+ @endspecial eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/note.pdf b/Master/texmf-dist/tex/latex/bclogo/note.pdf
new file mode 100644
index 00000000000..23827d5ab1b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/note.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/orne.eps b/Master/texmf-dist/tex/latex/bclogo/orne.eps
new file mode 100644
index 00000000000..cff90d838d0
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/orne.eps
@@ -0,0 +1,267 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 2 13 14
+%%HiResBoundingBox: 1.1525789 2.41239 12.553853 13.991758
+%%EndComments
+%%Page: 1 1
+0 16 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [0.1436043 0 0 0.1459032 0.4804172 1.7302292] concat
+gsave [0.954661 0 0 0.954661 47.02084 1.929386] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+60.446161 55.537231 moveto
+60.446161 27.526618 37.739073 4.8195294 9.72846 4.8195294 curveto
+-18.282153 4.8195294 -40.989241 27.526618 -40.989241 55.537231 curveto
+-40.989241 83.547844 -18.282153 106.25493 9.72846 106.25493 curveto
+37.739073 106.25493 60.446161 83.547844 60.446161 55.537231 curveto
+60.446161 55.537231 lineto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+2.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+60.446161 55.537231 moveto
+60.446161 27.526618 37.739073 4.8195294 9.72846 4.8195294 curveto
+-18.282153 4.8195294 -40.989241 27.526618 -40.989241 55.537231 curveto
+-40.989241 83.547844 -18.282153 106.25493 9.72846 106.25493 curveto
+37.739073 106.25493 60.446161 83.547844 60.446161 55.537231 curveto
+60.446161 55.537231 lineto
+closepath
+stroke
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+57.3715 27.76321 moveto
+49.69117 25.62996 48.27614 16.50681 56.48014 13.50082 curveto
+68.22353 9.197998 73.63102 25.58189 66.1294 32.73964 curveto
+57.38492 41.0833 41.21971 37.37122 38.47127 25.13077 curveto
+37.22 19.55833 40.95759 12.22084 45.27893 9.055252 curveto
+17.7102 16.41563 7.337985 40.73051 9.391875 60.2298 curveto
+12.98337 55.02586 15.41195 50.13405 21.57747 47.37701 curveto
+36.6158 40.65247 51.64266 52.4292 66.31929 42.12036 curveto
+80.16084 32.39799 76.41115 9.797058 57.3715 9.985504 curveto
+44.42328 10.11368 37.36764 30.57243 52.00588 32.8405 curveto
+57.15351 33.63808 63.35098 31.9133 65.54874 26.80649 curveto
+67.50783 22.25441 63.57308 16.19102 58.28362 16.80077 curveto
+51.38996 17.59552 55.05321 24.64157 57.3715 27.76321 curveto
+closepath
+fill
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+73.21464 10.89928 moveto
+77.74805 14.1714 80.42045 20.02633 80.47395 24.9172 curveto
+80.67065 42.8764 60.99718 52.12807 63.90473 71.4234 curveto
+66.31206 87.39919 88.1272 93.00941 96.24566 77.55283 curveto
+102.8299 65.01756 85.59602 50.32248 77.06655 63.56403 curveto
+74.50263 67.54426 74.445 73.95325 78.15746 77.28678 curveto
+81.56236 80.3442 88.30049 79.50556 89.90167 74.85135 curveto
+92.13784 68.35171 84.5868 68.29205 80.63764 69.66845 curveto
+84.77122 64.559 93.61197 65.26835 93.96583 73.17835 curveto
+94.61852 87.77012 72.32053 84.58696 70.97307 71.4234 curveto
+69.28597 52.07086 97.28015 46.83149 100.916 70.22293 curveto
+108.7892 47.28788 98.12712 20.79383 73.21464 10.89928 curveto
+closepath
+fill
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+29.79359 66.77673 moveto
+34.27921 71.15189 29.57453 77.80548 23.53313 77.01401 curveto
+8.920531 75.09941 17.30264 52.59209 31.58329 56.81641 curveto
+43.57895 60.36484 48.46471 74.61052 37.39976 83.49686 curveto
+31.42313 87.61887 24.52385 88.34091 19.38784 84.34715 curveto
+34.87921 104.6796 67.82317 109.126 88.45577 89.39819 curveto
+82.29923 91.25076 70.82304 91.62292 63.89178 84.31274 curveto
+53.66991 73.53203 54.40986 58.2621 38.7421 51.81976 curveto
+22.14915 44.99695 4.387553 63.22281 17.01503 78.01872 curveto
+25.81356 88.32817 45.7911 78.62679 37.19615 65.91278 curveto
+34.452 61.85356 28.61131 59.10461 23.69876 61.16386 curveto
+19.93976 62.73964 18.52474 69.37241 21.50933 72.267 curveto
+25.89338 76.51901 29.50285 70.54565 29.79359 66.77673 curveto
+closepath
+fill
+grestore
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+1.8190842 10.093474 moveto
+1.747405 9.0250026 2.0342823 7.6921299 2.5641876 6.6316196 curveto
+3.2032498 5.3526506 4.13354 4.3902733 5.3892671 3.7090977 curveto
+5.7287443 3.5249465 6.3997203 3.2370915 6.6475049 3.1693021 curveto
+6.724056 3.1483586 6.810884 3.1217903 6.8404546 3.1102616 curveto
+6.8700254 3.098733 6.8193515 3.1672866 6.7278458 3.2626042 curveto
+6.265204 3.7445176 5.9727002 4.4335739 5.9708422 5.0458876 curveto
+5.968141 5.9358135 6.5903213 6.7361646 7.5311063 7.0529597 curveto
+7.7772182 7.1358345 7.866597 7.147039 8.2972927 7.1490117 curveto
+8.7455493 7.1510646 8.8099462 7.1428941 9.0958912 7.0476804 curveto
+9.9755927 6.7547586 10.473958 6.1079712 10.473958 5.2592046 curveto
+10.473958 4.5609527 10.148068 3.9414118 9.6555322 3.7033111 curveto
+9.3967043 3.5781895 8.9895072 3.562025 8.6752663 3.6643976 curveto
+8.092209 3.8543448 7.7923062 4.208479 7.7923062 4.7070199 curveto
+7.7923062 5.1200557 8.0591309 5.507997 8.4805738 5.7077031 curveto
+8.5813775 5.7554714 8.6777944 5.789313 8.6948309 5.7829081 curveto
+8.7118671 5.7765037 8.6648187 5.6691368 8.5902774 5.5443156 curveto
+8.3137381 5.0812441 8.2286274 4.6493193 8.3746859 4.450219 curveto
+8.5011668 4.2778058 8.6536634 4.2143598 8.9415857 4.2143598 curveto
+9.2498584 4.2143598 9.4086774 4.2807235 9.6158247 4.4960949 curveto
+9.9358959 4.8288745 10.030074 5.3331812 9.8407436 5.7004945 curveto
+9.5161172 6.3302871 8.6799014 6.6581563 7.8525629 6.4800331 curveto
+7.1013411 6.3182971 6.7172384 5.7742047 6.8207079 5.0183774 curveto
+6.9145725 4.3327145 7.3458152 3.7167652 7.9399851 3.4196999 curveto
+8.2953304 3.2420388 8.5515414 3.1914601 8.9589991 3.2185353 curveto
+9.6221349 3.2625999 10.065609 3.4571512 10.495485 3.8925913 curveto
+10.795248 4.1962329 10.961323 4.4753046 11.087051 4.886659 curveto
+11.184433 5.2052745 11.178461 6.0029627 11.076321 6.3197173 curveto
+10.802074 7.1702138 10.307042 7.7422593 9.492456 8.1499846 curveto
+8.7269668 8.5331345 8.0337457 8.5842578 6.347 8.3819536 curveto
+5.6673665 8.3004399 4.7267323 8.3010478 4.348898 8.3832451 curveto
+3.5562354 8.5556881 2.9893114 8.8940721 2.5258932 9.4713546 curveto
+2.454679 9.5600675 2.2720972 9.8195717 2.1201568 10.04803 curveto
+1.8439013 10.463409 lineto
+1.8190842 10.093474 lineto
+closepath
+fill
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+1.8174027 10.1162 moveto
+1.7396128 9.0901218 2.0396836 7.683701 2.5595546 6.6377591 curveto
+3.0892283 5.5720951 3.7724306 4.7821218 4.7565527 4.0974131 curveto
+5.2930124 3.7241683 6.3124265 3.2355746 6.7958361 3.1200073 curveto
+6.8894951 3.0976166 6.8832772 3.1096259 6.7053648 3.2947627 curveto
+6.2146536 3.8053999 5.901432 4.6594968 5.9826557 5.2654537 curveto
+6.111255 6.2248418 6.9002942 6.982475 7.9301989 7.1354775 curveto
+9.0270852 7.2984316 10.087633 6.7469341 10.383517 5.8597233 curveto
+10.475578 5.5836716 10.494374 5.0882676 10.424321 4.784152 curveto
+10.189202 3.7634336 9.3058726 3.3223121 8.4094669 3.7779624 curveto
+8.0358792 3.96786 7.8267101 4.2572448 7.7996295 4.6216666 curveto
+7.7713398 5.0023648 7.946559 5.3520992 8.2806532 5.5817807 curveto
+8.4593024 5.7045978 8.7139402 5.8133955 8.6911149 5.7571571 curveto
+8.6852149 5.7426177 8.6056067 5.5806149 8.5142098 5.3971507 curveto
+8.2545258 4.8758762 8.2352591 4.5627272 8.4507998 4.3664795 curveto
+8.6519353 4.1833467 9.0539771 4.1472223 9.3409375 4.2864979 curveto
+9.8385257 4.5280023 10.085279 5.2260836 9.8407436 5.7004945 curveto
+9.5161172 6.3302871 8.6799014 6.6581563 7.8525629 6.4800331 curveto
+7.0782347 6.3133223 6.694448 5.7421601 6.8294669 4.9574272 curveto
+6.9773872 4.0977114 7.6393429 3.389835 8.4378872 3.2374283 curveto
+8.688652 3.1895681 9.1932766 3.2164377 9.481399 3.2929914 curveto
+10.098364 3.4569187 10.659714 3.9194029 10.925769 4.4829759 curveto
+11.123451 4.9017259 11.182169 5.2136896 11.158261 5.7181867 curveto
+11.146361 5.9692402 11.113575 6.2064251 11.072668 6.3374096 curveto
+10.729016 7.4377078 9.8742875 8.1702813 8.6107325 8.4474974 curveto
+8.3225849 8.5107148 7.3370978 8.5009869 6.7126799 8.4287611 curveto
+5.7334457 8.3154934 5.2614142 8.2922579 4.7935156 8.3342909 curveto
+4.2453556 8.3835334 3.9390399 8.4675766 3.4764673 8.6956459 curveto
+3.1545095 8.8543859 3.0755592 8.913235 2.7783803 9.2159978 curveto
+2.558559 9.4399508 2.3401815 9.7130718 2.1434903 10.010047 curveto
+1.8436739 10.462726 lineto
+1.8174027 10.1162 lineto
+closepath
+fill
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+11.832198 14.33089 moveto
+10.871964 14.154837 10.089236 13.495155 9.7995171 12.617758 curveto
+9.5685976 11.918428 9.5869969 11.127602 9.8520169 10.361237 curveto
+10.007891 9.9104943 10.277355 9.3969472 10.756546 8.6373798 curveto
+11.640857 7.2356579 11.875053 6.7317179 12.008045 5.9444387 curveto
+12.072398 5.5634967 12.035419 4.9852766 11.924559 4.6389698 curveto
+11.81599 4.2998212 11.587061 3.8922795 11.362693 3.6387331 curveto
+11.272587 3.53691 11.206854 3.4536004 11.216617 3.4536004 curveto
+11.266429 3.4536004 11.606706 3.620769 11.884438 3.7816788 curveto
+12.829682 4.3293241 13.668414 5.1326403 14.247989 6.0454354 curveto
+15.294469 7.6935816 15.595299 9.8273227 15.042447 11.680417 curveto
+14.97911 11.892722 lineto
+14.91502 11.627341 lineto
+14.556657 10.143249 13.3563 9.3878381 12.05194 9.8255387 curveto
+11.219228 10.104969 10.650879 10.949974 10.648698 11.911826 curveto
+10.647503 12.438017 10.80803 12.825132 11.184109 13.203012 curveto
+11.470489 13.490759 11.748779 13.651791 12.131568 13.75126 curveto
+13.121318 14.008446 13.915049 13.533376 13.981073 12.644283 curveto
+14.018707 12.137519 13.857751 11.748605 13.524022 11.539912 curveto
+13.364505 11.440161 13.329491 11.432731 13.019035 11.432767 curveto
+12.720857 11.432801 12.664513 11.443582 12.488169 11.534338 curveto
+12.260096 11.651715 11.959964 11.938482 12.110812 11.894888 curveto
+12.360494 11.822733 12.760938 11.795341 12.955535 11.837106 curveto
+13.183982 11.886136 13.378351 12.042901 13.420067 12.21176 curveto
+13.455584 12.355544 13.382524 12.675513 13.277282 12.837093 curveto
+13.087521 13.128426 12.634033 13.300561 12.248293 13.227677 curveto
+11.966284 13.17439 11.8264 13.09927 11.647648 12.90511 curveto
+11.453623 12.69436 11.340658 12.401111 11.318547 12.05078 curveto
+11.284632 11.513426 11.447499 11.089858 11.841626 10.69042 curveto
+12.176819 10.350709 12.375069 10.270181 12.828299 10.289639 curveto
+13.100129 10.301308 13.178172 10.319697 13.376144 10.418718 curveto
+13.91289 10.687187 14.329462 11.225106 14.44735 11.801963 curveto
+14.509122 12.104231 14.47099 12.592299 14.365103 12.854659 curveto
+14.104298 13.500874 13.582272 14.003007 12.929238 14.235813 curveto
+12.741418 14.302771 12.597504 14.325493 12.302358 14.334788 curveto
+12.091657 14.341424 11.880085 14.33967 11.832198 14.33089 curveto
+closepath
+fill
+grestore
+gsave
+1 1 1 setrgbcolor
+newpath
+8.0360927 16.581867 moveto
+6.6247489 16.456272 5.3315369 15.93554 4.2834633 15.070809 curveto
+3.975035 14.816334 3.3878157 14.215183 3.4178548 14.184664 curveto
+3.4257593 14.176634 3.4959532 14.203096 3.5738437 14.24347 curveto
+4.114445 14.523678 4.8618577 14.475222 5.531389 14.116556 curveto
+6.1256372 13.79822 6.5529363 13.257433 6.6954575 12.643323 curveto
+6.9440712 11.572069 6.2746571 10.452291 5.1450712 10.049882 curveto
+4.4858019 9.8150193 3.8729152 9.9385634 3.3753203 10.406624 curveto
+2.9789369 10.779479 2.7709626 11.231859 2.7653141 11.733493 curveto
+2.7609294 12.122982 2.8394661 12.362899 3.0441227 12.585195 curveto
+3.3042865 12.867783 3.8141954 13.039345 4.1848356 12.968992 curveto
+4.7347 12.864622 5.1167387 12.368048 5.0096874 11.896852 curveto
+4.9715933 11.729178 4.8267577 11.485805 4.7650661 11.485805 curveto
+4.7493349 11.485805 4.72694 11.546309 4.7153012 11.620261 curveto
+4.658601 11.980514 4.3290611 12.414354 4.0753869 12.462706 curveto
+3.8413381 12.507316 3.5359338 12.28641 3.419779 11.988491 curveto
+3.333166 11.766345 3.363094 11.350175 3.4828068 11.112025 curveto
+3.5965906 10.885669 3.8093715 10.688827 4.0029339 10.630857 curveto
+4.2687587 10.551245 4.6764849 10.576322 4.9539338 10.68935 curveto
+5.2661641 10.816546 5.4395378 10.937933 5.6616652 11.184867 curveto
+5.9854959 11.544861 6.1580748 12.053973 6.0864141 12.437887 curveto
+5.9786758 13.015083 5.4889962 13.480355 4.7972138 13.662832 curveto
+4.4855791 13.745034 3.9547035 13.71967 3.6653476 13.608756 curveto
+2.9229313 13.324176 2.3257308 12.409315 2.3257308 11.556573 curveto
+2.3257308 10.690575 2.9305692 9.7958049 3.79829 9.3781351 curveto
+4.5788058 9.0024421 5.4184809 9.009324 6.2186673 9.3979733 curveto
+6.8375543 9.6985673 7.3653829 10.171775 7.7493502 10.770263 curveto
+7.8579635 10.939559 8.1617594 11.516135 8.424451 12.051545 curveto
+9.2331426 13.699794 9.6331731 14.209991 10.421719 14.598852 curveto
+10.917835 14.843503 11.406721 14.950182 12.041158 14.952218 curveto
+12.3167 14.953102 12.889086 14.879583 13.038166 14.824159 curveto
+13.099301 14.801428 13.099022 14.804987 13.033718 14.881137 curveto
+12.995409 14.925808 12.838076 15.062552 12.684089 15.185011 curveto
+11.808012 15.881729 10.763156 16.342221 9.638119 16.527446 curveto
+9.2266301 16.595191 8.4733707 16.62078 8.0360927 16.581867 curveto
+closepath
+fill
+grestore
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/orne.pdf b/Master/texmf-dist/tex/latex/bclogo/orne.pdf
new file mode 100644
index 00000000000..2fb0185c67c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/orne.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/ours.eps b/Master/texmf-dist/tex/latex/bclogo/ours.eps
new file mode 100644
index 00000000000..9a7de9768ed
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/ours.eps
@@ -0,0 +1,315 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 2 13 14
+%%HiResBoundingBox: 1.9114287 2.5900002 12.017143 13.776429
+%%EndComments
+%%Page: 1 1
+0 16 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [1 0 0 1 0.8482143 -0.7589286] concat
+gsave
+0.31764707 0.16078432 0 setrgbcolor
+newpath
+6.7857144 6.2723212 moveto
+6.7857144 7.5414283 5.6957144 8.5714283 4.3526788 8.5714283 curveto
+3.0096431 8.5714283 1.9196432 7.5414283 1.9196432 6.2723212 curveto
+1.9196432 5.0032141 3.0096431 3.9732141 4.3526788 3.9732141 curveto
+5.6957144 3.9732141 6.7857144 5.0032141 6.7857144 6.2723212 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.40000001 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+6.7857144 6.2723212 moveto
+6.7857144 7.5414283 5.6957144 8.5714283 4.3526788 8.5714283 curveto
+3.0096431 8.5714283 1.9196432 7.5414283 1.9196432 6.2723212 curveto
+1.9196432 5.0032141 3.0096431 3.9732141 4.3526788 3.9732141 curveto
+5.6957144 3.9732141 6.7857144 5.0032141 6.7857144 6.2723212 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 7.7455355 -0.8705356] concat
+gsave
+0.31764707 0.16078432 0 setrgbcolor
+newpath
+6.7857144 6.2723212 moveto
+6.7857144 7.5414283 5.6957144 8.5714283 4.3526788 8.5714283 curveto
+3.0096431 8.5714283 1.9196432 7.5414283 1.9196432 6.2723212 curveto
+1.9196432 5.0032141 3.0096431 3.9732141 4.3526788 3.9732141 curveto
+5.6957144 3.9732141 6.7857144 5.0032141 6.7857144 6.2723212 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.40000001 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+6.7857144 6.2723212 moveto
+6.7857144 7.5414283 5.6957144 8.5714283 4.3526788 8.5714283 curveto
+3.0096431 8.5714283 1.9196432 7.5414283 1.9196432 6.2723212 curveto
+1.9196432 5.0032141 3.0096431 3.9732141 4.3526788 3.9732141 curveto
+5.6957144 3.9732141 6.7857144 5.0032141 6.7857144 6.2723212 curveto
+closepath
+stroke
+grestore
+gsave [0.4862385 0 0 0.4854369 3.3299885 2.7810766] concat
+gsave
+0.59215689 0.3019608 0.090196081 setrgbcolor
+newpath
+6.7857144 6.2723212 moveto
+6.7857144 7.5414283 5.6957144 8.5714283 4.3526788 8.5714283 curveto
+3.0096431 8.5714283 1.9196432 7.5414283 1.9196432 6.2723212 curveto
+1.9196432 5.0032141 3.0096431 3.9732141 4.3526788 3.9732141 curveto
+5.6957144 3.9732141 6.7857144 5.0032141 6.7857144 6.2723212 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.82332051 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+6.7857144 6.2723212 moveto
+6.7857144 7.5414283 5.6957144 8.5714283 4.3526788 8.5714283 curveto
+3.0096431 8.5714283 1.9196432 7.5414283 1.9196432 6.2723212 curveto
+1.9196432 5.0032141 3.0096431 3.9732141 4.3526788 3.9732141 curveto
+5.6957144 3.9732141 6.7857144 5.0032141 6.7857144 6.2723212 curveto
+closepath
+stroke
+grestore
+gsave [0.4862385 0 0 0.4854369 9.8478457 2.8480409] concat
+gsave
+0.59215689 0.3019608 0.090196081 setrgbcolor
+newpath
+6.7857144 6.2723212 moveto
+6.7857144 7.5414283 5.6957144 8.5714283 4.3526788 8.5714283 curveto
+3.0096431 8.5714283 1.9196432 7.5414283 1.9196432 6.2723212 curveto
+1.9196432 5.0032141 3.0096431 3.9732141 4.3526788 3.9732141 curveto
+5.6957144 3.9732141 6.7857144 5.0032141 6.7857144 6.2723212 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.82332051 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+6.7857144 6.2723212 moveto
+6.7857144 7.5414283 5.6957144 8.5714283 4.3526788 8.5714283 curveto
+3.0096431 8.5714283 1.9196432 7.5414283 1.9196432 6.2723212 curveto
+1.9196432 5.0032141 3.0096431 3.9732141 4.3526788 3.9732141 curveto
+5.6957144 3.9732141 6.7857144 5.0032141 6.7857144 6.2723212 curveto
+closepath
+stroke
+grestore
+gsave [1 0 0 1 0.8928571 -2.4107144] concat
+gsave
+0.31764707 0.16078432 0 setrgbcolor
+newpath
+13.928571 13.102678 moveto
+13.928571 16.343214 11.188571 18.973214 7.8125 18.973214 curveto
+4.4364287 18.973214 1.6964288 16.343214 1.6964288 13.102678 curveto
+1.6964288 9.8621425 4.4364287 7.2321424 7.8125 7.2321424 curveto
+11.188571 7.2321424 13.928571 9.8621425 13.928571 13.102678 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.40000001 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+13.928571 13.102678 moveto
+13.928571 16.343214 11.188571 18.973214 7.8125 18.973214 curveto
+4.4364287 18.973214 1.6964288 16.343214 1.6964288 13.102678 curveto
+1.6964288 9.8621425 4.4364287 7.2321424 7.8125 7.2321424 curveto
+11.188571 7.2321424 13.928571 9.8621425 13.928571 13.102678 curveto
+closepath
+stroke
+grestore
+gsave [0.7282609 0 0 0.7419355 3.0056289 2.9608295] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+9.9107144 11.473214 moveto
+9.9107144 12.237143 8.9907144 12.857143 7.8571429 12.857143 curveto
+6.7235715 12.857143 5.8035715 12.237143 5.8035715 11.473214 curveto
+5.8035715 10.709286 6.7235715 10.089286 7.8571429 10.089286 curveto
+8.9907144 10.089286 9.9107144 10.709286 9.9107144 11.473214 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.54416853 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+9.9107144 11.473214 moveto
+9.9107144 12.237143 8.9907144 12.857143 7.8571429 12.857143 curveto
+6.7235715 12.857143 5.8035715 12.237143 5.8035715 11.473214 curveto
+5.8035715 10.709286 6.7235715 10.089286 7.8571429 10.089286 curveto
+8.9907144 10.089286 9.9107144 10.709286 9.9107144 11.473214 curveto
+closepath
+stroke
+grestore
+gsave [1.2291667 0 0 0.8082192 -0.1134672 0.7943981] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+6.3392856 9.2633924 moveto
+6.3392856 10.162857 5.8592856 10.892857 5.2678571 10.892857 curveto
+4.6764285 10.892857 4.1964285 10.162857 4.1964285 9.2633924 curveto
+4.1964285 8.3639282 4.6764285 7.6339282 5.2678571 7.6339282 curveto
+5.8592856 7.6339282 6.3392856 8.3639282 6.3392856 9.2633924 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.40131932 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+6.3392856 9.2633924 moveto
+6.3392856 10.162857 5.8592856 10.892857 5.2678571 10.892857 curveto
+4.6764285 10.892857 4.1964285 10.162857 4.1964285 9.2633924 curveto
+4.1964285 8.3639282 4.6764285 7.6339282 5.2678571 7.6339282 curveto
+5.8592856 7.6339282 6.3392856 8.3639282 6.3392856 9.2633924 curveto
+closepath
+stroke
+grestore
+gsave [1.2291667 0 0 0.8082192 4.2838541 0.7720768] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+6.3392856 9.2633924 moveto
+6.3392856 10.162857 5.8592856 10.892857 5.2678571 10.892857 curveto
+4.6764285 10.892857 4.1964285 10.162857 4.1964285 9.2633924 curveto
+4.1964285 8.3639282 4.6764285 7.6339282 5.2678571 7.6339282 curveto
+5.8592856 7.6339282 6.3392856 8.3639282 6.3392856 9.2633924 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.40131932 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+6.3392856 9.2633924 moveto
+6.3392856 10.162857 5.8592856 10.892857 5.2678571 10.892857 curveto
+4.6764285 10.892857 4.1964285 10.162857 4.1964285 9.2633924 curveto
+4.1964285 8.3639282 4.6764285 7.6339282 5.2678571 7.6339282 curveto
+5.8592856 7.6339282 6.3392856 8.3639282 6.3392856 9.2633924 curveto
+closepath
+stroke
+grestore
+gsave [2.3333334 0 0 2.3333334 -2.2098219 -11.197919] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+5.7589287 8.5491076 moveto
+5.7589287 8.6600004 5.6689287 8.7500004 5.5580359 8.7500004 curveto
+5.447143 8.7500004 5.357143 8.6600004 5.357143 8.5491076 curveto
+5.357143 8.4382147 5.447143 8.3482147 5.5580359 8.3482147 curveto
+5.6689287 8.3482147 5.7589287 8.4382147 5.7589287 8.5491076 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.17142856 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+5.7589287 8.5491076 moveto
+5.7589287 8.6600004 5.6689287 8.7500004 5.5580359 8.7500004 curveto
+5.447143 8.7500004 5.357143 8.6600004 5.357143 8.5491076 curveto
+5.357143 8.4382147 5.447143 8.3482147 5.5580359 8.3482147 curveto
+5.6689287 8.3482147 5.7589287 8.4382147 5.7589287 8.5491076 curveto
+closepath
+stroke
+grestore
+gsave [2.3333334 0 0 2.3333334 -6.5401793 -11.108633] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+5.7589287 8.5491076 moveto
+5.7589287 8.6600004 5.6689287 8.7500004 5.5580359 8.7500004 curveto
+5.447143 8.7500004 5.357143 8.6600004 5.357143 8.5491076 curveto
+5.357143 8.4382147 5.447143 8.3482147 5.5580359 8.3482147 curveto
+5.6689287 8.3482147 5.7589287 8.4382147 5.7589287 8.5491076 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.17142856 setlinewidth
+1 setlinejoin
+1 setlinecap
+newpath
+5.7589287 8.5491076 moveto
+5.7589287 8.6600004 5.6689287 8.7500004 5.5580359 8.7500004 curveto
+5.447143 8.7500004 5.357143 8.6600004 5.357143 8.5491076 curveto
+5.357143 8.4382147 5.447143 8.3482147 5.5580359 8.3482147 curveto
+5.6689287 8.3482147 5.7589287 8.4382147 5.7589287 8.5491076 curveto
+closepath
+stroke
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.5 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+6.1160715 13.883928 moveto
+6.1160715 13.883928 8.9285715 16.473214 11.473215 13.169642 curveto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+0.2 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+8.3301312 4.8660713 moveto
+8.5673117 4.0146683 8.211541 3.2807002 7.4999992 3.1632652 curveto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+0.2 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+8.5148301 4.7913868 moveto
+8.3534686 3.8354256 8.5955111 3.011321 9.0795961 2.8794643 curveto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+0.19999997 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+8.7452771 4.8212607 moveto
+8.5604718 4.1341635 8.8376797 3.5418384 9.3920958 3.4470664 curveto
+stroke
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/ours.pdf b/Master/texmf-dist/tex/latex/bclogo/ours.pdf
new file mode 100644
index 00000000000..13bb7aaedb2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/ours.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/smiley_bonnehumeur.eps b/Master/texmf-dist/tex/latex/bclogo/smiley_bonnehumeur.eps
new file mode 100644
index 00000000000..388ea4a96f9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/smiley_bonnehumeur.eps
@@ -0,0 +1,100 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 2 2 36 37
+%%HiResBoundingBox: 2.1761258 2.8285057 35.91435 36.371492
+%%EndComments
+%%Page: 1 1
+0 39 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [0.913634 0 0 0.944079 12.973459 4.7532895] concat
+gsave
+1 1 0 setrgbcolor
+newpath
+34.428571 19.857143 moveto
+34.428571 31.843429 24.316571 41.571428 11.857142 41.571428 curveto
+-0.60228597 41.571428 -10.714286 31.843429 -10.714286 19.857143 curveto
+-10.714286 7.8708581 -0.60228597 -1.8571415 11.857142 -1.8571415 curveto
+24.316571 -1.8571415 34.428571 7.8708581 34.428571 19.857143 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+34.428571 19.857143 moveto
+34.428571 31.843429 24.316571 41.571428 11.857142 41.571428 curveto
+-0.60228597 41.571428 -10.714286 31.843429 -10.714286 19.857143 curveto
+-10.714286 7.8708581 -0.60228597 -1.8571415 11.857142 -1.8571415 curveto
+24.316571 -1.8571415 34.428571 7.8708581 34.428571 19.857143 curveto
+closepath
+stroke
+grestore
+gsave [0.8541667 0 0 0.8541667 19.514882 3.7946433] concat
+gsave
+0.16862746 0 0 setrgbcolor
+newpath
+14.714285 14.571428 moveto
+14.714285 16.542857 13.434285 18.142857 11.857142 18.142857 curveto
+10.28 18.142857 8.9999995 16.542857 8.9999995 14.571428 curveto
+8.9999995 12.6 10.28 11 11.857142 11 curveto
+13.434285 11 14.714285 12.6 14.714285 14.571428 curveto
+closepath
+fill
+grestore
+grestore
+gsave
+0.16862746 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave [0.8541667 0 0 0.8541667 7.1696431 4.0595244] concat
+gsave
+0.16862746 0 0 setrgbcolor
+newpath
+14.714285 14.571428 moveto
+14.714285 16.542857 13.434285 18.142857 11.857142 18.142857 curveto
+10.28 18.142857 8.9999995 16.542857 8.9999995 14.571428 curveto
+8.9999995 12.6 10.28 11 11.857142 11 curveto
+13.434285 11 14.714285 12.6 14.714285 14.571428 curveto
+closepath
+fill
+grestore
+grestore
+gsave
+0.16862746 0 0 setrgbcolor
+newpath
+13.677775 30.134775 moveto
+13.677775 30.134775 20.785402 36.108497 24.260812 36.034028 curveto
+27.385371 35.967077 34.193968 30.250872 34.193968 30.250872 curveto
+34.193968 30.250872 27.295236 34.613208 24.289569 34.623295 curveto
+21.094857 34.634017 13.677775 30.134775 13.677775 30.134775 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.90332186 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+13.677775 30.134775 moveto
+13.677775 30.134775 20.785402 36.108497 24.260812 36.034028 curveto
+27.385371 35.967077 34.193968 30.250872 34.193968 30.250872 curveto
+34.193968 30.250872 27.295236 34.613208 24.289569 34.623295 curveto
+21.094857 34.634017 13.677775 30.134775 13.677775 30.134775 curveto
+closepath
+stroke
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/smiley_bonnehumeur.pdf b/Master/texmf-dist/tex/latex/bclogo/smiley_bonnehumeur.pdf
new file mode 100644
index 00000000000..d3f59b8a0ac
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/smiley_bonnehumeur.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/smiley_mauvaisehumeur.eps b/Master/texmf-dist/tex/latex/bclogo/smiley_mauvaisehumeur.eps
new file mode 100644
index 00000000000..19d55a488ad
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/smiley_mauvaisehumeur.eps
@@ -0,0 +1,100 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 0 0 14 14
+%%HiResBoundingBox: 0.69985355 0.7713639 13.057207 13.057206
+%%EndComments
+%%Page: 1 1
+0 14 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [0.3346382 0 0 0.3457893 4.6303103 1.490756] concat
+gsave
+1 1 0 setrgbcolor
+newpath
+34.428571 19.857143 moveto
+34.428571 31.843429 24.316571 41.571428 11.857142 41.571428 curveto
+-0.60228597 41.571428 -10.714286 31.843429 -10.714286 19.857143 curveto
+-10.714286 7.8708581 -0.60228597 -1.8571415 11.857142 -1.8571415 curveto
+24.316571 -1.8571415 34.428571 7.8708581 34.428571 19.857143 curveto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+34.428571 19.857143 moveto
+34.428571 31.843429 24.316571 41.571428 11.857142 41.571428 curveto
+-0.60228597 41.571428 -10.714286 31.843429 -10.714286 19.857143 curveto
+-10.714286 7.8708581 -0.60228597 -1.8571415 11.857142 -1.8571415 curveto
+24.316571 -1.8571415 34.428571 7.8708581 34.428571 19.857143 curveto
+closepath
+stroke
+grestore
+gsave [0.3128571 0 0 0.3128571 7.0262475 1.1396312] concat
+gsave
+0.16862746 0 0 setrgbcolor
+newpath
+14.714285 14.571428 moveto
+14.714285 16.542857 13.434285 18.142857 11.857142 18.142857 curveto
+10.28 18.142857 8.9999995 16.542857 8.9999995 14.571428 curveto
+8.9999995 12.6 10.28 11 11.857142 11 curveto
+13.434285 11 14.714285 12.6 14.714285 14.571428 curveto
+closepath
+fill
+grestore
+grestore
+gsave
+0.16862746 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave [0.3128571 0 0 0.3128571 2.5045379 1.23665] concat
+gsave
+0.16862746 0 0 setrgbcolor
+newpath
+14.714285 14.571428 moveto
+14.714285 16.542857 13.434285 18.142857 11.857142 18.142857 curveto
+10.28 18.142857 8.9999995 16.542857 8.9999995 14.571428 curveto
+8.9999995 12.6 10.28 11 11.857142 11 curveto
+13.434285 11 14.714285 12.6 14.714285 14.571428 curveto
+closepath
+fill
+grestore
+grestore
+gsave
+0.16862746 0 0 setrgbcolor
+newpath
+4.8838126 12.460881 moveto
+4.8838126 12.460881 7.4902308 10.391951 8.7646893 10.417744 curveto
+9.9104875 10.440931 12.40725 12.420671 12.40725 12.420671 curveto
+12.40725 12.420671 9.8774342 10.909827 8.7752344 10.906333 curveto
+7.6037098 10.90262 4.8838126 12.460881 4.8838126 12.460881 curveto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.32192335 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+4.8838126 12.460881 moveto
+4.8838126 12.460881 7.4902308 10.391951 8.7646893 10.417744 curveto
+9.9104875 10.440931 12.40725 12.420671 12.40725 12.420671 curveto
+12.40725 12.420671 9.8774342 10.909827 8.7752344 10.906333 curveto
+7.6037098 10.90262 4.8838126 12.460881 4.8838126 12.460881 curveto
+closepath
+stroke
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/smiley_mauvaisehumeur.pdf b/Master/texmf-dist/tex/latex/bclogo/smiley_mauvaisehumeur.pdf
new file mode 100644
index 00000000000..b5dc79587ac
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/smiley_mauvaisehumeur.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/takecare.pgf b/Master/texmf-dist/tex/latex/bclogo/takecare.pgf
new file mode 100644
index 00000000000..65478951001
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/takecare.pgf
@@ -0,0 +1,44 @@
+% TeXgraph version 1.94 beta-7.3
+\begin{pgfpicture}{-0.2885cm}{-0.4663cm}{0.3015cm}{0.2837cm}%
+\pgfsetxvec{\pgfxy(0.1594,0)}
+\pgfsetyvec{\pgfxy(0,0.1061)}
+\pgfsetroundjoin%
+\pgfsetstrokecolor{black}
+\pgfsetlinewidth{0.8pt}
+\pgfmoveto{\pgfxy(0.0292,-1.0153)}
+\pgfcurveto{\pgfxy(-0.0065,-2.0135)}{\pgfxy(-0.2585,-3.0214)}{\pgfxy(-0.5615,-3.8592)}
+\pgfstroke
+\pgfsetstrokecolor{rgb,1:red,0;green,0.502;blue,0}
+\pgfsetlinewidth{0.2pt}
+\pgfmoveto{\pgfxy(-1.0171,-3.9372)}
+\pgfcurveto{\pgfxy(-0.9617,-3.5601)}{\pgfxy(-1.1501,-3.1276)}{\pgfxy(-1.5046,-3.2164)}
+\pgfstroke
+\pgfmoveto{\pgfxy(-0.8067,-3.915)}
+\pgfcurveto{\pgfxy(-0.718,-3.5047)}{\pgfxy(-0.8288,-2.9724)}{\pgfxy(-1.2055,-2.795)}
+\pgfstroke
+\pgfmoveto{\pgfxy(-0.286,-3.9039)}
+\pgfcurveto{\pgfxy(-0.1199,-3.4936)}{\pgfxy(0.2014,-3.2275)}{\pgfxy(0.6445,-3.2053)}
+\pgfstroke
+\pgfmoveto{\pgfxy(-0.0423,-3.9261)}
+\pgfcurveto{\pgfxy(0.2679,-3.4492)}{\pgfxy(0.8439,-3.4049)}{\pgfxy(0.9768,-3.5601)}
+\pgfstroke
+\pgfsetstrokecolor{black}
+\pgfsetlinewidth{0.8pt}
+\pgfmoveto{\pgfxy(0.0236,-1.0413)}
+\pgfcurveto{\pgfxy(0.7249,-1.0897)}{\pgfxy(1.3675,-1.0994)}{\pgfxy(1.535,-0.9808)}
+\pgfcurveto{\pgfxy(1.8251,-0.7752)}{\pgfxy(0.8216,1.8733)}{\pgfxy(0.3138,2.3208)}
+\pgfcurveto{\pgfxy(-0.194,1.0268)}{\pgfxy(-1.0404,-0.0738)}{\pgfxy(-1.7779,-0.6906)}
+\pgfcurveto{\pgfxy(-1.1976,-0.8962)}{\pgfxy(-0.6437,-0.9952)}{\pgfxy(0.0236,-1.0413)}
+\pgfsetfillcolor{rgb,1:red,1;green,1;blue,0}\pgffillstroke
+\pgfsetlinewidth{0.2pt}
+\pgfmoveto{\pgfxy(0.2193,0.1333)}
+\pgfcurveto{\pgfxy(0.1168,0.1333)}{\pgfxy(0.2043,0.9719)}{\pgfxy(0.2167,1.1719)}
+\pgfcurveto{\pgfxy(0.2234,1.2807)}{\pgfxy(0.3845,1.2681)}{\pgfxy(0.3791,1.1622)}
+\pgfcurveto{\pgfxy(0.3682,0.9496)}{\pgfxy(0.3054,0.1333)}{\pgfxy(0.2193,0.1333)}
+\pgfsetfillcolor{black}\pgffillstroke
+\pgfellipse[fillstroke]{\pgfxy(0.1324,-0.4245)}{\pgfxy(0.1368,0)}{\pgfxy(0,0.1368)}
+\pgfsetlinewidth{0.1pt}
+\pgfmoveto{\pgfxy(-1.7372,-4.1035)}
+\pgfcurveto{\pgfxy(-1.0843,-3.7165)}{\pgfxy(0.149,-3.7286)}{\pgfxy(0.7294,-4.1035)}
+\pgfsetfillcolor{rgb,1:red,0.502;green,0;blue,0}\pgffill
+\end{pgfpicture}%
diff --git a/Master/texmf-dist/tex/latex/bclogo/takecare.pst b/Master/texmf-dist/tex/latex/bclogo/takecare.pst
new file mode 100644
index 00000000000..79693455312
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/takecare.pst
@@ -0,0 +1,28 @@
+% TeXgraph version 1.94 beta-7.3
+\psset{xunit=0.1594cm, yunit=0.1061cm}
+\begin{pspicture}(-1.8099,-4.3932)(1.8912,2.6735)%
+\pstVerb{1 setlinejoin}%
+\psset{linecolor={black},linewidth=0.8pt}
+\psbezier(0.0292,-1.0153)(-0.0065,-2.0135)(-0.2585,-3.0214)(-0.5615,-3.8592)
+\psset{linecolor=[rgb]{0,0.502,0},linewidth=0.2pt}
+\psbezier(-1.0171,-3.9372)(-0.9617,-3.5601)(-1.1501,-3.1276)(-1.5046,-3.2164)
+\psbezier(-0.8067,-3.915)(-0.718,-3.5047)(-0.8288,-2.9724)(-1.2055,-2.795)
+\psbezier(-0.286,-3.9039)(-0.1199,-3.4936)(0.2014,-3.2275)(0.6445,-3.2053)
+\psbezier(-0.0423,-3.9261)(0.2679,-3.4492)(0.8439,-3.4049)(0.9768,-3.5601)
+\psset{linecolor={black},linewidth=0.8pt,fillstyle=solid,fillcolor=[rgb]{1,1,0}}
+\pscustom{%
+\psbezier(0.0236,-1.0413)(0.7249,-1.0897)(1.3675,-1.0994)(1.535,-0.9808)
+\psbezier(1.8251,-0.7752)(0.8216,1.8733)(0.3138,2.3208)
+\psbezier(-0.194,1.0268)(-1.0404,-0.0738)(-1.7779,-0.6906)
+\psbezier(-1.1976,-0.8962)(-0.6437,-0.9952)(0.0236,-1.0413)
+}
+\psset{linewidth=0.2pt,fillcolor={black}}
+\pscustom{%
+\psbezier(0.2193,0.1333)(0.1168,0.1333)(0.2043,0.9719)(0.2167,1.1719)
+\psbezier(0.2234,1.2807)(0.3845,1.2681)(0.3791,1.1622)
+\psbezier(0.3682,0.9496)(0.3054,0.1333)(0.2193,0.1333)
+}
+\psellipse(0.1324,-0.4245)(0.1368,0.1368)
+\psset{linewidth=0.1pt,linestyle=none,fillcolor=[rgb]{0.502,0,0}}
+\psbezier(-1.7372,-4.1035)(-1.0843,-3.7165)(0.149,-3.7286)(0.7294,-4.1035)
+\end{pspicture}%
diff --git a/Master/texmf-dist/tex/latex/bclogo/trefle.eps b/Master/texmf-dist/tex/latex/bclogo/trefle.eps
new file mode 100644
index 00000000000..3d4314b05d8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/trefle.eps
@@ -0,0 +1,150 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 0 2 14 15
+%%HiResBoundingBox: 0.71395469 2.7075255 13.105012 14.909273
+%%EndComments
+%%Page: 1 1
+0 16 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+8.5267858 8.4821431 moveto
+7.3363096 6.9047618 4.4466051 4.7477237 5.0446429 2.7232143 curveto
+6.2305932 0.81515724 7.3217885 2.7610184 8.3482143 2.4553571 curveto
+9.9702381 2.3958333 10.000836 1.2133153 11.517857 2.3660714 curveto
+12.693566 3.5565096 9.3601191 6.8005951 8.5267858 8.4821431 curveto
+closepath
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+9.1010673 9.1121579 moveto
+10.549317 7.7675634 12.401564 4.6736358 14.476362 5.0628649 curveto
+16.49505 6.0487965 14.670138 7.3320657 15.078514 8.3221202 curveto
+15.302546 9.9296999 16.482052 9.8399821 15.489409 11.466284 curveto
+14.424598 12.75687 10.858587 9.7703135 9.1010673 9.1121579 curveto
+closepath
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+8.5819379 9.4887599 moveto
+9.759806 11.075578 12.632229 13.255576 12.018076 15.275255 curveto
+10.816959 17.173801 9.7413053 15.219306 8.7124761 15.516778 curveto
+7.0900293 15.563374 7.0500098 16.745611 5.5422223 15.580802 curveto
+4.3760372 14.381033 7.7352302 11.163614 8.5819379 9.4887599 curveto
+closepath
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+8.0256846 9.0854242 moveto
+6.435531 10.258786 4.2473912 13.125012 2.2294627 12.505131 curveto
+0.33433278 11.298631 2.2918722 10.228527 1.9973206 9.1988578 curveto
+1.9553284 7.576286 0.77321013 7.5329111 1.9422924 6.028436 curveto
+3.1453662 4.86566 6.3532401 8.2339682 8.0256846 9.0854242 curveto
+closepath
+stroke
+gsave
+0 0.50196081 0 setrgbcolor
+newpath
+2.3970198 11.967916 moveto
+2.3233591 11.922818 2.1877564 11.8023 2.0956805 11.700097 curveto
+1.8510626 11.428575 1.8637104 11.28264 2.1950555 10.553495 curveto
+2.539989 9.7944473 2.5745934 9.6297634 2.5115546 9.0472562 curveto
+2.4566394 8.5397986 2.3620046 8.1987321 2.1292149 7.6692727 curveto
+1.9327082 7.2223352 1.9278546 7.0282594 2.105426 6.7178969 curveto
+2.3140135 6.3533227 2.3685805 6.3196607 2.7069457 6.3468214 curveto
+3.2672912 6.3918 3.8911336 6.7611232 5.7898769 8.1719549 curveto
+6.4037162 8.628058 6.9512015 9.0291803 7.0065113 9.0633366 curveto
+7.0618202 9.0974928 7.1019992 9.1369384 7.095797 9.1509933 curveto
+7.074339 9.1996152 5.6096854 10.516708 5.1980416 10.857552 curveto
+4.4751635 11.4561 3.8643693 11.828501 3.3598992 11.978261 curveto
+3.0248787 12.077718 2.5683555 12.072813 2.3970198 11.967916 curveto
+2.3970198 11.967916 lineto
+closepath
+fill
+grestore
+gsave
+0 0.50196081 0 setrgbcolor
+newpath
+7.7741599 6.8433919 moveto
+6.5398202 5.5077652 6.0998095 4.9519553 5.7969166 4.3457902 curveto
+5.5917653 3.9352326 5.4996983 3.6081616 5.4996983 3.2899254 curveto
+5.4996983 2.9741134 5.5629399 2.8410589 5.8300948 2.5948044 curveto
+6.10908 2.3376446 6.2683769 2.3404661 6.8613055 2.6130674 curveto
+7.6873903 2.9928634 7.9748283 3.0444102 8.6901412 2.9410344 curveto
+9.0695872 2.8861977 9.4258666 2.7757294 9.8970198 2.5668286 curveto
+10.35394 2.3642384 10.534545 2.3615594 10.852076 2.552662 curveto
+11.215985 2.7716768 11.267798 2.862575 11.21459 3.1886379 curveto
+11.126568 3.7280477 10.580485 4.6654044 9.5308207 6.0788513 curveto
+9.289051 6.4044125 8.9529992 6.8666513 8.7840412 7.1060486 curveto
+8.6150836 7.345446 8.4638653 7.5413165 8.4480015 7.5413165 curveto
+8.4321376 7.5413165 8.1289091 7.2272504 7.7741604 6.8433919 curveto
+7.7741599 6.8433919 lineto
+closepath
+fill
+grestore
+gsave
+0 0.50196081 0 setrgbcolor
+newpath
+14.084359 11.133582 moveto
+13.663261 10.992812 13.046145 10.70138 12.463984 10.368361 curveto
+11.819937 9.9999402 10.033955 8.9630759 10.017751 8.948183 curveto
+9.9989006 8.9308571 10.999352 7.796187 11.601429 7.1520402 curveto
+12.602414 6.0811111 13.396147 5.574321 14.077551 5.571062 curveto
+14.294694 5.5700232 14.366899 5.5919491 14.541131 5.7118236 curveto
+14.786859 5.8808884 14.918944 6.0804406 14.919176 6.2829598 curveto
+14.919265 6.3643009 14.828939 6.7027991 14.718448 7.0351777 curveto
+14.557337 7.5198357 14.517555 7.701146 14.517555 7.9508031 curveto
+14.517555 8.5396549 14.725591 9.1655272 15.212422 10.041316 curveto
+15.335939 10.263503 15.368265 10.365243 15.350408 10.475525 curveto
+15.315497 10.691107 15.094864 11.155878 15.004466 11.204258 curveto
+14.864002 11.279429 14.418216 11.245186 14.084359 11.133581 curveto
+14.084359 11.133582 lineto
+closepath
+fill
+grestore
+gsave
+0 0.50196081 0 setrgbcolor
+newpath
+6.3268608 15.464666 moveto
+5.8218367 15.194217 5.7704845 15.113337 5.8541166 14.720106 curveto
+5.9760546 14.14677 6.4370162 13.392633 7.7329577 11.646314 curveto
+8.1620309 11.068125 8.5432555 10.549448 8.5801229 10.493699 curveto
+8.6461055 10.393922 8.6584323 10.404781 9.3679858 11.187808 curveto
+10.615399 12.564391 10.954851 13.001546 11.28103 13.651478 curveto
+11.552683 14.192766 11.642422 14.740613 11.510753 15.053911 curveto
+11.477546 15.132921 11.35746 15.282946 11.243893 15.387299 curveto
+10.97425 15.635063 10.798861 15.640248 10.298805 15.415235 curveto
+9.2979457 14.964873 9.1527564 14.930129 8.5622497 14.999669 curveto
+8.074518 15.057106 7.6604358 15.173305 7.2068117 15.380028 curveto
+6.7308207 15.596944 6.5977707 15.609742 6.3268608 15.464665 curveto
+6.3268608 15.464666 lineto
+closepath
+fill
+grestore
+grestore
+showpage
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/bclogo/trefle.pdf b/Master/texmf-dist/tex/latex/bclogo/trefle.pdf
new file mode 100644
index 00000000000..80a98fea742
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/trefle.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/bclogo/trefle.tex b/Master/texmf-dist/tex/latex/bclogo/trefle.tex
new file mode 100644
index 00000000000..ae0b14a4042
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bclogo/trefle.tex
@@ -0,0 +1,145 @@
+%LaTeX with PSTricks extensions
+%%Creator: inkscape 0.46
+%%Please note this file requires PSTricks extensions
+\psset{xunit=1pt,yunit=1pt,runit=1pt}
+\begin{pspicture}(17,20)
+{
+\newrgbcolor{curcolor}{0 0 0}
+\pscustom[linewidth=1,linecolor=curcolor]
+{
+\newpath
+\moveto(8.5267858,11.5178569)
+\curveto(7.3363096,13.0952382)(4.4466051,15.2522763)(5.0446429,17.2767857)
+\curveto(6.2305932,19.18484276)(7.3217885,17.2389816)(8.3482143,17.5446429)
+\curveto(9.9702381,17.6041667)(10.000836,18.7866847)(11.517857,17.6339286)
+\curveto(12.693566,16.4434904)(9.3601191,13.1994049)(8.5267858,11.5178569)
+\closepath
+}
+}
+{
+\newrgbcolor{curcolor}{0 0 0}
+\pscustom[linewidth=1,linecolor=curcolor]
+{
+\newpath
+\moveto(9.1010673,10.8878421)
+\curveto(10.549317,12.2324366)(12.401564,15.3263642)(14.476362,14.9371351)
+\curveto(16.49505,13.9512035)(14.670138,12.6679343)(15.078514,11.6778798)
+\curveto(15.302546,10.0703001)(16.482052,10.1600179)(15.489409,8.533716)
+\curveto(14.424598,7.24313)(10.858587,10.2296865)(9.1010673,10.8878421)
+\closepath
+}
+}
+{
+\newrgbcolor{curcolor}{0 0 0}
+\pscustom[linewidth=1,linecolor=curcolor]
+{
+\newpath
+\moveto(8.5819379,10.5112401)
+\curveto(9.759806,8.924422)(12.632229,6.744424)(12.018076,4.724745)
+\curveto(10.816959,2.826199)(9.7413053,4.780694)(8.7124761,4.483222)
+\curveto(7.0900293,4.436626)(7.0500098,3.254389)(5.5422223,4.419198)
+\curveto(4.3760372,5.618967)(7.7352302,8.836386)(8.5819379,10.5112401)
+\closepath
+}
+}
+{
+\newrgbcolor{curcolor}{0 0 0}
+\pscustom[linewidth=1,linecolor=curcolor]
+{
+\newpath
+\moveto(8.0256846,10.9145758)
+\curveto(6.435531,9.741214)(4.2473912,6.874988)(2.2294627,7.494869)
+\curveto(0.33433278,8.701369)(2.2918722,9.771473)(1.9973206,10.8011422)
+\curveto(1.9553284,12.423714)(0.77321013,12.4670889)(1.9422924,13.971564)
+\curveto(3.1453662,15.13434)(6.3532401,11.7660318)(8.0256846,10.9145758)
+\closepath
+}
+}
+{
+\newrgbcolor{curcolor}{0 0.50196081 0}
+\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
+{
+\newpath
+\moveto(2.3970198,8.032084)
+\curveto(2.3233591,8.077182)(2.1877564,8.1977)(2.0956805,8.299903)
+\curveto(1.8510626,8.571425)(1.8637104,8.71736)(2.1950555,9.446505)
+\curveto(2.539989,10.2055527)(2.5745934,10.3702366)(2.5115546,10.9527438)
+\curveto(2.4566394,11.4602014)(2.3620046,11.8012679)(2.1292149,12.3307273)
+\curveto(1.9327082,12.7776648)(1.9278546,12.9717406)(2.105426,13.2821031)
+\curveto(2.3140135,13.6466773)(2.3685805,13.6803393)(2.7069457,13.6531786)
+\curveto(3.2672912,13.6082)(3.8911336,13.2388768)(5.7898769,11.8280451)
+\curveto(6.4037162,11.371942)(6.9512015,10.9708197)(7.0065113,10.9366634)
+\curveto(7.0618202,10.9025072)(7.1019992,10.8630616)(7.095797,10.8490067)
+\curveto(7.074339,10.8003848)(5.6096854,9.483292)(5.1980416,9.142448)
+\curveto(4.4751635,8.5439)(3.8643693,8.171499)(3.3598992,8.021739)
+\curveto(3.0248787,7.922282)(2.5683555,7.927187)(2.3970198,8.032084)
+\lineto(2.3970198,8.032084)
+\closepath
+}
+}
+{
+\newrgbcolor{curcolor}{0 0.50196081 0}
+\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
+{
+\newpath
+\moveto(7.7741599,13.1566081)
+\curveto(6.5398202,14.4922348)(6.0998095,15.0480447)(5.7969166,15.6542098)
+\curveto(5.5917653,16.0647674)(5.4996983,16.3918384)(5.4996983,16.7100746)
+\curveto(5.4996983,17.0258866)(5.5629399,17.1589411)(5.8300948,17.4051956)
+\curveto(6.10908,17.6623554)(6.2683769,17.6595339)(6.8613055,17.3869326)
+\curveto(7.6873903,17.0071366)(7.9748283,16.9555898)(8.6901412,17.0589656)
+\curveto(9.0695872,17.1138023)(9.4258666,17.2242706)(9.8970198,17.4331714)
+\curveto(10.35394,17.6357616)(10.534545,17.6384406)(10.852076,17.447338)
+\curveto(11.215985,17.2283232)(11.267798,17.137425)(11.21459,16.8113621)
+\curveto(11.126568,16.2719523)(10.580485,15.3345956)(9.5308207,13.9211487)
+\curveto(9.289051,13.5955875)(8.9529992,13.1333487)(8.7840412,12.8939514)
+\curveto(8.6150836,12.654554)(8.4638653,12.4586835)(8.4480015,12.4586835)
+\curveto(8.4321376,12.4586835)(8.1289091,12.7727496)(7.7741604,13.1566081)
+\lineto(7.7741599,13.1566081)
+\closepath
+}
+}
+{
+\newrgbcolor{curcolor}{0 0.50196081 0}
+\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
+{
+\newpath
+\moveto(14.084359,8.866418)
+\curveto(13.663261,9.007188)(13.046145,9.29862)(12.463984,9.631639)
+\curveto(11.819937,10.0000598)(10.033955,11.0369241)(10.017751,11.051817)
+\curveto(9.9989006,11.0691429)(10.999352,12.203813)(11.601429,12.8479598)
+\curveto(12.602414,13.9188889)(13.396147,14.425679)(14.077551,14.428938)
+\curveto(14.294694,14.4299768)(14.366899,14.4080509)(14.541131,14.2881764)
+\curveto(14.786859,14.1191116)(14.918944,13.9195594)(14.919176,13.7170402)
+\curveto(14.919265,13.6356991)(14.828939,13.2972009)(14.718448,12.9648223)
+\curveto(14.557337,12.4801643)(14.517555,12.298854)(14.517555,12.0491969)
+\curveto(14.517555,11.4603451)(14.725591,10.8344728)(15.212422,9.958684)
+\curveto(15.335939,9.736497)(15.368265,9.634757)(15.350408,9.524475)
+\curveto(15.315497,9.308893)(15.094864,8.844122)(15.004466,8.795742)
+\curveto(14.864002,8.720571)(14.418216,8.754814)(14.084359,8.866419)
+\lineto(14.084359,8.866418)
+\closepath
+}
+}
+{
+\newrgbcolor{curcolor}{0 0.50196081 0}
+\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
+{
+\newpath
+\moveto(6.3268608,4.535334)
+\curveto(5.8218367,4.805783)(5.7704845,4.886663)(5.8541166,5.279894)
+\curveto(5.9760546,5.85323)(6.4370162,6.607367)(7.7329577,8.353686)
+\curveto(8.1620309,8.931875)(8.5432555,9.450552)(8.5801229,9.506301)
+\curveto(8.6461055,9.606078)(8.6584323,9.595219)(9.3679858,8.812192)
+\curveto(10.615399,7.435609)(10.954851,6.998454)(11.28103,6.348522)
+\curveto(11.552683,5.807234)(11.642422,5.259387)(11.510753,4.946089)
+\curveto(11.477546,4.867079)(11.35746,4.717054)(11.243893,4.612701)
+\curveto(10.97425,4.364937)(10.798861,4.359752)(10.298805,4.584765)
+\curveto(9.2979457,5.035127)(9.1527564,5.069871)(8.5622497,5.000331)
+\curveto(8.074518,4.942894)(7.6604358,4.826695)(7.2068117,4.619972)
+\curveto(6.7308207,4.403056)(6.5977707,4.390258)(6.3268608,4.535335)
+\lineto(6.3268608,4.535334)
+\closepath
+}
+}
+\end{pspicture}