texlive[43415] trunk: rubik (6mar17)

commits+karl at tug.org commits+karl at tug.org
Mon Mar 6 22:58:50 CET 2017


Revision: 43415
          http://tug.org/svn/texlive?view=revision&revision=43415
Author:   karl
Date:     2017-03-06 22:58:50 +0100 (Mon, 06 Mar 2017)
Log Message:
-----------
rubik (6mar17)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/rubik/rubikrotation.pl
    trunk/Master/texmf-dist/doc/latex/rubik/README.txt
    trunk/Master/texmf-dist/doc/latex/rubik/rubikcube.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikrotation.1
    trunk/Master/texmf-dist/doc/latex/rubik/rubikrotation.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikrotationPL.pdf
    trunk/Master/texmf-dist/scripts/rubik/rubikrotation.pl
    trunk/Master/texmf-dist/source/latex/rubik/rubikcube.dtx
    trunk/Master/texmf-dist/source/latex/rubik/rubikcube.ins
    trunk/Master/texmf-dist/source/latex/rubik/rubikrotation.dtx
    trunk/Master/texmf-dist/source/latex/rubik/rubikrotation.ins
    trunk/Master/texmf-dist/tex/latex/rubik/rubikcube.sty
    trunk/Master/texmf-dist/tex/latex/rubik/rubikrotation.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figA.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figB.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figC.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figD.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figE.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figF.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikexampfig4.tex
    trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.sh
    trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.tex
    trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns-doc-figA.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.sh
    trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.tex
    trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figA.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figB.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figC.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figD.pdf
    trunk/Master/texmf-dist/source/latex/rubik/rubikexamples.bat
    trunk/Master/texmf-dist/source/latex/rubik/rubikpatterns.dtx
    trunk/Master/texmf-dist/source/latex/rubik/rubikpatterns.ins
    trunk/Master/texmf-dist/source/latex/rubik/rubikpatternsLIST.bat
    trunk/Master/texmf-dist/tex/latex/rubik/rubikpatterns.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figA.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figB.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figC.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figD.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figE.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figF.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubikrot-doc-figA.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubikrot-doc-figB.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubikrot-doc-figC.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/Rubikrot-doc-figD.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/examples.pdf
    trunk/Master/texmf-dist/doc/latex/rubik/examples.sh
    trunk/Master/texmf-dist/doc/latex/rubik/examples.tex
    trunk/Master/texmf-dist/doc/latex/rubik/rubikrotationPL.tex
    trunk/Master/texmf-dist/source/latex/rubik/examples.bat

Modified: trunk/Build/source/texk/texlive/linked_scripts/rubik/rubikrotation.pl
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/rubik/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/README.txt	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/README.txt	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,14 +1,16 @@
 
-September 25, 2015
+ March 3, 2017
 --------------------------------------------------------------------------
-the RUBIK bundle 2015/09/25
- - rubikcube package v3.0      -> macros and commands for typesetting
- - rubikrotation package v3.0  -> macros and Perl program for rotations
+ The RUBIK bundle 2017/03/03
+ - rubikcube package v4.0      -> macros and commands for typesetting
+ - rubikrotation package v4.0  -> macros and Perl program for rotations
+ - rubikpatterns package v4.0  -> macros and commands for typesetting
 --------------------------------------------------------------------------
 
-The RUBIK bundle provides two complementary packages for documenting the
-Rubik cube (3x3x3) notation, configurations and rotation sequences.
-The two packages are (a) rubikcube package, and (b) rubikrotation package.
+The RUBIK bundle provides three complementary packages for documenting the
+Rubik cube (3x3x3) notation, configurations and for processing rotation sequences.
+The three packages are (a) the rubikcube package, (b) the rubikrotation package,
+and (c) the rubikpatterns package.
 
  (1) Rubikcube package
 
@@ -15,9 +17,7 @@
  The  rubikcube  package   provides  a collection of LaTeX commands 
  and macros for  typesetting  Rubik cube  configurations  and rotation 
  instructions using the  PGF/TikZ graphic languages.
- This is a stand-alone LaTeX package. However, it is expected to be used in 
- conjunction with its complementary rubikrotation package.
-
+ 
  (2) Rubikrotation package
 
  The rubikrotation package, is a dynamic extension to
@@ -24,39 +24,42 @@
  the rubikcube package. It consists of  the  Perl script 
  rubikrotation.pl  and style option rubikrotation.sty.
  The rubikrotation package  implements rotation sequences and 
- random  scrambling of the Rubik cube on-the-fly using a
- RubikRotation command. It returns the new state in a form 
- which is then used for typesetting by the rubikcube package.
+ random  scrambling of the Rubik cube on-the-fly, using the
+ RubikRotation command. It returns the new Rubik state in a form 
+ which can then be typeset using commands from the rubikcube package.
 
  Since the  RubikRotation command works by CALLing the  
  Perl script rubikrotation.pl, it follows that the rubikrotation
- package requires (a) Perl to be installed, and (b) (Pdf)LaTeX needs
- to  be run using the --shell-escape command-line switch.
+ package requires (a) Perl to be installed, and (b) (Pdf/Lua)LaTeX needs
+ to  be run using the --shell-escape command-line switch (LuaLaTeX will
+ require access to the recent shellesc package). 
 
  (3) New features
 
- (a) All rotation commands can now use the rotation-code as an argument; 
-     for example, the rotation \rr{D} can now be typeset using the 
-     command \cmd{\rr\{D\}} etc.  The new rotation commands are:
-        \rr{<rotation-code>}
-        \rrh{<rotation-code>}
-        \Rubik{<rotation-code>}
-        \textRubik{<rotation-code>}
-     The original rotation command formats (e.g.,\rrD) are still supported
-     for  backwards compatibility.
+   rubikcube:
+   --- Improved documentation.
+   --- Additional notation for middle slice rotations (`m' notation).
+   --- Additional notation for whole cube rotations (`c' notation).
+   --- Added Randelshofer notation  (the `CMST' rotations).
+   --- Two new \Draw.. commands which replace earlier (now deprecated 
+          but still supported) versions.
+   --- Six new commands for showing and annotating rotation sequences. 
+   --- A new command for setting up a `solved'  colour configuration.
+   --- A new command for setting up a `starter cube' for which the whole
+          cube is allocated the default grey colour.  
 
- (b) \ShowCube and \ShowCubeF  are new commands for displaying
-     a cube inside a minipage.
+   rubikrotation:
+   --- better syntax checking
+   --- 4 new macros SequenceInfo, SequenceName, SequenceShort, SequenceLong
+   
+   rubikpatterns: 
+   --- a new package (a small database of patterns and sequences)
 
- (c) \RubikCubeGrey is a new command for setting up a `starter cube' 
-     for which the only allocated colours are those for the centre cubies
-     The colour configuration matches that of the \RubikCubeSolved  command.
-
 --------------------------------------------------------------------------
 RWD Nickalls    email: dick at nickalls.org
 A Syropoulos    email: asyropoulos at yahoo.com
 --------------------------------------------------------------------------
-Copyright 2014 RWD Nickalls & A Syropoulos
+Copyright 2017 RWD Nickalls & A Syropoulos
 
 Licence
 
@@ -68,6 +71,7 @@
 and version 1.3 or later is part of all distributions of LaTeX
 version 2005/12/01 or later.
 --------------------------------------------------------------------------
+
 The RUBIK bundle consists of the following files
 
 package files:
@@ -77,22 +81,30 @@
  - rubikrotation.ins,
  - rubikrotation.dtx,
  - rubikrotation.sty,
- - rubikrotation.pl  (Perl script)
+ - rubikrotation.pl    (Perl script)
+ - rubikpatterns.ins
+ - rubikpatterns.dtx 
+ - rubikpatterns.sty
 documentation and README:
  - rubikcube.pdf
  - rubikrotation.pdf,
- - rubikrotationPL.pdf, Prel program documentation
+ - rubikrotationPL.pdf (Perl script documentation)
  - rubikrotationPL.tex
- - rubikrotation.1,   MAN file for perl script
+ - rubikrotation.1     (MAN file for Perl script)
+ - rubikpatterns.pdf
+ - rubikpatternsLIST.pdf
+ - rubikpatternsLIST.tex
  - README.txt (this file)
 image files:
  - pdf -files for the rubikcube documentation (6 pictures)
  - pdf -files for the rubikrotation documentation (4 pictures)
+ - pdf -files for the rubikrotation documentation (1 picture)
 examples:
- - example-rot.pdf,
- - example-rot.tex
-bash and bat files (for running rotation examples) 
+ - rubikexamples.pdf,
+ - rubikexamples.tex
+bash and bat files (for running rubikexamples.tex and rubikpatternsLIST.tex) 
 --------------------------------------------------------------------------
-If you have any ideas, questions, suggestions or bugs to report, please
+
+If you have any ideas, suggestions, questions, or bugs to report, please
 feel free to contact us.
 --------------------------------------------------------------------------

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figA.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figB.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figC.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figD.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figE.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubik-doc-figF.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubikrot-doc-figA.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubikrot-doc-figB.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubikrot-doc-figC.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/Rubikrot-doc-figD.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/examples.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/examples.sh
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/examples.sh	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/examples.sh	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,5 +0,0 @@
- latex  --shell-escape  examples.tex
-# latex  --shell-escape  examples.tex
-
-##echo "...checking error file" 
-##grep ERROR  ./rubikstateERRORS.dat

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/examples.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/examples.tex	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/examples.tex	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,467 +0,0 @@
-%%
-%% examples.tex
-%% examples using the rubikrotation package v3.0
-%% Requires  rubik packages (v3.0) and also the tikz package
-%% Part of the Rubik bundle (www.ctan.org/pkg/rubik)
-%% RWD Nickalls & A Syropoulos
-%% September 25, 2015
-%%--------NOTE-------------------------------------------
-%% USAGE:   (pdf)latex  --shell-escape   example-rot1.tex
-%% run three times to get all labels and fig nos correct
-%%-------------------------------------------------------
-\documentclass[a4paper]{article}
-\usepackage{tikz}   %% load tikz BEFORE rubikcube
-\usepackage{rubikcube,rubikrotation} 
-\usepackage{url}
-%-------------
-\pagestyle{myheadings}
-\markright{\textsc{rubikrotation} package v3.0 (Sept 2015) \hspace{0.5cm}\texttt{www.ctan.org/pkg/rubik} \hspace{0.5cm}examples.tex}
-%-----------
-%% some well known sequences (see the web page of Reid)
-\newcommand{\sixTs}{*sixTs,F2,R2,U2,Fp,B,D2,L2,F,B}
-\newcommand{\CubeInCube}{*CubeInCube,F,L,F,Up,R,U,F2,L2,Up,Lp,B,Dp,Bp,L2,U}
-\newcommand{\sixspot}{[sixspot],U,Dp,R,Lp,F,Bp,U,Dp}
-\newcommand{\superflip}{U,R2,Fp,R,Dp,L,Bp,R,Up,R,Up,D,%
-Fp,U,Fp,Up,Dp,B,Lp,Fp,Bp,Dp,Lp}
-%--------------------
-%% brace and bracket 
-\newcommand{\Rubikbracket}[1]{$\left(\mbox{#1}\right)$}
-\newcommand{\Rubikbrace}[1]{$\left\{\mbox{#1}\right\}$}
-%---------------
-%% increase text space to make room 
-\addtolength{\oddsidemargin}{-1.5cm}
-\addtolength{\textwidth}{3cm}
-\addtolength{\textheight}{1cm}
-%%==================
-
-\begin{document}
-
-\begin{center}
-\Huge{Rubikrotation  examples}\,\footnote{These examples  are part of the 
-\textsc{rubikrotation} package, and assume some  familiarity with the Rubik bundle 
-documentation \texttt{rubikcube.pdf} and \texttt{rubikrotation.pdf}.}
-\end{center}
-
-\bigskip
-
-\textsc{note}: Since the   \verb!\RubikRotation! command   calls the perl script 
-\texttt{rubikrotation.pl} this \texttt{.tex}~file needs to be run using 
-the \verb!--shell-escape! command-line switch, as follows:
-\begin{quote}
-\begin{verbatim}
-latex   --shell-escape  example-tex
-\end{verbatim}
-\end{quote}
-If you forget to use the command-line switch, the file will run OK, but the cubes 
-will remain in the initial `solved' configuration. The \texttt{tikz} package must be 
-loaded before the two \texttt{rubik..} packages.
-
-%%------------------
-\section*{Example~1}
-
-In Figure~\ref{fig:cubeincube} we show  the so-called ``sixspot'' configuration,
- generated from a solved cube using the rotation sequence 
-\rr{U}, \rr{Dp}, \rr{R}, \rr{Lp}, \rr{F}, \rr{Bp}, \rr{U}, \rr{Dp}\
-(see the website of Reid at \url{www.cflmath.edu/~reid/Rubik/patterns.html}).
-%%--------FIGURE 1 -----------
-\begin{figure}[hbt]
-\centering
-\RubikCubeSolved
-\RubikRotation{\sixspot}
-\ShowCube{7cm}{0.7}{\DrawRubikCubeFlat}
-\caption{\label{fig:cubeincube}The  so-called `sixspot' configuration (Reid).}
-\end{figure}
-%----------------
-
-{\noindent}Creating a macro to hold  a rotation sequence greatly facilitates their 
-use, as follows:
-\begin{quote}
-\begin{verbatim}
-\newcommand{\sixspot}{[sixspot],U,Dp,R,Lp,F,Bp,U,Dp}
-\end{verbatim}
-\end{quote}
-We can now process this sequence  using its macro name as an argument for the 
-\verb!\RubikRotation! command. The code used for the above Figure  uses the 
-\verb!\ShowCube{}{}{}! command for which \verb!#1! is the minipage width, \verb!#2! 
-is the tikzpicture scale factor (0--1), and \verb!#3! is  a  Rubik  \verb!\Draw..! command
-(see \textsc{rubikrotation} documentation for details).
-\begin{quote}
-\begin{verbatim}
-\usepackage{tikz,rubikcube,rubikrotation}
-\thispagestyle{empty} %% disables pagenumbers
-...
-\begin{figure}[hbt]
-  \centering
-  \RubikCubeSolved
-  \RubikRotation{\sixspot}
-  \ShowCube{7cm}{0.7}{\DrawRubikCubeFlat}
-  \caption{...}
-\end{figure}
-\end{verbatim}
-\end{quote}
-Note that running the `sixspot' sequence 3 times returns the cube to its original `solved' 
-state (it is a so-called `order~3' sequence). The~command for processing it three times 
-is    \verb!\RubikRotation[3]{\sixspot}!.
-
-
-\pagebreak
-%%-------------------------
-\section*{Example~2}
-
- In this example we demonstrate  the use of the  \verb!\ShowRubikErrors! command, which
- places a copy of   the Perl output file \verb!rubikstateERRORS.dat! underneath the graphic 
- so you can see a list of all the  errors, if any (in this example we have introduced a few  
- errors---wrong minipage width, typos and some animals---into the rotation sequence). 
- It is important to note that  the  \verb!\ShowRubikErrors! command must be 
- placed \textit{after}  the TikZ picture environment (i.e.,~in this case after 
-the \verb!\ShowCube! command). Note   that full details of all 
- errors are also included in the .log file. 
-
-%%--------FIGURE 2 -----------
-
-\RubikCubeSolved
-\RubikRotation{[sixspot],U,Dp,R,Lp,F,Bp,U,Dpppp,cat,dog}
-
-\begin{figure}[hbt]
-  \centering
-  \ShowCubeF{4.5cm}{0.7}{\DrawRubikCubeFlat}
-  \ShowRubikErrors
-\parbox{0.7\textwidth}{%
-\caption{\label{fig:cubeincubeE}The same `sixspot' sequence of rotations as shown in 
-Example~1,  but now with some   errors (wrong minipage-width, typos \& animals\,!) in the 
-rotation sequence (it should be just \texttt{U,Dp,R,Lp,F,Bp,U,Dp}).}
-}
-\end{figure}
-{\noindent}In this example we have used the F version of the \verb!\ShowCube! 
-command (\verb!\ShowCubeF!)  which places an fbox around the image so you can see the 
-extent of any white space etc. This reveals that the set minipage-width (4.5cm) in the 
-\verb!\ShowCubeF! command---see code below---is too narrow: it should be 7cm ($10 \times 0.7$) 
-to just include the whole image. Once fixed, we can remove the F from the \verb!\ShowCubeF! command.
-Note also  that only `\verb!\Draw...!' commands really need to be inside the TikZ picture environment 
-(i.e.,~inside the \verb!\ShowCube! command). The above figure was generated by the following code.
-%-----------------
-\begin{quote}
-\begin{verbatim}
-\RubikCubeSolved
-\RubikRotation{[sixspot],U,Dp,R,Lp,F,Bp,U,Dpppp,cat,dog}
-\begin{figure}[hbt]
-  \centering
-  \ShowCubeF{4.5cm}{0.7}{\DrawRubikCubeFlat}
-  \ShowRubikErrors
-\caption{....}
-\end{figure}
-\end{verbatim}
-\end{quote}
-Even if the \verb!\ShowRubikErrors! command is not used, it is always a good idea to check the 
-file \verb!rubikstateERRORS.dat! after a \LaTeX\ run, since this file will reveal any  errors.
-
-
-
-\pagebreak
-%-------------------------------
-\section*{Example~3}
-
-In this example we use the \verb!\RubikRotation! command to scramble a `solved' Rubik 
-cube via  a sequence of 120 random rotations, using the following  command (the details 
-of the process can be seen in the \texttt{.log} file):
-\begin{quote}
-\begin{verbatim}
-\RubikRotation{random,120}
-\end{verbatim}
-\end{quote}
-In this example, we also save the final  configuration (state) to a file 
-(\texttt{exampfig4.tex}) using the command
-\verb!\SaveRubikState{exampfig4.tex}!
-so we can  display the cube in the same state later (see Example~4) but 
-in  a different format.
-Note that since we are using a random sequence, it follows that each 
-time this file is run not only will a visually different  cube  be generated,  
-but the same state  will be shown in both Figures~\ref{fig:randomone} and \ref{fig:randomtwo}.
-%%--------FIGURE 3 -----------
-\begin{figure}[hbt]
-  \centering
-  \RubikCubeSolved
-  \RubikRotation{random,120}
-  \SaveRubikState{exampfig4.tex}  
-  \ShowCube{8.4cm}{0.7}{\DrawRubikFlat}
-\parbox{0.7\textwidth}{%
-\caption{\label{fig:randomone}This shows a cube  generated by 120 random rotations}}
-\end{figure}
-%----------------
-\begin{quote}
-\begin{verbatim}
-\usepackage{tikz,rubikcube,rubikrotation}
-...
-\begin{figure}[hbt]
-  \centering
-  \RubikCubeSolved
-  \RubikRotation{random,120}
-  \SaveRubikState{exampfig4.tex}  
-  \ShowCube{8.4cm}{0.7}{\DrawRubikFlat}
-\caption{....}
-\end{figure}
-\end{verbatim}
-\end{quote}
-
-Q: How do we determine the minipage-width (8.4cm) in the \verb!\ShowCube! command?
-
-A: The object is 12 cubie squares  wide (1\,cm each). Since the specified TikZ scale factor is~$0.7$ 
-here, then the true width of the image is $12 \times 0.7 = 8.4$\,cm. If you change the scale then 
-the size of the  image will change, and a new width will be required to just fit the image. 
-
-Note that in this particular case (only a single image in the `figure' environment), since 
-the \verb!\ShowCube! command places the image centrally inside the minipage, the image will 
-in fact be centrally placed in  the \verb!\textwidth! provided the image is \textit{smaller} 
-than the fbox---i.e.,~if we used instead a minipage-width of, say, 12\,cm  the image would still
- appear centered in the \verb!\textwidth! in this case.
-However, when there are several images in the `figure', then the spacing may appear strange 
-unless each image closely fits its own minipage-width etc.
-It is often useful, therefore, to check the size of the fbox (using the \verb!\ShowCubeF! command).
-  
-
-
-\pagebreak
-
-%----------------------
-\section*{Example~4}
-
-In this example we display a cube having the same state as that shown in 
-Figure~\ref{fig:randomone}. The configuration state was saved from 
-Figure~\ref{fig:randomone} using the  command 
-\verb!\SaveRubikState{exampfig4.tex}!, and then input here  
-using \verb!\input{exampfig4.tex}!. These commands therefore allow  the 
-state of a previous cube to be saved to a file, and then  displayed again 
-later in  a different format.
-%%-----------FIGURE 4 -----------
-\begin{figure}[hbt]
-  \centering
-  \input{exampfig4.tex}
-  \ShowCube{4cm}{0.8}{\DrawRubikCubeLD}
-\parbox{0.7\textwidth}{%
-\caption{\label{fig:randomtwo}This shows a Rubik cube in exactly the  same 
-state as  the one shown in Figure~\ref{fig:randomone}} }
-\end{figure}
-%%---------------------------------
-\begin{quote}
-\begin{verbatim}
-\usepackage{tikz,rubikcube,rubikrotation}
-...
-\begin{figure}[hbt]
-  \centering
-  \input{exampfig4.tex}
-  \Showcube{4cm}{0.8}{\DrawRubikCubeLD}
-\caption{....} 
-\end{figure}
-\end{verbatim}
-\end{quote}
-
-
-\pagebreak
-%----------------------
-\section*{Example~5}
-
-Here we show a convenient way of displaying a series of small cubes showing 
-a sequence of rotations (\rr{U}, \rr{R}, \rr{F}). 
-
-\begin{figure}[hbt]
-\centering
-\RubikCubeSolved 
-\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-\Rubik{U}
-\RubikRotation{U}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU} 
-\Rubik{R}
-\RubikRotation{R}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU} 
-\Rubik{F}
-\RubikRotation{F}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU} 
-\caption{The rotations \rr{U}, \rr{R}, \rr{F}\ on a solved cube.} 
-\end{figure}
-The code for the above sequence is as follows:
-\begin{quote}
-\begin{verbatim}
-\usepackage{tikz,rubikcube,rubikrotation}
-...
-\begin{figure}[hbt]
-  \centering
-  \RubikCubeSolved 
-  \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-  \Rubik{U}
-  \RubikRotation{U}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU} 
-  \Rubik{R}
-  \RubikRotation{R}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU} 
-  \Rubik{F} 
-  \RubikRotation{F}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU} 
-\caption{The rotations \rr{U}, \rr{R}, \rr{F}\ on a solved cube.} 
-\end{figure}
-\end{verbatim}
-\end{quote}
-
-
-\pagebreak
-%----------------------
-\section*{Example~6}
-
-In this example we highlight the fact that commands used inside a TikZ picture 
-environment remain local to that environment. Note that this applies with other 
-environments too;  for example, with both the \verb!\minipage! the \verb!\figure! environments.
-Consequently, it is generally best when drawing a sequence of cubes  to reserve the TikZ 
-picture environment (i.e.,~the \verb!\ShowCube! command)  only  for Rubik \verb!\Draw..! 
-commands and TikZ commands.
-
-In this example the first cube uses the \verb!\RubikCubeSolved! \textit{inside} the TikZ environment.
-However, if we then perform the rotation  \textRubik{R}\  the command \verb!RubikRotation{R}! 
-results in  something quite unexpected (and obviously not correct). This is because 
- the effect of the \verb!\RubikCubeSolved! command is not visible outside its TikZ environment, 
-and hence the \verb!RubikRotation{R}! command has to  operate on the current globally available 
-colour state information; i.e.,~that following the action of the 
-\textbackslash\texttt{RubikRotation\{[sixspot],....\}} command in the earlier  Example~2
-(shown in Figure~2) which was executed \textit{before, and outside} the \texttt{figure} environment 
- in that example, and hence the strange form of the second cube below.
-
-
-\medskip
-
-\begin{minipage}{0.4\textwidth}
-\ShowCube{2cm}{0.5}{%
-      \RubikCubeSolved
-      \DrawRubikCubeRU
-     }
-   \hspace{4mm}\Rubik{R}\hspace{5mm}%
-   \RubikRotation{R}%
-   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-\end{minipage}
-%---------------
-\hspace{1cm}
-\begin{minipage}{0.5\textwidth}
-\begin{verbatim}
-\usepackage{tikz,rubikcube,rubikrotation}
-...
-\begin{minipage}{0.4\textwidth}
-   \ShowCube{2cm}{0.5}{%
-       \RubikCubeSolved
-       \DrawRubikCubeRU
-     }
-   \hspace{4mm}\Rubik{R}\hspace{5mm}%
-   \RubikRotation{R}%
-   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-\end{minipage}
-\end{verbatim}
-\end{minipage}
-
-\bigskip
-
-If we now bring the \verb!\RubikCubeSolved! command out and place it before 
-the \verb!\ShowCube! command then its  `state' information  becomes globally 
-accessable, and  can therefore be  acted upon (\&~updated) by the  \verb!\RubikRotation{R}! 
-command, and  hence is rendered (correctly for us) by the next  \verb!\DrawRubikCubeRU! command. 
-
-\bigskip
-
-
-\begin{minipage}{0.4\textwidth}
-   \RubikCubeSolved
-   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-   \hspace{4mm}\Rubik{R}\hspace{5mm}%
-   \RubikRotation{R}%
-   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-\end{minipage}
-%---------------
-\hspace{1cm}
-\begin{minipage}{0.5\textwidth}
-\begin{verbatim}
-\begin{minipage}{0.4\textwidth}
-   \RubikCubeSolved
-   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-   \hspace{4mm}\Rubik{R}\hspace{5mm}%
-   \RubikRotation{R}%
-   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-\end{minipage}
-\end{verbatim}
-\end{minipage}
-
-
-
-
-\pagebreak
-%----------------------
-\section*{Example~7}
-
-\subsection*{The `superflip' configuration}
-
-Once you have mastered Rubik's cube, then an interesting exercise is to generate 
-the so-called `superflip' configuration, in which all the corners are correctly 
-solved, while all the edges are flipped.
-
-For the impatient,  the  superflip sequence of 24  quarter-turn rotations (listed on 
-Randelshofer's website (\url{www.randelshofer.ch/rubik/patterns/U080.01.html}) is as follows. 
-This  converts the solved cube on the left into the configuration shown on the right.
-
-\bigskip
-
-\begin{center}
-\Rubik{U}\Rubik{R}\Rubik{R}\Rubik{Fp}\Rubik{R}\Rubik{Dp}\Rubik{L}\Rubik{Bp}\Rubik{R}%
-\Rubik{Up}\Rubik{R}\Rubik{Up}\Rubik{D}\Rubik{Fp}\Rubik{U}\Rubik{Fp}\Rubik{Up}\Rubik{Dp}%
-\Rubik{B}\Rubik{Lp}\Rubik{Fp}\Rubik{Bp}\Rubik{Dp}\Rubik{Lp}
-\end{center}
-  
-\medskip
-
-{\noindent}Surprisingly,  this sequence is actually equivalent to
-\Rubikbrace{\Rubikbracket{\Rubik{M}\Rubik{Up}}4, \Rubik{yp}, \Rubik{x}}3
-
-%--------draw the images-------------
-\begin{figure}[hbt]
-  \centering
-  \RubikCubeSolved%
-  \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-  \hspace{5mm}$\Longrightarrow$\hspace{5mm}%
-  \RubikRotation{\superflip}%
-  \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-  \hspace{1cm}%
-  \ShowCube{5cm}{0.5}{\DrawRubikCubeFlat}
-\caption{Two representations of the superflip configuration.}
-\end{figure}
-%----------------------
-
-%\pagebreak
-
-{\noindent}The full code for the figure above is as follows:
-\begin{quote}
-\begin{verbatim}
-\usepackage{tikz,rubikcube,rubikrotation}
-...
-\begin{center}
-\Rubik{U}\Rubik{R}\Rubik{R}\Rubik{Fp}\Rubik{R}\Rubik{Dp}\Rubik{L}\Rubik{Bp}%
-\Rubik{R}\Rubik{Up}\Rubik{R}\Rubik{Up}\Rubik{D}\Rubik{Fp}\Rubik{U}\Rubik{Fp}%
-\Rubik{Up}\Rubik{Dp}\Rubik{B}\Rubik{Lp}\Rubik{Fp}\Rubik{Bp}\Rubik{Dp}\Rubik{Lp}
-\end{center}
-  
-\medskip
-
-%% brace and bracket macros
-\newcommand{\Rubikbracket}[1]{$\left(\mbox{#1}\right)$}
-\newcommand{\Rubikbrace}[1]{$\left\{\mbox{#1}\right\}$}
-
-{\noindent}Surprisingly,  this sequence is actually equivalent to
-\Rubikbrace{\Rubikbracket{\Rubik{M}\Rubik{Up}}4, \Rubik{yp}, \Rubik{x}}3
-
-\newcommand{\superflip}{U,R2,Fp,R,Dp,L,Bp,R,Up,R,Up,D,%
-Fp,U,Fp,Up,Dp,B,Lp,Fp,Bp,Dp,Lp}
-
-\begin{figure}[hbt]
-  \centering
-  \RubikCubeSolved%
-  \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-  \hspace{5mm}$\Longrightarrow$\hspace{5mm}%
-  \RubikRotation{\superflip}%
-  \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-  \hspace{1cm}%
-  \ShowCube{5cm}{0.5}{\DrawRubikCubeFlat}
-\caption{...}
-\end{figure}
-\end{verbatim}
-\end{quote}
-\begin{center}
------- END ------
-\end{center}
-
-\end{document}
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figA.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figA.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figA.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figA.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figA.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figB.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figB.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figB.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figB.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figB.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figC.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figC.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figC.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figC.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figC.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figD.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figD.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figD.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figD.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figD.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figE.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figE.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figE.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figE.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figE.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figF.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figF.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figF.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figF.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubik-doc-figF.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/rubik/rubikcube.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikexampfig4.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikexampfig4.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikexampfig4.tex	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,7 @@
+%% filename: rubikexampfig4.tex%
+\RubikFaceUp{G}{B}{R}{W}{O}{Y}{Y}{O}{R}%
+\RubikFaceDown{O}{B}{Y}{R}{R}{R}{W}{O}{W}%
+\RubikFaceLeft{Y}{G}{R}{B}{B}{O}{O}{Y}{B}%
+\RubikFaceRight{W}{G}{Y}{W}{G}{G}{O}{W}{R}%
+\RubikFaceFront{G}{G}{B}{Y}{Y}{B}{W}{R}{B}%
+\RubikFaceBack{B}{O}{O}{R}{W}{Y}{G}{W}{G}%

Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.sh
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.sh	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.sh	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,9 @@
+
+## rubikexamples.sh
+## run twice to get hyperref links correct
+
+ pdflatex  --shell-escape  rubikexamples.tex
+ pdflatex  --shell-escape  rubikexamples.tex
+
+## echo "...checking error file" 
+## grep ERROR  ./rubikstateERRORS.dat

Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikexamples.tex	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,1313 @@
+%%
+%% rubikexamples.tex 
+%% March 03, 2017
+%% Requires  rubik bundle v4.0 and also the tikz package
+%% Part of the Rubik bundle (www.ctan.org/pkg/rubik)
+%% authors: RWD Nickalls & A Syropoulos
+%%--------NOTE-------------------------------------------
+%% USAGE:   (pdf)latex  --shell-escape   rubikexamples.tex
+%% run three times to get all labels and fig nos correct
+%%-------------------------------------------------------
+\documentclass[a4paper]{article}
+%------rubik----------
+\usepackage{tikz}   %% load tikz BEFORE rubikcube
+\usepackage{rubikcube}
+\usepackage{rubikrotation} 
+\usepackage{rubikpatterns} 
+%------LUA-----------
+% LuaTeX is  a Unicode engine (as is XeTeX)
+\usepackage{ifluatex}
+\ifluatex
+  \usepackage{fontspec}
+\fi
+%--------------------
+\usepackage{url}
+\usepackage{ifpdf}
+\usepackage{lmodern}
+%---------------------
+\ifpdf
+  \usepackage[verbose]{microtype}
+  \usepackage{cmap}
+  \usepackage[pdfencoding=auto]{hyperref}
+
+  \hypersetup{%
+     pdftitle={rubikexamples.pdf},
+     pdfsubject={Rubik cube, Rubik bundle},
+     pdfkeywords={Rubik cube LaTeX}
+     }
+\fi
+%%-------------------
+
+
+%-------------
+\pagestyle{myheadings}
+\markright{\texttt{rubikexamples.pdf} \ \ 
+(Rubik bundle v4.0,  March 03, 2017) \hspace{0.5cm}\texttt{www.ctan.org/pkg/rubik}}
+%-----------
+%% brace and bracket 
+\newcommand{\Rubikbracket}[1]{$\left(\mbox{#1}\right)$}
+\newcommand{\Rubikbrace}[1]{$\left\{\mbox{#1}\right\}$}
+\newcommand{\cubenumber}[1]{\strut\raisebox{1cm}{#1}}
+\newcommand{\leftface}{\textsc{left}\ face}
+\newcommand{\rightface}{\textsc{right}\ face}
+\newcommand{\upface}{\textsc{up}\ face}
+\newcommand{\downface}{\textsc{down}\ face}
+\newcommand{\frontface}{\textsc{front}\ face}
+\newcommand{\backface}{\textsc{back}\ face}
+%---------------------------------
+%% increase text height and width  
+\addtolength{\oddsidemargin}{-1.5cm}
+\addtolength{\textwidth}{3cm}
+\addtolength{\textheight}{1cm}
+%----------------------
+\begin{document}
+
+\ifpdf\pdfbookmark[1]{Title}{Title}\fi
+\title{Rubik examples\\ 
+\smallskip\normalsize\texttt{www.ctan.org/tex-archives/macros/latex/contrib/rubik/rubikexamples.pdf}
+\,\footnote{This file is part of the Rubik bundle. To generate this file, 
+use the following command: \newline \texttt{\$ pdflatex --shell-escape  rubikexamples.tex}}}
+\author{RWD Nickalls\,\footnote{email: \textsf{dick at nickalls.org}}%
+  \ \ \& A Syropoulos\,\footnote{email: \textsf{asyropoulos at yahoo.com}}}
+\date{03 March 2017 (v4.0)}
+\maketitle
+
+
+%%------------------
+\section{Preliminaries}
+
+
+These  examples  were generated using  the \TeX\ 
+Rubik bundle\,\footnote{\url{http://www.ctan.org/pkg/rubik}} v4.0. They assume some  
+familiarity with the three complementary packages \textsc{rubikcube}, 
+\textsc{rubikrotation} and \textsc{rubikpatterns}. For~documentation see the files:
+
+\begin{quote}
+\begin{verbatim}
+rubikcube.pdf
+rubikrotation.pdf
+rubikpatterns.pdf
+rubikpatternsLIST.pdf
+\end{verbatim}
+\end{quote}
+
+
+This file requires the following packages: \texttt{tikz, rubikcube, rubikrotation,
+rubikpatterns}; note that the \texttt{tikz} package must be loaded \textit{before} 
+the \texttt{rubikcube} package.
+
+This file needs to be run using  the \verb!--shell-escape! command-line option; 
+for example:
+\begin{quote}
+\begin{verbatim}
+pdflatex  --shell-escape  rubikexample.tex
+\end{verbatim}
+\end{quote}
+This is because nearly all the examples  make use of the  \verb!\RubikRotation! 
+command, which  calls the Perl script  \texttt{rubikrotation.pl}.  
+If you do forget to use the command-line switch, the file will still run, but 
+all the cubes will remain in the initial unprocessed configuration. 
+
+
+\subsection{Environments}
+
+When using the Rubik bundle one sometimes needs to be mindful of the various 
+\LaTeX\ environments in which Rubik commands are placed (e.g.,~the figure, 
+minipage and TikZ picture environments), since these environments restrict 
+the actions of commands they contain to the particular environment. 
+The \verb!\ShowCube! command is also relevant here, since it is a 
+minipage-wrapper for the TikZ picture environment. Only Rubik  \verb!\Draw..! 
+commands actually need to be inside a TikZ picture environment.
+
+This issue arises because the Rubik bundle allows you to create figures 
+showing different stages  during a sequence of rotations. Consequently 
+the effects of  commands executed inside an environment (especially 
+commands which determine the colour-state or rotations), may not  be 
+apparent to subsequent commands outside that particular environment. 
+See Example~3  for an illustration of how to handle environments.
+
+\pagebreak
+
+%%------------------
+\section{Examples}
+
+\subsection{Sixspot}
+\typeout{---Example (sixspot)}
+
+In Figure~\ref{fig:cubeincube} we show  the so-called ``sixspot'' configuration,
+ generated from a solved cube using the rotation sequence 
+\rr{U}, \rr{Dp}, \rr{R}, \rr{Lp}, \rr{F}, \rr{Bp}, \rr{U}, \rr{Dp}.
+
+%%--------FIGURE 1 -----------
+\begin{figure}[hbt]
+\centering
+\RubikCubeSolved
+\RubikRotation{\sixspot}
+\ShowCube{7cm}{0.7}{\DrawRubikCubeSF}
+\caption{\label{fig:cubeincube}The `sixspot' configuration.}
+\end{figure}
+%----------------
+
+{\noindent}Creating a macro to hold  a rotation sequence greatly facilitates 
+their use, as follows:
+\begin{quote}
+\begin{verbatim}
+\newcommand{\sixspot}{[sixspot],U,Dp,R,Lp,F,Bp,U,Dp}
+\end{verbatim}
+\end{quote}
+We can now process this sequence  using its macro name as an argument for the 
+\verb!\RubikRotation! command. The code used for the above Figure  uses the 
+\verb!\ShowCube{}{}{}! command for which \verb!#1! is the minipage width, \verb!#2! 
+is the tikzpicture scale factor (0--1), and \verb!#3!  can include  \textsc{rubikcube}
+package  \verb!\Draw..! commands,  and any commands which are valid for use in a 
+TikZ \texttt{tikzpicture} environment. The code for the above figure is as follows:
+\begin{quote}
+\begin{verbatim}
+\begin{figure}[hbt]
+   \centering
+   \RubikCubeSolved
+   \RubikRotation{\sixspot}
+   \ShowCube{7cm}{0.7}{\DrawRubikCubeSF}
+\caption{...}
+\end{figure}
+\end{verbatim}
+\end{quote}
+
+Note that the sixspot sequence is a so-called `order~3' sequence, which means that 
+running the `sixspot' sequence 3 times returns the cube to its original `solved' 
+state. The~command for processing it three times is  \verb!\RubikRotation[3]{\sixspot}!.
+
+Note that the semi-flat form of the cube here is generated by the
+ \verb!\DrawRubikCubeSF! command, where the terminal SF denotes the Semi-Flat form.
+
+
+
+\subsubsection{Log-file extract}
+
+Users may find it instructive to inspect the the log-file and follow the dynamic 
+interaction between \LaTeX\  and the Perl script. 
+This is easy to follow, since output by \texttt{rubikrotation.sty} is prefixed 
+by 3 dashes (\verb!---!), while output by the Perl script is prefixed by 
+3 dots (\verb!...!). Search for the keyword `Example', as this is written to 
+the log-file at the start of each example. 
+
+The following is the log-file extract associated with Example~1 (from the 
+author's Debian Linux platform).
+
+\begin{quote}
+\begin{verbatim} 
+---Example (sixspot)
+LaTeX Font Info:    Try loading font information for T1+cmss on input line 134.
+
+(/usr/local/texlive/2016/texmf-dist/tex/latex/base/t1cmss.fd
+File: t1cmss.fd 2014/09/29 v2.5h Standard LaTeX font definitions
+)
+---TeX process (rubikrotation.sty)-------
+---NEW rotation command------------------
+---command = RubikRotation[1]{[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp,<(8q*, 8f*)>}
+---writing current Rubik state to file rubikstate.dat
+\openout7 = `rubikstate.dat'.
+
+\ourRRcounter=\count121
+---CALLing Perl script (rubikrotation.pl)
+runsystem(perl rubikrotation.pl -i rubikstate.dat -o rubikstateNEW.dat)...execu
+ted.
+
+---inputting NEW datafile (data written by Perl script)
+(./rubikstateNEW.dat
+
+...PERL process..................................
+...script = rubikrotation.pl v4.0 (03 March 2017)
+...reading the current rubik state (from File: rubikstate.dat)
+...up,W,W,W,W,W,W,W,W,W
+...down,Y,Y,Y,Y,Y,Y,Y,Y,Y
+...left,B,B,B,B,B,B,B,B,B
+...right,G,G,G,G,G,G,G,G,G
+...front,O,O,O,O,O,O,O,O,O
+...back,R,R,R,R,R,R,R,R,R
+...
+...command=checkstate
+...checking state of cube
+...cubiesum = 54 (Red=9, Or=9, Ye=9, Gr=9, Bl=9, Wh=9, X=0)
+...
+...command=rotation,[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp,<(8q*, 8f*)>
+...dataline = rotation,[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp,<(8q*; 8f*)>
+...[SixSpot] is a label OK
+...rotation U, OK
+...rotation Dp, OK 
+...rotation R, OK
+...rotation Lp, OK
+...rotation F, OK
+...rotation Bp, OK
+...rotation U, OK
+...rotation Dp, OK 
+...writing new Rubik state to file rubikstateNEW.dat
+...SequenceName = SixSpot
+...SequenceInfo = (8q*; 8f*)
+...SequenceShort = [SixSpot],U,Dp,R,Lp,F,Bp,U,Dp
+...SequenceLong = U,Dp,R,Lp,F,Bp,U,Dp
+)
+\end{verbatim}
+\end{quote}
+
+
+
+\pagebreak
+%%-------------------------
+
+\subsection{ShowRubikErrors}
+\typeout{---Example (ShowRubikErrors)}
+
+
+ In this example we demonstrate  the use of the  \verb!\ShowRubikErrors! command, 
+ which  places a copy of  the Perl output file \verb!rubikstateERRORS.dat! 
+ underneath the graphic so you can see a list of all the  errors, if any. 
+ Note that this example is similar to the previous one except that we have  
+ introduced several  errors---e.g.,~bad minipage width,  typos, as well as 
+ some animals---into  the rotation sequence). 
+ It is important to note that  the  \verb!\ShowRubikErrors! command must be 
+ placed \textit{after}  the TikZ picture environment (i.e.,~in this case after 
+the \verb!\ShowCube! command), or even at the end of the document. 
+Note that full details of all errors are also included in the .log file. 
+
+%%--------FIGURE 2 -----------
+
+\RubikCubeSolved
+\RubikRotation{[sixspot],U,Dp,R,Lp,F,Bp,U,Dpppp,cat,dog}
+
+\begin{figure}[hbt]
+  \centering
+  \ShowCubeF{4.5cm}{0.5}{\DrawRubikCubeF}
+  \ShowRubikErrors
+\parbox{0.8\textwidth}{%
+\caption{\label{fig:cubeincubeE}The same `sixspot' sequence of rotations as shown 
+in Example~1,  but now with some   errors (wrong minipage width, typos and some 
+animals\,!) in the rotation sequence (it \textit{should} be just 
+\texttt{U,Dp,R,Lp,F,Bp,U,Dp}).}}
+\end{figure}
+
+{\noindent}In this example we have used the F version of the \verb!\ShowCube! 
+command (\verb!\ShowCubeF!)  which places an fbox around the image so you can see the 
+extent of any white space etc. This reveals that the set minipage-width ($4.5$cm) in 
+the \verb!\ShowCubeF! command---see code below---is too narrow: it should be 
+5cm ($10 \times 0.5$) to just include the whole image (i.e.,~$10 \times$ the TikZ 
+scale-factor in this case). 
+Once fixed, we can remove the F from the \verb!\ShowCubeF! command.
+Note also  that only `\verb!\Draw...!' commands really need to be inside the TikZ 
+picture environment (i.e.,~inside the \verb!\ShowCube! command). The above figure 
+was generated by the following code.
+%-----------------
+\begin{quote}
+\begin{verbatim}
+\RubikCubeSolved
+\RubikRotation{[sixspot],U,Dp,R,Lp,F,Bp,U,Dpppp,cat,dog}
+\begin{figure}[hbt]
+  \centering
+  \ShowCubeF{4.5cm}{0.7}{\DrawRubikCubeF}
+  \ShowRubikErrors
+\caption{....}
+\end{figure}
+\end{verbatim}
+\end{quote}
+Even if the \verb!\ShowRubikErrors! command is not used, it is always a good idea 
+to check the file \verb!rubikstateERRORS.dat! after a \LaTeX\ run, since this 
+file will also reveal any  errors.
+
+Note that the completely flat form of the cube here is generated by the
+ \verb!\DrawRubikCubeF! command, where the terminal F denotes the Flat form.
+
+
+
+\pagebreak
+%----------------------
+
+\subsection{Environments}
+\typeout{---Example (Environments)}
+
+
+In this example we highlight the fact that Rubik commands used inside a \LaTeX\ 
+environment remain local to that environment, and how this can sometimes  be 
+problematic.  Commands whose reach is meant to be  more global need to be 
+executed outside such environments, where they can implement  global colour 
+settings, which will then be accessible to Rubik \verb!\Draw..! commands inside 
+subsequent environments.
+
+Since we are drawing images, this is primarily an issue 
+with the   the \verb!\minipage!, \verb!\figure!, and TikZ picture environments.
+Consequently, it is generally best when drawing a sequence of  cubes  to reserve 
+the TikZ picture environment  only  for Rubik \verb!\Draw..! commands and TikZ 
+commands. Importantly, this  also applies to the commonly used  \verb!\ShowCube! 
+command, since this is a minipage-wrapper for the TikZ  picture environment 
+(see the \textsc{rubikcube} package documentation).
+
+In this example the first cube (9a) uses a \verb!\RubikCubeSolved! command 
+\textit{inside} a \verb!\ShowCube! environment. However, if we now perform the 
+rotation  \textRubik{R}\ (using the command \verb!\RubikRotation{R}!) this results 
+in  a quite unexpected effect on cube (9b) (and obviously not correct). This is because 
+ the effect of the initial \verb!\RubikCubeSolved! command 
+ (setting a new colour-state) is not  visible outside its \verb!\ShowCube! 
+ environment, and hence the subsequent \verb!\RubikRotation{R}! command is unaware 
+ of this recent attempt to update  the global colour-state information. 
+ It turns out that this was actually last updated following the action of the \textbackslash\texttt{RubikRotation\{[sixspot],....\}} command used in 
+Example~2, being the last colour-state command executed \textit{outside} an 
+environment (a \texttt{figure}  environment in that example). Consequently, 
+the strange form of cube (9b) is not what we expected.
+
+
+\medskip
+\noindent%
+\cubenumber{9a}%
+\ShowCube{2cm}{0.5}{%
+    \RubikCubeSolved%
+    \DrawRubikCubeRU}%
+\quad\Rubik{R}%    
+\RubikRotation{R}%
+\cubenumber{9b}%
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+%---------------
+\hspace{5mm}
+\begin{minipage}{0.5\textwidth}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation}
+\newcommand{\cubenumber}[1]{\strut\raisebox{1cm}{#1}}
+...
+\cubenumber{9a}%
+\ShowCube{2cm}{0.5}{%
+    \RubikCubeSolved%
+    \DrawRubikCubeRU%
+     }%
+\quad\Rubik{R}%
+\RubikRotation{R}%
+\cubenumber{9b}%
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\end{verbatim}
+\end{minipage}
+
+\bigskip
+
+If we now bring the \verb!\RubikCubeSolved! command out and place it before 
+the \verb!\ShowCube! command then its  `state' information  becomes globally 
+accessible (i.e.,~colour-state gets updated), and  therefore  gets used by the  
+\verb!\RubikRotation{R}! command, and  hence cube (9d)  is rendered correctly.
+
+\bigskip
+
+\noindent%
+\RubikCubeSolved%
+\cubenumber{9c}%
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\quad\Rubik{R}%
+\RubikRotation{R}%
+\cubenumber{9d}%
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+%---------------
+\hspace{5mm}
+\begin{minipage}{0.5\textwidth}
+\begin{verbatim}
+\RubikCubeSolved%
+\cubenumber{9c}%
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\quad\Rubik{R}%
+\RubikRotation{R}%
+\cubenumber{9d}%
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\end{minipage}
+\end{verbatim}
+\end{minipage}
+
+
+
+
+\pagebreak
+%----------------------
+\subsection{Coordinates}
+\typeout{---Example (coordinates)}
+
+
+For all cubes the origin of coordinates is defined as the bottom left corner of 
+the \frontface. Consequently, it is easy to determine the coordinates of points 
+and hence draw lines, circles, and place lettering or other objects using the 
+standard TikZ \verb!\draw..! and \verb!\node..! commands. Note that for 
+convenience  point $P$ is designed to be $(-1,-1)$ on the 2D view.
+(The~following diagram  is Fig~1 from the \textsc{rubikcube} package documentation).
+
+
+\begin{figure}[hbt]
+\centering
+\RubikFaceFrontAll{X}   % X = default = grey
+\ShowCube{5.6cm}{0.7}{%
+  \DrawFlatFront
+
+\draw[line join=round,line cap=round,ultra thick] (0,0) -- (0,4); % Y
+\draw[line join=round,line cap=round,ultra thick] (0,0) -- (4,0); % X
+
+%draw labels
+\node (Ylabel) at (-0.35,  3.8)  {$Y$};
+\node (Xlabel) at ( 3.8,  -0.4)  {$X$};
+
+
+%%----------draw the Rubik faces--------
+%% outline Front face
+\draw[line join=round,line cap=round,ultra thick]%
+     (0,3) -- (-1,2) -- (-1,-1) -- (2,-1) -- (3,0);
+%%
+%% outline  Down face
+\draw[line join=round,line cap=round,ultra thick]%
+     (-1,-1) -- (0, 0);
+%%
+%%
+%% draw labels
+\node (Y0) at (-0.4, 0)  [blue]{$0$};
+\node (Y1) at (-0.4, 1)  [blue]{$1$};
+\node (Y2) at (-0.4, 2)  [blue]{$2$};
+\node (Y3) at (-0.4, 3)  [blue]{$3$};
+%%
+\node (X0) at (0, -0.5)  [blue]{$0$};
+\node (X1) at (1, -0.5)  [blue]{$1$};
+\node (X2) at (2, -0.5)  [blue]{$2$};
+\node (X3) at (3, -0.5)  [blue]{$3$};
+%%
+\node (P) at (-2.4, -1)  [blue]{$P\,(-1,-1)$};
+}
+\end{figure}
+
+
+
+{\noindent}The code for the figure is given below.
+
+We  draw everything in the  \verb!\ShowCube! environment; the \frontface\  
+in grey (colour code = \texttt{X}) using the Rubik command 
+\verb!\DrawFlatFront{X}!, and then draw all the lines and text using standard 
+TikZ commands. The correct  minipage-width argument (5.6cm) for the 
+\verb!\ShowCube! command is determined by trial-and-error, using the `fbox' 
+form of the command (\verb!\ShowCubeF!), and then the `F' is removed 
+($\rightarrow$ \verb!\ShowCube!). In order to avoid confusion, all Rubik commands 
+start with a capital letter (e.g.,~\verb!\Draw..!), while all TikZ commands 
+start with a lower-case letter (e.g.,~\verb!\draw..!).
+
+\begin{quote}
+\begin{verbatim}
+\begin{figure}[hbt]
+\centering
+\RubikFaceFrontAll{X}% X = default non-colour (grey)
+\ShowCube{5.6cm}{0.7}{%
+   \DrawFlatFront
+   \draw[line join=round,line cap=round,ultra thick] (0,0) -- (0,4);% Yaxis
+   \draw[line join=round,line cap=round,ultra thick] (0,0) -- (4,0);% Xaxis
+   \node (Ylabel) at (-0.35,  3.8)  {$Y$};
+   \node (Xlabel) at ( 3.8,  -0.4)  {$X$};
+   %% outline Left and Down faces
+   \draw[line join=round,line cap=round,ultra thick]%
+        (0,3) -- (-1,2) -- (-1,-1) -- (2,-1) -- (3,0);
+   \draw[line join=round,line cap=round,ultra thick]%
+        (-1,-1) -- (0, 0);
+   \node (Y0) at (-0.4, 0)  [blue]{$0$};
+   \node (Y1) at (-0.4, 1)  [blue]{$1$};
+   \node (Y2) at (-0.4, 2)  [blue]{$2$};
+   \node (Y3) at (-0.4, 3)  [blue]{$3$};
+   \node (X0) at (0, -0.5)  [blue]{$0$};
+   \node (X1) at (1, -0.5)  [blue]{$1$};
+   \node (X2) at (2, -0.5)  [blue]{$2$};
+   \node (X3) at (3, -0.5)  [blue]{$3$};
+   \node (P) at (-2.4, -1)  [blue]{$P\,(-1,-1)$};
+   }
+\end{figure}
+\end{verbatim} 
+\end{quote}
+
+
+
+
+\pagebreak
+%----------------------
+\subsection{Face notation}
+\typeout{---Example (face notation)}
+
+
+%% = my Fig A (rubikcube.dtx)
+
+The following diagram  is Fig~2 from the \textsc{rubikcube} package documentation.
+
+\begin{figure}[htb]
+\centering%
+\RubikFaceUpAll{Y}
+\RubikFaceFrontAll{G}
+\RubikFaceRightAll{O}
+\ShowCubeF{5cm}{0.6}{%
+\DrawRubikCubeRU%
+%%-----------------
+
+%% Right
+\draw[line width=2pt,color=blue,->] (3.5,2) -- (5.3, 2);
+\node (R) at (4.6, 2.5)  [blue]{\textbf{\textsf{R}}};
+\node (x) at (5.8, 2)  [blue]{\textbf{\textsf{x}}};
+
+%%Left
+\draw[line width=2pt,color=blue] (-0.2,2) -- (-1.5, 2);
+\node (L) at (-1.1, 2.5)  [blue]{\textbf{\textsf{L}}};
+
+%%Up
+\draw[line width=2pt,color=blue,->] (2, 3.5) -- (2, 5.5);
+\node (U) at (1.4, 4.7)  [blue]{\textbf{\textsf{U}}};
+\node (y) at (2, 6.1)  [blue]{\textbf{\textsf{y}}};
+
+%%Down
+\draw[line width=2pt,color=blue] (2, -0.2) -- (2, -1.5);
+\node (D) at (2.6, -1.1)  [blue]{\textbf{\textsf{D}}};
+
+
+%%Front
+\draw[line width=2pt,color=blue,->] (1.5, 1.5) -- (0, -1);
+\node (F) at (0.7, -0.7)  [blue]{\textbf{\textsf{F}}};
+\node (z) at (-0.3, -1.4)  [blue]{\textbf{\textsf{z}}};
+
+%%Back
+\draw[line width=2pt,color=blue] (3.2, 4.2) -- (4, 5.5);
+\node (B) at (4.4, 5)  [blue]{\textbf{\textsf{B}}};
+%%
+}
+\end{figure}
+
+{\noindent}The code for the figure is as follows 
+(the origin $(0,0)$ is at the bottom left corner of the \frontface).
+
+
+\begin{quote}
+\begin{verbatim}
+\begin{figure}[htb]
+\centering%
+\RubikFaceUpAll{Y}
+\RubikFaceFrontAll{G}
+\RubikFaceRightAll{O}
+\ShowCubeF{5cm}{0.6}{%
+  \DrawRubikCubeRU%
+  %% Right
+  \draw[line width=2pt,color=blue,->] (3.5,2) -- (5.3, 2);
+  \node (R) at (4.6, 2.5)  [blue]{\textbf{\textsf{R}}};
+  \node (x) at (5.8, 2)  [blue]{\textbf{\textsf{x}}};
+  %%Left
+  \draw[line width=2pt,color=blue] (-0.2,2) -- (-1.5, 2);
+  \node (L) at (-1.1, 2.5)  [blue]{\textbf{\textsf{L}}};
+  %%Up
+  \draw[line width=2pt,color=blue,->] (2, 3.5) -- (2, 5.5);
+  \node (U) at (1.4, 4.7)  [blue]{\textbf{\textsf{U}}};
+  \node (y) at (2, 6.1)  [blue]{\textbf{\textsf{y}}};
+  %%Down
+  \draw[line width=2pt,color=blue] (2, -0.2) -- (2, -1.5);
+  \node (D) at (2.6, -1.1)  [blue]{\textbf{\textsf{D}}};
+  %%Front
+  \draw[line width=2pt,color=blue,->] (1.5, 1.5) -- (0, -1);
+  \node (F) at (0.7, -0.7)  [blue]{\textbf{\textsf{F}}};
+  \node (z) at (-0.3, -1.4)  [blue]{\textbf{\textsf{z}}};
+  %%Back
+  \draw[line width=2pt,color=blue] (3.2, 4.2) -- (4, 5.5);
+  \node (B) at (4.4, 5)  [blue]{\textbf{\textsf{B}}};
+  }
+\end{figure} 
+\end{verbatim}
+\end{quote}
+
+
+
+
+
+\pagebreak
+%----------------------
+\subsection{Grey cube}
+\label{sec:greycube}
+\typeout{---Example (grey cube)}
+
+
+When explaining elementary layer~1 moves, it can be useful to use the `grey cube' 
+(\verb!\RubikCubeGrey!), as this  sets up only the central cubie on each face; 
+we have shown the first cube in Semi-Flat (SF) mode simply to show  how the grey 
+cube is configured  (note that an `all-grey' cube is also available: 
+\verb!\RubikCubeAllGrey!). Both of these grey cube commands will also  accept 
+the word `gray' (to be consistent with TikZ).
+
+In this  example, we show how to position a single  `flipped'  white/orange edge 
+cubie in the top  layer. 
+  
+
+\begin{figure}[hbt]
+
+\centering%
+\RubikCubeGrey%
+\RubikFaceUp{X}{X}{X}%
+            {X}{W}{O}%
+            {X}{X}{X}%
+               
+\RubikFaceRight{X}{W}{X}
+               {X}{G}{X}
+               {X}{X}{X}
+%
+\cubenumber{1}%
+\ShowCube{5cm}{0.5}{\DrawRubikCubeSF}%
+%------------------
+\quad\Rubik{Rp}\RubikRotation{Rp}
+\cubenumber{2}%
+\ShowCube{2cm}{0.5}{\DrawRubikCube}%
+%-----------------------
+\quad\Rubik{Fp}\RubikRotation{Fp}
+\cubenumber{3}%
+\ShowCube{2cm}{0.5}{\DrawRubikCube}%
+%-----------------------
+\end{figure}
+
+
+
+{\noindent}The code for the figure is given below. 
+After setting up the first cube, we then just use the \verb!\RubikRotation! 
+command to generate the  remaining cubes.
+The colours are coded as follows:  R~(red), O~(orange), Y~(yellow), 
+G~(green), B~(blue),  W~(white),  and   X~(grey).
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation}
+\newcommand{\cubenumber}[1]{\strut\raisebox{1cm}{#1}}
+...
+\begin{figure}[hbt]
+\centering
+% set up the first cube
+\RubikCubeGrey%
+\RubikFaceUp{X}{X}{X}%
+            {X}{W}{O}%
+            {X}{X}{X}%
+
+\RubikFaceRight{X}{W}{X}
+               {X}{G}{X}
+               {X}{X}{X}
+\cubenumber{1}%
+\ShowCube{5cm}{0.5}{\DrawRubikCubeSF}%
+%
+\quad\Rubik{Rp}\RubikRotation{Rp}
+\cubenumber{2}%
+\ShowCube{2cm}{0.5}{\DrawRubikCube}%
+%
+\quad\Rubik{Fp}\RubikRotation{Fp}
+\cubenumber{3}%
+\ShowCube{2cm}{0.5}{\DrawRubikCube}%
+\end{figure} 
+\end{verbatim}
+\end{quote}
+
+
+
+
+\pagebreak
+
+%-------------------------------
+\subsection{Scramble a cube}
+\label{sec:scrambleacube}
+\typeout{---Example (scramble a cube)}
+
+
+In this example we use the \verb!\RubikRotation! command to scramble a `solved' 
+Rubik cube via  a sequence of 120 random rotations, using the following  command 
+(the details of the process can be seen in the \texttt{.log} file):
+\begin{quote}
+\begin{verbatim}
+\RubikRotation{random,120}
+\end{verbatim}
+\end{quote}
+On this occasion we draw the cube Flat (F) using the command \verb!\DrawRubikCubeF!.
+In this example, we also make use of the \verb!\SaveRubikState{}! command to  save 
+the final  configuration (state) to a file (\texttt{rubikexampfig4.tex}) using 
+\verb!\SaveRubikState{rubikexampfig4.tex}!,
+so we can  display the  same cube configuration later  but in  a different format
+(we show it again in the following example (Example~\ref{sec:saverubikstate}).
+Note that since we are using a random sequence, it follows that each 
+time this file is run not only will a visually different  cube  be generated,  
+but the same state  will be shown in both 
+here and in Example~\ref{sec:saverubikstate}.
+%%--------FIGURE 3 -----------
+\begin{figure}[hbt]
+  \centering
+  \RubikCubeSolved
+  \RubikRotation{random,120}
+  \SaveRubikState{rubikexampfig4.tex}  
+  \ShowCubeF{6cm}{0.5}{\DrawRubikCubeF}
+\parbox{0.7\textwidth}{%
+\caption{\label{fig:randomone}This shows a cube  generated by 120 random rotations}}
+\end{figure}
+%----------------
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation}
+...
+\begin{figure}[hbt]
+  \centering
+  \RubikCubeSolved
+  \RubikRotation{random,120}
+  \SaveRubikState{rubikexampfig4.tex}  
+  \ShowCubeF{6cm}{0.5}{\DrawRubikCubeF}
+\caption{....}
+\end{figure}
+\end{verbatim}
+\end{quote}
+
+{\noindent}Q: How do we determine the minipage-width ($7.2$cm) in the 
+\verb!\ShowCube! command?
+
+\smallskip
+
+{\noindent}A: The object is 12~cubie squares  wide. Since the TikZ scale-factor 
+argument of the  \verb!\ShowCube! command (cms/unit length; default = 1) in this 
+case is set to~$0.5$, then the true width of  the image will 
+be $12 \times 0.5 = 6$\,cm. Note that here we have used the \verb!\ShowCubeF!
+command and so we can see that this is correct. Changing the scale-factor will 
+change the image size and hence a new width argument will be required to just fit 
+the image.  
+
+Note that in this particular case (where there is only a single image in the 
+`figure' environment), since the \verb!\ShowCube! command places the image 
+(in a TikZ picture environment) centrally  inside a minipage, the image will 
+in fact be centrally placed in  the \verb!\textwidth! provided the image 
+is \textit{smaller} than the fbox---i.e.,~if we used instead a minipage-width of, 
+say, 12\,cm  the image would still  appear centred in the \verb!\textwidth! in 
+this case. However, when there are several images in the `figure', then the spacing 
+may appear strange unless each image closely fits its own minipage-width etc.
+It is often useful, therefore, to check the size of the fbox (using the 
+\verb!\ShowCubeF! command) as we have done here.
+   
+  
+ 
+\pagebreak
+
+%----------------------
+\subsection{SaveRubikState}
+\label{sec:saverubikstate}
+\typeout{---Example (SaveRubikState)}
+
+In this example we display a cube having the same state as that shown in 
+the previous example (Example~\ref{sec:scrambleacube}). The configuration state 
+was saved from Figure~\ref{fig:randomone} using the  command 
+\verb!\SaveRubikState{rubikexampfig4.tex}!, and then input here  
+using \verb!\input{rubikexampfig4.tex}!. These commands therefore allow  the 
+state of a previous cube to be saved to a file, and then  displayed again 
+later in  a different format.
+%%-----------FIGURE 4 -----------
+\begin{figure}[hbt]
+  \centering
+  \input{rubikexampfig4.tex}
+  \ShowCube{4cm}{0.8}{\DrawRubikCubeLD}
+\parbox{0.7\textwidth}{%
+\caption{\label{fig:randomtwo}This shows a Rubik cube in exactly the  same 
+state as  the one shown in Figure~\ref{fig:randomone}} }
+\end{figure}
+%%---------------------------------
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation}
+...
+\begin{figure}[hbt]
+  \centering
+  \input{rubikexampfig4.tex}
+  \Showcube{4cm}{0.8}{\DrawRubikCubeLD}
+\caption{....} 
+\end{figure}
+\end{verbatim}
+\end{quote}
+
+
+
+
+\pagebreak
+%----------------------
+\subsection{Series of cubes}
+\typeout{---Example (series of cubes)}
+
+Here we show a convenient way of displaying a series of small cubes showing 
+a sequence of rotations (\rr{U}, \rr{R}, \rr{F}). 
+
+
+\begin{figure}[hbt]
+\centering
+\RubikCubeSolved 
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\quad\Rubik{U}\quad%
+\RubikRotation{U}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\quad\Rubik{R}\quad%
+\RubikRotation{R}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\quad\Rubik{F}\quad%
+\RubikRotation{F}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\caption{The rotations \rr{U}, \rr{R}, \rr{F}\ on a solved cube.} 
+\end{figure}
+
+{\noindent}The code for the above sequence is as follows:
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation}
+...
+\begin{figure}[hbt]
+  \centering%
+  \RubikCubeSolved%
+  \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+  \quad\Rubik{U}\quad%
+  \RubikRotation{U}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}% 
+  \quad\Rubik{R}\quad%
+  \RubikRotation{R}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+  \quad\Rubik{F}\quad%
+  \RubikRotation{F}\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\caption{The rotations \rr{U}, \rr{R}, \rr{F}\ on a solved cube.} 
+\end{figure}
+\end{verbatim}
+\end{quote}
+
+{\noindent}Note that we are starting with the default white-opposite-yellow (WY) 
+solved cube, using the command  \verb!\RubikCubeSolved!, which is functionally  
+the same as the more explicit \verb!\RubikCubeSolvedWY! (if you forget the 
+terminal two letters then at least you will get a `solved' cube). 
+A white-opposite-blue (WB) solved cube is available as \verb!\RubikCubeSolvedWB!.
+
+
+
+
+\pagebreak
+%----------------------
+\subsection{Rotation sequence}
+\typeout{---Example (rotation sequence)}
+
+We now explore using the named Rubik cube rotation sequences and associated 
+patterns available in the  \textsc{rubikpatterns} package---a small macro database 
+(see the \textsc{rubikpatterns} documentation, and also its companion file \texttt{rubikpatternsLIST.pdf}). Having  the sequences available as  macros is 
+very convenient since (a)~it avoids making errors when typing them out, 
+and (b)~allows the easy application of software tools.
+ 
+ A Rubik pattern  is the configuration generated  by a sequence of rotations 
+ (or `moves') from some initial starting configuration  (typically a `solved' 
+ configuration).  For example, FourSpot is a well known pattern which we can  
+ generate  from a solved Rubik cube  using the macro \verb!\FourSpot!;  it is 
+ defined as follows:
+\begin{quote}
+\begin{verbatim}
+\newcommand{\FourSpot}{[FourSpot],F2,B2,U,Dp,R2,L2,U,Dp,<(12q*, 8f*)>}
+\newcommand{\fourspot}{\FourSpot}
+\end{verbatim}
+\end{quote}
+ Note that for convenience the macros names in the \textsc{rubikpatterns} package 
+ are defined in  both upper and lower-case (i.e.,~the macros \verb!\FourSpot! 
+ and \verb!\fourspot! are identical).  The following figure shows the FourSpot 
+ sequence and pattern. 
+
+\bigskip
+
+\noindent%
+\RubikCubeSolvedWY
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRD}
+\RubikRotation{\FourSpot}
+\quad\SequenceBraceA{FourSpot}{%
+                     \ShowSequence{}{\Rubik}{\SequenceLong}%
+                     }
+\quad\ShowCube{2cm}{0.5}{\DrawRubikCubeSF}
+
+\bigskip
+
+{\noindent}The code for the above figure is as follows:
+
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation,rubikpatterns}
+...
+\noindent%
+\RubikCubeSolvedWY
+\ShowCube{2cm}{0.5}{\DrawRubikCubeRD}
+\RubikRotation{\FourSpot}
+\quad
+\SequenceBraceA{FourSpot}{%
+                         \ShowSequence{}{\Rubik}{\SequenceLong}%
+                        }
+\quad
+\ShowCube{2cm}{0.5}{\DrawRubikCubeSF}
+\end{verbatim} 
+\end{quote}
+Note that we have spread  the code slightly here in order to emphasise that 
+the \verb!\ShowSequence! command is being used as an argument for the 
+\verb!\SequenceBraceA! command (the `A' in the command \verb!\SequenceBraceA! 
+denotes that the annotation is placed Above the sequence.)
+We have used a solved cube with the WY (White opposite Yellow) 
+configuration (\verb!\RubikCubeSolvedWY!).
+The first cube is drawn from the  RD (Right-Down) viewpoint (\verb!\DrawRubikCubeRD!).
+The second cube is drawn from the SF (Semi-Flat)  viewpoint (\verb!\DrawRubikCubeSF!) 
+so we can see all the faces.
+
+\pagebreak 
+
+%----------------------
+\subsection{SixTs}
+\typeout{---Example (SixTs)}
+
+A  more interesting cube pattern  is the SixTs configuration (from the 
+\textsc{rubikpatterns} package),  which we  now show in a slightly 
+different way (adding an extra face), as follows:
+
+\bigskip
+
+\noindent\hfil%
+\RubikCubeSolvedWB%
+\ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU\DrawFlatDown{0}{-3.3}}%
+\RubikRotation{\sixts}
+\quad\SequenceBraceA{SixTs}{\ShowSequence{,\ }{\texttt}{\SequenceLong}}
+\quad\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}%
+\quad\ShowCube{2cm}{0.5}{\DrawFaceFrontSide}%
+\hfil
+
+\bigskip
+
+This time we have started with a solved cube having the WB  configuration 
+(White opposite Blue), which is generated  using the command  
+\verb!\RubikCubeSolvedWB! 
+(we have added the \downface\ (blue) below to reveal the colour of this 
+face---see note below). 
+
+The rotation  sequence is   in `long-format' (expanded into 
+separate rotations), comma-separated and space,  typewriter font,  
+using the command \verb!\ShowSequence{,\ }{\texttt}{\SequenceLong}!.
+
+The final image shows just the \frontface\  together with all the 
+side-bars indicating the colours of the  adjacent facelets, 
+using the \verb!\DrawFaceFrontSide! command. The images are 
+separated using \verb!\quad!.
+The code for the above figure is as follows:
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation,rubikpatterns}
+...
+\noindent\hfil
+\RubikCubeSolvedWB
+\ShowCube{1.6cm}{0.4}{%
+                      \DrawRubikCubeRU%
+                      \DrawFlatDown{0}{-3.3}%
+                      }
+\RubikRotation{\SixTs}
+\quad\SequenceBraceA{SixTs}{%
+                      \ShowSequence{,\ }{\texttt}{\SequenceLong}%
+                      }
+\quad\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
+\quad\ShowCube{2cm}{0.5}{\DrawFaceFrontSide}
+\hfil
+\end{verbatim} 
+\end{quote}
+
+
+
+\subsubsection*{Notes}
+
+\begin{enumerate} 
+
+ \item   We have drawn the  \downface\ of the first cube using the command
+\verb!\DrawFlatDown{0}{-3.3}! where the two arguments are  the $x$ and 
+$y$ coordinates of the \textit{bottom left} corner of the \downface\  (blue). 
+Note that the grid origin of  all cube images  coincides with the 
+\textit{bottom left} corner of the \frontface\ (green in this case).
+
+\item   The first image is really just 4 units wide. This is because the 2D width 
+of the  \textit{side}  face (red) is designed to measure  1~unit wide in the 
+oblique view (similarly, the 2D height of the  \textit{top} face also measures 
+just 1~unit). Consequently, since the TikZ scale factor used is $0.4$, then 
+the (minimum) width argument for its \verb!\ShowCube{}{}{}! command is 
+$4\times 0.4 = 1.6$cm., hence we have \verb!\ShowCube{1.6cm}{0.4}{...}!.
+
+\end{enumerate}
+
+
+
+\pagebreak
+%----------------------
+\subsection{Three-edge cycle}
+\typeout{---Example (three-edge cycle)}
+
+
+The following example shows a sequence often used in solving the final layer.
+ The black (no flip) and magenta (flip) arrows indicate  the \upface\  
+cubie movement associated with the `three-edge cycle sequence 
+\ShowSequence{,}{\rr}{F,R,U,Rp,Up,Fp}. The blue arrows indicate so-called 
+collateral damage (two pairs of corner cubies swap positions) which can be fixed 
+at a later stage. (This diagram  is from Section~13 in the 
+\textsc{rubikcube} package documentation).
+
+ \bigskip%
+ \noindent\hfil%
+ \RubikCubeSolved%
+ \ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU}%
+ \quad\ShowCube{1.6cm}{0.4}{%
+    \DrawFlatUpSide%
+    \draw[thick,->,color=magenta] (1.5,0.5) -- (2.4, 1.4);
+    \draw[thick,->] (2.5,1.5) -- (1.6, 2.4);
+    \draw[thick,->,color=magenta] (1.3, 2.3) -- (1.3, 0.5);
+    \draw[thick,<->,  color=blue] (0.5,2.6) -- (2.5, 2.6);
+    \draw[thick,<->,  color=blue] (0.5,0.3) -- (2.5, 0.3);
+    }%
+ \RubikRotation{F,R,U,Rp,Up,Fp}%
+ \quad\ShowSequence{}{\Rubik}{\SequenceLong}\quad$\longrightarrow$\quad%
+ \ShowCube{1.6cm}{0.4}{\DrawFlatUpSide}%
+ \hfil%
+ 
+ \bigskip%
+
+
+{\noindent}The code for the figure is as follows 
+
+
+\begin{verbatim}
+ \bigskip%
+ \noindent\hfil%
+ \RubikCubeSolved%
+ \ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU}%
+ \quad\ShowCube{1.6cm}{0.4}{%
+    \DrawFlatUpSide%
+    \draw[thick,->,color=magenta] (1.5,0.5) -- (2.4, 1.4);
+    \draw[thick,->] (2.5,1.5) -- (1.6, 2.4);
+    \draw[thick,->,color=magenta] (1.3, 2.3) -- (1.3, 0.5);
+    \draw[thick,<->,  color=blue] (0.5,2.6) -- (2.5, 2.6);
+    \draw[thick,<->,  color=blue] (0.5,0.3) -- (2.5, 0.3);
+    }%
+ \RubikRotation{F,R,U,Rp,Up,Fp}%
+ \quad\ShowSequence{}{\Rubik}{\SequenceLong}\quad$\longrightarrow$\quad%
+ \ShowCube{1.6cm}{0.4}{\DrawFlatUpSide}%
+ \hfil%
+ 
+ \bigskip
+\end{verbatim}
+
+
+
+
+
+\pagebreak
+%----------------------
+\subsection{Superflip}
+\typeout{---Example (subperflip)}
+
+
+Once you can solve Rubik's cube, then an interesting exercise  is to generate  
+the so-called `superflip' configuration, in which all the 
+corners are correctly solved, while all the edges are 
+flipped\,\footnote{See the `superflip' entry in \textit{Wikipedia}, and also 
+the Kociemba website (\url{www.kociemba.org/cube.htm}); particularly the page 
+\url{http://kociemba.org/math/oh.htm}}.
+
+%--------draw the images-------------
+\begin{figure}[hbt]
+  \centering
+  \RubikCubeSolved
+  \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
+  \quad$\longrightarrow$\quad%
+  \RubikRotation{\superflip}%
+  \ShowCube{2cm}{0.5}{\DrawRubikCubeLD}
+  \quad\quad%
+  \ShowCube{5cm}{0.5}{\DrawRubikCubeSF}
+\caption{Two representations of the superflip configuration.}
+\end{figure}
+%----------------------
+
+{\noindent}A superflip sequence converts the solved cube on the left 
+into the form on the right, using the command \verb!\RubikRotation{\superflip}!.
+The full code for the above figure is as follows:
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation,rubikpatterns}
+...
+\begin{figure}[hbt]
+  \centering
+  \RubikCubeSolved
+  \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
+  \quad$\longrightarrow$\quad%
+  \RubikRotation{\superflip}%
+  \ShowCube{2cm}{0.5}{\DrawRubikCubeLD}
+  \quad\quad%
+  \ShowCube{5cm}{0.5}{\DrawRubikCubeSF}
+\caption{...}
+\end{figure}
+\end{verbatim}
+
+
+The following superflip sequence\,\footnote{This particular  superflip sequence 
+(in the \textsc{rubikpatterns} package) is due to Reid (1995); 
+for details see the \textsc{rubikpatterns} package 
+documentation, and also  \url{http://kociemba.org/math/oh.htm}. 
+Another 20-move superflip sequence (due to H Kociemba),  is designated as  K32466  
+  in  \url{www.nickalls.org/dick/papers/tex/RUBIK20moves.zip}.} 
+has just 20  HTM rotations (Half Turn Metric: counting 180~degree turns as just 
+one `rotation'). Note that the \textsc{rubikpatterns} package contains  this particular  
+superflip sequence  as the macro \verb!\superflip!
+(see \texttt{rubikpatterns.pdf}). Consequently  the  code 
+\verb!\ShowSequence{,}{\large\texttt}{\superflip}!, will typeset the sequence
+as follows:
+
+\begin{center}
+%% show the Short code
+\ShowSequence{,}{\texttt}{\superflip}
+\end{center}
+Note that for convenience, the \textsc{rubikpatterns} package includes the sequence 
+name (in square brackets)  as the first element of the associated  macro. 
+This is possible since the contents of a comma-separated  square bracket  is not 
+actioned as a rotation when it appears as part of the argument of  
+the \verb!\RubikRotation! command.   
+
+\pagebreak
+
+Next  we present the sequence without commas in the form of hieroglyphs using 
+the \verb!\Rubik! font, for which we require the `expanded' \verb!\SequenceLong! 
+form (since the `short form' includes trailing digits---see \S\,9 in  
+\texttt{rubikcube.pdf}), using the code
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation,rubikpatterns}
+...
+\RubikCubeSolved
+\RubikRotation{\superflip}
+\noindent\strut\hspace{-8mm}\ShowSequence{}{\Rubik}{\SequenceLong}
+\end{verbatim}
+\end{quote}
+which gives
+
+
+\bigskip
+
+\RubikCubeSolved
+\RubikRotation{\superflip}
+\noindent\strut\hspace{-8mm}\ShowSequence{}{\Rubik}{\SequenceLong}
+
+
+%%---------------------------------
+\bigskip
+
+\subsubsection*{Equivalent sequence}
+
+
+Interestingly,  the superflip sequence is actually equivalent to
+\Rubikbrace{\Rubikbracket{\Rubik{Rmp}\Rubik{Up}}4, \Rubik{yp}, \Rubik{x}}3.
+Furthermore we can readily demonstrate this, as we can process this novel form 
+of the sequence using  some useful features of the \verb!\RubikRotation! 
+command, as follows:
+
+\begin{quote}
+\begin{verbatim}
+\RubikCubeSolved%
+\RubikRotation[3]{[superflip],(Rmp,Up)4,yp,x}%
+\ShowCube{4cm}{0.4}{\DrawRubikCubeSF}%
+\end{verbatim}
+\end{quote}
+which generates the following 
+
+%-------------------
+\begin{figure}[hbt]
+  \centering
+  \RubikCubeSolved%
+  \RubikRotation[3]{[shortsuper],(Rmp,Up)4,yp,x}%
+  \ShowCube{5cm}{0.5}{\DrawRubikCubeSF}
+\end{figure}
+%----------------------
+{\noindent}which is exactly the same configuration as before.
+Note that to do this we had to make  use of  the `repeat'  option \verb![3]!  
+as well as  the \verb!(Rmp,Up)4! `repeat-block' in 
+the argument of  the \verb!\RubikRotation! command above. 
+
+
+
+
+\pagebreak
+%----------------------
+\subsection{Inverse sequence}
+\typeout{---Example (inverse sequence)}
+
+
+Generating the inverse of a Rubik sequence involves (a)~reversing the order of 
+the sequence, and (b)~inverting each rotation in the sequence 
+(see Sections~5.1 and 5.11 in the \textsc{rubikrotation} package documentation).
+
+
+From  the grey-cube example~(\ref{sec:greycube}) we saw that the sixspot sequence  is: \verb!U,Dp,R,Lp,F,Bp,U,Dp!;
+its inverse is therefore readily determined as \verb!D,Up,B,Fp,L,Rp,D,Up!. 
+Note that this is easy to check since the sequence generated by the  
+\verb!\RubikRotation! command is held by the macro \verb!\SequenceLong!. 
+For~example, the output of the following commands
+\begin{quote}
+\begin{verbatim}
+\fbox{\strut\ %
+The inverse of the sixspot sequence is:
+\RubikRotation{\sixspot,<inverse>}
+\ShowSequence{,}{\texttt}{\SequenceLong}.
+}
+\end{verbatim}
+\end{quote}
+is \quad\fbox{\strut\ %
+The inverse of the sixspot sequence is: 
+\RubikRotation{\sixspot,<inverse>}
+\ShowSequence{,}{\texttt}{\SequenceLong}.
+}
+
+\bigskip
+
+A sequence and its inverse will annihilate each other when applied consecutively.  
+For example, in the following figure we start with a solved cube and 
+apply the sixspot sequence. Applying the  inverse of the sixspot sequence then 
+results in the solved cube configuration again.
+
+\newcommand{\sixspotINV}{[sixspotINV],D,Up,B,Fp,L,Rp,D,Up}
+\newcommand{\sixspotarrow}{$\quad\overrightarrow{\strut\textsc{sixspot}}\quad$}
+\newcommand{\sixspotINVarrow}{$\quad\overrightarrow{\strut\textsc{sixspotINV}}\quad$}
+
+\begin{figure}[hbt]
+\centering
+\RubikCubeSolved%  
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}\sixspotarrow% 
+\RubikRotation{\sixspot}%   
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}\sixspotINVarrow%
+\RubikRotation{\sixspotINV}%  
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
+\end{figure}
+
+{\noindent}The code for the above figure is as follows:
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz,rubikcube,rubikrotation,rubikpatterns}
+...
+\newcommand{\sixspotINV}{[sixspotINV],D,Up,B,Fp,L,Rp,D,Up}
+\newcommand{\sixspotarrow}{$\quad\overrightarrow{\strut\textsc{sixspot}}\quad$}
+\newcommand{\sixspotINVarrow}{$\quad\overrightarrow{\strut\textsc{sixspotINV}}\quad$}
+
+\begin{figure}[hbt]
+\centering
+\RubikCubeSolved%  
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}\sixspotarrow% 
+\RubikRotation{\sixspot}%   
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}\sixspotINVarrow%
+\RubikRotation{\sixspotINV}%  
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
+\end{figure}
+\end{verbatim}
+\end{quote}
+
+\pagebreak
+
+A significant property of the superflip configuration is that it is its own inverse.
+Consequently we can achieve  a similar result simply by applying the 
+superflip sequence \textit{twice in succession}, as follows:
+
+\newcommand{\superfliparrow}{$\quad\overrightarrow{\strut\textsc{superflip}}\quad$}
+
+
+\begin{figure}[hbt]
+\centering
+\RubikCubeSolved%  
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}\superfliparrow% 
+\RubikRotation{\superflip}%   
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}\superfliparrow%
+\RubikRotation{\superflip}%  
+   \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
+\end{figure}
+
+
+
+
+\begin{center}
+------ END ------
+\end{center}
+
+\end{document}
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns-doc-figA.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns-doc-figA.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns-doc-figA.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns-doc-figA.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns-doc-figA.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatterns.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.pdf	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.pdf	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,968 @@
+%PDF-1.5
+%\xD0\xD4\xC5\xD8
+28 0 obj
+<</Length 3213      /Filter/FlateDecode>>
+stream
+x\xDA\xED\K\x8F\xB7\xBE\xEF\xAF\xE0\xCD\xD6ai\xBE\xC0b\x8FVc\xC0\xC8E\x91|tR\xE2\x81;\x80}\x90\xC7O\xC9"\x9B\xDD\xEC\xE9Y\xCDj\x94\x85h\xB43l\xD6\xFBc\x91\x9CaQ\xB0\xBF1\xC1~\xBA;oo~8*ɤ\xE7JZc\xD8\xDB_\x99\x84'\xFEWJpa=s\xCEp{;\xB1wwB/%\x84\xC3W\xBC\xBF\xD5BA\xAB\x95Bh_?\xBF\xEEA\xA5s\xE3\xEAS#\x84|\x89\xD4\x{19514C0}\xC8\xF5\xFE\xFD۟Q)\xC5"\x8FN\xB9N'\xA9\xB7F3g1\x90N^\xB5\x97
+ \xF3\x909\xA3\xE4\x8Am\xA8!J\xD1\xF8\xCC5\xC9\xB4\x81Y#\x91i\xF51\xEB\xECE\xD1Nes\xC8\xFDQxҳЬ"\xBEØŽ}\xB1_\xB2.KU\xF6K\xD2C,\xFD\xB4\xDD~\xDAs%6\xA8\xBEB\xB1h\xD41E\xA7x\xDCÇ£\xD7\xC1\xCE=k\xA5\xE46*\xE6\xAC\xE4^j\xF2\xAC\x85J=\xA2\xB5\xD2w \x91\x9A\xE6d\xE4JT\x88@\xF8\xA5\x88\xD0C\xBD\x82\xB8'4\x98\x97\xC5\xF2ý\xF2wÙ¢\xA1\x90_5\xF6\xDA2
+);Qb\xAEA\x98Ò€K\xC2^\xEDh-Z/u\x94\xA4\x96<\xD0;t\x9Bw-\xB4\xD6\xDC\xDF&MS\x9C\xB2\x969\xE6'5\xD5>r+\xEDJ\xD3㎦F\xF0(,\xB3\xA0\xB1\x88\xBE\xB8\xE7\xE0Ì®\xD3G\xD2\xD9#\xA0\x87\xAA\xF6\xB8Cn\xB5C\xAD\xD68\xC7\x8B\xD4\xC3\x85Ld\xD2pm\x9C\xEA\x9B\xE61Ff5dkt\xD5\xFD-\xF8@\xE4 at k9\xE7Þž;Î¥\xEB\xC69j6\xD4
+`\xC9u\xEA-Z\x98d\xFCH\xB8:-\xBC\xC21
+l\xFC\x94\xB8\xC4<ìµ¢\xE7\xF3\x81\xEBJ\xE2x\xC8\\x883\xF2\xC8}\x88
+{\xA1,\xA4"\x99\xF3\xB4\xA0j\xE4\x94\xCE\xFA{W\x91\xF8\xB2\xC6P\xE5Þ¶\xC8$\x8E)9U
+k\xD2\xCD4\x94\x90\xE2H?\xB2\x95\xB0\x90\xD3a
+8]\x98Y\xCC
+\xC0\xD2
+\xF8kT\xF1\xBA<Úœ\xFC\xAC,:\x8B{\xEEjr\x94G\x97\xD0t\xAB\xB4o\xDA\x8C\x97VŦ\xDCRlH\xAD\xA6X\x96\xA2Q4\xCEI{\xE8;\x9Ah\xDA\xA0^\xC9Õ\x{38E3568}\xD00\x89\x958d\xD4\xE4Õ§&_mK1B\xBD\x92O\xAAM!\xFB\xC4\xDFQ\x94\xD1'D\xB3\xA7\x9B\xA9q\x98\x83?\xC0'%7\xA1\xA6\x82eH-\xAA\x8E26	v\xF7A\xDE\xD5\xD0\xF7\xD1\\x94\x8A\x89\xA1\xA8\x99\xE1f\xC6\x9A\xB9\xD42\xFDE\xB2\xC8\xCC\xC7N\xFA\x94}b\xD2D\xDC|\x90}Gj`\xB2O*\x82\xC5A\xEF\x8D\xD6\xC4\xF9\xACq\x95{\xAE\xD0\xD7\xEB\xB8\xB3\x85e0\x99k5\x9B\xDB\xF2WY'Ù¡\xF4\\x97H}\xA43\xA1\xAF\x9D\xBB\x94\x93[N\xE1\xF9\x808\x91N\xAD\x9FpU\x90\xD2F9\\xD3 \x87We\xBD\x80\x81:濸\xA6\xA06\xEDJ?\xD5\xDAz\xDAqV\xA7y1x\xEE\xBC[JWÕ²ds\xF5\x92\x95g\xDE\xE2\xC1\xB2"S/\x93\xB4Wo[\xCC`Y\x82\xD4\xF6a\xBA\xF9\x9D\xC1Z\xF7'\x96\xBC7'\xCB>2l\x86\x92\xFD\xFF\xFB\xFE\x83\xB5\x8F\x81$\xF8{
+\xEE\x8D\x96\xB0$\xD8\x89R0m\xB8\x90β)\xB48\\x8D\xF7\xEC7 \xF7\x90B\x832\xE3F"\x84\xB6\xBF\xB3\x9B\xBBy\xFDH\xE9+NӆHz>j\xBBX\x8B%\xA3i,\xAF\xBE6^\xAC\xBA\xBE\xDA>\xF5\x91\xD9pzm\xABo.\x8F\xC4\\x85\x91́\xD7\xE9\xED\xE5Z\xAC8MC\x81#\xA7׶˵@\xCF\xE3kZe\xCB\xE3\xF5=\xF6\xBE<E\xF4P\xD4\xC8\xD5\xD4v\x91\xF49\x93i,g\xE8\xE1\xDAx\xAEt\x89\xF9
+6	JY\x83[\xAE\xACP\xBE3\xD8\xE1vv\xD4s\xE3\xE6m
+R\xBD\x86\x95x\xA3>[\xF0\x9At˨v\xCD\x8D\xE5
+\x96\x8E\x8F\xBB$\x9C6\xD4\xF7]#Q=^\xAE\xE5N*[
+\xC7X-\x93\x9BW\xBE\xDFr\xA9Rf#\xDC'\xF9\xF9~^\x91NB>\xD5\x88\xA3r\x9F wM:
+E}Zi/\xB7\x9B7\xA7\x81\xE3\xB7\xDC9\x9C\xED\xCED+\xD2iC\xC8С\xA3)\xEEL'/)\xA7
+C\x87\xA7\xD1\xFD\xA4ŽNC\x9A\x91\xD2;\x87\xB9+\xE5\xAD\xD5T0mM\xD4C]\xE8}U\xFF"]Vܦ
+\xB9C\xF8\xD5\xF7\xAF\x97\xA8\xB2\xE45m\xC9&z\xFF\xB4\x9AO\xEA\xC3|\x8C\xDAX\x81\xFD$\xAAܦ
+\xB9\x83`Ô¦\x9AÇž$B\x95\xDB4\x96:
+Fm|Ԫs/@e\xEE\xCF\xF3\xA384l\x97t\xF7$\xB1!fӆ\xD4ajc\x9Dޞ$8\x95۴%w\x89\xDA6\\x8A¿\xA6\xFFiowK\x9B\xBB۶\xBBK?_\x8C\xF7\x9A*H\xAE Ds\xDAFw\xF4G\xA8_q\xD0\xEEu\xC8P\xE1\xE6U1c6\xF9\xFD\xBF^\x94\xE8\xEFUO\xA5\x97\xD6\xD6~\xA0&>p \x99\xE42Z\xF6\xC7_ٯ7\xAF\x8B\xFACa\x98x\xD3\xFB\xEF\xD6Ҵ \x8EF^&M;\xE8\xE8za\xFF~\xB1\xD8[+\xB9\x91\x88\xAB1~ws
+\xA0\xC1/\xC63~\xFA\x9D\x82۴N(\xADe\xB5L\xF4\xBF\xAD\xE9\xDFpg\xE2\xF0Kw	\x83@
+\xF8\xD5f^\xCEi\xBCk\x8D\x99(oea\x8F\xAF\xF4a\xC5\xE0Ä=\xF1p\xF8\xC8ޱ\xF7\xA9\xF3_\x8E2 at f\x81\xC62ŅW8\x91@\x8BQ\xFCC#Z\xA9\x8A	\xE0\x8F\xC1\xE6\xA6YlyR\xA9n\x89\xACr\xBE-\xAC?\xB07\xEC5\xA31\xD2[\xAEx\xD0*\xA8\xE0\\xEC\xA7\xB6
+\xA7)Ú®\xB5\xEEH\xA9\xAD\x92\xAE'\xA1\xE3v\x8F8+\x86\xF8\x86A\xA2=\xC0V\xE4b\xFE\xB5\xE9\xFB_V\x90C at F\xFF G\xDE;rO5B\xEA~\xD4N\x9D\xBA\xFE\xFF\xE2|\x80\xB8\x8Es\xB3\x87\x96\xA6G\xDC\xC3w+\xC89Í¥\xB0\xCF$\xCBa\xCC=Sk\xAA\xD8 %P\xCDH\xA9i\x8F\xB4byF[\xDB\xD29K\xAD\xC9[\xFA\xB0\xEC\xFA\xACW\xB0q.\xE2,Ë¢\xEA\xF7\xE7\xE0\xAE\xAA\xF43\xDCn\xE0\x97=\x9FËŒ\xFAنʊx\x80\xB7\x8Ds\xF14`\xC5\xF6x\xFB\xD3:\xC3E\x9E\x91\xCF p\xE0,\xABm@z\xE9B\x9Eawu\x9A\xB2\xBC\x96`\xA5\xC41\xE9"\x9Ei\xF1΂\xF9\xE0Y\xAF\xBD\x88\xE0"\xA9\x83\x93^\xE4\xA4a\xED\x9E2\xA3\x95R\x98W\x8D{\xE0\xA730\xE0Pa\xD3d\xAA\xC94@Ǧe\xA0pA#L\x80\xDD\xC7i\x91FB\xFE\xE3\xDC\xE0\xF1\xE7\xF2\xDCda\xE5\xADp\xBF\x83(\x84xk\x8E?`\x81eA* \xC2\x99T+S\xB3\xE0\xC1\xD8L\xC2\x8B\xF4\xE5Om/\xBEp\xD5\xCF*qȝ	d\xDC\xD3hz _\xCC\x9C\xD5\xF0(Fزh\xC9Ñ‘\xA9\xCB\xE1\xBB\xC1\xFE\xF0\xE1\xF02\xB05N\x82ß½G/	\xF0R\x82\xF8{N9B\x9Do`\xB74g8e\xAA\xCC)	\xD3\xCA\xF85-p3|2e\x9F\xC7–\xA6\x85\xE6\xC2\xD8o[\xB8o[\xB8\xC1(%t\x9C;J\xB5\x83\xD4\xE9w\xB6p\xDA\xE2!R\xFDm\xF7m7@\ǹ\x88\xB30\xF9\x83#w\xB6p`87B_vd\xE3\xCF\xEB\x9D\xD9P\xE0\xFAGA6\xB9\xFEi\x90!\xF9\x9A\x84\xEC\xC4\xE3zgBN\xC4\xE3\xF3\xD9\x9F\xFDd\xC8N>\xFB\xE1\x901\xBF\xC0a\x91\xA1"\xD7?<2T\xE3&\xEA\xF15.\x9F\x99\xBA\xFEa\x93\xCD\xF3jW<|rz\xBA\xB8\xE2a\x94\x93Ù®y8%\x9F\xB5\xFA'Q\xB2\xE0\xEB;Ir\xBF\xC0\x93\xDE\xD1_灒\xDE\xF7W;=Ò»\xFE:GEzx_\xF1\H\xEF\xE3\xAB\xA1\xCD\xDDy\x87 at R
+\x99\x81\xAD \x88\xF1\xB5\x80
++#\xFB\xBA\x8B\\xA0S\x8E\x82\xA8\xEE!\xB4\x82*\xDBh50\x9A\xEA\x98JՐ>\xCC9\xF4\xFD>\xA9\xC4a\xAF\x8Cw\xB3\\xD6D\x8E_\x85k\xE3x\xF0\xAD\xE0”\xFA#*$1\xAD\xAC\x95\x8A2\xA9\xDEF\xB9Y\xC5\xBC\xF7X^\xEB\xFBJ\x90"\xB1\xEA\xE2\xA5\xFFd)\x83\x82\xD7VOCK\xB3;\xB5o[t{\xB5K\x93?a@\xE1LJ5A!
 Tj\xC6~\x91Xa\xD7\xF9%WB\xB5:\xB6\x8C\xB9V$\x8C}DK\xB1u\xC2\xC6\xD8\xEB*F.l[,\xDDYy\xF2\xC7Þ“X\xEBÚª\xA0j\xD5Z.\xD9U\xDB\xD2\x8C\xD3\xE8\xBAˬ+rC\xDC.%\xA5\xD8\xB2\x87\xB0\xFA4\xC5\xFF\x80\xBE\xCD\xCF|\xA9Hu\xB6\xB5!_,(\xA2*\xAFT\xD8}\x86U\xA9\xCF\xCB\xCCg\xCBoÓ‰\xA9\xD9\xE3\xA2\x8A\x96\xEBe\x8D\xEE\x94\xF8[r\xE8\xFCH\xE5\i\x8Cg\xBE\xDD,\xF5Ê‘"Q\x9B<\x9F\xEFh\x86}Ú¡o\x94L\xC1\x8C\xA5\xB4<\xE5]\xCD\\xCDa\xF4f\xCF\xF7\xF8\xDF|\xAFC\xDFV\xEDaA\xA1|\xF3\xED\x89((ϵ\x92gE\xE1!+\xA6\x9D\x9D[\xB5\x91K\x96\xF3\xA6\xE013p\xA27\x8EɈ\x85\xC0\xB5\xFCk\xF8	D8Å©hgSb(\xCB\xD6\xD6\x9F'\xE2\xB1\xCBX\xEA.\xA9\xAE\x97.k\xA0\xE7LB5\xCE\xC4 ß¹\x9D\x8A\xD1\xDC\xF7\x9C\x8A\xD1\xDCs^\x9A9\x97C\\xF2U\xAD\xE2\xB9\xC9\xD8+\xD8,\xBD\xF66\xB5\xBFJnbM\xECt\xE7F\xAA\x96tݝ\xD6Ί\x8C\xA9\xB0\x98\x84\xB6\xFE\xD4Ro\x8B\x98\x95\\xA3y\x8E\xEAU\xAD)\xD1\xC35Q掅\xD2)z\x8EZ\xBA\xEAUÛ…dV\xA4Mx\xBDC,\xF5\xADw*<\x9F\x9E[\xCEm\xED\xCA#k
+Y\xFA+Ö©\xB6\x89{\xBB\xB8w\xBE\xCEIY\xA3+i\xCD3|\xADu\xB6y4\xDB\x85\xC0\xFBU\xF1t\x9D\x89\xA9A-u\xC9'K\x87\xAB\x836\xE4L\xAC\xCBZlv\xBF\xAF7W	Xa.\x93\xC6{\xEAo\xD2\xDAsT\xFDQ:-\xDB5\x9E\x94\x88\xDE\xE3\xA9\xE3Ù²\x92@*\xAD\x86͆_\xDFE2\xBCu3\x964H\xDB\xD0`\x96\xAB\xFD\xBAO\xE8\xF6TO-\xFD\xF3˵\xB5\xE2ˬ\xF0e\xCA}bT\x9E\x9E\xA6_Ú‚\x8F\xAA\xF0S\xBFO#4܇xG\xE3n\xBF\xEC}\xA9É–\x8D\x90\xB9o\x85\xEA\xB6\x83mI\xB2Ë«\xC5\xD5Ù®C\xBB؁\xB6 at dc\xD9\xC0\xFCp4n3\x82\x8F\x91\xBC\x84kH6Ýœ\xD0.\xAF]\xB0C\xBD\xF0\xFAC)\xEF8\xBF} \xB7\xD3>t\xABrEc3\xF5S]\xB43Ó«\xC0t\xDC\xBF\x87K WmOÖ®\xB19
+n
+\x93\x82\xAD[Y=\xDBu\xD2\xDC\xDE\\x9C\xE5شऎ-a\xA7u\x87lh\xBEck\x97\xF5еJ\xF2\xE9j\xA5\xF3,\xC7]\xB9T\xEBkqN[\xAE\xF0\x9B\x87'\xB1\xBC\xE7\x94w\xE4\xEB\x9B\x92Y\xEB\x9B\xB2k`\xA9\x90\x9E\xA7M챌X"\xA0+\xA8\xCA
+\xA3\xFCf\xD9J4\:Ï¢\xE0F\x87Ù•;\x8B\xFC?5\x97\xCD+
+endstream
+endobj
+46 0 obj
+<</Length 2759      /Filter/FlateDecode>>
+stream
+x\xDA\xCD[ËŽ\xEC\xB8
+\xDD\xF7W\xF8\xAC\xE8-(4p\xEB\xF6\xADf\xA0wAV2A\x98\xD9\xE4\xF7C=(\xC9U\xCF\xE0]]U\xB4ER\x87EÛ§\xF8\xF2\xDB—_\xDEΟo\xB9\xB9ll\xB3\xD2\xEA\xE5óŸ‹€\xFE\xA9\x99\xE7rq\x9A\xB3m\xF3\xCB\xE7\xBE\xFC\xEDĹ\xE5\xF0\xFA\xE0\*ε\x84\x8C\xE6\|\xF9\x96^J\xA6\xF34\x9Cg\xC39^>\x87\x97\x87\xF3}#/p\xAE{\xFF\xFB\xE7\xAF\xE0\x85p\x94Rkf6\xD5{a\xBC.\xEFÒŸzo\xDEW\xA5\xD4)I‘\xE0C\xB0\xA3}\xF0\x8F\x82C\m\xC9\xEF\xF2\x8F\xE8oy.p\x86<'\xEARÆ…~kÏ·\xE7$5a\xCE0'cq>\x96\x9A\x8F\xB6\x8A5\xA2z\x8E\xA3x\x8B` |\x83Ú˜\xD3vq\xDC2!\xB72 Lç’§d\xE4)O\xFF#\xBD\x87 \x84\xF70\xED\xF1	\xAE\xD1@Òœ\x99\xE4xf@\xA6\x97\xEFkD!G\xA5ey\xC1!NV\x85\xEA\xD2*
+\xC8W'\xD2\xF1\xD6\xF1y\xF6\xA6vNg\xA9s>#\x8E\x8F\x90I#8*zÇŠKo]'
+s\xC0\x9A\xDB.\xE7\x{D999}p\xC1\x96\x97\x83\xCB0\xC4\xC4ÊŽ\x80\xF2(\xB7[H	~*\xCA\xE1\x9B\xE8'\x9C$\x88wH>\x9EF0\xA3\xE5\xD2\x863\x8EX.3\xBD\xE2\x8B\xC2\xC19R\xC2g\x8B\xBAJ\xD4}\xD6%G-mN\xB8\x8Fo:\xA3\xE5\x90É“lI5YT\xE7\xCE
+A5:gN4+\xA7\xC6lg\xB0 :\xE0\xBDdR\x94,\x972\xF9<
+\x9B\x97\xF7\xA7\xAA2\xE6\xF39{\xC0\xC5f\x90\xE2\xC2\xFC8\xDFƅ\xF3&\xF6R\xC1̶\xBE
+3
+\xE6\xE4P\xAE\x9F\x9D*\xE7\xB9E\xC9q*Ab.99\xCBHWF3)\xD5\xC7$BWDÇ™\xB4
+\x83\x923\xF8}=\x97\xCA(+\xE4c\xDD\xD49\x80XY#Ä¥V\xAAD\xAA\xAAeF\x88 \xB9\xBE×´\x83\xB4\x8Ek8\xA1\x9D|s9q\x8C\xC7* б\xE4Z\xE3dYr\xD3\xFC\\x8Dy\x8A{S\x81\xB2~\x8AÒ±\x8A\xA1\xAA\x82Ź\xE4\xC2\xD2\xDBM\x8B\xBF\x92ÒŸ(KI\xCB\xD1Ô´\x8AU\xABl\xA3a\xC5\xD6ov\x98\x86'\xDD)\xC9}\xAEL{L\xDE
+\xE5\xB4\xC1\x90Pd\xAD\xB6*yY\xF3:\xA5o\xDFd\xC8oU=\xEDj\xC5ER\xC0\xA16\xE1\xB0\xE5\xE2\xBE*\x85gZ\x8A޺\x89IiN\xCD)S\xD2;%ylW\x94n\xB7\x9A8΅O\xF6T\xB1\xD6ye\xDC\xFD\xC04\xC6\xF3cTBM\xB5\xAD\xFA\xDC\xEE\xC0\xA5ܧW\xE1UPJ\x85\xF6\xBC\xF2G\xAD<!\xD7\xEE\x85[ٛ\xB0jk\x98W\x9A\x80\x95\xAC,J3\xD5tA\xB9\xDD\xC0\x8A\xF2^\xD39\xAD\xE1\x92\\xA5Ndh\x95\xBC\xA7\x96\xA0$,\x8Bp\x9El{\x89pD\x883\xA5\xB3ѐ\xE6o٫z\x98\x8D\xD1ì`+\x91c\x9F*\xE5a\xED6\xDA\xE9\xCEQ)\xC7t\xF6қ\xF8Io\x82k\x96\xDE\xCDաJ\xB4\xC5R\xC9:N\xE3>,K\xC1\xFC\xF1Y\xA3\xE9\xE3\xB0?\x88\xBDun\xF9\xC7\xFE\xF6\xFB\xBD\xEC/Klha\x9F\xCD\xF2\xBF%\x88\xE1O,\xFF\xFF~\x85\xD0\xDBk\xAE\xC3!PE\x80\xE5\xA1\xB0r\xF9#\x8E\xE4\x80*S\xDA\xFAeO_\xB5d\xD0j\xCB\xE5?0:4iJm\xA4\x87\x81\xEC_\xCB\xDByy\xFB냶M;m\xA2\x97}\xE8\xED\xA49\xFCH\x88^\xF6 @^f\xBD#2\x81\xBB\xC8ʇ\xD7cк@\xD9$Ǐ\xAF{1h\xDAI\x83\xE6(z݇\x80{x\xED]Hfx\x97\xCF\xE1\xEC\xD7\xF1ϦIS\xD0({\xC9z\xABd\xA7\xEDP \xA3\xEC^\xDB"Ԩ-Tn\xD8-\x8D`\xDEiw\x98\xAC\xB1\xCCn\xCA\x96\xF6A\x97\xF4\xD2\xF9:\xF8n\xAB\xC3ȝ\xB6\x80Sjea;\xE0B=n\xB4\xB8\xD3\xFA\xCB\xE7\x830\x8Fyب;\x83T\x8BvLl\xE9`\xB5\xC7|%4j\xDEpk\xEAػ\xAD\x8ECw\xDA\xA6\x82M
+\x9A\xA5gÌŽCw\xD2\x81f\xF1\xB8\xD5vw\xDC	\xC4gPR\x9Bڝ\xF0\xF6#\xF7\x89	Kb'\xBBs\xD5t\xF7\x89Kb\xB3\xBC]\x9D\x98\xB3΄pÖ†"T_\xF1wz/&\xDD\xC0\xCF\xC5\xF3\x97\xB4\xED\xBBD\xCA\xE1GL\xD0W\xE9u\xED\xB4E\xB2\xB4\xE0篌L\xBBeS\xFB3\x85",\xA9\xFC%\xA1)\xDA\xF6\x89]"(*%\xEB+bS\x94\xED\xB4M"E\xF6P?y#6y['\xB7p*5\x9Fse\x{34B0832}}b\x95
+\xCAp\x{32A882E}}b\x92\x88@\x91=\xDC^\xAAì‚“\x9B\xAE\xFD\xE5\xDA7\xFA\xB9\x83\xEA{\xC9\xF2}\xFDÄ\xB2}4\xD9\xF5\x93\xF8\xF5+u탽\xAE\xA5į\xEBW\xDF]\xE3\xAEd'?\x91>z\x89w-Ô¥\xEEJ\xF5\xF5\xB4\xF0uWU\xFB\xC4&\x82"|Ý‘\x86\xA6\xC18\x84i\x86>\xB4\x87\xDDJ\xDB\QV)\xF8\x8B\xECuGU;m\x92\xBF\xC8\xEB\xF183\x8F\xC6W\xA2\xC5Z\x89k%\x9A\xC9\xF5\x99\xDB0\xE3\xC4\xED\xD2\xD5A\xAFO݉:\x98\xA7\xEE@\x91\xB6\xBA\xFBb\xDD=\x9A\xE7 o\xAB\xE1J\xB4N\xBA\xEBS\xF7\H\xC8\xE6)S\xBC\xEBs\xB7\x9Eh\xD0P\xD6:\x98\xFB\xDB2\xCF\xC1\x9E\x9B\xA2\x95\xEA\x8AHx\xD7Go\xB5\x90p\xA3Y\xD2\x89\xEA\xFA\xF0&f\xB4L\xE91m\x9A\x92;̉ll\xE8h\xF7\xC9%\x88\xE3\xCC[G\x89\xAB_h\xB8\xBC\x93\xBCaFJZ\xF8\x9C\xE1a\xF8>\xB1\xB3mL
+\xE5'\xC2\xE7\x8C\xAD\xEAN_T\x8C\xD0f\xC9c\xB5\xAB\xBB1:\xA0`-\xB2\xE7\xCC\xC3w\xDAj\x91=gz\xEC\xFFw\xFABa\xC45K\xACWÔ­\xD9\xD1\x85k\x91=ix\xBFÓ†(d\x8B\x8C4\xFF\x8D\xFF\xF1\xA9ÖŠ\x8F\xB5\xD6\xE6\xB9V\xE4\xCB\xD1\xCF\xE7\xC23M\xAD\xD5b8\xD8\xD9$\xC9(O1\x89G\xBA\x{113E01}É’\xE8\x95\xA0\xE9h\x83\xF6\x96\xAE\xE0\xDD |\xF9~ \xA1\xCDÞ§\xCF\xF3\xF5\xC6\x87\xC6\xC4o\x90\x82[\xFB\xC0\xB9%\xB2 \x81#\xD2\xC9\xEC\x91\xD4%m}F\x8E9\xF0R\xBA\xE3\xA3c\xB0"\xBCX\xB4s\xCCi\xFD\xB4\x82\xC6x|\xE80\xF4yH~\xA1\x9F\xAA\x92G\ \x8D\x9C/\xB8$Bzz~F\xC5\xE9_ÊŠ\x80c4u\xB8\xE7p\x8C\x99 at RJʐ\xDERD\xF1\x9C\xEF.\xC9\\xA6U*_e\xAF\x91\x92\x83DQ{X\xD5rX~\x8B\x86ŧDK\xAB\AE\xE4H\xF9\xF7HNs6\xD3\Ä©\xA5UBQ\xC3x\x99\x90|\xB7\xE2\x95wL{G\xADx\xE9\xD5	\x99H
+9FVf\xE2/\xE1\x99H\xF1\xCB\xE3\xBAş\xA47\x9F\xF8#Q\xFAH\x9ElVF\x92\xAA\x9B\xEC4\xD76\xD3X\xC7ߍmHV\x98\xFB\xF6\xA3w\x8B\xA8\x95t!$\xF2`\xA1x\x96\xDC\xE9\xC8A\x88g\xABB\xE8\xCDD\xC2\xCD\xF4Aq&msPzj\xA4\xD0\xDC v\xF4Z\xD85 \xF5:\xBD4\xB9#\xA6\x98M\x9E\xA7\xF7	
+3:
+Z\x95\xCA3mLo\xB5V\xB7\x84S_ᠦ\xACZo\x91*\xF6\xAD\xB4\xA1Y\xE4\xA5\xB0G&\xB3\x98n\xEF̌7\x96XP\x83\xC6;\xE9s\xF7p\xC8T\xA0U;w\xAD~5\xA5_\xA3݈\x8D3eS\xCA[\xCB
+\xEF9\x91\xAEp"e\xC7\xEEL j*%'\xEC.n\xA0Б\xA7
+\xAB\xB9\Û²\xAE\xF3\x8E<l
+V܏@aj\x9AW\xF4\x8Ee\xE7:\xA6\x982\x82Y)n-;\x94\xA7\xB9\x8EK\xF0Ɯ\x96\xA1_
+\xDF\y\xB6M\x80#(\xBAab\xE9\x86Ah%MUÓ·\xC8\xF1\xEAPA\xCF
+\xD4y]FK\xE7V߱#\xED\xE2\xECt_\xA9}"섪\xAF\xBA
+z?k\xFB\xAD\xB0v\xA5\xFEf\xEA\xF8\x8E\xAC{ Ī\x81\xAB\xB6)Vy\x92\xAD\xBC
+*\xFC\xA9nd1\x90\x97:YÍ‘\x9B	\xED\xC8\xD6O=\xFA\xD6\xFF\xE5;\xB27}\xFE\x99\x89\xCEK<Ö \x96\xAF;\x82^J\xA2 \x990\x84)N\xA5\x92\xD0\x8B\xBAR\xF6\xE3\xF5\xF6\xB5gV\x9As\xA5\xDF\x88\xF6D\x82c:\xB6\xD4\xC1J\xB4\xDEs\xBB{\xF7EΊ{&jcg\N\xF2\x9F\xF65\xC4&lSr\xB3LX\xF5g]\xA1ï•·\xFES]}<\xF72b\xA6!+\xA4\x93L6,\xE3\xC9%\xE2b9\\x99\xF6J\xFC]B\xBC\xC0\xB9\xB6\xA7\xDBG\x9B\x8A|\xF1\xE3\xD3/\xC3\xE4\x96t\x98I\xC4t\xB8M!{\xCFj\x95\xA8\xD7
+\x91mԤL\xFC\x8D\x86T\x96)\xEF\xFE2\xFD`)\x94|%_\xEB<*\xFA\x92Q\x9A\xCCIH\xA6\xAF7w\xB3\x8B\xD3x!\xBA\xCD/R\xADy\xFD"5\x9E\xF3}\xEE=\xE7\xCC\xD4"X	\x9E\xDBn%\xA2ׇ\xCB\xE7\xC6\xEBI\xE6n\x9CC\xF6K\x9D\x9B\xEC\xB1\xCD\xCF\xF2\x8F\xD1zY\xFB\xFD\xA3\xB5L[u\x96Y!\xC9W*j\xF1\xFBt\x8F\xC9Q	\xDFa\xDB42^\xBC4\xB1\xC2\xF5\xE6t]ђ\xEB\xD6\xEB\xADG\xB1.\xE1\xF8z\xDEph\x8D\x9DU\x90x!#\xAB\xECn\f3\xB9s:\xAF%\xBC\xA0\x8A\xF9B\xD7 at ad`\xFA\xB2Q\xEB\xDC\xED<\xE94+\xE6 \xA1y\xFC\xD5j3\xC7@\x83(\xA4g\xF5>\xD3Ͽ\x8D\xB6\xF3\xBEi\xF9\xF1\xF9\xF6G\xD2F
+endstream
+endobj
+53 0 obj
+<</Length 3112      /Filter/FlateDecode>>
+stream
+x\xDA\xED][o\xE3\xBA~ϯ\xD0/\xC3\xD8\xEC&\x9C\xB7y+\xFAT\xA0-\x8A\xBA@\xFBҿ\xDF\x89\x92e^D\x8D\xF7\xC4\xD9sd NlZÏs!i~O\xE4\xF0\xF7A\xDF^\xDE~y\xB3z\x88":\xED`x\xFF۠\xF0
+\x89\xBF\x95\xA4<Hc\xDEOß\x9F\xA4tߤ\xD4FJ\xD0\xF8\xC0R\xAA\xAF\xD8\xA7\x87\xD1\xD3u\x80\xD79\xBA\xC6\xE3C\xE1sz\xBC>L2\xFA
+\xAF\xF5\xCFy\xFFG\xA1|m@\xD8h\xF2QX\x8B\x8F\xB7g\x9E\xF2\xD1<?c\x9E\xA6z\x87\xC6 at 8h\\xF3\xBB8 i\xE24\x8F\xF5\xB7\xF9\xF8\x92t\xC1+\xF4Ë„`\xDE9\xD2\xF0\xCB\xFAz\xF72\xB5Z\xD2u\xB2n\xD6\xC7\xD5\xF4g\x845\xA5U\xBF\x8CR2\xB9E	\xA9\xE2\xEC\x857x\xE9\x84\xD2q\x960\xEE9(\xB2\xD9T\xE2h\xB4}\x9A,\xEF\x937\xE0e\xB2\xF2\xA4y\xB3vO\xC9Go\xC9c\x8B\xFF\x96<KZĹ\xB5\xED\xD7\xF9
+m\x9E\xB5O\xC0d\xD5\xF3\xF8\xDA\xEByH\xA3\xAB\xCC\xF3Ô¡\x9A\x83b~W\xBD\xA4\xD1\xD3;\x93:\xC9u/\xA39]\xE1\xF4Y\x85\x843\x86\xDFjÔ™Y\xB4\xB0)>\xD6\xE6\xA5b\xB2~\xF9.\x82P\x8B\xFB\xA4 at 8\xABFU\xB3\xBE\xA7\xF8{IW\xBFL\x8F\xD1#)\xF5\xD7o\xCFyÓ›3\xD1y-\xB4u\xF3x4\x9C\xE3\xDE\xCCft\xD3\xEBqv\xC14\xE3HC	\x8DÓš\xF6L\xD5n\x92!Ù³\xA3\xD2\xF5.\xD2\xF3\x868(\x9C\xCEG\x83\xC3(\xD6Ñ®\xE2\xFD\xBB\x91OiqЫ\xD0\xF36E
+.
+\xF3+\xF3l(\xD8Û‹\xCC8\x84\xD7\xF7\x95=\xCE/7X\xF0\x9C\xFEzz\xF8Ï€\x96\xFE>\x8C\xE6~\x90\xC2\xC4`\x87\xFF
+Ԍ?j\xF8'\xFD\xFA\xE1z\xE8-\xEC
+\xA7\x9E\xC5>\x85V\xE8\x96á¿£\xA4\xE0uv8M/-\xCEW
+\xDE\xFFBq/\xA4ꍳ \xB6\xFDcxx\xFE\xD4FW\xA3		\xB2?5p\xE6\xF7km\xE8\xAA\xE2yG\xA7:\xDE\xF2\xBC\xDAx\x9D\xC8ȋ§K4Ì»\xB4-O\xAEV\xBC\xEC\xEATǬ\x98z~\xCA\xC5Y\xF1B\xFCTE\xA9\x99wi\xFBq\x90\xB9\xE9q\xCA<\xD12\xF3òœ®¾2\xD4^\xB5\xFF\x9AQ綽\x90\x9B!\x9E\xC0k8U\xB3.\x8D\xFB&]\x95\xD0\xDAB\xAD븎^(삐\xC6ಿRnݦ\x83\xD0\x97dz\xF4^\xB5\x8D\xF2\xB8"\xA2\xFA:¤w\xD9ש\xBA(\xBAn+4v\xC4\xC7h\x80\\xF0\xD4 X\x9E_4\xCER\xBF\x81\xFEV8\xDC0\xCC`\x9Dph5:\xA2\xF0N\xCB\xE8Zܼb<\x8B\xEF\xB6@)zj\x80T\x8C\x8C[\xAA\xD3Q;n\xDDe_\xA7*f\xD5\xEA\x8B\xDF \xDB\xE7\xA9≖}\xAB\xFBß•Ê—}\x9D\xA8U\x93\xD7v\xC1}\xDA\x92\xA7D\xD5\xC2՝\xB6o\xE1]p
+\xA0\x92!\xD2\xC8\xF7\x90Sk/\xAF\x8Ee~\xBE\x9F\xA4\xB0i\xE5/{85\xB0\xAA1\xB8<OA\xFB#\xA6\xC8\xFB:\xB50\xAB\xEB\xD2\xFC\x9C+K[Ì©\xB1\xC5׌\xBE4.\xFCCQQ\xF4vj\xE0V\xB04-+\xD7e\xA7:R\xCD\xE8K#\xEB\xA3ooz\xA4\xCF\xF5\xCF5ÛŸc8\xADmWÏŒ\xB9\x83S\xA9j\xEF\xA5q\xD9\xD0~\x93\xA9\xB1\xF4vj\xE1V\xAC\xBF\xB4U?\x93\xE2Ï¿\xC7\xDF\xF3!\xEEq>\xC5=\xAE\x8Eq#eU?(ke\xF0X\x87\xCBi\xB0BÉ…\\xD1a:\xF8^j;\xBC\x83\x8E\x9B4\x8Eh] }KB\x8D\xE1E-<^\x9DIG,\xD2&\x9C\x91F(\x98xF\xE2\x99Û–\xE6\xD0}<\x85Ç·\x98xÚŠ M.e\xDF\xFAx\xC6	jb\xE2\x81\x86\xA6Å¥
+=<\xABEP\\xFFD\xA0\x97R\xEEk\xCFEa\xD8\xE6\xF4V \xF8B\xEA\xB5\x87Qr\xC3E+4\x8AC<\x8F\xC1f\xCDժ'\xA2\xD3\xD2̠Yb\x9E\xEDD\xAEى\xA3\xD6\xF5\xA9\xBD U\xD1hq7ĕ\x86\xA8\x8F\xDCMk\xF9<(\x93\xD32\xC7\xC1x\x9D\x96\xC2\xF2t'ŝ\xF3\xF90ΧP\xFBX\x94O\xA1\xFE\xD1\x9F2\xEC\x8FC\xF8\xB4\xFE;\xDFsk\xBE\xE7N\xF4w\x86g\xB4\xC1\x81\xA9\x9D;\xA7C\x9C\xCE\xEAx\xB7\x87ӑ^X<\xB2\xAF8\xFDeNߘ\xD2-(\xF9a\xCE
+Љ\xEFYRy\xDER\x86A\x98d\xA8ͤT\x91\xD7#E\x82J\xB3\x91
+\xA2LJA\xE5R\xC6u\xE1\xD0\xE6\x9E\xE8	:E\xC5B\xA8\xCD\xF6\xAC\x84\xB3\x8A\x8Bh1\x94
+\xAB\xDFc\xA1\x8B\xE8$F&\xD09!])\xF5\xBAKG\xEF\x84e\xFB0h\x8A\xEAÒª]\xB4\xE0qÞ°$\x8AP\xF9Ò¤]\xB8\x88\xB3
+$F(}\xF4\xB8\x94r_{p Æ‹\xE7\xC2)\x8CPck\xEE\xEBh\xCAt\H\x83\x8B\xBA\xB7|\x83\x82\xB1\xC2HË…\d\xE4RDI\xEE\xD07
+\xC0\x85\xC4m\xC3ks\xA5Q\x9D*p!\xE75\xA2\xA3`Ed7 I\\x83u\xB9dOc#\x98\j\xB1\xAC\x818G\xE0\xE2\x81U!\x{17A345}\xEE\xF3Zq\xB1\xAC\x98\x8A-{\xBA\xE1Ϋq1d\xE2y\xA6\xE2\xDD\xF7] pmb\xE2%V\x82N\xEA5\xAB\xBC\xA4\xCE\xAC\xF2\xC87_0\xCB\xEF\xAA\xF3\x9E>\xED\xF7\xFDe\x9B\xD7t\xC6ci2\xD0&P\xBA@\xF8}f\x9Eo 6\xF0l\x82\xC3e\x9EU?La%\xE0\xEF\x8C\xF2\x870\xCA\xE7|\xCD\xE3\xD0\xC8g\x9D\x8F\xC4\xAFR\x91\x8FAWR\x91\xEF,\xF1mY\xE2F\x8E\xEE\xA1i\xE3\x86M\x8E\xCD#׍rXb\xB93o\x8E\xCB4\xAF\x8Eq;\x98f\xD0FD~\x98iVSv!}s\xC3Lz,\xEFЅ8d\xA0L\xA9K\xA9
+b\xE4\x82eF!<\xC73!\x89\x8BQ*\x97\xDAH\xBA\xBB\xA0\x99\xD1\x9E\xAD%8at\xA1e\x9F\xA548\xE1\xACu\8K\X!\xD4g|1\x90=(.F\xB5+\xA3n\xA7=}\xCAZ.\xE4\x98\xA9]\x8C\xA1!\xF6\x874 \xD18_3\xA9\xFE\x9D\x90Nx\xB6\x82\xA0\x88\xE7)\xDCu+\x84\x84[A\x9C\xAATp\xCDLtp\xE1hiX\xCD\x9A\x99\x96\xE7È…L4s\xE1B\xCD̃\d\xDC-b0\x9D\x99x\x96\xC2	\xA5K\xA9\xC5\xC2+\x93K5X\xD3<,\xE3p#+\x84:\xEC2\xE0\x96\xE9\xB8H\xE0\x85\xC1]6\x93\xDAC.Ï´4o\xBC\xA5[\x8Cr#.Z\x9A\x87\x87; \xE4R\x94\x91\xDDË\x9E\xB8x3\x99-\xF1\x9DE\x8A4\x9C)\xEBU\x8A\xF4\xCB9yz7\x91m;\xF9\xF9^ ~P\xCA\xC7\xD1$\xB2u\xC4Ù‹\x86\xBA\x8A\xC8\xCEy\xD4\xDBdPo\xF2\xA87#\xB2;\xBBw.\xFB at YÓ¹>6Yz\xD3\xF6\xCEkwl\xFEG\xA6\xB6\xC6j\x8E\xD0>\x97}4{u\x93\xE63\x88\xEB5zC꺶}|J\xBA\xB3\xBA\xAB\xBDQ\xD5܈\x9C\xEE\xB9\xE2\x96\xF4\xF4\xA6/n\xCBM\xAFNf;\xB8\xE9\x91 at u\xB0\xE6\xA6Ç¢\x8A1\xD5BK\xA5\xDF\xE6Bx\xBCsX\x8E\xECx\x84v\xA1\xE8\xB9w\xD0w\xC2j\x9DKmz\x9EW\xC2[\xCD\xC5\xF3DG\xB8\j\x83^\xF0\x82A\xCF8.^\x88B\xC6kÔ‹ W;#\x897\xB9\xD4{x\xBEm\x80\xD3FC\x9C\xB2w3\xA9\xE7VYtJq#\x86rÚ•W\x85\x94\xEE\xE3#@\xB2m\x8A\xAB8\xD8r\xC6l\x93\xDC\xE7t\x97\x835\xC6Zl\x8C\xD7\xF8\xD1\xE1\xA2\xC3Es'S\xD3p\x8FqFyÅŽ\x9CM\xDEU"\xA7\x8F\xC2X\xF0\x94\x89\xAD\x90V]\xE9E\xC0\xD9AY\xCD<L\xA2\xAD\xB3WD*(\\xCB#7j \xE7S\x80J\xD4\xEC\xF2#\xE0\xEC0\x8Ai\xA8\x85\xB90\xD6\xE3\xE5\x8!
 6
+\xDDrp\xE0\xAFXOq
+\x8B\xE0\xB9a8\x9Dbi\x95\xDB\xC5x\xA7\xC2q\xED\xB9lϸȁ\x8C\xFD\xF2;\x99\xD4N\xDA`\xB0\x81FB50Ju\xE0\xB6B\xDBX\x86\xD1\xE6\x97\xD5x\xD3\xEC\xBA<\xE9\x8D\xE2G\xA2\x9A\xEF\x95:~"\xCEy\xCB\xB7K\xA4\xDEp\xC6\xBCR\xC7g\xF3\xCF\xF50<n\xF1\x8E\xEA0\xEE\xC5<\x8E\xC3_7\xBF\xD4q糏\x92\x96\xFD\xF3\xB0Û—$n\x98\x85\xDDsǽ\x9E\xC7M\xB9\xEC︴\xF1\x8D9\xEA\xE5t\xB7\x83\xA2Ö”(\xF3\xEC\xE9\xF9\x9F\xF4\x8C\xFF'&\xD5a\xCD\xDB[5Wѡ˹\xD4\xE1\xE9<\x87\xE8Q\xB9/\x99P\xEBh\xBE\xC2
+h.\x99`\x84s9X\x83WY\x83\xC5(B1\xC8.mL-<[3\xA2\x89\xC4\xE3\x81)")r\xDBoeÚ­ 12\xD0Xa\xC0VB\xE6
+\x8CJ0f\x90J\x94\xF4\xB6Юfq\xB6K.\x98\x8D\xB8\xDA\xC2o\xED\xA4\xCC\xA0\x8B\xE3W\xD8y\x808m@\x95\xBB \x83\x81
+͘\x97yM\xB0PM\x92\xC8\xC4%Eت\x86; 5\xBE\x90\xC0ĵсɅt\xCCh<wm\xE2\xB13\xA1\xD7]\xDAѝo\x98\x80\xB4\x9B\x95\x80z\xA0\xC3Ý…\xB8l "\xCB(\xE5<W\xC9$wVɤZ~Iܶ\xB8.V"l5\xB9\xBE\xC86\xA6\xC5ך\xC0\xE6k3\x88&]\xABP}\xAA\xA5se:\xF0=\xF8\xF3\x80\xEFd\xECge\xFFÞ¦\x8A\xC5-i\xD6^\xE3\xE39\xD5\xAB\xFC\xB4jc,\x9F\xC0\xAC6F\xF2\xE4j\x8BR\xB8\xF3\xABϯn\xDC\xEB9ź\xB9\xC8\xDF6\x85\xF8ί\xFE,\xD9\xC3w\xBE\xF5g\xCE%\xAEß‹\xBB}Í‹r\xCF)^\xEFv\xB6x\xA2\xC5!\xBBk[&\x93[\xA9w\x91\x83\xF7\xEB]\xC8Bh\xDFw\xD0\xE7j\xCCLDt\x98/\x85v\x94\x9E\x98\x8A13\xC1h\xB5p\xA5\x94Þ¥\xDFT\x8C\x99\x89h)8\xE4R{K8OÕ˜\x99\x90g
+\x84+L\xEA\x9D\xF0>p\xE1\xC2\xF4O\xD3+1\xB3\xA3\xBEF*\xC7̄\x8C}_	\x9A]\xE5'Ree\xE4\Y\xF9\xAA\x991WVfB\xA6\xCA\xCA-w@\x82\xB6o\xB7\xEC\x9C\x82R˽\x95\x95\x99p\xA9\xE4\xC5u~L%/x\x90˚L\xF9\xE0N\xED\xAD
+\x91Is\xA9}%/r\xA9\x95\x80\xCAÄ›*X\xAA\xF5\xE1Rae&\\xAA`\x91I\xED)\x9D
++3\xF1R\x8B\x8A9{x\xA9\xB02/U\xB0ȤvԾ0R	\xE3\xD8\xE1\x92hlQ鮩}\xB1\xEB\xDF\xE6\xFDO$6\xD1\xD3r\xF8\xBE\xFC}}\xF8?\x98^6
+endstream
+endobj
+57 0 obj
+<</Length 2991      /Filter/FlateDecode>>
+stream
+x\xDA\xED]\xDDn\xE4\xBA
+\xBE\xCFS\xF8V\x95H\xFD\x8B6g\x93\xCE]\x81\xDC\xBD*\xD0Su\x81\x9E\x9B\xBE~I\xFF\xC5cÉ–9ٝ\xF4d\xC4\xC9Dc\xFA\x93HQ\xB2>Ó”\xEE~\xEBt\xF7\xFD\xE1\xF1\xE5\xE1O\xCF\xBA\xA4\x92o\xBB\x97\xBFw\x86\xBE\xD0\xF4Û€UQC\xACV)\xC5\xEE\xA5\xEF\xFE\xF2Yk\xAF\xE9\xF8\xA65\xA0\xD6\xE8\xA0g\xB56\xBFPy\x84\xF1<K\xE7y>'\xD0a\xE83\x91Ώ\xA3<Ó¹\xE1\xCB__~\xA5Z\x98P\xAAX\xAB\\xC2m-\x9C\xA3\xE3\xF9\xC4\xCF\xDB\xDA|\xF9\x84\x88\x9F\xC7\xFE\x86\xEB\xC086r\xBD\xE6o\xA9B\xD3X\x93@\xE1\xDB\xFC\x8D\xFD:\xB5\x85΀\xC7\x9F9n\xE1\xD7\xF5\xF9\xFEq,u\xDCfj\x93\xF3s{|\xA9=Ö£r\x98i\xD3 \xA5'\xB3<\xBD<\xBC\x9A!Љ\xBE\xF36(\xF0\xD0\xFD\xAD\xF8OG'~\xB4\xC2]\xF7ߎ\x8B\xE9\xC7t\xFF\xE4_\xBF\xD2/R\x9CÕ–\xBF\xD2*\xF8\xE8\xB1\xD3ʘ\xE0=\xFD\x85\xEE\xF7AXwh\x956\xDEu\xFD\xF8\xAF3J\x83
+\xA1\xFB]!(\xAD#\xD8r\xE1,He\xFF\xE8\xBB\x87?T\x80 \x83u\x86\x91
+)e@Ï®\xD4\xEF@\xCEß—\xCAD\xB5\xD8Q\xC3\xF6Z}r\xF9\,|\xB3:X\xFBK\xF3\xFBK\xE3\xEC\xE8})[>\xBC\xDD\xEB*\x940\x8A\x9F?\xBE\xBDÙ•\xFA"`I\xE9K\x99\xAC\x9E\xC1G\xBF\xB1ËžÒ—\xCF|\xF6ۍ0A\xA1JÚž\xCBN\xA3W<a\xC2/A\xF5\xBCJ\x9A\x8Ft\x80d\xA7\xF6\xE0l\xEC<(pÂ…|T\x91\xA6\xA4U\x83\xD7e \xF7*}\xA6&\x86G\xD1\\xB4/c,
+]Z\xA7\x80Z \x82-+`{\xA5~q\xF9|Q8K\xC9\xDB\x89;\xE7\x95'5\x98A\xEF\x991\xF6t\xA0h\x9AO\xE9U\xFC\xBC\xE23\xD1~\xA4\xA0dL$\x9C\xC0_\x81\x9B\x8B\xF6E\x88\xA2Nn\xD9\xE2sn_\xB0Äž~\x8B3\xE5\xB9\xC6\xE7\xA2\xFDHQÃ¥\xB9\xF1\xCA\xD6g\x97\xEAw0\x8B*/N\xC8׍\xBCÙŒ\xD2\xEF\xCD\xF7ÅŠÌŸ\x97\xBA\xBFeί\xD6\xEF\xE0{\xE7\xF2y\xEA\xCEW\xEBd{\xA1~\xB08ÍŸe\xB6\xD9SI6\xE9\xF4;w%K,\x85K\xFF!\xE6Y\xAE\xD6\xEF\xE0,\xB1-c\xDC[\xAA\x92_\xAD/\xA3\x96\x8C\xB1\xBE\xF9\xCE\xF5b\xF6\xEF\xF7nJFx\xED\xD5Ó°\xF7C3_\xAC\xDFA-a)\æ½·;\xCEr\xA9~\xB4`\x83\xA5\xACx#K?\xFF~\xCF\xC4O\xF3
+\xF1\xD3j\x898\xAC롸\xAE\x83\xB4d\xE4\xBB\xAB\x92v\xF3
+h%_y\xAD;\xAD\xDDa\\xBB\xF3z\xDE>\x8Ek\xE2y=\xCF\xE7\xF19\xCEL\xE7pY:\\xF7R{h\xF8\x87\xF5\xDB$U\xAE+\xEAHuM[)\xFF\xCB1\xB5\x90|P\x8Ae\x92
+t\xC1\x8D\xAF\xE7\xE8l\xA4XH\x826\x93\xE6E\x8E\xF1\xACQ\xB6`\xBD
+\xF53\xED3/\xE3\x8F\xF1\xF5F\x8BR<o\x95\xC1\xDClu\xB8\xC0t\x8F-j\xE5C\xBC\xA6u\xC9P=\xA3/\x91\x9FA\xA1\xA7T\xADguP4t	\xF1,\xF5\xE7
+\xBD\xE5\x8B\xFA3)A\x8AN\xE9d\xAE0\x9DE\xA7\x9C\x93z\xB8\xA5\xFE\xEC1]a;\xEB@)\xF5f\x83p<a\xCE\xCE\xA9\x8F\x83=IP\xC9]\x97<d\xF2_V\x81\xE9T\xFC\xF2Ɂ\xFB<~\xC3\x86\xF1\x9B
+\x99\x81f:\x84-D\x84
+\xA2\xA3\x86\xF8\xAF\xE3Mw\x84\xE1\xB8Tl\xECི\x83K\x9F\xFF\xC0T\xE0E\xFF\xF9\xBC\xDFν\xFB=1;*h\xDC\xDF\xE6\xFE3\xDC\xFBWy\xDE\xD0\xF8\xBF\xC6\xFF5\xFE\xAF\xF1\x8D\xFF{\xFF\xB7Zޝ\xE1\xFFtP\xA8Ӛ\xFFs8\xC6\xC9q3\x8F\xE31\xC7\xF2Hy?\xEA3`2*\x92\x86\xB6\x80\x95\xE5s\xA2\xA5zȤ\xDC\xF3>1\xF0
+ɼ\xE1\xB00A\xA2\xA1\xF5\xBDˤ\x98\x8B\xD8\xE3uV\x90\xE0\x94e\xCEK\x89FÌ¥\x9E\xAAp\xE8\xA9\xDCJ\xE1,*\x88\x993W'\x94ꐻ\xBA\xD2Ó \xE0]ÉŽ'\x94\xB4rÌ´\xC9 \x83W\x919Ù­ROAF
+R\xC8Ä”s\xBC\xAE\x954\x94(\x93\xD2\xAD\xACNyo\xAD\xC27Rn280*e\x96`^\xF0D\xC9K1R3rß°\xD4\xCBS\xC39\xC2\xE4&\xAC\xC29G\x9DT:\xD8XO\xA3\xA2\x85+Z\xE7iZҁf\xF5]r\x8Ay\xFDġ³ 
+\xDF>\x93\xAC\xE0Z\xDCJ9\xC4\xF1\xC9\xFD\xDAJ\xF1\xACW6\x99\xADT\x85\xD9\xBAS	`\xA4X.\xA8\xA8c&\xF5T\xD7%\xCD\xED\xE0\x93ob\x92]d^\xC4\xC0.ѧE*\x99If!\x95\xBC\xC5\xD8\xE5\x92\xE9>\x81n\xBF\xDC5u\x8F\x86j!\xA9\xF7L:W\x8CѢR\xEF *5o\xFE}\xA5f\xEDo\xBC\xF4\xCF\xE7\xA5ˏ\xBB\xDE'F\xB58ܐ\xA4>\x83n\xB2\xBA\xFB\xF2\x96\x8C\xF5\xE8\xEF\xC0P\x8F\xC0\xB7\xA7\xA3\xDCw\xA0\x9F/ݸ\xE6\xF7\xE5\x9A/\xADq\xDC\xF2\xA5ܖK^-\xEFNpɎ.\Xs\xC9\xE6q\x8C\xE5\xB8Qx9\xE3\xF9]̡,UVʤh\xD97W\xAE\xAC\x94\xAD\xE7\xA3\xDFJ\xEDqb\x8BT`\x85I\xB1h\xA5l\x98\xA7\xB8\x94\xAA11*D+\xC5Jv жR'\xE2E\xB5U1\x82\x8D\xA6”\xB7\xAD\x8EF1\xED#\x83\xA3^G[\xA9=\xEAm\xA1\xC0\x81\xA6\xE7 \xC5¨"\xBA\xBC\x8B\x9C\xBDM
+
+\x9D\xBD\x82\xE7\x9C˜k\xE48x\x93Yso\xC4z\xF4^\xB4Xo9\x80\xF1F\x8AF 4m\xA4j\xD3\xE4 6D)9\x80\xF3\xFE
+\xB0\xDAф!unK\xA3\xAD1\xB9\x9B>UBn\xBDB+unKӇE#\xEC\xFD\x96|Ƌmf\x91\x9F\xE1\xE4\xC3\xEAS]\x8F\xD6*\x9A\xE3\xA4x\xA9\xF2>R\xC7#`	\xE1 at 9S\xA5duN^\xB0\x89\xBA\xC5]\xAA\x94\xBF\x91R\xA5\x8C]\xAA\x93WΚ\xF6\xEA~\xE3IO\xFAAx\xD2\xDA\xF3\x83\xF6{\x81\xFFFdi\xB9"\xF7ƞ\xDE-o\xAF\xF8\xB7W\xFC\xDF;ķX\x91;\x8E\xEF=4L#\[po\xEE-\xB2\xABE\xE4	B\xD6\xA4\x89\xB8
+\xEE
+~J\xD0\xF7\xBC"d+D\xAC\xA3\x8E\x861\xBBbe\xEE\x8DB\xC8\xEAqh\xBA\xA1p\x85x!\xA8H\x9Db#u&\xDCl"d\x85x!\xBB\x95:O\xC8\xCA\xF0fBv#UM\x84\xE0\x95II\x8AE\xDE1\\xA1˙\x91\xE2M\x8C\xECF\xAABڣ\xB5C\\xB1\xCBѸ\xE2\xA0\xD4/km\x9BY!\xDE\xC0\xC8
+[F\x90\xC4@\x81\xAFi\xD8D\xC8
+\xF1&B6s\x80J\xBE\x85\xA4B\x92:7S\xB81\xE69AZN\x84\xACo"d38E\xC8
+\xB1&BV\xA6G\x8DNA\xEAؖ\xEEtn\xB3S\xB98\xC4Y\xEA\xD83\xCB\xFA\x88\xE7S \A\xC6n1\xF6\xC9X\xAAT\xA2J]G\xC6\xEE\xAE\xEFnF\xC58\x97\x9Bs\xB1\x87\xEB\xBC\xC6\xC4\xDE_\xD5]\xB7\xF8\xE9\xC1\xAA\xEE\xF0\xD3)\xD8C7h\x99Z&\x85͹\xEE=\x80\xB8\xDB\xE4
+\xD5gBw\x9Ao\xC17k\xBF\xBF[\xEB\x82\xFEq\xAC3x˥\xD0\xE8\xD6\x8Eq\x8E\xB5\xE07
+k͜\xE2\xC6T\xEA\xEB\xF0\x95ʔ\x91\xBF̓\xC04\xE7I\x98c[y\x94y\xDFΙ\xC0{\x8Fĸj\x95\xE2\xB2|\xF5\x8A\xBE\xDCb\xD4"O
+\xAD\xAB\xB7B;\xF4\xC4,\x92\xA2\x92,\x81
+\xB9\xD0S,\x91y\xC0\xD1P\xE3\xF0B\xEEFj\x871[\xC1qƇ\xE4\xC4p\xC6*\x9FK\xB0fkHp4\x84\x80\xB5\x8A\xB9T\xDDz\x9C\xF1A[1\x9C5\xB4@\x84\\xA1\xA7Z\xE8\xC85J!\xF9YA\xAA\xDAeУ2h\xA5p\x9E\xE9c\x9B+\xF4T\xC7\xF4\x8A!9h>4\xEC\xB0\xF1k\xB8\xA4y\xA0\x93\xC2%\xA7RA\xEA\xE9L\xAD\xF6
+\xA3t\x88\xB14D\xEA\x82T\xE1h0F\xF1\x88f\x87\xFCL\xA1\xA7Z\x88\xA8\x86;$\xDD\\x98\\xEA\\xB7\xB1\x96\xEEL0J!9\xBC uÎŽ\xDE\xD18,\xBD'
+\x96\x9F\xB1xgj<\xECc\x97\x82\xE5\xDC\x98\xB0Q\xB0\x8D\x82ml\xA3`\xFB#(ؽ\xBA4V\xB6\xE5\xB7ml\xA3`\xDB(\xD8F\xC16
+\xF6\xFF\x83\x82]-OP\xB0\xC0)\xF1b\xAB*\x9CR\xD1rzZ>8\x92U@\xC1\x9AK\xFEuP\xE3_I?6l\xA5*\xF1a̾rb%T\x8E\x8A\xB6R\xC7/"3\xF9
+\x8A\xAB\x91\xAFch\xAA\xAC]\x9A\xCA4\xA8k
+M\xDDHUw\xDB\xB2\xA1\xA6\xECY\xB3NijRw
+Q\x8A7E\xA6fM\xAB\xE39;\xA4\xBB\xE2M\x91\xA9[\xA9Z\x86\xA7\xA2\\x97cl\xAA\xAC7\xCE\xE9\x84PSz\x81+\xCCF>t\x92\xE2M\xB1\xA9\xA99/8/8\xA9gϱ\xA9\x99\xD9\xEAx\xE0U\xD4R\xEF\xE6$\xBC1A޾j\xA4\xA9\xA9w\xCF\xC9\xB2~r"\xD2\xD4*/$'\x96\x93\xDFU\xD0\xF1<\xC9鿊I\xCE
+\xC4.\xC7i\xE8n%\x9A\xD4Ò£~\x94\xD7\xFEL\xD2\xC8Ζ\xB5\xBD\xF3[\xB6\xB3X\x93;Np\x97S\xDB;\xFF\xED\x9D\xFF\xF6\xCE\xDB\xD3\xEB\x8FI\x82\x9A\xA7\xBD\xF3\xDF\xDE\xF9\xFF\xB4ZD\x9E`IML\xCA\xE2E\xA0*sN;\xFA81\xA3q\xFC\xDFMIX9 s\xB9\x87פ\xADv\x92\xADo\xF0\xC5\xF1\xB4!@V\x81\x98h\xE60[\xA9\xA3\x9D\xC6×»m%\x824RH\xF4\x99	\x9D\xDB\xCA\xFAk\x9B\xF4l\xA4\x8E^\xB9]Az\xDE\xF7]\x8AhB\xD61od}\xAF-\xA7&)\\xA5\x95\x84\xB3\xFBl	\xE1\xAAh}\xDEi\xAAp)Q=\xBD\x8E\xDF<\xF7&w-8\xB5\xEB\x95\xF1餐<\xAE\xBB\x95:\xB9\x93\xE25\x90<\xBF\xBC\xAE\x93r\x86O\xAC\x92\x87q\xD79\xFF\xBC\x96r&CP6Ú“O\xC0D\x9Af2\xA9\xEA\xEEWV\xD6\xE8\xA5\xD4	.\xD0)P\x8Agi^\xF2Ò¦M[f	\xA1(\xE2V\xAA\xF6\xF0k\xDA2K\x885\xF1\xBA4\x8F*)#v\xF1F\xAFn1Ff\x979[\xDD}_\xFE>\xBD<\xFC|׉\x8F
+endstream
+endobj
+61 0 obj
+<</Length 2726      /Filter/FlateDecode>>
+stream
+x\xDA\xED]ÛŽ\xE4\xB8
+}\xEF\xAF\xF0\x8CV\xA90`{\xA7{\x80}[\xA0\xDF\xFB 	\x828@\xF2\x92\xDFU\xBET\x95.%\xD3=\xED\xCAN	\x98\xEA\xF6\xA8D\x8A\xA4$\xEB4e\xCB\xE1o\x83\xBE==\xBF=\xFD\xF4j\xF4D\xB0\xDA\xE2\xF0\xF6\xD7A\xD1\x92~*\x8D\xC2K=8\x94"?\xBC\x8D\xC3\xB4\x92>_\xA5\xD4 %j\xFAP\x81A)\xD5/T\xA6\xE8\xA9R=\xEB8\xFA(\xBA\x8EO\xF5\xFD$\xA3_\xA9\xAE\xFB\xF2\xC7ۯ\xA4\x85r%-4\xA20R-\x8C\xA1\xCF\xEB\xED?\xA7\xDA|\xF9 \x9F\xA7\x92\xF8M\xD4!⠏z-ߒB¤\x89\xA3\xDF\xFA\xEB\xF2
+\xFE<\xF7\x85j\xE8\xE7	^W\xB9\xD8ß/\xEB\xDB\xE7\xA9\xD4\xC4>S\x9F\x8C]\xFAcK\xFDA\xC2 at fU\xF0')9\xBB\xE5\xE5\xED\xE9\xECG\xED`\xD1	m\xF5\xF0\x97\xF1\xE9\xDFU\xFC6\x9Cj?I\xC1\x9B\xE1\xBFC,\xA6j\xF8G\xFC\xF1+\xFD á\xC4\xF8\x95\xCEz\x83J9k\xE9\xB7\xFEs\x96\xA0\x90Êša\x9C\xFEk\x94\x90\x9D\xFEI-8!\xA5\xD7X.\\xA9\xEC\xEF\xC3\xD3\xF3\xF0\xF4\xDB
+Ò¡QY\x91QN\xE8YKcr\xF9\xBET\xC6Ò¢b\x86\xB4\xAD\xB1\xB9^\xBF\x87"\xD1\xAB\xC6k\xFFTL\xBF\x96\xAD\xEF\xF7Ç¥
+%Ì‚\xED\x97\xCB\xF7k\x91\xB54Kv_\xCBxZ\xDCpF\xFC\x8C\x89_jF_\xAFc\xED\xF7 _54V\xD0J_\xCAÞ«\xC0e;c\xAAh\xEA\xB5p\xB3Tfh\xA7\xCE\xFDWBk\x83~\xB0Zh#\xB5\xBB2\x82\xF5B\xD0\xC2t\xD1\xE1\xCB2\xED\x85p\xE6,\xBD_\x93\xBC\xAD\xB1\xBA\xF6\xFC\xB2\x8D\xD0\xD4\xD0w\xD0#mi\xAC \xAE\xD7W\x85\x8BK#,\xAD?0+,\x99A\x9D\x91y\xA7ft\xAD\xAD\xFE!\x9C\xC57\xE7\xA2c\xA4`d$\xB4݁\x9B\x8B\x8EE\x88\xA2MWn\xD9\xE3WK\xF1X\xF0D;\xC5t\xEF@\xCC\xDA+\xA8E\x93\x97\xD6Н\x9AdM\x8DÌ¢\x8A\xF7\xBE\xD5)[v\xC6\xDA}AQ\x91\xE5z\xD5}\xBF"YSc\xB4\xAB\xEB\xF5Ü»\xF5Hk\x80Å©i\xB9\xE69\xA6\xB2l\xE5k\xD2X\xB9O(\xB9a-\\xFC]\xBAd\xAD\x8DÜ‚'Ö¢u\xC6{\xBF{Ö¦\xC62d\xC9k\xE1\xBBo\xF5\xAF\xEE\xC6\xDA\xEDC\xC9琞g\xC0\xEFâ•¥\xB1\xB1\x82Z\xF4\xC0Z\xB8.\x81\xEFw\xCB\xDA\xD4X-\xF8`-+\xDE\xE7Ò¿\x9D~.[\xC8O\xCB\xF2\xD3\xC5&\xF2\xB4\xF3\xD7ŝ\xBFV@\x9BJZf\x83\xDE\xEBe\x8F\xAA\xFDyw<\xED\xA6\xE3\xFCzç¿”\x9Fv\xFD_\xE7\xBAv*Ó¡\xB83\xA6}\xB0\x9F\x81\xA9K4\xF7\xEB\xF8\xEB,XV$\x99\x8B\x9C\x9CHE\xD56!\x95\xA7e\xC6r!5
+\xEBS!\xB0\x9B\xC1\x85\x8A\x8B\x884br\x9F\xD8_\x9Aph\xF0;h(\xF7v\x90\xE2\xD8\xF1;HAmK\x8CK\xD2\xA1\x8C\xE1Bz\xF2\x84y\xE04\xE1H \x90\x8B\xAC\xA0\xFB\x99T*rc\xED\xA2\xB4±;\x88\x8A<\x91wP\xEB&M,N\x83\xF0J.lG
+\xD2\xFC\x86kTD\xF2\x84\xF4y7A\x9A\xB8N\xB0{I\x86\xD3Y/\xF5\xCB&H\xEB\x84\xF2\xDC^\xAE\xB2\xF3"\xD0\xFA\xD0\x9DU2\xBA\xC4\xD8T\xB2\x85\xA7\xA9!\x95\xBA1\xCFt\xADq\xDDc\xE2\xD1\x85AeR/\xB7\xB1\xE8&\xC2i\xC5Ţ1\xE1-ݛZ+\x82\xD3W\x842E
+-\xAB\xD2<S+\x91\xE6\x86/\x9F\x8C6\x9F\xE7o"\xB1\xED\xA6o$\xAFvt:ØH\xDE\xB9k,\xD0z\xE2\xFF\xAC\xE4n\x8B\xC7\xEA\xFCn\xE7w\x91ß½\xE9\x84N\xEEvr\xB7\x93\xBB\x91\xBBV\xF1A\xD9Þ“:\xB9\xFB\xFFA\xAA\xCE\xEFv~\xB7󻜿\x88<(\xB9{\xB1\x89\xDCB\xEEJ% \xD4%\xB93Q\x8B\xCF\xD7$\xEF\x89MQSY\x85\xC4=\xEF|%\xED\xC5C\xD6zcO\xEE\\xEC~*U!\xE2V)O&E\xC7\xC5\xF2\x9Ejc*u\x83\xA4Z%\x83\xAE`\xB9;\x8D'\xA6'\xEB[\x93KeD\x86\x87\xA7\x95È…6P7T[\xF8H\xC2\xF0\xE0\x80\xA2\xCF\xF9T
+n$\xD4-\xA1\xA5\xE7ba\xBA\xE0\x80\x97v\xDFL\xCEX.\x9E5\xC2\xE7\xB6\xDC\xE2:gH\xE4\xE2Q at C\xEE\x81
+\xA1	Ao4\x8F\xFA\xC4\xF2\xE6\xF6l\xE0\xA1\x82\xDB;\xA4pF5M\xB0\x8A)\xA8\xAD\xF0\xD2\xEC\xE9Ŀ\x90q9R<\x83\x81|\xB4\xF1\xAF\xB8\x83|!1\x8D\x82b-%1\xAD\xA9\x91\x981[\x95Ib\xA6U\x93\x96\xBAI2\x9D\xC4\xEC$f'1;\x89\xD9I\xCCNbv\xB3g\xA8\xF6՞\xA1\xDA\xCC\xCE`v\xB3g\xA8\xB6I̋M\xE4\xD3P\xF3θ[\xAA\xF2\xD2J\x81\xD6g\xAD6\xF6\xE2\xD6
+cl*\xADݵ\xCE[.\x96s\xC2\xC756\x91j$JyJ"\x8B\xF6\xFD*\xA8T\xEAFZ\xED\x99(\xA5\xC9\xC3(&H#\x84T\xAA\x92\xE1z&I%.V\xCB\xDCg
+;\x82\x8EI\xB1\x8E\x8BEc\x96\xEC\xD8dd\xBD\xF0`\xB8x\x88"h\x9D\xF7mKjx\xE0\xE2Y%\xD0\xE5\xE1\xDF&-i6\x9A\xA3\x99E\xF9<Jڽ\xF3\x9E\xF4\xE4\x8En(\x8C\xB5;\xBC\x87\xCFRsG8\xD2t\xAB2G*+\xC8\xEF\,\x8Ag\x84=#A4wFYXK\xB2L|\xB2\xC0\x87\xB2\x96	F\x95\xB5\x8Ci\xD9\xD5>\xD6R\x9Dp\xE5)ϐ\x873\x93g\xE8ù\xC8kC?\xFB\x98\xDB\xFC0\xCA\xF1\xDA\xE6J2\x82\xFA\xA3\x99\xC5ܰ\xCE%NiWw\xA0'\xC2\xEAp\xA6\xF0ۉ\xC1\x97T\xC3\xE5.NF\xBE\xCBW 3\xCFU\xF7 \xF7\xAE\xF0\x8F\xE7\xF4.\xE1\xEF@\xE5\xAD\xFF\x98\xF4]\xD1\x87\xB1vEGC\xD6G\xC0\x81]\xD1\xF0\xC7\xF2rۤ
+\xBC\<Ì©<\xA4É…\x91\x87\x8B\xCFd;=CNMÏ€;\x95\x85
+\xDCÙ›\x9B\xB6\xDC\xE2\xCB&\x96-\x91\x8A\xBA\xB42\xCEÉ…L\xBC9\xB90\x95\xD2m\xBC9\xB9\x90\x87\xB7$&R83\xA54KY\xA1
+h\xE7T\x81\xA6\xF1a\xB9pO\x91g\xD8B\x9B\xCDɅL\xBC9\xB90\x91\xDAp\xC6vI.d\xE2\xCDɅL\xD7Q at K\x87\,焲j\x8F뼣\x8D*\xD1	&\xAD}F\xF4<\x97\x88\x9Ex\xF2v3\xC9O\xAB\xAC\xFD:\xC9C
+R\xA8\xA7\xA6\xF5Դ)5\xAD\xE1\x8F\xFE\xC5\xC7HP\xCB#\xF1N\xF9i\x99"\xF7IO\xCBԸ	UN2x\xB0#\xB7y\xDE\xEC}\xB2\xD72=V_.\xCE]\xAB&3Kjݍͺ\x8Du/\xFE\xAAW׶?\x90\xB1\xBAUu7\x8E\xEA\x8E\xE4\xD4y{\xB7\x81\x9C#\x85\x95ᒜ\x8AdT|}\x80\xC3\xC4Ԕ4\x96\xB6\xBA-i,\x91j\xEC\xFE:\x8B\x895'\x8D\xA5R\xED\xDD\xFFBg1\xF1
+\xD4*\x95j\x9D杓\xC6xXK\xD2X"Y\x9B\xB31\xD3YL\xBC9,\x91jw\xA5 at 5\xCAq\xB1 \xA8vn}\xDD\xEEÒ \xB2\x86\x8BG\xB5\x95\xD1̘\\x92ƘXS\xD2?$\xE7\xA41fD\xCE|TL\xA8\xB3/\xF9\xA8\xF2\xF3\xDE8\\x945B9\x95\xB5]\xE5\xA2\xE2\xC3\x{140EB0}3\xE1\xE8\xDF\xDAq\xEB\x9E\xF58Ê©\xB6\x8D\xE8G!\xCFK:&%\xE9\xD8l\xA4C9\xA3k\xF68\xB9I5܃)\xAAm\x94z\xD3Ç“C7\x88\xEB\x9E\xD4\xF4\x91G['\xE4\xFA#\xD8\xFA\xC6~\x80\xB1`\xFC\xB3`\xBC\xD8\xDEm\xE0\xA2\xC8@y\x95(e\xE4\x9C \x9F7\xFE:\xF1P\xF0<\xFD^_\xA9\xE1'`yQ\xA5\xAD\xBF^#F\xC1J\xB1P_\xBC\xCA@[\xA46\xA9\xE5q\x86\x8B\xEF\xE5\x88Gq\x98p
+E0\x99Ô­CI\x90\xDA$!&$(\xE1 \x93\xAAp`\xA9\xB9p1?\xC9gR\xE8\x9Ap\xE8\x85Q\x86g\xF0t\x8A0\xF3\xDF&\x83Z\x9A\xBE"i\xC1\x83t\x8A\xBF\xCD{\xB8	\xD2k!i\xDAbBF\xAA2\xB8Q\x80\xE6$Ï…\xF1
+	>\x99-=DÓ—2\x9E\xF1s:\xE4\xA3	\xA7\x95`\xBB\xE3\xE9\xF9C(F\xB9s\xD2j\xEDA\xED\x98\xF8Z鹐qQRz\xA7-ͤ\x8E;Ϭ\x93\xBE\xA5\xA6\x8Co
+\xFCU\x8A\xA6Q\x9DI5_\xE1\x81\xC2Å™\xF0Zjñ\\xDFO䀋7S\xAC\x83P\xB2\xD7j\x84\xEF\xF8Z\x8D\xA3J\xB5*\xBA\xF9\xF2*\xECL\xFB\xAB~\x9Dz\xED\x87?\xFB\xE1\xCF\xE5	sw8ÚŸ)\xD7O\x8A\xF6G\xC8=\xF2#\xE4:\xED\xFA\xF0\xE7J;\xC3\xCAR\xE5$k\xCBA\xFD\xEC\xE9A\x94\xEA\xC56n\xA5\xAA<\xB4\xBA\x9A\xDE\xE7oÓ¥\xEB\xCB%eT2k\xAD\xB1&o\xC8\\x87-\xE7M\xE7\x84@&\x9E#\xA7#\xA4RI.Ï„c\xE2\xCDÏ„K\xA4\xB6\xBCtN\xEF\xE3\xE1-\xE9}{nL\xEFc\xE2\xCD\xE9}\xA9\x94Þ”\xDE\xC7Äš\xD3\xFBR\xA9
+\xCFi\x9B\xD3\xFB\x98xsz_"\xB5倫\x954\xDF \x8F"\xDA\xE5\x9EÛ’\xDD\xC7\x9A	\xC7t\xD5\xD6\xC8\xE03Í¥HQ#\xED6\x9A_\xD8'[\xD3\xF6'\x8A+\x92Wr\xF8\xB6\xFE~y{\xFA\xEE\x90\xF6
+endstream
+endobj
+65 0 obj
+<</Length 3232      /Filter/FlateDecode>>
+stream
+x\xDA\xED\x9Dˎܺ\x86\xF7\xF3z3d\xB1x\xBB\xE7 g`vAVr\x82  \xD9\xE4\xF5STS5/-V\x8F-\xD9n\xEE\x99R\xE9'\x8B7\xF1\xEBJr\xF8\xED\xE9\xF9\xF5\xE9O/\x86 \x82\x8B\xC3\xEB\xDFE'$\xFDT\x80\xC2KJ\x82^\xCF\xC3_>Ji%}\xBEJ	ZJ\xFAP\x82A)\xD5J\x97\x8F\x86\xCBuH\xD7\xD9x\x8D\xA3\x8F\xA2\xE3\xF8\xF1t\xBD\xBF\xD8\xC0]\xEB>\xFD\xF5\xF5wÊ…r\xB5\ \xA20A\xE7\xB90\x86>/\x9F\xC0\xCCs\xF3\xE9\x83\xD6\xFA\xE3%%\x9E\x89y\x88:\xE8c\xBE\xA6\xB3\x94!\xA9\xC3%'\x8E~\xC3\xD7\xE9~Ne\xA1+\xE0\xF9\xA2\xA0_f\xBBX\xC2\xCF\xCB\xEB\xED\xF3%\xD5\xC42S\x99\x8C\x9D\xCAck\xE5A\xAB\x85Ñ¥W\xCDh%S\xB5\x9C^\x9FÞª\xC1Ñ…v\xB0\xE8X\xFEv~\xFA\xCF@\xFE6\x8CW?I\xA1\x837\xC3\xFF\x86\x98L\xFF\xD4\xF0\xCF\xF8\xE3w\xFAA\x8EC\x89\xF1\xDDJ84tO\x8A\xF24\xFCw\xB4\x94\x83F!\x955\xC3\xF9\xF2_\xA3\x84tn\xF8\x99;!\xA5\xAC'N\x86\x94\xF6\x8F\xE1\xE9yx\xFA3S\xBD\xB8Ó¹!9\x9D\xAF\xA5\xBD;\xF9\x8D\xCEu\xBD\xF9\xB8\x9A\xF8\xEE\D\xD7\xCFe?_\xD7L\xC3\xE9s\xDA|\xF0\xFE\x9AXf\xA1\xA6Y\xF1\xFAt\xF8\xFE\w:WkN\x9F\xD3x\xB9\xCEz\xAB)J9kcf\xE6ʈ\x9FsV/-\xA7\xCF\xC7\xF1\xEA\xF7_\xDD\xE8\xDCP\xAB9|J\xEB\xCE ]\xA9\x93\xB4\x83\x80\xD7\x90\xD4kBUGω\xF9\xB2*`\xD0	\xEE\xCA\xD6\xA95MF\x8B\xD2.\xD3\xC0\xD0Ú™7람\xA88~\x96\xA6\xE7\xBA\xC6\\xCEe"\xE4?\xBElnxn\xCC\xC7W\x89\x93K\xB7\xEAw#,\xCD0z0VX\xF2\x82\xDD^\xD4E\xCB\xC5 \x82\xE6\xF7\xDE\xCC\xFB\xFD^\x98\x9E"\xEB@\xC6\xEC\xBA\xA5\xE9\xB9*Q\xF5\xF1l\xC3Ô•\x82\xFA\xD5<\xBA\xCC}\xAE\xF8\xBF\xE5\xD5\xEA\xDC\xD8W\xE4\xD2\xF4\xDC\xA9\xFA\xB56!v\xFA:\xB7<7$\xAA~\xADN\xBAw\x8F\xAE\xC5\xC4qnM\xEBÕ¼L\xC7s\xF6ß•\x97\xE2n\xE7\x86n\xB5\xCEÇ©\xD9\xF6Õ‡J-0\xB7>\xB7T\xAA#\xCFt\xFCm\xEBd9\xE9Wg\xF8\x9A\xFB\xE7Ĺ)\x93:\x99\xEFvn\xE8V\xDC?'\xCDXw)M\xCFu\x89\x9A\xE7\xE7D\xD6#\xE8Zm\xA4'\x80\xFAl_s\xFA[\xD3M\xA3\xD97\xA9\x88\xE9f\xE7\x86j\xD5\xE9s\xE2<\x89\xF1kb6=\xB7D*n\x9FÓª\xA1\xF4\xEF\xDF\xE3\xCFiY\xF7aZ\xD7}X,\xEC\xC6\xD58TW\xE3\xA04-\xF4\xE2	\x8A Í´nYUǵ/-)\xC7Õµ\xA3cCi&\xAD\xC0\xE3j\xC2\xCDU)8Z\x8DB(\xEE\xFE5Y5\xF2\xE4\,~ne\xBF\xDC\xD6\xF2\xE4Rt\-\xEF\x85\xD6XX\xC5U\xF7\xF3m\xBD\!
 xE0\x85\xABx\x96(\xBC\x87\xC2ê´ª\xA7\x955W\x94(\x8D\xD0Ý–\xEA\x96\xAB\xA4\x81]Í“oË¡ =W\x83\x80\xD2\xFF\x91	\xAD\xE9\x99 \x9Ca\x97\xCF\xE1KW\xDA/\xEBz\xCE
+\xAAw\xAE\xB5g\xD4=\xE5 \xBC\xAE\xB5\xE7\xA0˾
+\xB7\xB9\xB5g\xC5\xEDt\xA8hP6\xEE\x8EN@\xE3\x91p\x8A\xDBT\x90Ú³\x97\xE6\x8EN\x8E:\xA2\xDCN\x8A*\xC0R\xF9\x88`\xAE\xD8"I\xEAH)\x9F\xE9&\x91x\xEAO\x98\x8F\x973\xE3Yw9\xB3\xC2\xFB\xC0\xD14\xA6!\x97\xF0\xA3Q\xF3\xAB\x85\xF5\xFEg\xC4|\xCBe\xCE\xE6to)~@\xBD\xA0^\xAD\xB6cy\xAD
+\xF8\xBE \xEF\xA6ã· xM\x8A\xFA\xDD!\xDE,\xD0\xEE{C\xBBQ\xF7\x91 ]N\xEFA\xED\xB6\xC7u\xF5\xC2\xEF\xC1\xEFnG\xB0%\xD0{#W{ \xBC\x85\xFA\xF6Ю\x85Hv at x\x95ZxLh\xB7Z'\xC7ۏ\xE3\xADVζho\xB1\x98\xEBA{\xD2	-\xC3\xEDiu\xC1z\xF0\x83P.\x81)#\xD2{NX\x8FÒŒ\xBE\x8F\xE7\xEC%অ\xFB\xA8!\xCCT\x8C\xCA\xE2U!\xBAFÅ´\xCE\xE6VÚ¶\xE8o\x92Z\xA1\xA0u:W\x94\xD0q}me^\xBA$\xB5.h\xAE\xA4\xF6c\xB5\xE5V\xA7U9$\xF7(Ï•3Rx\xA5\xEF,\xA1\xA5\xED\x90+IMZِ[\xB5\xC8\xEDB\xCEŶ\xB8r\x9E:b\xC0;\xEA\x8D0\xC0.] \x81*\xDC\xD7JQ\x82\xF0\xDC*D\x84se>\xB5\xE0B\xC8;\xDAr%i\x90QZ\xD5ZM\x87\xA4v4hW\xA9{wg)
+\x8A\x80\xDCޏԼ=BY\x95\xABr\x96\xC67\xC7\xED\xF9\xD3Pl\x82\xDA\xE8%\xCB]\xFB\x96\xB4\xF0\xC6\xE6\x96kz@\x89\xA8s+mW\xD91\xA0q\xD2c\xEA\xA1Tau\xBA\xADEOW\xCB8\xE1\xA5ϭ\xCC\xCBm-\x9A2\xA5\-\x84\x82\xC2\xFB\xCC\\x86\xDA4S/\x81c\xE3c{\xF199\xB6\xE6\x8D\xBF\x91\xE3):\xD2\xE3\xE7jkW\xF7obc\xF4\xF1\x91\xC7\xFC\x94ѡk\xE1p\x9B\x8862r\xE0\xE4=bDW*\xE3@\xCBZ>\xD0򁖹h\xB9l֏C\x96\xDB\xCA\xC6`\xB99\xB6l˕wC\xCAM\x90|\x80\xE4$\xF7\x82\xE4\xC5\xF2\xAE$\xD0\xC2\xE9\xEB\xD1E\\xE8tcF#,\x9E\xFEb\xF3~\x98LEZA!\xBC\x93\x83 \xE9r\xABu\xB63\x81d\xA6\ɹՉ\x92\x99\x92	$\xE7V\xD0\x92\x99r	$gV-Ⲑ\xA3\xEE$\x91]:j\xF7AWJ׃'\x90̔L 9\xB3\xBAk\xB9\x90ԫ\x8D\xE1J'\xAC\xE17\xD2đybG\xAE\xB4\xD1~\x8E̔L\xB9\xE2\xD2X\x9E82S2q\xE4§]\x92\x89#3%Gfw\x8D\x89#\xF3\xE4摘\xA6	\xE7\x87\xEBN\xF9ڲ\x97#_[\xDD\xFA2 \xE7\xC8<\xBD\x89#\x97\xE5[\xE3\xE44\xD4\\xBD\x89
+_[u\xC4X\xD3\xF3\x820\\xB5\x89	\xF3k\x8F\x86IL\xBDD\x931
+\xBAi\xF2\xB8\xEF@?M\xCE\xEFߤ\xC9:XaP\xFD\x9CA\xC8\xFBD\xEF\xC1\x89\xF3\xBF+}\xA8h\xE3=Xp\xEE\xF0\xAB\xE1\xF4\xBF:\xF9]y \xFC\xA6\xFFH\xF8\xAD\xD4\x85\x83[_1=^\xFB\xDEuK(\xBC\xF2mߦT\xB7\xC9\xD8c\xF7\x80jF\x9A߮\x9B\xE5\xC8\xD5H\xFDǥ\xC8Uw\xECoW̶y\xB1\xA4\xEB ȈT\x8BV]\x85"\xDBD\x8F\xBF\xA6= \xBF
+E\x96"\xF8\x99;\xCA"\xE2+|\x8E\xB2\x8C\xDA\xE6V7B\xBF\x96\x92\x91\xB6Ë•\x84 hq\x9F\x9DVÕ´\xA1\xA6\xAF\xB8jq\xA7@\x85\x85\xACÊ¡
+
+W\xCE\xC0\x88Z2\xAB(i)I
+C\xE0JR\xAB\xD6A\xE7V
+ƺ\x94s\x9Az\xAE\xE6\xCAE\xBC\xA3\Y\xC2U9\x8F4\xFBx\xAE\\x90\xC2bY\xEB\xD0\xE3P\x94J(\xC9\xED(\xED%*\xF0\xDA\xEA.[J\xD2Ђ\xC6q%\xA9'iSVa\x97\xA2\xA6^\xA8\xB8\xFDi6u\xD2\xF0\xFBE\xC4\xCFAs\xFB\xC6/W \x94>]\x95\x8B_\xAEp\x87\x98ȫ\x83\xB9\xA3KD^\xAD<2\xE5\xE6q?\xCE?\x94Y?N\xBC:\xB3\xEC\xE4չt\xF3j\xA6^\xE2\xD5E\xF9\xBA➙Z)\xEE9\xB3\xEA\xA1\xC74\x82
+\=\x87\xD4\xF3\x8A\xE8\x89}\xA6\xF1\xCCǁ\x90\xA7G\xE3Y\xA8\xD4\xC0J9=(m\xB8ZW\x96\x90\x8A
+:tk\x83\x8Ex\x86\xB9AG&\xD1f㔥@Y\xBA\x8B\x8D\xE7 \xF1\xD7ߗ\xE3\xC7\xD8u\xF7\xA1I\xF9\x8E\xFBr\xFC\xFA\xC0\xBC\xE6\xDEMvЭl\xB01\xAF\xE7d{v^\xCF\xC7N\x9B\xECV\xF0ñ\x81\xC7\xF6P\xBD\x9E\x91\x87\xDD\xD1\xE3ؑw\xEF\xED<v݃\xF7\xD8\xC0\xA3]\x9B1\xF2J%lC\xC5+\xED~\xD3\xEDu\x97oL\xBF\xDFm\xF4;\x86\xC3\xC6\xF8/\xE6F\xF0\xF9r.\xF1x]$\xDF\xF1\xDCx]:։\x94w\xD0prR\x8F\xC93\xB3q\x8CCn\xD4AR#L\xAEu\x91\xB8\x93lfՇ\xA3Q\x8C\xFEfJƶ\xA2\xB1\xB0:uI:jޕ\xFA]\xC3\xC5~\xA4@\xB9U\xBF\xD5>\xE5َ
+f\xDCh\xB7p\xEC:.\x96u`\xCAE\\x8C\xD6\xF0[
+R/\xB6\x91\x89\xF0\xE4\xA8\xF7:(|\xD2\xD8|d)0ÆŽ2\xE5\xA8#W\xE9}h:D\xAE"\xF5\xB4\xF6\xBEF\x8Aƈ \xDC~1\xF1b~&^Ì“\x9BGJ\xC4\x9E\xF1\xF7\xC9\xC8,;yqn\xD5Ï‹\x99z\x89gV=<<\xC573\xF5R|sf\xB5\xB6\x93z\xE2\xC5L\xADċ層ċ\x99z\x89\xE7V\xA7\xF5\xFD\xB1\xA5\xDA\xA6^\xFC\xCB\xD0ve\xD7v\x9A\xBC\xE6\x96-\xF1鸧\xBAu.\xD4xj\xEA\xF8\xA68&\xA0\xCE5\x9A\x84:v\x96\xF8uꝄ\xFA׏\xD6\xFEQ\x98\xF4\xB6\xBD\x85\xDE?o˝7έX\xD1=\x90s#/;@\xE7FN\xF6\xC0\xCE-\xBEr\xC4sï‚žo\xBC[\xF2AC\xBC\xFC\xFC#\x85t\xD7\xF2q\xC4s\xFF0\xF1\xDC\xED\xBA\xD9.\x9C\xFBf\xD5l\xCB\xDD\xEE.\x87r\xB7\xEBd[\x96\xBDX\xDEu\xB0\xEC\xF8\xF7\xCFR\xE9\xDA^ \xB5\xC8\xEDoÌ°R\xEA"k\xE1\xD5Z\xE3r\xAB\x88
+\xB6:\xAE\x9C6B\xA1Ê­:)6u=K\x95È”\xA4~c\x8C-\xACN=\xD0\xDCyË•\xB3\xF1\x8Do\xAAth4\x8F/}S\IGUa\x8A\xE6\xD7\x95\xEFi\U\xECR#\xCAV\xD3,\xA5\xF0\xECFf\xEEj\xECa\xE6\xC30\xE5h\x94\x88/}c\xF7\x89\x97\xAD\xB8]cG\xA2\xE9\xAEÚ‹\xC8\xDCx\xE4JRG2\xDA\xDFQ@\xE7\xEE\xC0\x95\x8B	\x8A\x91\xA9\xEF\xAF&fÎ!
 “\x9CGdK\x93\xA6\xF1\x9C=33\xCF,;\x99yf\xB5\xF2JI\x88\xA3\xA1\xD3\-\xA4)\xB0\xC8`Or
+\xB1fʥ\xEB̪\xCF'd\xCE\xD4K\xC8<\xB7:u#s\xA6^\xC2ʀ\xD4\xA5\xEE\x8F{^n҉\x95s\x8D&VV\xD4C\xBD
+?Q\xE0\xF3m\xE6\xF9o&|\xE0\xC0盔\xFF\x88\x80>"\xA0\x8F\xE8#\xFA\xBB\x80\xE8\xEA|Ѐ\xE7\xEB\xAF\xC1\x8E7nϘ\xD7P\xE6\x83<\xAFr\xFF#\xFC\xF9~\x8C\xF0\xE7\xC5ҭ+\xC6 R\xEE{6\x9E\xD2y\xEF!\xCCE\xD7\xDFC\x88\xD1\xD7V[GK?\xAEz\x99r
+Ç \xBE̪\xE3uy@=\xDEk\xAEXadiÕµ\xB0Ö–Ò‘+\x89Z\x80/\xAC:7V6:\xAE\xB4\xB8\x92\x96\xFA\xBE-\xAD\xA0k?nG\x8B\x99\x92\xCE
+\x8F\xAE,\xE5\xFA{AH\xE7\xB8r>\xEEk\xE2\xCAfӷ[\xB5\xDEx\xA6$ʈ\xEFB\xD9tV\xF79V1N6p\xE5TĨ\x81\xDF\x94\xDC\xEA\xF7\xF0\xFC^\xF71\x8A;\xC6D\x8E\xEDua\xD5\xF7Z\xCEH\xA5i\xEA\xE6JƙHA\xADvH\xA6\x9D\xAAy\x92\xF3\xA0\xEF\x9C@\x8Ft\x9B\xA8tf\xD9I\xA53\xAB\x9E\xE8\xE3\xC9\xCD\xD4K\x91ܙc\xA7j\xA6^B\xB74e\xD3 
+t\xEB\xBF\xD1^\xCE\xF9\xFD/\xD86Y9\xFC6\xFF>\xBD>\xFDo\\x82\xC9
+endstream
+endobj
+69 0 obj
+<</Length 3303      /Filter/FlateDecode>>
+stream
+x\xDA\xED\x9Dێ\xE3\xB8\x86\xEF\xFB)\xF4Ð\xAC\xE2	0\xBD\xD3=\xC0\xDE\xE8\xBB W\xB2AHn\xF2\xFA\xA9\xB2\x96I\xCAb\xA9\xB7\xE5ٱ\x80q\xB7GV\xF9'\x8B'\xF1\xEBRIw\xBFu\xBA\xFB\xFE\xF4\xFC\xF6\xF4\xA7Wg\xBB\xA4\x92\xB7\xBB\xB7\xBFw\x86>\xD0\xF4\xD3XTQ\xDB.\xA0V)\xC5\xEE\xED\xD4\xFD\xE5\xB3\xD6^\xD3\xEB\x9B\xD6\xB4FK/:\xE0Pk\xF3O\xFDl\xD2y\x9E\xCF	\xF42\xF4\x9E_\x91Ώ\xBD\x8D}\xA5s×\xBF\xBE\xFDJ\xA50\xA1V
+\x8B\xA8\\x82\xBC\xCE\xD1\xEB\x{14B35F}\xF3\xD2|\xF9 \x9F\xFB#\xFC	\x97\x81u0r\xB9\xC6O\xA9@R_\x92@\xBF\xED\xB7\xF1\xFC:ԅΰϽ\xBCNv\ï\xF3\xF3\xFDs\xD4q\x9D\xA9NΏ\xF5\xF1\xB5\xFA\xA0\xE5\xA0\xF4*\x9E\xAD\xF4\xD0,/oO\x97ft\xA2\xEF<e\xBD\xED\xFEvz\xFAOG'~\xEF\xCEg?i)\xBA\xEE\xA6\xA6\xFB'\xFF\xF8\x95~\x90\xE3P#\xA4U\xF0\xD1C\xA7\x951\xC1{\xFAm\xBB\xFF\x9E\x8Du\xA8\xB4\xF1\xAE;\xF5\xFFuFi\x8B!t\xFF\xA2oJ\xEBh\xB1~p4\xA4c\xFFèžž\xBB\xA7?\xDF( It\x86\x95
+9\xE5\xAC^|\xD3iAr\xFC\xBCvLT\x8A7\xE4\xDFu\xAAKN\xEF\xAB\x8F\x82pL8]\xB7ς\xEB\xA7cӛ\xF7\xB7Ǽ5͊\xEFǷ\xEF/E\xF1M\xA7\xAA`\xCD\xEF\xD31Y)n4\xBFNY\xBB,9}z\xCFg\xBFG\xF8\xEA\x8BNj5\x87\x8F\xC7\xDE[\x80\xF9\xF7\x9C\xEARUWO\x9BP\xED\x86FY\xEB0v\xDE*\xEB\xB4
+W>\xF0Qi Z\x97f\xF5\x9D\xB3QY\x80\xE0.֛R~թ\xAE9\xD5{~\x9D\xB2h\x87b\xE4_tZ\x9C\xDE_\xAD\xDE_\xA7<-F\xD09\xAF<yŜ\x9B\xA5h\xAB\xA5&\xB0Vѥ@J\xF3\x96\x82^\xE2J\xD3ӂH\xC5\xE7\x90\xC88Y\xBFA\xB74=U%\xAA>\x9ElD\xBAU\xC7_-˧JC,\xB9\xB7\xBA\x98\xB6ս4=-\x88T\[>߷\xCC\xCBQ\x95\xAC:\xBC\xBAd\xB7y\xA0X`NKW U\xE1\xF1\xFDT\xD6\xF7L\xC8川t\xAB}qz?t\xDEf䆧%\x81\xEA\xD43\xBE\x97u\x82%\xCEi\xE1"\xA0\xE6\xF9\xE9\xE0ԅ\x97显\x{DD20}[\xF1\xFCth\x9A\xC1\xE4\xCD1\x99\x9E\xEA5\xCFO%\xAA\xD7#a\xB8\xA8\xAF\xFD5_\xBA\xE80e\xB5k斧\x89\xAA;\xA7\x83\xD3\xFA$\xF7\xF1dzZ\xA98t:V\xBD\xA5\xFF>\xFF7w\x9F\xC6\xDDݧ\xD9\xF6\xEE\xBC'\xB7\xD5=\xB95@\xDB=Z\xF3\x92V1\xDAq\xF7hc\xBF\xAF\xB6\xDF\xF3\x9E{܇\xF3\xDE׽\xBBc\xDA\xC3s\xFF\xB9M\xF5}*5\xED(\xC9߶\xD0\xFA6\xD8-\x940Y]ȭ\xC0\xAF\xAA%r]B9Ш\x80\xAF
+3\xAB\x9759\xD0I9\x87R9\xE3TH\xA6\xAC\xF3\x8CUI\xEB\xA9I
+`\xC6X֐\xD1ê$Z\x950I%1)\x8B^\xC6\xA7\xA1\x96\x8E\xA6?\xF4RI\xEF\xE8l(\xACl\x93d\xF0
+PÜ–\xD1*W\xF8\xD5\xFF\xB2\xAA\x83\x8AF*\x96h\x8E\xC0P\xBAtU-%e\x83tX\xA0vÊ™
+\xC3
+_\x82I]\x89ƫT\xFAĽ\xAE\xCA\xD1Ln\x8DԙH\xB30↦C \xE5C\x94\xCAт\x9E\xCC\xC6\xE1\x80N+\xEA\x9FRI^\xEA\x8C\xDD6Ϡ\xA7\xB5'\x80t\xE2\x97\x96U\xA2\x95nũ\x93U\xA45\xA2\xB0ZӲ\xA8\x82\x81\xDCji4LVtA\xAA\x9E\x96\xE4\xB2Z\xCB\xD3\xE7D\x9E\xBDB\x9E\xEBer\x86\xD6?O\xE3\xD5Ӑ\xF6\x8AW\xD3dF\xD7\xDA\xD1
+l\x99\xA2×Oκ\xCF;v\xCC\xC2\xFBOV\xB2
+tQ\xB6Јg\xAB
+;v\x9E\xFA=\xAD!\xDB\xD8\xF1Ò–\xF4\x91\xC0\xF1\xAD\x9D\xE9nÔ˜\xE55\xECA\x8A\xEFE\x8A\x97\x86‡b\xE2y\xB3o9\xFCùp\x8F\xA0\xEEāa\xD8\xEB\x9B\xF0^ \xF8\xEC\x80;\x81ß²\xFE\xF9\xFDx\xF2k\xBA"\xBD\xBD\x93\xEF at vW\xE9\xE2c\xC2Þ¥\xA2\xFC\xF7\xC7\xE1\xBFf\xB8\xD8\xAF6\xC9^\xt\xC1=\xE0\xF0\xEAÙ—϶t-\xBCX:\xCDy1\x98!\xFE\xEA\xB9\xE7\xC4\xF0\xD2\xFFC,wf\x88\xE1\xD82\xFF\x81k\x95\xE2Dr\xA9.L\x832\xD15\x92ki3[u\x81?\xCC\xE4@\x93\x8F\xB5\x93\xCAj\xEA$\xB9\x95]\xE4sI\x8B\xCAy\xA9"h\x85L\x9C\xF3
+.2\x9D\xB9"\x87\x8B\x94J\xA2WQ\xC7\xDC\xEAF\x9AK:\xFE\x8BD\x92JR\xBF44L\xB6\xD52P\xA7\xB6 \x95I9
+\xAB\x97U\xB9\x88\xB4ljR\xB9\xA4\x95Ǣ{\xDF\xC0\x813I\xD4F^'E\x92\xA8}\x98װ\xA5\xB3"M-\xE8\x82T\xD2\xD2\xCC\xE1\xCAJ\xAE\xAAь\xE7ăiJ\xC4-\x83\x9F\xD9l~\xA4U\xD2U\xFFKS\xD2J\xA3\xA5\x83\xBDQ\xC9A9W\xD5|P&J\xFE8\xEF\xBB\xE4\xA8\xA1\xA1\x82\xC8
+*\xD2Ü–[\xAE\xDD\xCDfV<&V)+ÍŠ\xB4\xC2
+\xF56\x9B[\xD9u=j\xBD\xE4\xACT\x8Ff5
+i\x8B?iJsR\xB5\x81!\xBBÈ­x\xF3<E\xB70\xE4\xF13D3\xBF^"\xB3W\xBCT\x8BX\x94`\x910c\xE4\xEB"w\xE6?:a>\xD0\xF2c\xA1\xE5\x83)<S^\xD89>U^W>\xB8\xF2\xC1\x95\xAE|p\xE5{q\xE5\xEA\x9A\xFC\xB0\x88\xB9~\xDF\xCBA\x9BgÛ»\xDA\xEC,\xA8 \xEE=\xB4^\xFB}\xEA\xF9ܦhe\xD0A9ê–¹\xF8:hr\xAB\xF5pe0I\x99$\x96\xB3܇
+\xB9\x860P\xD0*\xCAk\x8Cp9k[\xE2\x86Q^;\x8C*\x95\xB5k\xA9u\xA8\xA9\x9C\xD7\xCA\xF9-\xCE\xF4}\xB7P.\xF4\xB1\xAAEWi
+ÄŽ4O\xB1CcR\xBARP\xDB$\x998\xC2]*É‘\xC3)\x92|AC\xE4\xA9\xF1
+A,i\xF9\x96\xBBͱ\xD2F,\xC9ظR\xD0&\xC7rH\xAFI \x95Bz\x8B\xC1!	\xE9\x95IN\xF31-!\xA4\x96\xA0\xFA\x9Cg\x96\x8D\xF8\xDA\xEAV\xA0tN\x81ez#\xBE\xB6\xBA%\x9DS`\x99\xDE\xC0e\x91F/\x9Eylo\xBA\xD0\xD7k.;F\xFD\xDEb\xB2\xE3'\xFEk\x99\xCD˰Hf!yZ\xCD62{\xF9\x93\xFB\x91)\xE2^D\xD6<h\xC4\xEFJ\xECFf\xAF[\xE0cB\xDC\xF4\xFCO\x9F
+\xE2*\xD0\xF9\xA0\xB6G\x83wI\xFAP\xC6\xDC\xDE\xD3\xCE\xFD\xFFHh\xB6\xDE wa\xB5\xD77x<J҇\x8A\xF3\xEF\xC1p\xAB\xF0\xE7ѳ@a\xA7;"ۛ
+r\xC4\xEFio\xB6\xC7N\x84v\xAD)v\xCDQ\xB4žXv\xB6\xB7k\xC0\xB2H\x9Bl\xE3M\x9E4\xE2\x8C]ys
+\x97ć\x9CÔ‘\x93DL\xC7*\x89[\x90\xAC=\xB3\x99\x-8\x9E\xEFnͬ\xB0\xD53z\xB1\x9C\xA5\xB3#\xE4V
+\xD0\xD2:\x85\xA4r`T\x80ª\x91"\xA2U&\xA1T\xA3r\xA6h\xFF\xF5\xBB\xF3\xC1\x8Fw\xA9\x9C\xA7\x99\xC0\xBB\xB2\xFD\xDAR9\xD0M\x99B\xC9\xE0U\xC4P\xB6a\x9A\xE5\xC8\xCA \x95L\xAA\xAB\xA6\x844(\x93P\x92s3\xA0N򞊆\xEF\xCBY\xA3R\xD9\xEB)$hv2b1 ꣦\xE6\xCE \x8Bpf\xD6BIGkG\xDA0Ϡs\xD4G\xA5\xF3G \xF3_p\x8A\x81\xDF\xCA~erӤϋ\x8F\xF6\xD8on\xD9\xC6~3\xAB[7\xC8دPo`\xBF\x99\xD5Z
+	\xBA:	\xD6H\xB5\8\xDFF\x91Y\xB5pfZ\xDA\xF9
+\xA1^@e,MØ“UR.\xA9\xD6È´
+''\x84\xA38]E&\xB1L\xAC\xA9H\x89\x8At\xEB?b \xB19T\xDC/\x8AxGV}\x91\xDA
+P_$\xFE\xA0\xE1;\xB1\xE8{E\xF79\x8Fp\xE0#\xF8\xFE\x99i\xF2\xE5\xEFG\xF0\x8F\x83\x94+\xAD\xB2c\x86\xE1\xD9\xF7N(1\x93\xBE?\xAE8~g\x82|\xD9k5dڔ\x9E\xB7\x983\x82|\xDE\xE0\x9Bˣ~\xEC\xD7\xCBy\x98\xE3\xF0Y~\xBC!\xFD\xF0\x90F"]\xA3\xC7\xCC\xE5r\xA3[7"\xCF2c9\xA9\xA0\xD5\xD4cRaՖ\x9F\xE8?!I%!\x90d\xACU\xB2\x81\xB0b\xDC"\xE9\x90$\xC3\xC6ZzG\x92b\xC7C\x92\xBE\xB0\xB2\xAD\xF1\xB6:\xA9d\x8C$\xE96\xF6\x9E\x94H\xD2%9޶"\xD9>\x8D'I'\x95\xE4\xE9\xCC\xE0\xB6\xEEàv\x83$/\\xB6u\xB5:\xA0Tr\x88\xB7\xDDԖ#s\x95IN\xD3$\xE2x	\xB2\xCC5\xB7lc\xAE\x99\x95 \xDEV\xA870\xD7
+\xF5\xE2m\x85z\x9B\xE4\xE8>\x84<Þ–\x9F\xC3V\xC6\xDB2\xB6\xE4O\x86x\xDB\xDB`\x92\xBD`\x8A\xEF_$\x93\xECpH\xB0\x95L\xEE	%\xAF\xF7\\x8F!\xEF\xA5 y\xB5\xF5Ý‘?\xFE\xFCa\xB2W\x9E\xFD\xF8'\xA4-=#\xEE\x81\xE2c\p`\xCABc\x97b\xC2\xEF\xF0h\xB4\x8Fi\xDCf\xAE>\xB4\xF1\xE0\x9B;\xF3Í›\xF7l\xEF\x98\xEB\xE0\xE6\x9D\xF4G\xD4\xEC]\xB3\xAC\xDDN\xC4\xD0\xDE+\xD1\xC1\xCDQ\xB3/\x9Dm\xEF`(g\xF6\xD3Z\x9F\xC1vf@\x9F\xFB\xF0Z\x8E\xB3\xF0y\xEDá´¹\xF0z8m \x93[\xB5d8\xE8S#\xE5,m\x86ca\xD5v\xFF\xF8\x98\xE5@(9d9È­\x9A\xB3\xE5\x86,E
+[\xB3\xE5\x86,\x99UC|\xF2\x90\xE5@(7d9(\xBAKS\xFB
+Y\x84\x92C\x96\x83̪gYd\x92c\x96\x83M\xB5\xB3%\x87,E;J\xB2%\x87,\x9B;f9JԵR\xCB\xF6,2\xC9i>\xF6\xF4U.\xB6\xB0区\xE6\x96m\xD45\xB7\xB2\xB7\xB5\xC0)@\xAA\x85\xB4 \xFAZ\xD5V\xF4\x81\xAEB\xB9!\xD05\xB3\x82\x8C:$\xC7j\xF9\xA4L\xA5n
+\xCAC\xA0\xABP/\xD2UM\xC0ܪ\xE5Ap\xC9+N\xAA7\xC0k\xCB\xD3\xD4𡑵\xB9\xC6"\xC06tIM\xDA
+\xB0\xAF\xEFN݉cW~u\xE0\xEC\xC7\xC3ٗnp\xAA}\xDD\xF1j\xB8]\xFA\xF9\xE3w\xF5\xF0#\xC4\xC1\xB7'\xF5C\xBD {\xB3\xED\xFA@<\xC8\xF6}\xC8v\xE5\x81W\x92\xF9aV\xF3\\xFF\xE0\xBA\xD2$GƇ\xDD\xF5l׀\xA8ML
+\xA1x\xEC'\xDDe\xCDIv9\xBB\xC7玉y߁\xAA\xE7O֢\xCDo\xB6(\xC0Z2^r5^f\xD5\xF08
+\xA3\x91\xCAQ+\xF1\x9E\xF8\xDAh\xFD\x91L@
+IM \xE3\xE9\xC1V\xCC\xC5\x9E7\xC7,\xA4\x8A\x8E\x86\x8Ee\xFD\x9A\x9E\xC4\xE6\xF9!W\xE2J+XH\xB6=W\xEB\xB2[\x96wj\xFAP\xFAuU.Q5A*\x97"\xB5\xBD\x97wQ\xD4\xD4E\xADʡ\xA6.\xAAˁl\xDB\xFC\x96\xB5\xA3TҢ\x8A\x88e
+\x9B$\xC1)\xA8\x94w\xEDql4\xC7G\xDC\xD6Si\xAB|N\x88*\x94\xA4\x95"X\xD86\xC7g\xB2\xC9$\xA7I9p\x8F\xC5V\xB8Js\xA2\xB7\x85\xD5*\xA3F\xEA\xDCPX\xBD\xAC\xF0\xF0\x9El\xB5\x80\xA6\x8AҨ!(x'\xCA9\xAB\\x88\xB9\xD5Zr\x84\x81l\xB5<\xA8ȣ\xBD\xAC\xDB*\xA3\xEES8\xF5fLW	\xCAٔ3c\xA6\xC3M~kaƹFό\x99\xEB\xEE\xFB\xF4\xFB\xE5\xED\xE9\xFFU\x8E\xD4
+endstream
+endobj
+79 0 obj
+<</Length 1734      /Filter/FlateDecode>>
+stream
+x\xDA\xCDZ݊\xEC6\xBE\x9F\xA7\xC8\xACk\xCB\xF2,gfw\x9C\xBB\xC2ޕ^\xDAR\x9AB{\xD3ׯ\xFF$;\x93x\xB6\x85\xC2fN\x8Ec\xF9\x93>ɒG\xBFr\xF8z\xBA|\x9C\xBE\xBB\x82,?\x8AH\xFAU\x80\xC2KJ\x82>\xC6\xE1\x87W)\xAD\xA4\xEBMJ\xD0R"\xD0E
+\xA5TWj\xF1\xD2\xFB!\xF5\xB3\xDC\xC7Ñ¥\xE8\x9E/O\xFD}\x94\x81\xF5u\xE7?\xBE\x91ʵ\xB4 Da\x82^ka]\xB73\xF8×µ6\xE7\xAD\xF5kl\xE1'\xAC\xE3\xA0g\xBD\xF2SRH\xEA5q\xF4/\xBC\xE5'\xF8%\xD9B=\xE0\xF4\xADȱ\x85_\x96\xFD\xED%\xB6\xB6\x99l26\xDBc[\xF6\xA0\xD5\xC2\xE8\x8AU\xAD')\x99\xDC\xF2\xFEq\x9A\xDDਣ,:\x86\x9F\xC6ÓŸu\xFC:L\xBDOR\xE8\xE0\xCD\xF0\xF7\xC0\xCD\xF4\xA7\x86\xDF\xF8\xE7\xFDq(\x91\xD1P¡\xA11(\xD2i\xF8k\x92\x94\x83F!\x955\xC3\xFFk\x94\x90\x80\xCE
+\xBF\x93\xB8Rz\xC0vc\xA4\xB6_\x87\xD3e8}\xBF\x8D\xAEX\xCFJr܀\xC8\xCF[m=\xA8M\x9B\xD7\x8Dm\xBCr\xDFl\xEC\xB3]
+C\x8Ē\x93\xC7{lp[\xDA\xCA\xCDӦ\xD7C\x8Dm\xCC\xD9\xF9\xB6Oᬷ\x9A\x94P\xCAY\xCB\xCA\xDC\xF9`\xA9G\xB3Ewi\xFB<L>_\xE3\xCA/[\xA4\x97{\xEE}U'\xC3\y!a7\xB1Zt\xE7\xB6\xF8\xCD\xF0O\xE0-\x9C&ť\xF1(z\x9C\xF2J \xF4\x83F\x82\xBB3\xD8zAi\x8F
+\xCC¸exZ;3KVi\xB6\xD5\xF2c\xA8\xB7lD#\x80\Ö‰\xFDK-8n \x94\xFB\xBB\xC6,Õ‰;\xE7#,U=+,\xAF&\xCA+?l\xD1 \xA8^\x870\x8B\xB6\xBB7@\xD4\xEA@\xC2l\xEEf\x82\xA9F\x9B\xA8M\xB6\x8BL?wtl\xF8b\x8B\xE1f\xFCd\x96_*\xD2mr\xDE*\x86ÇŒ\xAF$\xC7
+\x88&\xC1͂\xFBt T\xA5c\xDC*\xE9M]\xF2}Q\xFF0	\xB5\xE8\xB8Ҍ\xBDr\x9F\x82\xF53\xAC\xC7\xB70\x9By(\xDF> \xEBz2n\xD4\xF6\x{D971}\x84\xF0\xA7\xE2\xA2m\xDC\xC0mx\xA24\x95\xA4\xD6W\x8Fj\xF9\xB1\x8D\xD3\xE2\xBE4v\xAD\x80\xF7\xA6GZ\xB4K~\x8B\xF99\x94Sj{~!T
+5n`6y/\x8D\xA5\xB6\xFD+s\xA5\x8C6n\xE16\xFCPÚš\x8BR\xFA\xFBc\xFA\xCD\xBA\x97\xBC\xA3{Yl\xE9\xA6}84\xF7\xE1\xA04m\xF1\xA8\x84R\x9Bvzi\xC7>\xED\xA7\xDF\xE2^:ï¹µ\x8B{]\xDE
+O{\xEC\xD0܏\xD2\xEE\xD3g G\xFF\x81P\xBC%\xC1
+\xB5\x9C\xCEA%\xF5ΰ\xBB\x90\xDE1\xA7\xBD\x90A\xE9*&̍w\xE1{\x90Z\xF2\xC6\xDBvBj\x84v7\xDA\xB1R\xAB <\xF6"M\xDF\xE4\xF5\x80\x91\xDA
+\x85\xBD\xBCjT4\x84my Ò€@t\xBD\x90\x86&\x95\xAFx\xB5\xD7C\x904\xE3\xEA0\xD8Ct\xF1E\xD2J\x8A_M\xF0\xA47\x82\xBA\xF5BRo\\xAF\xBBp\x81\xDC\xBD\x9C\xA2$7\xBA\xE7&$*\xF2boÜ "':\xFD\xDC|DJ\xABN\xF7R\x8A\x94w\x8D\xAB\x8D\x84]8\xAA\xEE^vSJeÙšzb\xEC\xA2\xF2\xBC\xEF\xA3\xF2\xE7\xA0I\xE7ZGB\xBDt\x96\xDA\xE2\xB8\xC6\x98\x85E\xB4\xF0Æ®\xF7Ѐ9\xCA\xEE\x84\xCC\xC0\xF9%\xB0\\xC2\xFB\xD0\xD0
+j%\xF4 \xA9A\xF2C0Љf\xA96\xE9\xB0z໹\x8ER]\xEA\xC4rA\xEF\x9E\xF0\x87\xE4\xF7 ]h\x9C\x8C\xB4\xE9\xB7LKK\xB7\xD36M\x89\xC8zÝ°m\x8D"RU\xC1\xB5\xFF \xBC%&\xAD\xA5Lf\x96\xA7\xF9\xBD>\xAF\xA7h)\xB5\xF7^\x9F\xCF) C5\x92OR\xF4H\xA1\xD0H˽\xD5\xCB\xF4VBJa\xCC\xA4\xE1\xFCBK;\x99x\xE6\xA5\xABQ\x96x\x90\x8E5.\xA9
+\xEE\xB6TT\xB48\x8E6\xE3Đ\x95\xC1\xAE\xEENz\x91S\xE1dXP\xFA\xF3\x98N\x82x\x95ɧ+\xE5\xFEr\x86\x90NL ,\x9F\x98@:C\x81t&\xB1g<'ʽ\x98\xF1\xBEqQ\xB3Oo/S-\xBFY\xD9p\x9BO\xAB\xA6U2O/\xF35\x9DAÔš\xEF\xCB9ѯ/q>-\xC2KK\xC5g\xC6'\x8Boq\x85\xCE\xE3\xB2Û¶%}v\xCBJq\xEF_\xF2\xECP)F
+\x9D\xB9\xB7\xDC\xE2^\xA5\xBA񁙞\xE3']\xE3lq\xC3\xE3\x83<u\xB3[n͒)\xB0\x93P@
+\xFA\x95\xFFc\x97\xA85\xFF\x85W%\x98X\xDBI\xF3Å‘ç„–,bM\xD0\xF7\xCDQZ\xE7xo7\xE6h\xA5\xCF}o4\xD17F\x91\xB7\xF8\x86\xCDAH\x89#\x9Di2m\xEAZ\xCE5wfi\xECų\xF4\x89\xC1\xF5\xFB\xB1\xA9<MÕµ1=a1\x9DE\xAB\xB5JY\x9Dt\xEE\xAC\xD2$\xB8\xC41\xB8o>AÖ•\xE3\xE6|\x85\xBC`\x80:G\x83R\x97W\xA8CÞª'\xDA\xF2\xD4r\xEFy\xAF\xBE\xEC\xAA\xD3\xD7Ç”i\xAA\x96\xFCN\xF3N\x85\xFF\x9C3~\x9E\xD3D\x9C&\xB1\xDF7\xF8;\xF4\xB4E\xA7\xB6\x82^HX\xC7\xFD\xBD\x80\xC93?\xF9O\xA6\xF8D\xE8-\xA9X\xEA\xE8\xF9\xA6\xD0wB?\xF6\x8A<5\xBE*ÑŸ\xC7j\xE4a\x9B\xF20*\xBD\x9F\x87\xF7f\xC1\x8Bf\xCD\xCF\xF1\xB0hf=ZL\x8By0V\xE78)U_\xE6xi}Gb|K2\xC9^\xD3\xDAL\xA7o/\xFC\xFC
+\xC6'/:E[os|q\xB4\xC8\xEB\xB5XQ\x8E\xD5\xD5T\xA3WIx-\x9B*\xEBb\xC1Tc\xB9\xF4ˡlK)\x836\xEF+\xFD{R\\xAFW)!?\x9F\xAAoJ\xEA\xB6X\xBF\xE6\x8Ak\xD3\x83*\xDA1h\x82PnYxO\x93\x87\xB1\xB0\xBC\xA7\xE3\xD7⨝ \xDA\xCE	\x9E\xAER\xDC\xD8\xC0+\xBFgI-\xF9y\xE9\xFD\xE3\xF4\xFE~x
+endstream
+endobj
+86 0 obj
+<</Length 22        /Filter/FlateDecode>>
+stream
+x\xDAc``\xE0P`Pb\xF1`X\xE0 \x9B
+endstream
+endobj
+87 0 obj
+<</Subtype/CIDFontType0C/Length 1886      /Filter/FlateDecode>>
+stream
+x\xDA}VLW\xCB\xEE̬\xBAr\x96q\xBD\xC8\xE0\xCCÔ¶\xA6\x8A\xB5\xA5\x97z\x87E at DE\xAC\x82Tj\xFC\xB3\xB8\xCBg\x97\xC2.\xAB\xB0\xBB\xB3;,"\xA8\xC4Õ‘j\xAD\xA6C\xE8Å£=\xDB3\xE7\x9FC\x9B\xF6\xDA\xF4\x8Aw\xF5Ì¥MM\xD3x\xDF\xD8G\x9A{{\xD8ܵ\xBDÜ›\xE4\xBDÉ—\xEF\xBD\xEF\xFB~\xDF\xEF7ot\xC8`@:\x9Dn\xDEÚŒ\x8C\xC2\xDC͉\xB9\xEB6\xDA+-U\x99\x96j\xC7s)K6\xDAJk*,R\xD4![K\xD0\xE6\xC9&^\xE3\x91&\xE841F{R\xAF\xCD7\xE0&\xFD\xA0\xC90ÙŠ\x87\xA8Ͼ\x9B\xA0\xE6!\xA4;\xFB\x8B\xE8<\xFAĘ\xE6\x937\xE3\xAFMOG
+WL\xCF cÒ¡yh>Z\x84\x92\xD1\xF7:V'\xEA\xFC\xBF\xD0+\xAC\xF6b\xDBj\xAB\xAD\xCAY\xEElX\x9A\x94\x92\xF2B\xA6\xBD\xBAA*/-s\x8AKSR\x9E_\x9D_3\x92\xC45\x96\x9D\xBB\xEDu\x8E\xDD墥\xCA*\xAEI\xD7%\x89y\xF6:b-\x9F\xB5W\x89Ŷ2KE\x89h/l\x9B\xC5\x87Mr\x88\xA5\x92\xBD\xA6Ú±0I,(+w\x88uvi\xB7HV\xC9Va\xB38lV\xB1\xA6\xCAj\x93Dg\x99M\\xB5)\xBF@̶W9\xC5\xDC\xF2\x9D\xB6*\x87M\\xB2D6\x9BX\xE6tV/KNvÖ”&Ù¥\xD2\xE4\xE2\xE3H\xAE\x98rr$G\xF7-\xC9^\x9FW\xB0$wu\xE6ʼ\xFC\x95I\xCEz\xA7Xb\x97D\xAB\xCDi)\xAFp$\xFDϪd̳K\x95\x96
+DFz
+%\xA2\xA5(e\xA3uh*@;P1*G\x95z*\xB1(6
+\xAF\xB9\xE8l\xBA\xCFcb\x86\xF5\xE9\xFAN\xFDCCUM\xFD\x99^o\xC6j\x8F M\x85{u\xBAs\x90y\xB0]\xAF}4Ge\xF2\xF7\x87Ï»\x9C\xAE\xBDB\xF5\xFA:=\x9C\xCB\xEFu\xFB\x9C:\xF9\x9C\xA7z\xEF\xB6\\xFF\\x89	EN#\xDC_\xDA)\x95\xB1\x84\xDA\xCF\x8C\xEF\x92C\xE7\xBE\xE0a'ɧ\xBA\xEA\x97{\xE3\xED\xA5\xF2^^b*Ô¹\xFE\xC0Io\x87B3^O\xFF\xBCT\xAC\xF6\xB1\xACBcJUL\xFF\xF8>\xD5k\xA7\x807\xDFX{\xF9\x85\xFEv\xEF\xC3\x88\xBF\xB6\xF2:\xD6\xF1\xF8\x9CD\x8F\x86\xBD\xC5\xC2$\xCD\xFB\xBC9\xBC\x97Џ\xDD\x9E\x86\x90\xB9tO\xC6S<6\xC0o\xE8\xC1\xB0r\x9E\xFF\x92\xFE{o\x9AC\xE8\xC7!\xF3\xB6]\xABR\xF8\x85t\x99O\xE0X\xC4L\xBClb\xB5\xBF\xB9TÍ£\xEAF\xEEj\xB1\xAA^{V\x9A\xCA\xDCÙ»/\xC0?Ùš\xBA\xFEW\N ;H\x90|r\xF8\xCEÄ«\x98=&\xB4\x86\x82\xDEn\xEE\xB0>&@sT\xEE\xDA\xE7
+\xF8\xF7\xB5\xF0\xD6\xCDT\xA4\xF6\xB5\x8B\xE9N\xC4f</Æ‹\x81\xAC\x90s>\xF9\xF6\xAF$\xDAeRf\xBD
+V5nh\?\xA2\xAD\xB6\xAB\xEC\xD7Ro\xA1Y\xA2\xF1̽\x8E-x6\x87\xD1\xE3T׍1\xAA\xCBT\xD8"\xD19\xCDu+\xF8\x95\xF0\xD2Tu\xDF\xD0\xEC\xDB\x8C\xA7ʰ\xAEGP\xE9zH\xA3&7\xFC \x8F\xFE1<\xDAV\x86E\x9EX \x915+A\x97\xD7\xC3Q\xD2\xD5,_xH\xD0\xCCP8|\x9BWlh\xC7\x85\x92\x98\xDBa\xDFa\xD2\xC0\xEC\xF0\xF9\xB2H\xBB\x80c\xCD"\x9B\xD4ߪ\xBAh\xD6\xF2\xF8\xEC\xED>9bW\xAD2R"\xE0\xE0\x86
+\x90~<8\xA4\xCCU\xBF\xB3) qÕ¯\x86\x82.Abz\xFC\x9D^O|\xC3\xDE\xDAF\x8Fkps1\xDC9\x8D\x88\xDA1\x8AF\xFCq;@
+\xA0(\x91r|\x9D\xA0\x99/'`.^Eu\xBBÕ»\xE2\xEB\xFE\xE2\xF4\xADB
+\xBC\xF0H\xFD\xBB\xB0\xB8\xA1\xF6\xB0\x96Ll\x966\xAA\xB9\xCC*\x93\xDAN\xB19M[\x83!\x89$\xC2Z\xC7\xE5B\xA7\x80\xC7\xE03\x9A\x99:\xBC\xDF/\xD7s\xD8$\xD1쬓\xAF˭\xFD\xC2\xE4{\xDC)f\x92\xD3\xEF*\xEE}'\xE0W\x95aOg\xCA\xEF\x9D\xE0;\xA6\xBBF's(O\x97"wrG\xE4\xC7\xED\x97\x9BuB~o\x9C'\xB9Ni\xCDQ"\xC1\xF7w\xF5\xDAg\xD0e\x86\x85\xA4\xF5\xB3\xF0\xB3x!\x9E\x8Eg\x919f\xE2鰀<3a:$\xF2\xA9=f\\x84c6fe\xE1\x98\xA0\x88В\xBE4z\xA8"\xBC\x9E\x9F\xE2\x8A\xED4\xA9\xBA\xE1P\xEFЦ\x99\xC7_\xBE\x85\x9F\xFC\xA9~
+Ü‹\xCF<\xF8\xFC\xDAGB\xEA\xAB\xBC\xC7\xF1X\xA6\x88s\x8B\x868\xF9\xE5\x9D\xBC\xAFI\x8C=\xD8C\x881\xED8\xEE\xDEQgOh\xF7n\x9A\xC3r\xB7\xDB\xD8\xDF\xC6çµ–Z\xB9\xBA\xFD\x87{\xBCB\xCBQ\xEF\xEB\xEE\xEB-\xE7\x{1CD91F}6\x8E\xF5]\xFEc\xFC\xD8\xD2x&\x8F[\x96\xCCC\xE5\x9F\xFFI%\xE3\xA3\x9E
+T\xBC!\xAF\x91\xDB\xE3\xF3决|C\xDF`\xD30w\xBD\xF7j\xBF\x80s\xE1\xBA\xD9\xEA\xCB\xC4s\xF8\xE7!\x9BVC\xDD\xDDa^90 \xF7qN\xB4\x8B$\xCFm.5\xA0B\x8C
+\x8B#\x87Õ¯\xD4P$ndG\xEC#\xAC\xE0\xD1a\xBE\xF9\x9A\xF5\xA2Ì—\xBCݨ\xBC\xD8_.\xEB\xF2\x86\x8CE\xFD\x8D\xCEÄ¿3xi\xD8><mw\xDF\x92\xBD=\x8FU\x9B\xF0X\xB5\x81\x9A&\xDE\xE7\xDB\xD7\xD4\xE65\xBEe\xDBz\xA8\x98KY\xBD*-\xFF\xEC\xAEC\xCD™\xCA\xFE\xB6\xFB\xB5\xBFww\xFBO\xD4\xD9Hz\xB8m\xA0z{|\x91uS\xF6\x9EM\xE7w\xF0\xDBη_
+\xBB-\xC1v\xCE-\xB76\xEC
+\x849\x86\xF5\xA0F\xB9\xA5\xBB3\x8C\xF4\xF2\xC4w\xF7vtYO\xFA\x9E\xD3\xEF:op_]\xFD\xF8\x93\xE8\x87GVk"\xDA6\xC2\xDC>\xD82\xAF\xF5\xB1\xF5Ú»p\xDF\xEC\x8Aʸ\x99v\xE14J%}:\xD8\xDFz\xEE}E&\xAAD\xCC\xCE6\xCFr\xBE\x96f=\x84\xD1\xE9Ê…+\xF2 Ǿ9xEn\xBF \xA8\xB5\xCC\xF2\xB6\x9EAAC̐"\xBF(\xB2\xB3	\x8F\xB9T\x98\xA7­\xFFR\xEF\x94@\xFCRa\xC0\xCBÙ«\x82!;QÈ”>\x9AlLݼ\xAA\xF2\x99C\xB0\x88\x87\xC8\xCF\xC4z\xB3ûC\xC0\x95\x8C$\x97\x84\xDC\xFC\xB2\x83\x9F.#ف\xF1\xFA7w\x82c\x83\xA7"\xC3\l\xF4\xAF`\x96Æ™\x90\xBB\xA5F\xEF\xF9\xF5q\xA4Øž#\xC0\xF7tFh~MAE\xB2i\x9Al\x9A\xA1N\xFFbFD	\x83\xA1\xE0\x81Px\xA4\xDBdR;\xFB\x8F\xF7(\x8A\xD2Ñ¡(\xA6\x99\xFF\xBB\xB3b
+endstream
+endobj
+89 0 obj
+<</Length 428       /Filter/FlateDecode>>
+stream
+xڍ\x92]\x8B\xA30\x86\xEF\xF3+\xCE^:\x8EQ\xFB\xC1EX\xEDd狶sk\x93\xD3n\xA0&\xF5\xA2\xFF~\x93\x9C:\xC3RVP|<\xEF\xF9z\xCD\xE4\xC7\xDB.\xFA%\xCD\xA3\xEC\x9E\xC3;3X\x81Q\xF9\\xB7l2Y14\xA8\xFBD\x89r\x8Cv\xF0f\x8D\xD8aӲZWZ\xF5wN\iq$\x8E\xAA\x8B
+<)\xFD%\xF1}`\xBAǏ\xE8wQ\xBC?}DO\xCF[\xD3Ôº\xAC\xDB.\xE1\xD1Où\xB6\xF7\xA9{ÕŸ]\xCA\xA8\xC1I\xE0\x96B\xC1w\xB4\x9D2\xFA\x92{ι\xFB\xF0\xA8ei\xBFp\xC7\xE2\xEB\xD0\x8Fk\x95\x96\xF6:9\xFC,IA*\xD1_)<E\xE3\x9C\xF3É»K\xD7cS\xE9\xA3a\xABÄ®\xB3\xEAz{	\xF3ß±\xF8\xD5J\xB4J\x9F`zkP'\xDC
+m{F?p\x96\xE7 \xF1\xE8\xEA;\xDF^\xEA!\xF6nT\xD2EU\xB9i\xCBW\xE2\xFE\xD2"\xA4\x81]\x89][\xB4\xB5>![9;x\xAB\x8D\xBBr\x86Z~\x8Bs\xCA:	\x9D`|M\xB21$\xFE\xD4\xD6JJW\x88\xF3E\x92{J3\xA2\x94\xA8 \xCAe)\xD1<\xD0\xECJ?\x89DÑš\xE81\xD0<!\xDA\xCD-y\xA0'\xA2~\xAA\xB9\xA4~\xAEt\xA0\xD5\\xCEs\xDA'\xCC\xEFW\xF7\xFF\xF3\xD3n1X\xEB\xBC?=x\xE9]T?\xCFEkZ\x9F\xEEp\xA0Ƴ\xEE\xE9u\xC3\xFE*S
+endstream
+endobj
+92 0 obj
+<</Length 24        /Filter/FlateDecode>>
+stream
+x\xDAc``\xE0UpTZ\xA2\xD6\xD8a\xD2\xE0  \x99x
+endstream
+endobj
+93 0 obj
+<</Subtype/CIDFontType0C/Length 3123      /Filter/FlateDecode>>
+stream
+x\xDA}W	TSW~!\xBC𪈕7\x99\xAE妭\xB5Zp;V\xAC\xADl\xE3\x8E\xD6\xD6R%,\xC8FYÂ’\xE4%/		aS\x88\x80@ \xA1 \x8C\xB5ÖªX\xADu\x99\xE9T\xEA\xD2\xD2\xD2Z\xDBNGm;\xF7\xE9e\x96\xECbÏ™\x{19D717}\x9C?\xFF\xBD\xFF\xF7\xF7\xBB\xFF\xFD\xAF\x80\xF0\xF6&AP\xC4\xCB\xEB×®\x8C\x9A\xB9j\xF5EF\x92<V\x96$W\xCF	\x9D\xBDA\x9A\xAA\x91%)=\xAB\xB9)\xDC\xACoDpP\xC0I\xBC\xB8'\x85\xDCS\xDEA\xB7\x9B\xB6*|\xBD\xF04_a\xAF\xAF\xF7\xE8\xEB\xB8
+y\xE0&\x9F A\xFFD\xCF\xFB\xEE$\xE4\xE7\xFB\xFF\xCB\xEFO\xBES=\x86Û¾\xCF\x94! \x82\x88\xA7\x89\x99D(\xF1_\x81X\xF0\xB4`\xC6\xEFBX\x91\xAC\xD8*\x8DN\x96\xCA\xD5\xE9j\xED\xDC\xE0\xD0\xD0\xF9/*2\xB5\xCA\xF4\xD44\xB5dnh\xE8\xBCY\x9E\xF7"Ix\xB0$&i\xDBE\x8EjG\xBA$I\x9E,\x89	\x96\xAC\x96\xACQ\xE4\xF0\xD6t\xC9t\x85\\xB2U\x9A\x96$K\x91(R$\xA5\xAFH4*\xA9R%IU*4\x99\xAA\xC1\x92\x8Di\xE9*I\x8EB\xB9C\xC2+\xA52i\x92J\x9A,\xD1È“\xA5J\x89:M*\x89\xDC\xBBQ\xA1\x90\xAB%\xABÒ·I\xE5*\xA9d\xF6l\x89D%\x95J\xD2\xD4\xEAÌ°\x90\xB5&5X\xA1L
+I\xE1}T!\xB2\x87N\xAAϸ\xD9k\xD7l\x9C\xBD*\xFAŕkbW\xABw\xAA%)
+\xA5$Y\xAANJ\x97\xA9\x82\xFFڿ\xB6\xAEQ(3\x92d\xFFL\xA3n6B\xCC%ˈp"\x82\x88"b\x88\xD5\xC4b\xF12\xF1
+\x91@$\xC9\xC4vb\x91AdZ!\xCF7\xFF\x81潉\x82A\xB3඗\xDE	ㅟ{\xAF\xF6\xBEG\x86\x92C\xA28Q\xBF\xCF|\x94>UT*\xF5\xF9c\xEB\xC6=6\xCE1\xEE\xC1x\xE5\xF8oQ\x87\xC7\xE8\\xBBܨ\xE6\xF3\xB7\\xFEt&g\x97\x90JQQ,\xB9\xBE0K\xAF\xDBK\xDB-\xB0ŕ\xF59z\xE4\xDD=\xDB\xE3j^\x8B\x96\xC6E\xEB`\x86\xA1vW3hi\xA8o\xB6Ck\xDB\xF1\xBA\x85:\xD8q\xAC\xB2=\x96<7\xEAS63+\x99Ȍ\x80\xB0\xF4\xF4\xCD%	\xAD\xCB\xFBRy\xEF=r \xD2˷1\xF5IG@ù=\xD7\xF7@<\xD6\xCD\xCA]\x92\xB6\xA4|\xDB	\xCBO\xDCDaʏ;\xAEs\xBDׇN\xBBPJ\x9F %\xDDDkn
+\xB9H&FtCطX\x96\xBC\xA7\xDD	\x8F\xA3\xCBx\x9A\xCE #/\x97\x95l)\x82\xD3G\xBF$\x9BDo\x9E%\xD5U\xAF~ \xD0x4\xE1H\xDC \x9F\xB7\x88\xF5)kS\xE3)Yf\xE2\xF6M ~Gc\xB76\xB06۾N\xB4urik\xA9\xAE\xA1\x8E8\xC1\xE1\xF6,i-\xAC\xDFZ\xB2\xA1d+d\x9D\xAE	u\xDC\xEAn\xF2\xBF|\xAD\xB8\xB9\xED\xCDq\x91h\xBC\xB8\xC2Z\xC82\xA0\x881\xEAU\x90^^܏4C\xB4\xB0e\xA4\xEF8(?kNm\x85\xF4K[]\x86)\x9F\xCA2\xEC\xCDi\xCD\xFBk\xDB\xEC\x90>|\xB12\xA2g)\xC0\x93\xB0&\xF0\xE3\xD9\xFF!\xFB\xC6tD\xF8\xF2\xAD\xB0B?\xE4\xC6˳Ѧ(\xDA%D	\xF1\xF9\xCA]\x87\xB6\x814uf\x96f\xAB2\xBB\xC0޽\x8E\x8AjX\xF0\x82t\xCD\xE68\xAADo6KLv\xA3T\xDD\xFA\xF9\xD4\xC11
+u\xEE7:É“\xE8\x96\xF5y\x88\xB8y\xF1&\x9D\xAC\xE3\xFFhw\x93+KÊŽ\x96\xC3;\xDCw$]\xA3{\x94\xC6T,#\xBB\xD4\xD2\xE6M \x8F\xC3~3\xB0\x98GHg_\x9F\x8ED\xE0\xFC\xB1\xCE\xF66\xA8\x8B&\xE9\xE5\x84\x89ÅŒ\xD6l\xCA\xDFEѽ\xC4k\xD2-\x9AD\x9E\xD9\xE67v\xC1\x9CCe\xA7\xCA9\xBA\xAB\xCEt\xA6\xDC\xFA;N\x80\x83\xBD\xB9\xF1\xFB\xA1skb\xB4?\xB2\x9AÑ€\xC2]
+d\xB4\xD8j\xE0\xD53p\xEA\xCBs\xD8B\xF0jZ[\xF7n\xA8y\xABr\xD0\xD1E\xA1v\x91\xCB\xC66\xD8à·µ\xD2o\xF0$\x80),\x98\x8A'\xF1\xD0\xD5#\xCF!\x80\xFC\xCE#a\x9D
+&\xA0 1.\xA1\xEEÏš:\xC1\xBD\x92Kx6֍Ýœ&G\x80\x86\xAF9#Z$\xE69xV\xF4!\xF7Yo\xB38v\xF3\xA1Ù‚B8*M\xE7\x99 at u\xA2\xDC\xF9d\xAAÞ¨[\xB2E\xBC\xC1\xD6\xF7\xDB\xFA\x8E\xB3L/\xE4f\x8BV\xB0\x95]\xB8\xF7S2\xDA-ÆŒ\x9D\xE6#y\xD2Y7\xF0#\xE1h\xE2%\xFEC_\xE2\xDA=toV\xB2m\xA5\xB0\xC5\xEEv\xB8\x95]\xB5\xF2\xFA\xF5`ᦵ\xA9h\xBD\x8B\xEE\x90\xF47\x8F\xAE‚\xD1Z2\xBEX\xC7F\x83\x89lH\xC8\xF0\x93D\xE9\xD8\xC3N؆V\x91\xDF\xED\xBB6p\x9C\xB3n\xDAP\x93qÞ£\xAE$\xAF\xC9c@\x82\xFC\xDF\xAC4\xFE\x8BnB\xACF4c\xEF)\x83\xEFqB\x92\xBE\x80\x9F\xF2\x84\xBB\xE0\xD4o)\x86\xF1\xD8\xF5\xCBBy\xB0\xD3dî„´\xFF\x9B\xDC\xF1\x81RmsHW*\x94F\x98i\xA8\xCBj\x9DM-M\xA5<\xABMcqP\xD6X\xBAO
+\xA2\xCEA\xFA:\xE7\xF4\xC4IѰ\xC7\xE5\xF09i\xB6[@\xE9\xF53UΠ+\xC7\xFA\xAD
+\xBB{2\x93\x91\xCF*@\xEA\xAB%duf\xA7Δ`\xCC\xD9]PT\x82`\xBF\xC9\xD785I\xB7\xFE&^6$\xF8\x85\x8F\xDA{;y\xFAÉŽXF\xB0\x93\xD1wz<6\xB2\xB5\xC5lj\x85cd\xDC\x8C!||\x90\xEEFc\xF0\xBC\xC7\xFD\x87\xA4/\xFDfo\x9E\xCA3\xC6F\xD0\xDC\xAE\xEE\xFA\x9E\xEB\xC2B\xCFx\x95h\xE9\xD8\xFA\xC65\x92]\x8E\xD2Ê«\xA0QÄ›\xF1Qk\xD6B<8z?Ν"]\x86U\xDE·h]eu\xA9z\xF8\xFC(Cf\x8A\xE3\xA6z\x82\x8C\xB3!Ê“\xCAT\xE7\x91v8\xC2u\x91
+\xFA\xB7\x99o\xB3U\x80\xCARg\xA5\xA2\xEF\xEFO\xE0\xED3G\xAF\x8Cir)P\x8Di\xF2\x8D\x8Bl\xE8y\x9Fe\xBA\xE0C\xE9\x91n\x9D\xEB'\xDD5\xFC\x9E\xEE\xC27%\xAEN\x86\xFB\xBE\xF7\xA4\xFF\xF4/\xE9'\xE0\x86\xDF\xDD\xFA\xBB\xB2\xF3l2\xAE\xDB}>\xC7\xAD\xFA@\xF9\xFD%\xB7Ѓ`\x87h\x8E\xB9\xB2\xDBos\xA5\xACU
+\xFE>\x8F\xDD\xE8u|\xDC\xFA\xD3l\xF3)H3\xF3G\xF7\xF2\xA9
+\xE6\x80\x9E\xD4h\xBB\xAD\xEBS\xB6\xF4~\xCA2\x9D|rX\x9B\xFD \x97ß¼O\xBE+D\xC1%b\x9BÅšW\xF44\xF27\xA3\xF5\xCDhv+
+\x85\xA3\xA9h\xB5\xB7\x8A\xB5\xDAˬF\x9BN\x8B\xC4\xF4b\xB8{e`a\xDE\xC2\xFC%ExB&)<\xB1\xE7\xEF1\xC0a\xB7\x95Y\x9D\xBD\x99\x9F\xFDcdW\x95\xA3	\xA9\x88\xA4\xD0\xC4m\xCB/\xBD\xC1\xA87C\x865\xD5h\x83\xAEOw\xE3yiX*\xC7ˢ\xF1K\xF8\xECO\xE5\x98ML\xA0\xDEl3:@\xC5݋\x88\xBE/!/7\xEE\xF9\x98\xF2\xE8\xEF\xC1W?\xD1\xEB\xC7ŭ\xF6\x9CF9\x90+Tr\x94\xEAU\xAD\xA0\xB5\xA5\xB1\xD5\xFD\xEE\xAB5.\xBEBw\xA1w\xDC\xFEh\xE6\xF0\x95a\xF6\xDE\xED{\xF4\x9E\xFB\x9F\x89ke>Й\x8AJL\xF0%\xADT\xAB[,Ǿ\xB4\xC0k>%\xE7;6\xD7\xDDi\xFC\xEC\xBD\xEA!\xEA\xEB\x9Ag?\xC6\xCF\xFC\xFE\xA3R\x9B7\xDAHҲG5\xD3}ţ\x99+,s>\xA2\xE3>\xE4 \x91\x8F\xA8\xA6\x8FMo\x83to{\xAA^\xA6\x8B\xD2\xC5\xE8\xB7uJ\xA9ԃ'\xF4m`\xC8}\xA3\xC5q(7OQ\x90\x86\xA7,\xF5\xA3\xAA\xD2\xFD\xD6*\x97-\xC0Z\xD9\xCAփϑЈ\x9FQ\xF1\x94N\xF9I\x8D\xC3\xEC\xE0\xC80-\xE1\x96s\x93\xC4\xED\xF6\xAC\xD6D\x95\xA8\x81uȋ\xA4\xA3\xF0\x93\xBFV]\xFE\xB3\xA4|ld\xEF\x96\xE9yXo\xE9Y+n3
+&\xBF\xAD95\xF2!(\xB3\xB2f+dÌšC\xA50\xEE\xCBu\x81}\xAA\xDA\x9Ejo\xCE憯\xB6\xF3+sKȍܟ,\xC6F\xF6\xB3T×™\xA1R\x89\xB7\xF2}\x82\xA3\xA6\xFE\xDC\xDE*\xCA\xE1b\xAB\xDA&\xC2\xCF\xC5\xDE\xC4b\xB8뙀BSq\xFC\x9B\xE0M\xE7a\xFE<v+?Yu\xB2\xF6D\x80s\xEB\xF0\x89\xB3h1\xDA0\xB9Ò£\xB2\xFE(c4-W\x85\xA6\xEEG\xE3\xEE\x9Cm\xF2\xBFp\x8B\xBD[pw\xFD\xAD\xFE[\xF4˹]h\x99\xB8\xFAÆ«C\xCF6\xB8|\xB9\xFA#\xEAÆžf\x82i\xD6.ˇ\xDB
+u;[\xEDO\xB8\xF7\xBBx
+\xBC]\xC7\xE6z\xC6\xF2\xA3=\xAB\xBB\xC0\xA1c\x9A9\xB9\xD0T\xA0[\x9F\x9E }-\x9DQ\x9A)s\x91\xCAT\x8A\xCD%fS!\xA53\x95\xB1\xB5\x80\xD1\xFDEt\xA39r\xC6n\x88\xA7\xA8W\xC8@⋵\xA7\x95\xB0\xD3p\xD0\xE5x\x83\xEAr\xA8\xEA\xE5@\x95\x9E\x97PCw߈F\xFE\x9C\xFC\xD7wk\xC7Nī\xDF\E\xDF\xDF\xE1w\xF3\x8B\xF0\xEFwA\x9F\xE2\x94(\\xACf\xE4%\xE4\xE7R\xC5\xC5Ѭ\xE0(\x9Ax\x8F\xA4\xBDP$
+\xBAt\xA2\xF6\x9F=\x89\xEA\x96^\xC3~ \x93sC\xF8\xAE/\xB6\xE8m\xD6j\xBB\xAB\xF1\xEBc\xCFkN\xC5&\xD6\xCC@\xFA\xA3\x9Dg\xBA\xDF_\xB4\x86-ʇy\x8BW\xBD\xB3\xEF\xC4\xDB'\xE7\xEBX\x93QEq>\xA2\xFB\x94\xB7ܨ\xDFS\xA2騇U\xEBasr!\x92\xEE\xC63~\x91\x88G\x90\xF3s\xD7E\x86\x83\x85\xA5G\xDEqB\x9A@\x9F\xFC\xEC3dfx4J\xFC\xB9$?7\xCDG[\xCE\xF6\xC0\xDC9|\xBF\xC2V\xD9\\x88\xDB\x98\xCB\xDD\xC9\xE5\xD1븿rS=M\x80I\x9DaV\x836\x83\xAC\xDB\\xA6fv\x98\xF8\xBEΠ\xE3w\xB6srj'\x8D\xD5l)\xD8l\xEFa\xF7\xBB{\xF1\xC5;\xD9bÍ€\xF4'|\xC8s6\xBD\xCC	?ƈ\xCC+\xB5\xAAA\xB5\xA3\xBC\xC2\xD14T\xB5\xBF\xA9\xD0\xE0Q\x88\xEB\xFEd\x97 q|[\x81\xFE&\xDEs\xCDyM\xFD\xF5u\xC65I`\xEDÒ¬\xE0
+01B\xBB$oq\xC1rݜ\x96eTXۥ\x9C\xA3\xE0ĵ\x86\xAF\xCE\xC0\xFEK\xFB\x86xلU\x89\xF9?#5\xA6f\xC9Vgă\xE4\x8DM_\x9B\xA0\xF9Lͭ\xF2ӕ\xE7+kOPh|χ\xE5M\xA0\xE3\x9Cv\xBA
+Zb\xF3\x97\xE9VQ~\x9E\xDF\xE3\xF0\x9D\xC6\xDF׈\x9E\xBB\xDBL\x8D\x8B{\xB1\xC9+.QP\xCCFY\x88\xEFc\xAC\xEFx\xF7\xB8\x91\xF1
+\x8B\xD5b\xB5ZÊ­\xB6\xF7|}\x9B\xF66\xDBN\x9B\xCDfw\x94\xFAN\xF8\xAAÖˆ\xD1
+endstream
+endobj
+95 0 obj
+<</Length 485       /Filter/FlateDecode>>
+stream
+xڍ\x93Mo\xA30\x86\xEF\xFC
+\xEF!Rz\xA0\x98ϴU\x84ԐDi\xDBtCT\xF5J\xECIj	2pȿ_\xDBcZi\xB5\x8A	\xC4ü\xF3\xE9a\xF6\xE3\xAD\xF4\x9Fy{?\xBE\xA7\xE4 };*~\xF1Ru\xDEl\xB6n\xD9؀^8\xF0\xC9\xDA?\x917ղ2/v\xEB\x9DÝ\xEF$\xABG\x93\xEAߢ\\x84\xFC\x96\x98<d~\x84\xFB\xFE{\xBF\xF9\xE9\xFFz9\xB4M%˺\x92CH\xFD\ƺR>5\xBEG1\xD4\xDA\xE7\xE4Dk\xC8M
+\xB1!\xDFA\xF5\xA2\x95O$\xBC\xA7\x94\xEAÉ‹\xB61=\xF7^\xE0\xEA&\xC1\xD4\xC9YH\xAE\\xF1\xE4dZ\xF1ˆp\xC1G\xF6\xC9=<\xE3\^\xFB\x9A\x9D<\xB7\xDErI\x9DY\xF4\x83\xBA\xDA\xEE\xBC`\xAF8(!/d~\xB3R\xAD,Ç®\xAB\xC1TE\xA8\x97\xE7\x84\xC3Y'г{\xAD \x81ÈŽk\xAB\xAE\xB7'\xF3\xEDy\xBCv@"\xCB!\xCFZ}W1P\x95\xBC\x80\xB7\xD4\xA19Yn\xF5\x95{ \xF9_v\x8A^\xA73\xA2L\xAFQ:\x99\xD8g\xA5L\xA0\xB0Ё(\xCD\xC2\xDCP#EH+\xA4im)*\x90\xB6hK,\xC5R\x8A\xF4h)v6\xA7|\xB0\x948\xE5#R\x86\xB4Bz@\xC2ɳ\xA5d\x8D\x84Ù³\x8D\xA5\xA3\xC4Xu\x9Abe\x98!ŘfH1f\xE4\xFC\xB0\x96\xFB˨\xA5\x85\xA3c.\x900{\x8C\xBDg8\x89\xD8)\xB1\x96v\xBBpQ2$\xD7;\xCDq\xEEv\xCE\xE6\x88\xCC\xE6}\xED\x95\xD2Ka\xD7Óž\xB99m!\xE1k\x83\xBB\xB63^\xF6\xB6\xAB?\xFD\x98\x86\xF6[\xEF\x91\xDA+\x90
+endstream
+endobj
+98 0 obj
+<</Length 22        /Filter/FlateDecode>>
+stream
+x\xDAc``\xE0`TdHf\xE1hxp \xA1\xCE
+endstream
+endobj
+99 0 obj
+<</Subtype/CIDFontType0C/Length 2217      /Filter/FlateDecode>>
+stream
+x\xDA}VTW\x9E 3\xA6Qr\x9B\xF6\xDCꌬZW\xE5Q\xF4(>\xA2"p9\x8A+]%H\x80H \x90"/\xC1 \xC33"\xA0\xBC)|\xADŮں\xAD\xA1\xF6\xD4Ñ•v\xEDjâž¾N\xD7>\xDC\xDE\xD9Ïž\xBD!AI\xAD;\xE7\xCCdΟ\xFB\xDF\xFF\xBB\xDFw\xFF\xF0\xF0 D"\xD1\xFC\xAD[\xB7\x87\x85\xC7/\xDF\xA5\xCETǪ䙺W\xFD~\xAFH\xCDQ\xC95\xF6;\xF9\x97\xF9\xF9\xACd\xBF\x80\xE0iϸ\xF1\xDDy_\x8Fj\x89h\xC1\xD7]Ij\x89\x9B\xB0^\xE2\xCEI<gÜ¿{\xFESM\xCE'\xD1Ù¹\xF6\xE7\xDE\xC8M\xE2\x8B\xDF<\xC3$\x8B\xEC\x81;\x92ń؍\xF3	_b@\xFCWD\x8Ch\xC9\xFFð9Y\x9D\xA4\x88HVdꔺ\xBC \xFF\xC0\xC0U[\xD4Yyej\x9A\x8E	
+\\xB9\xC2\xFE\Ë„\xFA3\x91\xF2\xE9j\xBD6]\xC9\xC83\x93\x99H&ÊŸ\x89V\xEBqT\xC9,Ug2I\x8A4\xB9*\x85Q\xA70q\x8A=L\x8EV\xA1\xD12\xA9uN\x96\xF6w\xFEL\\x9AR\xCB\xE8Õšt\xFFj*\x85\\xABHfr2\x93F\x97\xA6`\xB6c\xC2Ô™:f\x87\xF2\x80"S\xAB`\xFC\xFCF\xABP0i:]Öº\x80 ]N\xAA\xBFZ\x93\x90\x82\xC7hT\x8EA\xDA {\x9E_\xD8\xCE\xE88\xBF[\xB6E\xC7n\xF3\xD7\xD21)j
+\x93\xAC\xD0É•*\xAD\xFF\xAF\xAE\xDA%\xAD\xD6d\xC8U\xBE^&~\x8BY"\xD6\x9B\x89P"\x8C\xD8NDq\xC4"\x91\x90ID\xA1$2\xDC1\xBD\xF8\xB0\xEDA4\x88戚\xDD7\x8B\xDBCw\xB9G\xA0\x87\x95 ?"\xA5\x99\xB5pÖ˜x\xB5\xF8O/\xACG\x9B\xBD\xCAlq6t\xCB&\x89|Ç€\xAC߬a\xA1\xDC`6\xA5\xDF@*\xF2V\xE3\x81Ï„E0q1ZLg\x94\x9F(8[\xFB,#\xF5tͱ\xEA\xEA\xF6quK3k\x81\x8F\xA9\xB6\xD3\xC26\xA3\xE0\xF3\x87\x82\xE5bPVr9\xF28\xF2~\xFD\xC0e\x84\xA8\x8E_\xAC\x85\xBD\x9D쀙V\xFC(3\xEA*r\xE5yxX~\xF2>\xB6F\xA5
+\x9D\xAE\xA3-o}9\x82׊1 4aC\xA4M\x84\x86\xB8G\x9C;߁T24\xB7#\xF4\xBB\x850!!O\x95L\xF7\xA3Hr\xC0\Ѡ\x84\xA1T\x81\x86U\x95c`\xDDl\xBC@\xAD~\G\xEA\x8D\xB9\xC3p\xC8\xD4\xDEe\xA6\xE5Cg
+\x83\x89\xF9
+t\xD8K\xCB\xD6En\x83\xF5\x93\x8F\xD1M\xB7\xC9\xF7>\xBC\xF2>\x9Cx3tU!\xED ↽\xB2\xF4\xAF\xDCO\xDC$
+\xF9;#\xD9l\xDCG}\xCE\xD7=\xA7j\x96D\xF6\xA9\xD6D(\x88\x8FÈ¥A\x890/wbÙ¿\xE0Õ±\x9E\xBEA\x84\xA6\x96U\x9D\x81\xB7)k\xD7	 \xAD\x91\x81\xE1XCL\xF0&\xB85\xE1ÖƒV\xFA[\xEB\xDDn\xC2\xEB\xA7c\xE3v(쵏\xAF\xA1\xB1*Y|.\xC9zÍ™l\xCC3\xA1\xF7d\xC4\xD40$\xE2\xCF_T\xD2\xE8\xD5q\x82\xA9\xA3u"\xE1;\xE1%(x
+\xAFs1\x82\xC1K\xFF\xD9$\x83\xC8g\xFC]\xB5\xF4k\xC8W&\x9C\xA0nw\xDFx\xE7&\xBC\xFC\xAEfQ)\xED\xC5\xDAи
+yÛ¤h7\x97Ï…\xDD\xDFÄ¡\xD9\xF7A\xDFÿ-\xBBÖ°\x9E-\x80\xEBW\xFFqUm\xD8M\xBE\xF2d\xD1]l+\xE1\xDFS\xC0/\x8C\x93K\xA8\xC2l6\xA3\x9CVa2Z!:E\xB5v\xB3\xFDfz \xB3V\x97P \xFC2'\x91\xD5\xDA\xE5k\xF1\xA4 T\xF0\xA2\xC0\xE2cc\xE4\x9D\xE6\xD9~XQeJ\x86\xED]\xD6^\xB3_\x84\xB57p\xCDX\xFB\xF8~\x99c&\x81\xA0\xEE\xF1E$"\\xE6F]\xAB\xD4\xDA\xC7E$\xEBu\xE68\x96;\xF1P\x8AL\xDCᇀ\xE3\xA7g\xF7\xA5\xDEA\xF7\x9C\xEA
+\xBE\xAE\xD9$e_\xA60g\x86\xE88z\xD19'X\xBA\x8B\xEF\x94\xF5\xD6\xE6u\xAA\xA1:;G]A\xAB\xCB\xDBrzaowg\xEFtE\xE4i\x93v\xA3!\xDF\xCCU%D\xE3\x97x|\x83\xAB\xE0J\xDF0\x8DBE	b\xB4\xF9\xA2Y\xE4\xF0\xF4\xF4!%Ε\xFAS\xDA\xFC?\xA1\x84a\xC5{\xE8\x91w$U\xA8q\xC0>\xC5Z\xE1[SL\xEC\xA5\xC0<\xC2F\xC2\xF1\xF2wj̄S\x8E\xA3\xC4^\xAA\xE5\xEE\x97$0_	$8B\xA4\xEA\x9FC\xB3\x9F\x88\xB5\x91"O\xAC\xCDˁG|\xE9YY\xEB\xB2\xDDTۡ\x84i\xFA\#]F
+eSb]\xA5 \xDF\xD23C\xAD\xD5.k\x99\x82\x98\xE2\xE3%\xD4\xEB\xCB\xE04sq6\xE9\xCF\x8A\xE3@\xDFbgI\x83\xD1\xEE\xA7N\xA3B\xF2\xFB\xE3\xFB\xCFo\x80\xE1{\x94\x87rh\xC0
+\x9AM\xAD\x9E\xE9K\xBBn\xFB]bh%\xD5\xE2\xDC>\x8E\xA9\xFA\xD16\xF4=\xB4\xDE\xBD\xAFX\xD4;\x8F\xD0
+AO&?I\xEA\xB1'\xF99\x93\xBC\x8D
+\xD8=\xE3\xBA\xC9i\xB87\xB8\xA3Ø¡0\xC5\xCFzXD\xF4\x99\xD9\xC53\xA0@\xF4\xB8\xF7y\xB8\xB0h`\xBCd?5\x8C\x92\xC8g,\x84\xBFp1\xE0]\xE2bd,\xF2\xA1\xC9q\xD9H}vw:Td\xA8p\x9D\x94\xA3\xDDÙƒp\xB4``\xB7h
+\x87\x8A>K\xF91\xDES\xD6n*?\xF7\x84\xE7툠\xEB\x86H\xC09\xDB\xC1\xCDe_ݝbu\x9DK\xB5\xB86\xA5;Ձ\xBCI\xB0\xF4k\xEBGߢ9Pkl\xD6w\xC1Γ\xD6\\xBA\xC4\xC6\xB3I\xFF\xCEi9\xDCF\xB4N\xD6p=\xF3\x9C\xA19\xEDLv}H\xDB\xC66\x9FM\xE9\xC3\xC7\xC6ė,\xB9xo\xBC*?U5\x9DS\xD5P\xD6\x87k;\xDAMt'\xF2!\xAD\xA6ڮ\xA8-\xCD\xCF8L\xA7\xC57\xED\xC3%WnX]H\x97\x84G|\xA2E\xEEY>=e\x9F\xE8\x8BV\x89\xE3
+\xBBc6 at uBmO
+:=\xA6s5m\xE2\xE355m\xE9x\xB3\xE6\xEA\x8Dt\x8E\xE0C+4\xFD\x98;--\x83-t\xC6\xF0\xBB\xD7!ߟĦl?\x8B\xFE\x86\xCDHjC\x856w^\x87\xBCe\xC7\xBC;T\xE6\x88&\x9F\xCCÚˆ\xA6\xFA\xD3\xE2\xEEÚ‘\x81o৖\x8C\xEC*:\xBF\xB2*\xC0\x89\xB4\x89#\xAD5S@ËŠ\x8E鎤\xFD\xEC!(\xACO]\x9BZF\xFC\x98\xFF\xA0\xE8b\xE9\x9DÆ\xDD┲ă\x81\xF0\xB5]\x8Dw\x8A\xE9\xB6\xCA\xCA\xC6l'\xB6\x82eNhk\xF5H\x9Dz\xFEJe/DAo~\x8AU\x9F\xEEDg\xC0}\xD8Ì¡\xB9\x88\xE1\xEF\xF0e2\xBC\xC2=\x86\xD4AC\xE9\xC12\xFC\xB38\x94<d\xAC\xC8r"\xB3\!\xD1o\xA6\x9A/\xDEU\xC7\xCD..\xEFp\
+\xBB\xFF\xCCt;)7p\xEDt.\x86\x8B\xE3\xBE\xE2 at 5Iem\xD8\xD2\xE0\xC1\xF2\xDC|#UsD7Y.\xE3s$\x9EA\xBB\x9E 1B0\xC4-\xF7\xC8&S'\xB6\xA3}\xC5 \xA6h-\xB9\xCA\xF5\xA0y0I%	Fry\xC1x\xEAm81yÞ¡J\x9C}KQ4\xF2?\x89\xFC\xF19\xE3\x9C~\xEA\xE4\xBFl\xBDTAI\x82\xAF\xA7\xC3
+u\xAFc\x97\xB9\x80N>gl\xA2`\xC15?\xD0Þ†g\xCF7\xF4\x9E\xA5AxzE\xDB\xF6\xE4\xF7\xB2 \xCF\xE3\xA1d	\xFE\xBA%\xD6Ù¿t\xF7JK\xF9-\x8Dhccm#\xB5 2N y\x81\x95x\xDAfs\x9E\xA3Öºj\xFBen\xAF\xAD\x93H\xAE\xD64V7\xD5W7\xBC]\xD7\xD3 \x99\xC3w\xBE\xF8\xB3\xECQ\xCD\
+endstream
+endobj
+101 0 obj
+<</Length 453       /Filter/FlateDecode>>
+stream
+xڍ\x93\xC1n\xA30\x86\xEF<\x85\xF7)=P\xD2VR\xCD.R\xD3V%\xEA\xEE\x95ؓ\xD4\xD8\xC8\xC0!o\xBF\xB6Z\xA9ZE\x8B\xE2c\xFE\xF1\xFC\x8B\xAF\x95\xCF\xD5\xFC\xD55%oЫQ3\xF0\xF3]\xDDy\x8BE\xA1\xD8؂\x9E8\xF09\xDAߑW\xADXY\xE6eQJ1\q)Y3r\x98U\xFF=\xC0I\xC8/\x89\xADC\x96{\xF8\xE3\xC5\xCF\xED\xAF\xDF\xFE\xD3n\xA7\xA4\xAA\x9AZ!\xF5\xDF\xE046\xB5\xF6\xA9M݋\xA11)\xFF\xA1&FB.I\x88[\xF0t/\x94\xBC#\xE15\xA5\xD4|x\x94<W\xAD\xDDp\xEF\x93i\xCC\xDB8
+\xC9\xF5\xE4\x9C\xEC>\xBC0"\\xB0a"\xF7d\xAD\xE9\x9CM\xAE\xCE\xFD m)\x8F\xCA\xDBlH`*\x8B~\xD0g\xE7\xFF\xCA^4-\xE4\x89,/5\xC2j\xEC\xBA\xAC)B\xBD,#\x8Ef}Ó·\xE7\xBA\xD8n\x94\xDCD\xC5p\xBEØ–\xAF\xC4\xFD\xB99\xD1:S\xFA\xAEf\xA0kyoc\xDAA3\xB2Ùš+\xF3@\xF2oq\x8AY\x87#\xA2̯\xE1\xCDb\xB5\xB6\x85\xB9Y\x88\xD24\xCC,E+\xA4i\x8B;ZEH	\xD2)u\x87\x8E\xE2[\xA4I9Q\x8A\xF4\x80\x84yq\x8ET`\xEC\xD1Q;ZS\xA4G\xC6R\x8A1t\x96b\xBDd\x85\x84\xF5\xD6a^\x82\xAE\x8D	\x9Bë­“\xBB\xE2\xBA`h\xA7\xE2\xF3\xD0ب\xB5917:\xEED\xECY	\x9F\xD3Õ©\xCEf\xB9ۍ\xE5\xFC\xC7Xz\xD9z\x91\xC9\xEF
+endstream
+endobj
+104 0 obj
+<</Length 23        /Filter/FlateDecode>>
+stream
+x\xDAc``\xE0pdT\x9A\xE2Ñ°\x80\x85	 \x8F
+endstream
+endobj
+105 0 obj
+<</Subtype/CIDFontType0C/Length 1740      /Filter/FlateDecode>>
+stream
+x\xDAmU
+TW~C\x86\xD64Zb\xA2\xCB\xE0\xCC\xC8Q\x8B?$\xA8\xB0\xB1"
+\xBA\xFC\x88\xFCDRZB2@$$\x90\xB2\xA0(\xF8S\xC4+,[8\xBAnYj\xCDÒŠ(T(\x8A\xBB\xD2E(eS\xE9.\xF0k\x8F\x9E\xDDEמ7\x9C\x87gwBw\xBB==}g\xE6μ7\xF7~\xEF\xBBß½s\x84B\x80aز\x84}1\x89\xEA\xF8\xF5\xB1qIZ\x93uK@"\x93Sd\xD4ZÜŸ\xA28_n+&9p\xC6\xD1\xDCJ\xE7'D/\x89mb\xE1|"\xFA\xC2W\xF47_\xE1Q\xD1
+ \xB0\xFA\xC5n\xDB\xFB*\$\xF6\xE3\xDF\xF0
+\xE2U\xEE\x85n\xF1j\xE0\xE50\xB0\xF8\x82U`-\xE00\x93`Kz\xD7p\xBD9\x8B٭gL6\x83\xADd\x93"00h\x97\xB9\xA0\xC4b\xC8ɵћ7op\xDB\xD7\xE9\x9D
+:F\xAB\xCB3Û­yZk\xD2\xD31
+:NAǛ\xED\xFC\xAA\x81\xF67\x9B\xE8,&Wk̦\xCDٴ\x86I\xA5\x8B\xAC\x8C\xC5J\xE7X\xCCEֵ
+Z\x93k\xB0\xD2v\xB3%\x8F\xE6\x9F\xC6\xC8h\xAD\x8C\x9E.2\xE9m\xCBe\xE8\xA8\xE4$
+i6\xD9\xE8X\x83\x8E1Y: \x80\xA6\xADC\xE7\xDAl[\x95J[Q\x8E\xC2l\xC9Qf\xF3>V\xA5\xF1;'\xAB\xD2\x99\xAF	\x88ݽ+">)Ba\xFB\xA5\x8D\xCE6[h=c\xD3\x8CVŏ\xF2\xFD\xEF4\xDEl\xC9\xD7?|\xC1J\xB0(A\xD8v\x82H
+\xF6\x808\xB0h@*\xC8Y x1\xF9!R\xB7\xACB\xC0\x80ǘ\xAB\xF0\x88\xF28\xE1\xF1\xA1DŽ\xC7?\xE1\x82"A\x8Fp\xA9p\x950N\xD8+|.
+\x87\x97$\]\x85\xFDp\xF5\xF6\xE9=x\xC0%\xE0\xA2\xE5\xF0c\xFCi\xE8\xB0l\xFA\xE1\xFC$\xB2v\xA7\xE8w\x97zZ\xEE]\xDD\xC2(\x8E\xFC\xDFFk\x8C
+\x9F\xB4\xD6\xD0\xE9λ\xF5\xED\xB7H?	\xFDdv\xB60\xB7\x98,\xC9ӟ*'4\xDAW\x87`h\xED'5\x94d.\xB5\xC29\xE4\x84_\xF1\xEB\xBF\xF1\xFB\xF0\xE0}\xC1\x9C\xEF\xB4,\xD9\xF3P[y\x8C*ݟZ\xBE\x8F@\xC1\x87\xBEP	\xB7A9\i\x87\xF3x\xC8%\xEA\x9C\xD9XWH\xD0_CR$\xFFfݳ	\xB8\xE8s9{\xBE\x8DJQ"\xFA9ڈ\xDE@\xFBa\xDA\x93}}u\xE06\xB56\xC86$\xEDV\xC7%?z\xFC'g\xFF`o\xA4\x92\x94pƊa89\x8C\xB5\xF1\xF9ŵ\xC9N\x8C\x88\xF2ҒK\xE2e\xF2\xE8\xCCx\xC7\xC4\xEE|T\x96\xF7\xAA񯢖\x84\xC2\xC6P\xADF\xAF /$y\x82<\xA0\xEF\x97M:)	\xD7\xCDK5\xE5\x84\xC7\xED\xDEm.X\xEBRMJ\x9Fs:\xF9\\x8C
+u\xE3\xD7\xF7\xC4Ԛ\xBF?\x9E\xA9\xF4\xAE\xDF3J:>x\xDB\xD1z\x95J\xC1\xE1a\x96\x85)H'"v\xF5@/\xF8\xEAԵ;\xAD\xA5\x86xD\xD2\xC2\x9F·\xBD[ƲƯ\x8F
+\x8D\x9F\x93.\'\x97\xB9#*\x8A>e\xDAAU\x9D\xBD\x9F\x93[g"\xD6\xEE\xDC\x9Cې\xD3l\xA6\xCAJ\x99\xFD9K\xFDR\xFA\xA4\\x93W\x9Ea\xF5\xD9\xF1<\x81\x97oÙ¿\xC6\xE0J\xB4\x8B\xCD$\x9E3\xD9?\xBEW\xF7\xEB\xEA\xAA\xE8\xF2\xE5\xE3\x89\xBF\x8F\x8C\xFD\xD1\xD1ß—\\xA4*k\xD9\xD6\xE7\x9D\xF6ɶ\xB3m\x95$\x8A\xDF M\xB3f\x92\xD2\x90\xACk\xFDb\xE2\xE6\xFB\x9D\xBD\x86h\xEA1z!\xCB\xCBW\x91\xD2\xE8rUXK\xE7\xB6\xFF>\xF5ij\xBE\xCC\xEEq\xEB\xD2T\xCC-_\xD0\xE5\xE1\xA4\xCA\xF5.^F{\xF0	\xDB=\xB488#\xAD\xD8N\xC2!Õ‹\\xFAg\xAC\xF4t:\xEE\x8E?c#L$\xBA\x86K`-\xAD\xB6C\xDFY\xEF\xB1YŤ\xF43\xB8MΩU\xF3j\\xF8
+\xD7'\x9B]\xB3\x97p皊\xE7b\xEC\xD8\xF4\x84\x80;)G\xF0\x8C\x84a\xA2u\x9E\xE8 ҉\xB8\x8C\xD01\xA3\x90Ƨ\xC0בE\xB4\x80\xE9v\x9F\x9C\xF0h|\x81\xF8\xAD%sS4\xB1\x87n\x86\xFC\xB5t\xCB\\xF5\xF7$U)\xFB\xF3\xAC\xE4\xC5
+K\xEFkD\xA2ƶ\xEF-j$d>\x85'\x8B\xFF\x80쏦\xF8\xFF2\xFFR\xF0\x83\x9C ȟ\x80\xE0c|+\xBA\x9CX\x8B\xF6\xF01'\xA1Y\x97\xFBA\x80\xE4H\xEE\x870\xB4I\xBF]
+eP\xFE\xFC)\x94\x92A\xEFʐ\xE7/\xB7o\x8B\xBC
+EP4zs\xF4\xAB\x91$\xE0;\xBA\x85\xC3X'|0\x8CM\xB9\xBBQ\xC0\xD5C\xAB\x8AwC\x81\xFF\x9Ba\x87\xDF\xDCK\xDEP\xBD\xF0v\xC1x\x{2B7E8ED}Ä·3\xB3p9$\xF7\x8B
+=d\xA9i*$\xF3\x9B+\xCF\xFE\xD6\xA6\xE2\x8E\xE6\xF67\x88{\x9F\x87o\xA6$\xF0;\x83=\x9D@\x8D|f\xE3F\xBE<\xFF\xE6S\xDCoǦx)\xFF\xC9-\x91\x8D\xE2\xAAS\xF1Y\xBA}^\x8F\xB6ϧLB\xC1\xCC\xED\xE9j\x9E\xD0\xFA\x8A;\xD08\xD47\x84]\x9E\x80\xBENR(\x97\x9D\xAFj\xD7^%\xB3/\xE5ԥ\xD7{\xA9\xDFͨ\xEF\xF2\xE9a\xCF\xF6u)\xBCI6\xFEE\xE4\x88J;\x9DCX\xD0z\xFD\xEC\x8D
+\x8FP\x97s\xAF\xBBU\xE1u\xFDhoE\xBAO\xEC\xB6lOB\xB3CG\x96\x85\x89J[?+xH|\xD2Uw\xF1
+u\xC5\xD1\xD0\xD5\xEA\xE3\xFE#\xFB9\xCA\xFE\xFD9u\xEA\xC4C\xA2,{Ï\xBD\xD7M\xC2Ah\xDFÔž\xFF\xE5\xC7Ó¿\xBA1 at f\xF0\xF2F\x99Ü”\xE3L\x9CZ\xB6\xD5s+JJB\xB2\xCA\xF8*G\xC9Í’\xEB;v\x94\xB4\xC7\xC2˃=\xA1n^\xCDli\x8B\xCB\xCA
+\x88\xCAl\xF6|&U!\xAA\xAA\xBFr\xE2C\xA2\xA3\xED\xEC\x93k\x94\xC4}.\xE1\xF1\xFED\xC1\xEE\xD3-Ì»\xB8\x89S\x9F\x85iM\xBFi\xF2$c4F\xA5\xF8%V\xBC\xC8\xF9\xB2kQuMuu\xCDi\xFE>\xD3(\x8FU\x9F~\xA7\xA6\xFA\xF4\x82\xBF\xF2\x84Y\xF2
+endstream
+endobj
+107 0 obj
+<</Length 448       /Filter/FlateDecode>>
+stream
+x\xDA}\x93Q\x8F\xA20\x85\xDF\xFB+\xBA&\xCECAgbHV6;j\xC4L\xF6Û«\xDBDZR\xE0\xC1\xBFm/\xCC$wI ~\x9Cso\xB7u\xF2\xEDPß…>C0{f\xF4\xAD\xEE
+\x87 \xAF2\x99l4\xEFkP\xDD@\x80\xD5\xF6\x95\x8C\xE6%tt\x9A\x9BB\xC9\xEEÉš\xC5o\xBD\x80\xD1\xF5Ø´\x86\xABT_\xB7\x9D\x9E\xE0W\xB0\xFF\xF8q<ì‚Ÿ\xEFe\xA5\xDAep\x84k\xABL\xC0\\xD1Iv7k\xFE\xAF\x8FZ\x91>\xA9o\xF2\xA6\x95Z\xBD\xD2\xE8\x991f_\xBC)\x91\xEB\xDA}^K\xC2!"
+\xC7\xD0\xA9\x84rÒ³KM\xA2\x98
+É»\x81\xFC\x93\xD7vN\xAE\xB8\xBC\xB7Ô…\xBAh\xB2Z\xD1Ю,\xDB\xCE\xDC}\xE6'\xEE\x8D #Õ•NG\xB4\x96\xB2o\x9A\xB88\x94\x91,\xA3.\xB6\xB3\x9DÏ®\xAA\x81\x86\xEE\xDBaU\xD9\xDD\xFF1\x84\xAF\x92Ó½{\x8E0.\xD7Ú¦\xE2`*u\xB2\xB2#`]m\xED\x95P\xE2/\x9Da\xD5\xF9\x82h
+\xE3\xCFh9J\xFCwe\\xA3(\xB7\x8DK\xA2\xCCQy\x9A3\xA45j3\xA4-\xD2\xDC\xD3l\xD0R\xA4A[z\x9A\xC7H/H	\xD2i\x89\x94#
+]6H\xA47OÌ’l\x91\xE6\x9ERL\xB6\xC0.1:\x86Z\x8C\x84\xAB\xA7\x98:\xC1\x9E\xE9\xC2S\x8AYÒ—\xA7\xE2\xA7\xE0\xE8N\xC2\xE7v\xF1\xDE\xBBW\xFE\xB8\xF8q{!|\x9E\xA8F7\xAE\xCA\xDF\xFE(\x8E\xFF	G\xFB-\xF9|5
+endstream
+endobj
+110 0 obj
+<</Length 23        /Filter/FlateDecode>>
+stream
+x\xDAc``\xE0\\xC8\xF8\xB8\x85\xA3\xE1\xC1 g
+endstream
+endobj
+111 0 obj
+<</Subtype/CIDFontType0C/Length 2389      /Filter/FlateDecode>>
+stream
+xڍW{xU\x9Fiڙ"\xE1\xD5!*
+\xDC(\xA0}XQq\x85J\xE9W\xCA\xC3V\x84\xAAX\x92&\xD3g\x9A\xC4L\xD2'-\xA4<\xC4Ü´\x8BB\xDA\xD2B\xB4\xB4\xCD
+\xE5!H\x81vW\xAD\xA2[5\x80\x9F\xBA\xAB\x80\xBA\xB2\xE2\xA7\xEE\xDEٽ\xFDcg\x9AB\xAA\xA0\xDFN\xBEo\x923s\xEF\x9Cs~\xE7w~gB\xC1\xC1I\x92<\xBF,me|\xFC\xCCg\x93\x93\xCD&\xF3\x9C\xC8\xE5|\xA6ݨ\xB3*\xB7I\xA5IP
+$@H,)qA\xD2d\x954%Ø¥&\xF1\xB5\xEAu\xF0\xC0j|\xE9?%\xFFu\x86L"\xD2=F9\x9F\x87F\xA8\xA7È¿\xD4O\xA9\xA7*z\xD5Óˆ\xD0 \x82$ &S\x89G\x89\xA4\xC9\xD1\xE4\xF8{\xBB\x8D7\x98\xD3\xF9\xC5\xDEd˶\xC5F\xC5\xC4\xCCN0[\x8A\xACÙ™Y6.6&\xE6\xB1Y\xCA\xF9)nA\xB7D\xA7\xCF5\xB9Ùœ\xCEd\xE0\x96Dq\xC9Q\\x8A\xB9@\xBE\x9A\xCD=l6q\xE9|\x96Θ\xC1\x993\xB8T~%gx\xAB\xC0eZ\xCDv\x8B\xF0H\x97\x9A\x95-pfk.'[y#\xAFxg7x+g\xCB⹤V\xA4r\xCD&\xF7l\xB6\x9E7	<\xC9q\xCFsY6\x9B\xE5\xD1\xD16{f\x94Ùš\x9D!\xAF\xA2\x8D\xFEEB\xB4\xB2/r\xE1s)\xA9\x91\xCF.NHLY\x91e+\xB4qf+g\xE0m\xBAl\xA3\xF5\xAB|\x87\xCC\xB35Og$\xE4c"A\xCC$\xA2\x89"\x96x\x92x\x86\x98O\xC4\x88\x85D\xB1\x88H&R\x89\x95\xC4:BG\xA4YD6\x91G\xD8T2\xB0\xF21\x81\x98\xA0@L8\x89\xC8\xC5dO\x90#\xE8o\xAA$Õ»\xAA?\xEC\x99Rr\x86z\x9A:N]\xA6\xE3\xE9\xA1E\xA1\xFD#\xE2F\xB8\xEFq\xE4-\xB5mSD\xF4\xBE\xD6\xE5C\xF9>\xA6Pj\xF2j\xBCfXÊ—W\xFE\xD1O\xBE\xA4OZ=\xC6Y\xEA\xED\x9E\xFA\xD6\xEA\x83`\x87\xCBUS\U\xBBa\xB5\xF6\xB3\xB72RY\xBFd\xC5cXfc|\xDF\xD2>=\xED\xD9Y\x98\xF9\xC6\xC6cÛº\xB4\xAD\xFB\xA0\x97\xC5	(H\x93m\x86B\xC0\xD4e\x9Ce\xDAe\xE9\x87zP\x90\x85\xBA\xD8\xC1(\xD0Y\x91"\xF9\xAA\xF0\xA9\xA4\xCDȨA\xA3b\xBF\xC7\xC1\xABÓ‹Í™ %\xD2;s@<Ub\x8199\xAD\xB0\x8E=:ऊ\xA0\xB5\xB36\xEFy:\|\\x8BT\xB7\xBEE\xFB\xCC\xFD1IK\xE33>?
+\xFA\xE8\xF7zO}p\xBE7\xE9q\xE0\xF7\xF2\xB1H^\x{12171B}*)\x9A\xA6\xE2\x9D\xF9\xA5\xA5\xD0V^)\xD2o\xCC\xD4\xCEI\xFC\xEB\x97g\xF6\xFF1\xED\xBB_wng+\x9D.gy\xB8\xA9\xA2\xB1\xB8E\xEB\xA9oj\xBD\xD7\xE0\x85\xCB0x\xAB\xBF\x9B\x8EÆ£)\xFB\xBF\xDB\xCD\xDE\xF1]%\x81\xB0J\xCCz\xA9N\xC6\xD1K@\xBA\xE4\xA4\xEE
+Ï \xAE\xD1m\xB7h\xB1\xEA\xE1HÌ°\xCCf<\xFA\xC6#(\xA8\xE7Xs[\xBB\x8C\x9D\xBE\xFA\xA9\xBAV\xBC\xD9h\x8E\x86\xF1._3w\xFE\xA2\xF1\xABk\xA2x\xA9\xF7\xCC\xCAT%\x9F\xE4\xFCO\xCF!\xC3
+x\xE3\x9Bs\x8B\xCF]-\xEB=\xFF\xA3\xF8\xE3\xF9\xF1d\xF3@\x8F\x94\x8Bh>Z\xF7%\xBE\xBF\xA04\xFAԦ\xF6\xFC\x9A\xDC\xD0-[\xCB7	\xE1\x96\xC6\xFC\xD6ƶ\x9A\xC3=\x96\xAF\xF1\xF4:p\x90\xAE\x85m99\xD0T
+\x98+=\xF4ԲĄ\xB9\xE1k\xF7E\xA3\x87, [\xE9U;\x8C{ˎ\x85\xEE|\xF3͚\xBA\xF0}\x85M&\xC1Zʯ\xF0<\x84"J@]
+M^/l\xAB\x87\xE8\xEFw\xF5\xF7_Ǜ\xD0\xF3\x9Aeկt\x9C\xF7\xB6\x9F\xE8\xDFм\x811\x9A5\xE9k\x93\xCB 3\xB9\xE8w6\x9CԿ\xEE/\xF31R\x8Bd\xCFUTs%P\x93b\x87\xD3\xEE k\xD2\xB9\xDA\xBA\xAE\x96\xB0\xA8\x8B\xAAo\x86\x9DH\x9D\xF4
+\xD6\xE013£\xF1\xC8[S\xD1D4\xE9\xF8W-\xEC<4M\x83\xAB\xA9󵽧E\xED\xF5\xBD\x89/\xBF\xA1\x94\x8A\xA8[D#E-\x959\xF5\x9CtJ\xF3ѓ\xB0$n\x8E.\xA4ͤכ\xE4r\xB4\xC1Z\xF6&\xEE\x9EA\x95\xE6ɖ\xEEb\xD1^j\x97z\xBDy\xB0\x94\x9D\x81\xBA\xD1H\xAA\xB6M6\xCDp=\x8BG\xBEM}\xD8\xE5>r+\xF7\x95\xEE\xD16\xEE\xAB\xDB?\xE4\xC6_{\x99\xBC\xC1>\xE8c~T٩[/\x9Fx*~\x95\xDE!\xB7Ӓ{\xB0XHX(v\xB0\xE6\xCAV6ͧ\xBE\xBB|\xF0\xF4۵\xF6e 94\xB3m\xBDy(b4\xC3\xCF
+\xD99j\xB8L\xBE+\xCDVIy\xE8=\xCDan \xB8\x8F\xDAh\x80\xBC\xA1V\xB3\xA8\x8F\xAA:;\xFDQJ\x82\x8CD\x81\x8C\xC4Krtrz B~\xA2jÛ‡\x92Ň\xA8AH~":4\xB8\xEA\xA4\x86\xB2\xF1\xB4\x8F\xF9@\xD2
+=l:\xFA\xC4Ot<e\xD8Nw\xE3\xC3쓃\xE0\xB2L\x9E,5h<Bs^\x9E \xE4\xE55Os\xB3\xDC)%\x87J\x9EEKΪ$\xF7\x96&
+OC\xC9\xCE
+\xA4F\xC1!\xDE P82 `\x85g\xE1\xC9!\xE8\xA6\xE8\xA5\xCF'\x84\xB5\xC3\xE2\x98\xC8{\xED%\xEA\xCAE\x82\xA7\x85\xBCj\xB9}{\xC4|\xA1(\xF7\xA8\xF6oڠ\xE8c\xF9[\x9Akt#l\xE2yh\xCF\x8B\xF1I\xE8\xA6\x9FeR\xF2x\xC0\x87w@\xC8\xB4Xf\x9BrH\xA3(\xAF{Gǯ\x8Aa\xC2\x8F\xBB\xAD8vX\xA0\xE3<n\x98}\xF5\x97\xA5H	\xB0\xEE\xE8o\xB0\x8E\xE9\xF3l\xAB\xD5\xFFR\xBA\x87tL\xCB\xFFA;l\xD1L\x85\xF7\xFE d\xC9{\xF0.\xD1fn\xB1\xC3\xFC_\xB2}\xCFo:N\xA3~[ę\xF1\xC3e"-\x89ҐV\x85\xFE~Ns$\xB7-Ko\xCE\xCD\xD2\xEF7wi\xDB\xDF\x86!\xD3/Â\xBEf\x96\xA5i)::/\xFA\x85\xADV࡙>?\xD2d\xA0\xEF}\xB8\xFB\x99a*P\x88\x8D\xF1N\x96	\x81\xC8+WnCEۦ:mK\xE3\x9Ev\x87\x88JE\xB4Z֯\xA8\xE3\x82Jz\xCD\xD5+9\x9E\xD3\xF8\xC3\xC67\x9FhH\xA8{\x90\xAF\xD2\xEF?\xDEu\xF2\xED>D\xEF\x8A5n\x96\xED{\xA1[+O\xADz1\x83\xCA[\\xB69\xAB\xD4\xADk\x8F\xD3br^\\xECr\xAFag9{T׾\xA5\xBF\xF8\x88\xE3\xC1޲\xEAm\xCD\xF6\xD0\xDD%\xB5c\xF8\x8B\xEB^\x98\xAFê\x9D\xDFo\xF5NgC\xA6\x96\x87\xD6"3\xF4zh\xF6V\xEF\xAE\xECt\xE3I\xD1qJ\x8B\xEE\xBBx\xED\x9A8A񼈂İK"\xAA\xE5٤Ga\x9A\xE6M\xF9v\xA0\xF7\xDEH\xACM\xAAJqoh\xF6޺^\x99[\xE4\xB9-\xB0\xCA\xE3\xD9\xC1m[7l\xD9\xF6\xA4\xEB\xA1M\x8B\xE3\xECOfE\xFD\\xF2U)\xFB\xE7\xF2\xCB\xD2\xC23\xF9\xBC\xD9\xC9\xFA\xC6\xF7\xF3A\xDD\xD6תM\xFE\x88bif\xB3\x92{O\xA5\xC7
+rμ\xB4(\xAE\xE9\xDBC\xFA\xFF\xE8\xEB\x92?\xE3\xE7HP*\xD7\xF4\xFB;v`e,ے\xC1\xC6ӅPPf{=8\x83\xC6\xAB\xE8@\xCC\xF4\xEE*I at cWRw\xD6\xFAg\x8A\xAC\xC6c
+\xC2\xD0,\x9FB &XJC\xF7k\x98`\xF9\xABV'`\xA4\xF4\xD73-\xBC6\xFEe/\x8B\xF2\xD1l: \xF0\xB3?\xA5\xEAa3\xAFd \x9E\x9E_\xE0B
+\xBE\xEC\xF3\x80	\xBE.~x\xF1\xCE\xD0\xEFV\xE8\xC1w\xD4\xC7\x87\xB5\xDF'\xF7\xF9sb\xEE\x82\xF5|lo\xA8\xE9\xEEI\x80+\xA8\xE8M_\xF4t\xD6ַ\xC8\xEF \xA6\xEDͰV\xDB?L\x88dg\xA4\xF4ڐ\\xF0\x8Bb\x90
+E\x84
+,J
+vk+l`=\x9At=d\xF7\x9D\xD4B\xE4\xEE\xA4\x85#\xF0(\x921LZh?\xAEfhg\xAF"\xEA3L\x85\xE4[nw~\xA8_\xB7G+\xFF\xC6JZ\xF5t\xF9\xED\x9ExBy\xD3Os\xB8\xA57\x8A\xAB\xADtQ`I\xAA1Z=\xAAG\x8A\xF7\xF9Fv\xB6\xBA\xE4\xA3b\xBB\xAB\xA1r\x87Z\xDDY]\xED\xAAt\xBB\\xF5.\xB7\xA4\xF5?\x85\x8D\xC4N
+endstream
+endobj
+113 0 obj
+<</Length 470       /Filter/FlateDecode>>
+stream
+x\xDA}\x93]\x8B\xA30\x86\xEF\xFDÙ‹B\xE7\xC21Z\xABÝ¡\xAD\x9D\x82\xB0\x9D\xE9N\xCB2\xEC\x9DMN\xBB\x81\x9AHÔ‹\xFE\xFBMr\xE2\xDD\xDF\xF3\x9D\xE3\xE4\xDB\xFE\xAE\xB8:A8{\xA4\xE4
+:5ha\xB9\xAB\xDB`2\xD9(64 \xFB |T\xBB'\xB2׊\xA0'Ó²\xDATR\xF4Ƹ\x92\xEC:p\xAD\xEE\xAD\xE1"䧉\xCDC\xA6Gx\xEE\xBF\xAFV\xE1\x8F\xDDNI\xB5\xDF\xE02\kR\xEBt\xFD\xD5\xFF׎\x91\xDC\x89\xF2t'\x94|"\xF1#\xA5\xD4|x\x96\xBCT\x8Dm\xAF"_"\x89Æ¢\xCFBr\xED\xEB$'[u'\x84\xD6{rOÖ˜9Y\xE7í롩\xE4Y\xCB%\x89Lf\xD1\xF5\xFA\xE6j~\xA2W\xCDAy!\xD3\xFB%\x93\xC3жW\xB0\xE5\xE1p6\x91\xCD|^\xEAHd{\xAF\xB8QE\xFB\xC7>]\x8E\xB7H\xE28\xC6r\x99\xE2е5]\xCBK3Z\x90\xE5\xD6\E \x92\xD1)z\x9DΈ\xC6`|M\xD2QbjmÅ¥	Di\x96\x92R\x82\xB4F\x9A!m\x91RG3\xEA(\xF1\x94\xA06GÊ‘2$\xEF\xB7p\x94z\xBF
+R\xEC(\xFD\x8E\xE4\xA3xʐ\xD6H3-\x91\xA8y\xDA =;\x9A\xA7\x8Er\x8A\x84\x96	jfϱ\xBF\xB3ϱ\xBF\xB3\xE7\x9E\xD0o\x8E\xFD\x99\x92\x9C\xE6	\xF3\xE5\xD8m\xEE\xF3-
+\x9C\xB4\x9B\xAC=\xBB]+\xC0\xAD\xCD\xF9\xBBt\xA7l\xCFWH\xF8\xD8\xD2V\xB5\xD6\xCB\xDDn\xBD\xC7\xFF\xCC\xD2\xEB6\xF8\xED\xE6
+endstream
+endobj
+116 0 obj
+<</Length 16        /Filter/FlateDecode>>
+stream
+x\xDAc```h`\xC0
+\x98 \x84
+endstream
+endobj
+117 0 obj
+<</Subtype/CIDFontType0C/Length 983       /Filter/FlateDecode>>
+stream
+xڅ\x93\xCDoE\xC6w\xBBڶK\xA1\x88\x88\xCAN\xD6CJS\xC4NS@\x82DIՐآ5"\x90\xEA\xC4\xEB\x8F\xC4\xF6ػ'V\x9C\xA4\xF2ڱ\xD7\xDE\xF5Ǯ4N\7	i\x93 at H\xA5\x9E
+B\ʁB\xE2 at TN\x95\xF8v\x8B{`-D|\x88w\xA4wf\xDEyG\xF3\x9BGzpL\xA7\xC3p?3>\xFE\xFEGc\xB6\xD7FǮ@\xBF#\xF0V\xDF\xDA=\xE3s0\xAD\xB3!\xB5S\xEDʐ\x94Ja\xAA	WA\x9B\xFAR\xBBڭ\xBBH\xB6\xDF!uOJ\xCDo:\x8F\xC1\xDF\xEB\xBB0_}\xB6\x95\xB7N+\x88\xEC\xD6V:\x8A|\xB9U\xA8\x91\xE70\xA2
+ñ3Xv\xEB\xC5\xE3\xC7\xF1\xD3\xF8\x8B\xFF\xF1\xE8\xBBN8A_v\xD2\xE4E\x91s\xFF\x830a\xBCn\xFD\xFD_o\xE5\xB7\xC1{f0☜\x86\xB3\xEC\xB48N0bcf`\x85\xB3Z\xD5^\x810A{>\x80.`\xA7?3,Í°\xC0\xCD\xC0\x99 \xFB\xAA\xD8=^\xCCBfh3C\xFBhK;\xC1L\xC0I3 yhp\xE9ëv0\x8Cz'\xE9 K\x83\xBE> X\x9A\x84\x82\xEFX,h\xC6m\x86\x8C\xDB\xE2\xD2zX\x8B\xEF\xCF&\xD6Òº\xD77l\xB3\xDA\xFBF/Y\xAF\x99\xD1.\xC8 '\x8D^k\xFE\xFB\x87\xFF\xDA[!\xE3w\xF80- \xF6\xFB\xB5]SL\xA6ki\xA7ê\xF8p\x9B_\xD9;\xA5*\xCAoaupW6~jWo\xA8\xB6\x8E\xFARn\xA1 at 5{(\xBD\xDF\xEB+\x85R\xAEnhDJ\xD1x:\xCD-Rͳ\xAAJ\x8F~CLÜ„F\xA6's\xA6j\xF3|\xB3\xFB\x91>[\xCEq\xC6hd	\x85K\xC9J¤\xF4Úš\xBDV\xFDBb)6\xA0\xDARU\xB9L)gE\x9B=\xFA\x89\xE4v\xBAh\xBCY\xAEl\xA7LQ\xE5\xBC\xD2}A\xBF\\xCC'ec\xB5Vj\x98N\xA9?\xAA\x86#eA\xA3J\xB5\xABH쐓\xBB\x93\xB3\xC1\xA08>gR\xE2Nf\xB5\xF4\x91m\xBF\xDE7\xDCe\xA5y\xB88\xBD\xF2g\xF9 \xB5:\x92Y\x83L\x96\x91bY"\x9E\x96\x91q29\xCD-H\xC1\x83\x8D킼c\x92\xC5-i3\xCB\xC3\xE4|\xDCM,~\x90\x89}bh^Zk~\x9A\xA7)Nb7\x8C\xB9rfU4eo\xAD+Sʘ\xE1\xBBL~\xFEg*\xB1\xCDW\xF8\x8D\xCD\xD4f\xBC\x98"\x96\xEB\xBB\\xC3x mWZ\xAC\x91#\xF5\xC4/\x8AM\xA35\xDD\xD1\xC6\x9Dr\xA8\xA3]\x85Q꺋\xF2s\xB1t\x84\xB7r\xEB\xAB\xF7\x89l\xB5\xB0\xCBp\xCF+&a\xC2\xE9\x97\xE9\xA2d\xA78'F""'dbÅ…r\xC8\x8AÎ…=;\xCBk+k\x99\xCA}\xD3m\xB9(\xD4D>\x94\x9C\xBB>N\xA4\xA2	/k\xB8\xB6\xCFÊŸos_%wȯ\xF3\xB5/\xA7w8b\xE1\xDBr\xA6d\xAC\xECfLO\xC6u\xFF\x90\xAE\x91\xAD\xC9_\xD2^ao\xF3)GHrK\xAAxMK\xFF/JE8\x9FJL1O9\xB6\xE2_\xC6w\xA8\xD8=\xBE\x9E.\xFD\x8BL-\xF7?\xA7\xC9\xCD\xC4Ø›-C<\xAE\xAB\x83U\xAE\xC8\xF5cÔˆ\xDDg!\x8FgÈ“\x87'\x9E\xDCD!+\x88\x92 \xCAH\xF2@\xBC\x9Br\x92\x90+\x8A+\xE43 \xF2\xF4\xD0n
+endstream
+endobj
+119 0 obj
+<</Length 372       /Filter/FlateDecode>>
+stream
+x\xDA}R]k\x830}ϯ\xB8{(\xB4\xD6haE\x84\xAE [?\xA8e\x8C\xBE\xD9\xE4\xEA\x9AHԇ\xFE\xFB%\xB1\xB60\xD6	~\x9C\xDCsn\xCE=q\xF4rH\xBDW\xF4fS
+GlT\xA7z\xCBmV\x93\xD1h\xA5XW\xA1lw\x88\xF9Pm\xE6pЊ\xA5\xD8\xC2x\x99\xAC)ډ!'\x92\x95ǁ\xF57\xE9
+!\xBB\x8CO\xF8\xE5\x9D\xCF\xEF\x9F۽\xF7\xB1=\xAA*\x93\xAF\xDE\x8B\xAE̴G\xAD\xEA$\xDAҰ\xFF'\x82\xA9“*\xB86\x9F\xA8\xA1\xE4\x82)\xA5\xD4,\xAC%_\xAA\xCAN\xD8\xFF\xE6\xFC\xC1w.$\xD77\xABp\xB1\xC6I\xAC\xBD!\xF7d\x95\x89ʊ\xD3k\xD3b\x95\xC8\\x91(\xDF\xEC,\x9AV_\x9D\xEB	\xF1\xF7\x9A\xA3\xB2\x80\xF1\x8F\x86\x93vu]\xA2\xF5\x94\xC41p\xCCMk\x93\xD1.\xAB|;~\xC2MU\xB4\xD7g9<4\xA7k\x8D:\xF4\x86\x99\xE2\xD8\xD4C\x9D\xC9IdB\xA01Ds\xC5%\xFFU\xA7\xBD\xEA\x92\xF7\xD0\x86\xCF\xD9Paߙ\xB6}B\xDBǼ\xB1E\xAB\xB5A\xA1]thӣ \xEE[8\x8D\xDD\xCDw\x8EuZ\x9B\xC9\\xBAξ5.$\xDE\xA0V\xB5U\xB9۝\xDC\xF0Y\xB4ߐb\xE4\xE5T
+endstream
+endobj
+125 0 obj
+<</Length 35        /Filter/FlateDecode>>
+stream
+x\xDAc``\x900\x90/\xBE\xBCoO\xDD\xC47^\xB11@#0\xE0l w\xDE&
+endstream
+endobj
+126 0 obj
+<</Subtype/CIDFontType0C/Length 6362      /Filter/FlateDecode>>
+stream
+xڥy	X\xD7\xDE\xFE\x84\x90n\xA8\x8C\xB1:㝉\xD6ZWܫ\xB6Z\xF7\xDCQd	k\xD8B""a	YN\xF6}
+\x84m@@\xF7\xBD\xEEJ\xAF\xDAMm\xD5\xEAE\xEB\xD7\xEBV[{\xDF}\xBE	\xA8\xF5\xFEk\xEF\xFF{\x9E/\xE1IxfN\xCE\xFC\xCE\xFB\xDB\xDE\xF7fo\x8F	\x82\xA1\xF3x\xB8\xBB\xAE\xB7b\xE5\xDA\xF0P\xEF\xB0É“&\xAC\x95\xA8\xE4\xDE
+\xDB\xCDE\xDC0\xEEo\xA0/\xCD\xD1\xC78\xA97\ȍ\xB0G\xA3\xFA
+\xF7\xF5\xB5\xEFrE\xFB\x87\x89\xF4\xAF\x90\xE8o&(\xEA\xCF\xDA\xD19\xD0w\xFF]\xD7w\xA4\xED\xC2\xE0\xBEav\x98 \x8A\xD1\xD8(l\xF6J\xD0G0H@\xFE\xD5c]\xFC\xC2}dK\xFDda\xCA e\xCC\xE7I\x93\xA6\xCD\x8F\x88Q*\xA5S&M\x9A:\xDE\xF69K\xEA\xEA,]\xE6\xED$\xF5\xF3\x93.s\x96\xAEt\x96\xAE
+\x8F\xE6\xAFIG\x87\x87I}d\x81\xDEri\xB8\xBF\xD4C\xB6Q\xAA\x8A\x92)\xA2\xA4\x8ApUD\xD4g\xA9G`P\x944:\"\xE5\xBF2\xB9\xCC;J\xE6'U\x85\xF9\xC9Re\xA0L\xBAx\x9D\xBB\x87tQx\x98R\xBA"\xC8W%\x93N\x98 \x95F\xC9d\xD2@\xA52\xE2Ӊ\x95\xAA \xE7pE\xC0D~L\xD4DyϠ\xA8\x89\xB6\xDFMX\xE4\xB6\xCAcŠ\xA5\xF3\xAEr_\xE8\xACܩ\x94\xFA\x87+\xA4~2\xA5w\x90<\xCA\xF9O+~{aU\xB8"\xD4[\x8E\xF1/
+\x86\x8D\xC0>\xE4\xD1\x8FM\xC0\x9C\xB1\x89\xD8dl
+6\xFB\x9B\x81\xCD\xC4fa\x9Fa\x9Fcs\xB1y\x98+6[\x80-\xC4aK\xB0e\xD8rl\xB6[\x83\xAD\xC5\xDC1l\xB6ۈm\xC1\xBC\xB0\xED\x987\xE6\x83\xF9a2,‚\xB1L\x8E\x85bX$\xA6\xC0\x94\xD8,\x8B\xC7\xCE(\xC1K\xC1\xEFB\xDEQ\xFC\xEBs\xECs\x9B\xCB\xEC\xB1h.H\xB7s\xB2\xB3\xB3\xDA\xDD.^\xB7_l\xBFG4M\xB4GL\x88\xBFǧ8H\xF7\x9A\xDAkI/K\x95}\x86\xF69\xD0\xE7Y\xDF\xE4~\xCE\xFD\xEA\x87;&9^\xEC?\xA7\xFF\xA9\xE4\x80\xC8i^
+lu\xA2\x9D\xBE"\xE2\x88\xFB\x83\x82\xFD \x99 91\xF8\x93\xC1\x8D\xF4\xFF nȌ!\x{1C6591}\xCE\xE4)j9J%Q\xE7\x86\xF5\x81
+\x8E\x9DI\x80\x85\x9BXnk\xB4\xA0\xD3{0\x83\xBB\xC5e6\xA8$\xEF\x89\xF2S\xF5\x99\xB1T\xACN\x97\xCA ß®\x9Fc6\xFA\xEE^g*\xC71C\'b\xF1M
+k\x95٘c41\x87\xE0"\xC4'\xD1\x91Qk\xD2h\xC9PwA\xCBqs\xD35\xB0\x97B\x83`\xB6\xA9\xC4\xD0\xDE9r:\xB5e\x8B\xB18\xD5߀\xBEW\xBF\xB6\xF1\t\x87\xE4\x85;\xBEF\xA1Qk\xA6\xD3\xD0o-\xCDt\x8Bߦ\xA2-ԬE\x9EKC\xCBvUՔ\x94U\xE5\xA56l52\x8D\xD5Gs멣g\xFC\xA60\xFE\xF8F\xDDB݊P\x87yA\x8A
+^$\xA1\xFE\xF4\xB1\xE2R\xFB\xA1}\x87Ki\xC2\xD57\xAD\xDA\xFB0U~\xA1\xE0}v\B\xC7\xCFڶ٧\xF1\xD8\xE9\xB6;pV\xEDع\x91\x87\xA0\xDD[X'\xC8܁g\xBB>#v2p\xB9\xE4\xFE\xACo\x910\x8F~\z\xF5\xF27\xE4\xFD\x89\xB7\xD1`\xBA\xCBN^)\xBEaR0]\x95x\x80^\xFD9%熉	%\xFA\xA0\xE3\xBF4 ޕ,\xDF<	i\xF44\x88L\x99\x87i8 at L\xDCx\xDC\xF8\xC9z\xA6ݑ,\xD80k$\x8D\x8A=\xF5\x99
+\xAC\x82\xABq\xC2\xFEi\x9B\xF3Ƒ;\xA9\xB6\h\x83\xE7,п\xCD\xE9e\xFB\xD2;\xD0t\x878̕@\xB9c\x9E"\xF1\x9C\xED\x9E1\xB14\xBC\x86\xA3\x91j\x91\xBF\x96\x95\xB2\x99\xE9zdś.\x8A\x94\x85m\x9B\xBE\xA1`\x9F_\x9F@	3\xD3(\xF1׻\x85m\xA3\xE5;d\xC1\xEB(\xC2[@esW\xCC%$\xF4\xC1K\x811\xB7\x88\xFE\xA2\xE5tV%u\xB0)RV\xC9T\xF9\x98\xD7\xFA\x90\x8E\xDCj\xB56\xFC\xD4l\xEC\xB97\xFC$\xE4\xA6\xC2>\x92\x9CD\xA0K\xD2k5z\xDA9lY\x82?\xB5~\xEA~8θ\xDDv2\xFB\x92!\xA0\x91\xF1\xD1iB\xE3\xC9Ȓ蚪\xB2⺿\xCFm\xF9
+\x9C\x8804 
+z::@\xB2\xF6Í¡!^\xC2\xF0\x97\x82{/\x85Ѓs\x94\xD4FU\x86\x85EE\x85\x85UF\xD5\xD6VV\xD6\xD2\xE8\xA6\xFD\x9F\xAE\xF1\xBFB\xF3v\xC0u/p\xA9E\xBD\x8C\x92\xCBQ\xAD\xBE\x811\x91\x91\xC5M\x859\xB9\xB4iv\xF8*/O\x8D\xC6`Ð’)\xE9\xDA\xF4\xBC[\xB7 \xCE\xFB5\xB0\x9DV \xE9{G\x9F\xC1\xF8g\xC2\xCE
+\xB0C\xD7"
+NFs\xDF\xEFI;1\x9C
+i8\xAEf>\x8C\x84;\xDD6\xD3\xD1k׌\xA2F\xF58\x8CÛ‹w\xFB\xF4\x99\xF8\xE2UÕ‚\xE3\xCC\xFE\xD5\xD9\xD3\xE7\x90Ý®S\xB3_\xB0\xF04\xEF<V\xDE\xE6\xC4\xE3W\xDANȸ\xCA\xC1,\xBE09\xF3(\xC3\xFD\x8AE\xEF\xF8
+\xC9\xF1\xA6\xB0\xEDU\xEB(\xD4{\xC4$AÄ“\xD1P|\xF9\xE0\x9Ez+\xB3'\xE6A\x89}Ыw\xD1DË–\xD0m\xAA\xEDÔ¶\x80\xAA\xBDQLd\xAB\xEEL+\xD9l:_{\x90f\xCB\xF76\x9C\xA2\xDBvoc\x99\xDC]@C:v\xCE\xE1C\xF9<{\x8F\x853\xF8u뀛\xADp\x9C\xD5lvJa\xAED!F\xCE
+\xA5+\x9AG\xA1\xA1\xAFï\xEC\xFE87\xE4\xC6
+K\xE2\xE9j\xF9Xz2Ly\xB51\x9CP큘"\xC6*\x87*Q\xD7\x{1DC057F}\xECqOЄ\x96CW\x8B\xA0\xE6Lj5ɦ\xD4$\xBD&YO\x8F\x9C\xA9M\xBEu\xCDJ&\xF4ho"a\xBD\xD8b\xE5O\xD7=F\x91\xC3đ\xFC'\xF9\xDBX\x88CǃPX\xCA,\x85C%(Q\xC7dܵ\xEE\xA1^\xE4 ʏO\x9D\xAA\xA6\xB3\xBFU\xD0v\xAC\xFC\xD4r[\xE1lI\x93\xFA\xA0\xAC\x8D\xDEY\x9B\xB3|\x9F\xC3W\xCDGO\xB4\x93?M93\xE9\xE3O]\x9CcL\xDB\xDA<\xE9܄f\x85u\x97Ú\xB0\xE9\xEE\xA3\xC9\xE1\xBF,\xF9
+\x8A~\xBE\xF3;\xBD \xFE"Y\xEB\xB7\xC5-\x90F\xBEm\xAD\xD3\xEE)&/\i\xBB\xFE\xF5\xE5
+\xF3\xE9\xF2.\x89\xC4eކY\xD3\xE7_\xBCs\xB6\xFE\xF2\x8F<\xFD\xE7\x88jv]\xC5#<\x9CG\xF80\xF1\xC5bX\x87oǭ\x85~h%\x9A\xB9߹-\x92n\x98\xFD&1a47\xDE-T\xEBC\xA0kb\xD8`\x9CX;\xE472\xD0p\xFFg\xCE\xCCHGO\x87bbL\x8F\xFA\x8A\xE1X\xAB;\xA2\x8BGx\xB0\x9C\x88\x85\xD3\xEEfYо\xFD\xA7\xFBB\xD8\xD9\xD9_\xD2\xEC߰~\xE1'\xEB\x87\xD3\x9F-\xBF\x85n\xE0\xDB\xD4`	_y\xA1\xD8,\xDAw\xE8\xF61\xEC\xDCE\x9F\xDB\xC4\xC0o\xA1\x98E\xBD\xA0\xFE\x8F#G\x98AJ!\x9D\xA0\x8D\x89W\x90ʢ\xE8\xEA\xDA²J\xBAeh\xF7d\xDC\xB8\xC9?\xB8\xB3\xF0Ix\xCD\x8B9\xDA\xE9\xD8\xD3\x9F<\x85\x92b\xD0 n\xDC*\x81}f=Cؖ\x{DC41}4܀嚲\x86\x94z
+\xF6\xBF\xF60?C\x97\x9E\xC2\xBD0\xA0\xA9::)zs\xF4\x8A\xB0\xC3|\xB7f\x96{2\xC9f- $\xB1wt"H\x8Ee\xD0Q<$d\x9A\xCCitQn\xF3\xA9\xA8Ö­1YL\x91\xBF\xC9oÜ¢\xBCi\xBF(\xFFÈ­\x94\xEBÚ“\xE7v1ļy\xB3ِK5[++wY\x83\xE3S\xB62D\xF9\x90\xE9W\xC7\xF2\xFD\xC5\xE1\x97B¶\xDEM$Ë©\xA2\xF0\xE4u!gI؏\xB9-xȈMҁ\x84d\x9D\xEF
+\xC9a\xE94\x9B\x93\\xE8r\xB1\xB9\xF5h\xA3\xDAN]\xEB[\xD0\xEE\xE3X	҉\xA1\x8E\xEBek]ȧ\xAE={\xB0\xA2\xA8\x82\x8A\x84
+'8\xF5[\xC0\xBF	\xD5\xAE\xE6b\xB8Ñ’\xE2\x84z\xBFh/\x8D\x8F7M u\x83\xB7\xB7YE9/Z\xF4\xB9\x97Ef\xDD\xC1\xC4\xEF\x8E	$\xE5\xF926\x9Av\xDB\xB2Ý—\x9C\xFF\xD4:\xC2Þ¿\xBF\xD9w|c
+]\xB3~
+XE)\xB6c
+\x92\xB6\x83\xAD'\xD3 at Eq\xDEÒª+\xA5]\xBDz\xA39\xB6YQ\xC1\xECijJ/\xA1\x88\xD4 \x98
+\xB4Z\x9B\xAAN w\xE5'\xE5\x94fV\xD0h\xC2$\x86\x90\xDD
+:!Y\xEEKM\xCF*\xAA\x8D\xF5\x85V\x86\xB8\xAC\xCE˪\xA8\xD9G\xDD+h\xD7\xD5G\xB2n\xC1\xA61\xA3?yho\xF33}N|ڃ\xE9L7\xB8\xC8\xC2==\xB5\xE4D\x87\xB0s\xFB`6
+\xFF\xDCW\x897\x99roЕ\xACX\xE8d\x94l02\xF2J\xBC;\xF6Q<:\xE3\xFF\xE3\x90?ʮ\xD8\xDC\xF8
+O\xF6~t\x8DÌ›\xC0Bx\xBEw_n\xF9d\xFA\xBA\xD4B\xBB\xABPv\x95\xF8\x9A\xAB\xE7k\xED\xA830\xD0\xBFXy]\\xB6\x86\x9A\xE1\xE5\xCB\xE0s1\xF1\xF8\xDD\xD6Y\xFC6YDfhoc4K\xD4\xE0 W\xE0\xBF^\xFF\xE2\xF2\xA5\xDCuki\xF7\xCE\x91#\xBC\xDD\xCE
+ra\x89\xD6B7\xC9YT\xB2\xB7u6[j\xCA۠\xE0\xA5ӏ\xBF\xDANX!\xE0mY\xAAMoa8!N\x9CAR\xDBC\xAFdk\xF8\xBAoy;\xA1\x9DY\xD4ب7\xECa\x88!\xDCsI\xB5\xB2*4\x88g\xCB\x91u{\xCAj\xAC|\xE7\xAA, گ\x83\xF6*\xB7\x83uj\x85\xF6ˡ\xFD\xF3{\xC4&N\xD6)\x95\xB08\x92\xE8D\xDES\x81Y\xC6ț\xF0' >\x90\xE9\xF2\xC4'nr_O#4\x8B\xC1\xD9 \x86y"\xAF\xAE\xAA)\xBC,\x9C!\xA8\x82\xE2\xBC\xB8\w\xEB\xF8\xE5\xEBk\xDF\xE6\xD2\xC6,`\xDACr\xAB\xF1\xD6p\x89o\xB6琷\xA5\xE8\T\xF7J|:\xFE\xFB\xD2v\xE2g\xE8\xBFI©q4޶\x86\xD96\xE0\xA4\xF8\xB6\xA4\xE9\xCBS\x95 ?\x92.L++\xA8&\xABb\xCA\xC2\xC3c\xA2#7|~\xE6ۋ\x97\xD2Ġ\xCE\xF6^Rg\xE9\xEB\xA6<\x8C\x8F&%ҺiB\xC1%\xD0%+\xEB\xE4\xF1\x8CCY\"\xA8\x80\xB5\xC0\xC4\xC8\xF1}\x86e\x9B\x98\x98\x9CB\xA3vtB\xAF\xFF\x9FBk>\xCE\xF3;\xB8\x95\x8B2\x92\xB2\xE3\xC8P?m\xA3\xAB\x8D6\xBA\xEA\xC8Y{jm\xA4-\xBC^\xB6\xDB\xDE\xD2N\xDC\xE1\xB2xk\xFDUऌA\,2\x98R3\xCCd\xDA\xF5\xF39Y\xF4\xA5\xE3m\xA6r\xA3ovX<\xA7V\x9A\x8Cq\xBC٥\x86u<\x97`3{8rqJ\x9Ch|
+\xCC\xD0\xEEm\xBE\xC0/\x9F\xDD\xDE\xE6C\xEEÜ¥\xDDi\xBB\x8F\x99E\xB5\xB5}-\xD3n<\x84\xB6\xC8\xB6\xCD\xD0fW\xF7\xAF\xB8\xE1\xC4\xD5\xF7\xCF.\xE4c\xF7Õ˜\xD7\xD0Kk`a
+L\xFCA\xF8J\xF8\x9EtFsÄ‘\xC0\x93 \xF0\xAE\xF3(\x94;#\xB2\xF0SI\xA19o\xFB\x9A\x8F \x9E#m\xF3\xF62\xC3^6\xABG\x82\xC3\xD5\xD7dÄ¡\xE6\xBF\xEDD\xF1\xE9\xE9I9T\xAE9+7\x8D\xEFp\x9D\xFDDÆ®\xEB\xE2\xB7i\xFE;\xDF[\xBE\xBAf\xBE\xC4|Ӎ\xB4\xDA\xF2:\x8B\xF9\xBFAÈ\xA3\x9D\xA7\xFEC*\xCBv1\xF7\xE3\r\xB7Q\xAE\x9E\xDBW\x863\xBF\xE1\xC4h\xF8\xBC\xAA\xFC/\x93\x9A8\xFA\xFE\xB4\xFEߥ\xBE\xAD\xF6Dn
+7\xAB\x86/\x85=\xD8K\x87z\x99\xF9\x87\xBF \x9EL\xD7\\xBD\xE4\x8ADyI\xE3N
+}.\xAF\x96\x85L\x85\xCEh\xD8Iv\x95\xFEp\xC5xz\xAAѐ\xA6\xE1\xC6w=\x92\x90m4dR \xB3\x94\xE1\x8E\xE2\xD5\xE0\xF0\xBA\xA7གྷQ\xFB\xD7\xD5\xEE-,W\xFF\x97\xB0\xD4\xFEÕ’y\xA5f\xE5&uÓº\xBA;\xB6&,\x81\x83>~\x89\xFA\xA1\x81c\x91\x80gm\x92_\xC7\xC1^\xB0\xDF\xF3'|ϝ\x99%	 \xEBT^\xF46\x95W\xD8&j\xBBW\xF9\xA1Fq \h"[\xC0\xA9\xCA\xF4\xA1\xEA\xC3\xE5\xFB\xA8\xFBUÛ«\x98\xAA\xED`\x8D\x8C\xECn\xD3\3{\x99\xEF\xD2\xDF\xB9\x83\xD9|\xB2.\xB7\x99\xE1\xCE\xE2\x95\xC0\xA4\xA4\x97\xAF\x9C
+B(9^vT\x9D`\xBA\xF8v\xA0K\x98L\x87\xD8\xD2\xFA>\xD8G\xED\xBB\xDF\xDD\xBAi\xEF\xDE*x\x89uj|\xEE\x99_@\xF7\xC4\xEF\x9D\xF6\x9CF\xF2d\xF4?\xD0\xDFh\xF4\xF2\xCF\\xFF\xFD\x95!	\xCE\xC1a_\x88\xFD\xF0\x8C9\xD8\xF02f*M#V\xF4\xB0\xE21\x9C
+\x86o\xB6\xB5 \xB4\x9E\x85\xE3-\xDCP6\xCE\xEA\xF4\xF2*,\xBACx\xAD\xD5\xC6>E\xF6s\xBC\xBDT\xD1t;\xFE\xA6\xE3\\xCF\xD4x1]\x81o\xF1\xB57C\xD1^\x98\x8Dg\xE3\xB1\xE9m\xEB\xBE{+\xE1\xA3~g\xB8\xF8\xCA\xCAZ#h^\xB8\xCBH\x85\x83\x8E\xD7\xAD=N}}a*\xF16E1;^\xED\x8E<=+\x84wQ\x8A\xC4L\xBB\x8Ayq	\x9DB\xE08\x81\x84\xAE{\xA1+\xEC\xD2\xF9y\xC0d&3\xB5fM\xE2\xE4ňXMoDv	H8\x83\x9C\x93\x8B\xFA\x9DF"\xF5?oY\x95\x91f\xCE|gb\xCB\xCF\xDCÍ’\x9Bj\xD8\xCF\x8Ax*\xEC6\xFDJ"\xA5\xD1j5:\xA0/\x8Da\x9E\x8C>\x83\xA6"\x89\xE6\xFA\xF3\xA4c r\xA2\xE3\x80^GjÒ´9\xFE\x89s\xF4qh\x97\x85w\xC9n	Ø£\xFFN\xFEY\xFE\xF1U\xF75\xA2c\xBB\xE5g\xD1U!W\x89\xD6K\xDE\xB73*\6IT\xEFs\xE93
+9\x8C\x8B\xA3\x81\x8FGA\x87k\xAD\xFBk-Z\xFC\xB2<\xAD\xFB^\xAE\x8A\xA2\xE3\xE2C"<)\xD7U\xBC\xBA\xE8s\xED\xCE7ß·M[\xCF\x8C\x92o\xAC,<i\x81'zB\xBC\xE4H\x94vF\xFCC\x92r\xE3\xD5 )\xC5@/\xD0\xC6(\xA8\xCD\xC9\xC7\xC51\xF1\xDF\xC7\\xDE\xDC\xE0Q:\xF4q\xE5\xCD7\xC9"\xF1]\xF41\x8D\xBE|'\xAC\x88\xB0\xB7\x81\xD5t\xDDV\xE1\xAEwS\xFD7\x81\x95q\xBC\xA8
+52{\x80|	\xB9\xF8\xB6\xCAh\xE2x@\xEBiMu\xB3\xF8v
+\x83T\xDCTÉ¢\xA8O\xD1h	a\x9E\xB8\xE4YÌ´)\xA7\x94Q\xA0\xBD}\xC4{fØ›B\xF0\xB2\xFD\xE5=B\xCAa\xDC at I\xBD\xBCv\xBBk\xC0\x92\xEDq4\xB4\xB3\xA5=\xF3\xBE\xB4\xFF\xB3pƉ\xD1O\xDB:\xBE\xCB4\x83\x89\xD6\xA2"\xC9\xF0\xF2Ý–k^\xBD\xAD\xE4\xA8X\xB8\x90\x85s\xD9,\xFC\xB4F\xF0\xC5\xE5//\xC3\x97\x85\x9C\xAE\x92<[z{F\x8D\xB1\xA2\x95\x85~\xA7Î’\xD7N]\xB8	?\xB3\xA0\x99\xDB2h\x8Dhr\xA9|\x90^\xCA\xC0\xADx1\xC8T\xA7	)t\xE0ZQm\xA8O\xEB\x8A\xBB\xA9\xC3g\x9Et\xBD\xC1\xE4j\x8F'\\xDBU\x9DR\x97R\xE3\xEFP\x99L.\xD84F\xD8\xDC\xF4\xA3\xEB\xE95\xA7t\x97
+M9\x86d\xA0\xA3\xE2AJ\x83<\xF1] %7\xD3h\xCAͤ\x819\xAD\xE1$\xC4^\xE8\xA0`\xAF\xEF\x9F@;Zm1\x95r\xC3K\x9D\x8E@\x9F#\xCA#\xC4L\xD8IN\x86\xD6%\xE4\xD1\xC1\xF5~Y\xDEY\xEE\xB9K\xF2Ï’\x8DU\xAD\xF7\xA0]\xFAd\xB9\x896&\xE5\xF2\x92\xA4\xDB\xE2\xE7\xDD\xA7\xEAAB<\xAD\xD3&&iu52\xB0\x9BB\x8E\xB2%\xEE\x81E\xE1\xD5*\xA6>\xB2F\xF3U\x9C\xF1\xB5E{;v>\xB91\xD0wÎŒ\x803?\xEE\xA4\xF3u\x86\xB4\xC4×–\xE9\xB64\xDDh,-\xA5M&`*)u\xF0>p\xD0PNA\xFCЗ_\xD9\xF4\xACaw\xEFF=\x9Fc~r1\x9DC$H+F\x8E\xFA\xFCR-\xA3#\x91Ul.ʾ\x94\x9F琑y\xE4S\xD0W\x8C\xEC\xD1\xD1dD#\xE6#2l;tÌ¡\x8F\xE3\xA7ͧ\xB3N\xD1i\xF7\\x84\;$\x9BO\xF7r\xB2[\xCEq#*\xEE<\xDCguj{ ]\x84? \xBAx弝/RS\xFE\x89\x84\x8B\xFD7n\x89\xA6+q>:4\xAFl\xD3Y\xE8ݾ`\x9B\xBCr\xB7\xA5\xA8.\xBB\xE5\xBCב\x99h\xA2\x90E\xA22\xE8\xB0\xE0C\x9C\x86Ÿ\xFFa&%[\xC0\xA6]\xB4[\xE8\xD6T%\xB5"\xF4|\xA1\x86\x899\xBE/!o\xD6?{Pt\xACd\xE9\xB0q3\xAF\x9A\xFD\xF9\xA8]\xB5\xAEgMV\x98\xD5\xB3\xAC\x83\x86u\xBAp%;m\x8A\x8Aw"\xBF\8\xBD\xA0\xB0\x8E\xA3J\xAA\x80>\x87)\xD7\xB5\x92\xE43+č\xA0}m\xFA\xECp\x88:\xF4\xA2[\x9F\x!
 F9\xE2#@\xC1o)%i\xB4)\xB7\x94Rp\a0\x9A^`\xAB`j+\xFC,&\xB3pE\xB4Ó¯Wy\x95NZ\x89W\xF0G8 at rFၻ\x84\xCA\xFC\x97\x80\x87\xC54d\xE1\x87,\xFA\xD0\xD6\xA7)ĆY\xA1\xD21ZN\xB0?\xA2Z1\xEA\xFF(\xA1\xE9z\xCD\xF5\xCB=\xCA\xF8:\xCFGV\xC0\xDE\xCF/Z\xD0\xF9'\xC0\xBF\xE1<\x9Cs%\xB7W\xDC\xFC\xB0\x9C\xBE]}\xF6\xDA-\xF2\xF6\xD4/ƍ\x9A\xEB67ز\xB3\x96-\xB3\xD4\xF3\xBB\xE9\xA3l{~\xD5zZ59A\xBF&Ò‹	\xDD\xA4S\xC9Q\xFA*ِbH$Õ™\xA0\x98> \xBEݼx\xB6(\xCCk\xFB\xBC\xE2s\x81Lc*k\xD9K6E\x94\x85E\x85\xC4yMz\xB4
+\xA0\xE3Ç\xBFtk\xDC\x8Fo\xC0E\xBF=g\x9D\x8E\xFD\xF6\xE47\xF0\x90x\xC5ksW\x89B\x9C\x9A╸\xDB!9e)PQh\x89\xF8\xE5\x9C\xE9󧞑P<\xF9{\xE4\x88D.\xA7\xB8\xE6\xE2Ƽ֪\x98\xAA\xC0d=0\xE8\xE8+\xA7\x9A\xCFR\xF7:\x8B!\xAE|\xB6i\xB6\xC7Jy\xA0`\x91Z
+\xF4Q$\x87\x8B	W\x9E\xA9X\xEE"{\xB8G\xCE\xEAx\xC1\xBE\xE5B\xBDu\xA8\xCF[.\x84\x9E\xE1h\xC4\xD8\xCF\xC6{\xA2\xDEV\xB8\x96\xE6\xFEg\xC6\xDEGá\xE2'\x85\xF8\x83GP\L\x9B\xCB@\xF6>~\x8D7\x80\x83\xDDȶ\xC5v\x84\x85\xFB\xDF}˺iP\xF7\x848\xB1}\xFCG\xE9[\x84O۲\xD8u\x86\xF6\xF0	\x9A\xE8ĉ֞\xBB7\x81n
+\x83\xC6\xE2s\xC0$8\xFE\x8B5k\xE9\xC981\x8F\xEF?9;\xB8\x89\xAC\xA0\x94\x8Br\xE9\xDCH~Eze\x98AIM\xB3\xAD\xA9ِ\xAB\xDCI&\xE9\xB5Z5\xFD\xCAB\xF6\xB0^\xA4\xC9i\x80\xACj%4\xBFz\x81N\xE1k4\x85\xF2\xC4\xFFR\x9AF\x9E\xCF\xC0\x91\x8A\xE22L\xA9\xF9T~Zvυ?\x807\xB3+\x8A\xF7\xB7\x87:\xBE\xCA\xE7\xF3\xFF	\xAB`\x9BX\xA7\x92WQ\xC4\xC6W\x9An\xF5\xA1rC(Ճ㗆\xB2\xE0\x9D\xA4F\x97\xAC\xD7\xD0hl\x97\x9A\xC6ŋi\xFA\x8Ct\xB2\xEE,\xA8\xE2\xAAX\xCCC\x89m\xA3\x89\x99g\xCAA@cY\x88\x98.4\x9DS\x8BfC\xA6\xF9\xBDcO~\x9B\x96\xEA\x9F\xC7@ϮNQ\x92ٜ\x98O\x982\xF3ygq\xE9\xF0Ӯ\x8C\xBB\xC8Qw\xEE\xAE\xE8L\xC9\xFE\x9C\x8AOf'[\xC8
+J:]\x84\x9D\xEE=H\xA9\xC2*\xCA\xD96w\x93\xC1Fj\x80>5\x9E\x9E\x84\xB2G\xF3 at i\xF3\xA6t\xB2\xBA\x94\xF1v|\xA8\x85\x86\xF5\xE0\xD4\\xA4\x8F\xCFa\xD25\xB9\xA1\x99;\xA7\xA3\xD4!\xE3a\x99(\x95/]io\xC6\xF2\xA0v\xCFy,O\xC2[\xEB\x84~Å¥\x9B\x93y at M\xE9\xCCs\xD8\xF4j\xA9Óº/\x99\xBB1\xEE(9\xC6\xE67\xF2\xDBt\\xF7\x86(`\x9D\xF28#\xA1\xE3\xF2\xF9h!V\xAF\x8B1\xD5*DB\x97\xBA\xBD{\x8FVV
+e\x9BZ\xDB\xF4\x9B>2\xD4I\x85\xAE7\xE3y\xF3i\xB9>+>\x96\x9E\xF1\xA9z\xE5\x9C9\xCFEI9\xC0\x94Af\x97i"\x9F7Ó‰vxM\xFC\xF0kF\x83\xDBa\xE6)\x92x\xBA\xBD\xE7Ú¡k\xB6\xAC\xD6\xEF\xE0É«\xA9\x8A5VQ?\xDB\xD81OeN\xC9/$-\xB5
+\xBE\xA2\xBF\xFBX\x94\xA5ΏՐII\xBB#4\xA1\xEB\xD1y\xD5-}c\xE3CÞ–\x92\xBB\xC0\xC2y\xB1N\xA5w\x89\x83J\xD6P\xB4KA&\xF4\xA9	\xF4(d\xE0Y\x83E\xA4\xCDѧ\xA5\x91UÍ \xF4\xFF	\xCA#\xA5 \xB0\x80\x81c\xBB\x8A\xD5"U\xF8\xA2\xE5q\x83\xD7\xF0%;6-\xCBRDV\xED,RF\xAB\xE2C\xB7\xB5\xBB\xD4z\xE6L%
+psE\x97\xAA\x8E\x8B\xA87M6\xF2?j\xED\xC4\xE9\xEE
+\xEE\x82&đS\x92(֠7 Ҡ׃8
+\xF5\x86"1\xD1\xF5\xF4޾\x8BuM\x89\xCA2\xDAG\xAF	\x8F%\x83\xAB\xE2K+*\x8A\xEA\xCEy\xB4\xB98\xA3>\x91\x80F\xE2߼\x9A\xA1\xF0v|N\xC1e\xC6\xFB0\xA8\xE2\xDF\xED\x93\xB4\xAC\xAAۤ\x80v\xE2\xF1;\xFDЈ\xB4\xA3I\xCB\x84\xF8 55	\xDC?d\xFE\xCF
+\xF8\xB7{\xA2`n\x9E\xDB2\xE0\xD1w\x87\xBE\xA1	\xBF\xECj\x90T\xC3$ic#ɘ\xAC\xDD\xC5Û¶\xC6}\xD8*\x80z\xD8*\xE4\xEA`\xAC\xE4Ö²+\xB3g/[6{\xF6\x95e\xB7n]\xB9r\x8Bv|\xB5fY\xE0U\xAC\xF0U,Ì’X\xFE\xAB\xB2\xEDq\xF4K\xB8.Z\xF0\x95\xC5v(\xE2.\xA9\xDAU\x97\xA8\xD1\xD0<\x82 \xF4id}\xE6W\x97.\xD2y=>5-U=s.\xEA\xEDV\xB9mcIu\x95í„„\x9B\xD6sB\xB2\x82\x9Fć\xBB'9up\xFB\x9B#\x92\xB2\x82\x9C\x8C\xDAh20\xC5iɐ\x94\xF9+V\xD2	\xDD\xDDvV\x92{\xE7;Ø›v\xB4\x9DCਾ\xA3\xFE\x86a\xD8t\xDB\xC9\xF21'\x95\x85\x9B_\xC3r3,bz\x99\x87|b\xDF^\xA0o\xB6\xF7\xD5>\xA3\xC96a\xA6\xC9d\xBEз\xAF\xB5Õœa\xCA0\x9B\xCD\xE9i}\xFB\xFD\xC1\xEFy\xA7
+endstream
+endobj
+128 0 obj
+<</Length 633       /Filter/FlateDecode>>
+stream
+xڅ\x94_\x8B\xE20\xC5\xDF\xFB)\xB2\xC2\xCCCǴ\xB5\x89R\xAB\x82\xB0\xF3\x95e_k݂MK[\xFC\xF6\x9B\xE4\xDC*++(\xFEz\xEF\xCD=9\xB7\xC9\xE8\xC7\xD7\xCE+\xEA\x83\xF2\xA3ζ\xAA\xAB/m\xAE\xFC\xF4=k\xBC\xD1hY\xE7\x97J\xE9\xFEC\xA9BC\xB4{e_m\x9D\xEFTϞ\xD2\xCDr\xA3\xCB\xFE\xD9$ot~\xBEj\xC8\xFAw\xD2B\x9DJ}O\xB1}\xD8\xD3^\xFD\xF6\xD3\xE5~\xB7\xD8\xFA?߷u\x95\xE9\x80\xFB[u\xBA\x9C\xB3\xD6\xE7\xB6l_\xF6g\x93\xFE\x9FLf\xC2\xECQ\x98\xB9\x85~\xA9\xB6+k\xFDʂιy\xB0\xD2EZWv\x93\x9D7&\xA1l<H?\x96\xBAhI-;X\xED^\xB2\xA2\xCC{"\xF7\x9BW\xC6-[\xBC\xBBv\xBD\xAA6\xFAX{\xF39\x9B\xCEe׷W\xA7\xFB\xD9\xB6\x85jK}2\x8E<i\x92v\x97\xA69++\x88q/IX\xA1\x8Efm\xE3\xD3GV)6\xB6l
+-\xFB\xEBC+\xEEE\xFBk\xA3X\xE88\x80\xE4\xBC.T\xD7d\xB9j3}R\xDE\xDC\xD8\xC06_\x9BO\xE2)]|\x8BsT\x8E@\x930\xFC\xC1\xCA\xFFd\xAD](X\x98\x858\x9F\x89\xA3ԑ \x85!b!(B\x8Cu"\xA1.z-\x99\x87\x8EVXeZ\xA3\x88\xC5 \xF4D\xE8MA\x99$\x91I4E&\xD5\xCD@ԁtJi\xA15Ih¡z	"-3\xB4L\xB0?\xB3#\x8A[\x80\xA0SA\x99\x80\xA6\xDCeRRF'+\xA0.\x895\xCA"\xCC(\x86\xB2\x98\x83\xA0LAY\x88\xFD\xC5PbG1\x94\x85\xD4Z$\xAD	_bLZ\xC0I-1\xE6.\xA0E\xA1{\xAF\xBAG\x98\x91@\xBFS\x98\x91$\x82/\xAD-\xF5\x83/1f+\xE0\x8BIR\x86\x92\x94\xA1\xBB$eD\xE4\x9C\x90pB\xC2	I^\x8B۴\xE5\xEA\xFE\x93K\xED\xFB\xDAa(pg&\xE4\x81S\xACc\xD0$@\xB3\xE7Ν3{D\xED}s\xBB\xF2Kۚ\xFB\xC0]J\xEE\xCC\xDB\xD3^ju\xBB\xB7\x9A\xBA\xB1U\xEE\xEB.\xBC\xE1\xFE\xB5\xF4\xB9\xF6\xFE\x84\x851
+endstream
+endobj
+131 0 obj
+<</Length 23        /Filter/FlateDecode>>
+stream
+x\xDAc``\xE0PPf\xA9`\\xF0\x85	 \x9B\xD0
+endstream
+endobj
+132 0 obj
+<</Subtype/CIDFontType0C/Length 2913      /Filter/FlateDecode>>
+stream
+x\xDAmWiX\xD7\x9E25\xA5\x9613:3\xB4\xD0Z\xA0\xD6{\xA9\xB6\xB5.WZÜŠ\xDA$ \x88$\xEC"\x8B\xB2%\x87 at YE\xA5,шʸ\xD0K]\xBA\xDCV[\xED\xA2\xEDm\xB5\x9Bm\xE9\xD3Ò•\xEA7z\xE8\xF3\xDC\xED\xD3\xED\xDE\xF91sf\xE6\x9C9\xDF\xF7\x9E\xF7}\xBF9
+\xCA×—R(\xD1s\xE7\xCD[3eY\xD4
+k\x8A!\xF5\xE1\xE9\xD3\xE6Y-\xF1\xDE7\xE5	\xF2D\xA4\xE1e\x9E\x92\x85,\xFA\xC8AJy\x9C/\x9E\xAFQ\xBE\xA9\xF1ٌ\xFB&\xD0M\xF0MSM\xA4(\xBA\xDB{~\xF9\xA3\xB9\x8F\xB44\x85\x9A`\xEF\x835!\xE3C)\xA8 \x8A\xA3\xEE\xA7&Q\xA0P)\xFC\xFE\xEF\x94s\xE3\xADF\xD3\xE2xSj\xBA9=gzhx\xF8\x8C\xF9\xD6\xCD96sbR\xBA8=<\xFC\x91\xA9\xDE\xF3Lq^\xA8\xB8İ1ٚeO6\x8B\x86\xD4xqI\xA8*>m\xCD"O\xCD\xE2$k\xAAh4%,	\xA25A\x8C5\xAD3\xEC&\x9B]L\xB4Y36\xDB
+c\x93\xCCv1\xCBjK\xC9\xD5f\xB2\x98vS\xBC\x98\x91o\xB2\x89\xE9I&q\xE1ʘX1Òš\x9A..3o4\xA5\xDAM\xE2\xB4i\xA2h7\x99Ĥ\xF4\xF4ͳ\xC2\xC2\xD23C\xAD\xB6Ä°\xD2\xC7f\xB9\xD3\xC9\xE67-\xF2\x99\xA7c\xA7-[<\xC1\xD31BÓ³\xD3\xC5\xABM\x8C7\xA5\xCC{\xE8_\xD3\xFD\xFD\x8E"\xC7\x82\xCDj:Aͤ\xA3\xE6Q\x91\xD4B*\x8AZN\xAD\xA0b\xA8X\xEA9JO\xA9$\xCALm\xA2\x92\xA9*SI %\xC7xj\xBCZ_j;\x85\xEF\xF8\x84\xFA\xE4+\xD7*ݾk|\xAB|U\xADP9T\x9F\xD1q\xF4-\xE6Y5\xA5^\xA4\xAE1j\xFFhzt\xE9\xF2Ã…%\xEE\xCD\xF2D\xB7'(\xC1
+\xF6\xB8\xDCÛªmÙ†\xB6\xF2\xCB*PS\x9B,\xCC\xE0\xBC\xD7qP]a\xE8\xC9\xE9\xE8\xEAl\xE9m.Þ“[\xCF×¹\xDBQ3w\xE1\xA8i\xA6\xB0\x91\xC1\xD3\xF1#\xCFae8\xA8\xB3.~\xF0bß±\xBD\xBB&\xE9\xE4\xE8\x96Z\xD4*\xE0\xD50J;-"'\xF9Y\xA3\xFB\xC4W at u\xF7<\x97\xB8e\xF5\xC0&7\xAC\xF0\x86zа\xA2\xFC1ص0qÚ—x"\xCF^\x89^\x97\x9Dl\xA0\x9F\xC1s\xB7\xAB\xF4\xCC\xEB5(^\xF9\xB1\x8F\xD9ݼ\xBB\xB9i\xAFz\xD5\xC0\x99\xC2#\xF0\xD7?\x81k*\xB4\xD0
+{gYW\x94\xCC-L\xE8o\xDD*@
+\xC3\xF7|iOcf~\xD8S\xE2\x91\xEF\xF5(zAa\xB4RN"\xC15\xA2\xA2-NgA)\x9F]\xBCyQ\x87\x83L=\xFEj\xDC\xF7ּ\xEA(EN\x87\xC3)\x94\x97\xE7\xE7\xD9t\x86\xB9\xFBZzw\x9E\xBC\x8A\x99\xEA\x958rVcO\xF8&\x84\x87\xBBA]CRk+\xF1 at L'\xCCv\xFBw\x93YD\x83\xECr\x99\xA71\x95lq\x96\xE7\x97\xF0K\xD2g\xC6q8\xC4	\xDCYN\xD3\xEC/m\xD5h_W\xF1\xE5\xF5'\x85>C\xCC\xCE\xE5\xFFg\xF6\xC7\xE2\xCF\xE10\xA6\xBF\xBE[\x83\xF1Z\xBC\x8Dv\xAD8\xDC\xE2Q\xF74l\x95\xB8uX\xB3\xB6B\xF0Y\x8A$\xB8%\x81ݭ \xD5\xF0\xA0Vʳ\xE4_\xB5G\xFB\x9E
+\xC7JV\xF3!s\xF5\x97\xF0\xADH=\xE3j\xBB\x8C^\xE0:\xAF G\xBB Í€[@Kx\xCC\xCF\xCC\xF0\x9BM\xEEz\x97\xD3Q\xCD\xE7m\xCB\xCD\xD4m\xEC\xC9\xD9\xDF\xEAi<\xC6\xFB\x91/Ó’\xBC!K\xE1eI(\x94rG\x804\xE8!i\xB2<\x97\xD9笲\xE58P^\x8F\x87F\x9EQ\xE9\xE1\xA6\xB1\x82L\xD3\xF9=\xF2p\xBEG\x8Ea\x9D#\xBC\xA3\xF2\xC3\xEB{`\xFA\xE0\xE5\xC8\xED\xB1\xF0ᄎ\xE2:Ì»^}\x95USr\x9F\xACm\xCF\xE91荙9\x99<\xEBO\xB5\xE3\xEB\xD6p\x98\x8F\x9D\xBD\xC0\xB2\xC3\xD8gr\xB3s\x92u\xFA\xB6\x84\x96-<\xFB]\xA1\xBD$*}\x85.\xFA\xFC"X\xB3>9}\xF9\xDA\xF2N[\xDF\xB7=\xC2ÙžC\xA5\x82\xBE\xA6\xA0\xB7YW[\xD1X\xBF\x93O\xEB?\x8B	e\xCE|\xF0\xF6@\xAA\xA7`\x87\xD0\xD9\xD4^\xB5Û¥./-/\xCB\xD7e\xEE\xCAÞ¿Ws\x8FM\x93\xB5\xEBQ\xE4\x9E\xAD\xA5f\xA0\x8B'N\xA0\x8B\x9F\x8E"\xD7\xE0;r\xB76)i9\xE4Ù§
+q`\xE2\xD9\xDEso\xA0Fh\xFA\xBD\xB7\xF3W\x93e\xD8D\xC0\x92%\xFD\xC0g\xECOx\x89\xD5\xC3\xEC>\xE8	\x90\xA2\xE4)\xFB2\x9E\xED%\xF2\xAB^"\xE3\xB7o/\xC5E\xD4\xC1\xBDpλl\xE0Z\xF9\xEDQs\xB7ɘ\xBC)\xDEx\xC0\xD2{\xB4\xC7}\x98\xB0i9\x92\x8C0V\x82\xC5đO\xB5\xB0\xF5\xF2\xBB\xB3%U
+[+\xCB*w\xE1\xC7\xC0\xFE?\xA9v4\xD4\xD7]\xE4$Æ‘\x96\x85\xB8\xB4\xE4J\xF4LC{\xF9\xF6\xB2\x922\x87C\xC0K\xF0*YÏ°\xCE?\xCB\xEA
+;\xE7N<lK\xC7E\xE4h\xA4H\xD01M
+\x8D;[\xF7\xC0]8<\x90\x9DS\xB3\x95#[X\x94EL\xE2\xF6\x80\xF67\xBD
+v!G\x9F\xE0'"I\x92\x81Ê›jh\xD3\xE8\xC8\xE2-\xC4q\xA2<\xE3%\xC78T	\x98F\xAETA}d(H/\xBF\xC2/ \xA8uH\x87%\x9BÛŸx\x9167\xAA\x93\x87HM\xCC7\xC6\xB1\xCF\xFC\xA8\xA49f\xDE	>4\xFB5~\xE2\xF7\xB8C\xF1]B\xE8\xDE\xFB-f3þ\xD4G\xA7\xCEj\xB1?\xC9㎿\xF5\xF0#\xFA×¹^e6\x80\x86p\xACZ\xE0¾\xC7\xE3\x88\xF7\xE3 |\xEF\xE04x">\xFF\xFCy\xACÙ¡}\x89kq \x82QWO\xA25{\xF8#\xAD\xC7\xF7H\xDCËž\xCD\xD6\xDD\xC2\xDED\xB4:NG4"WJ\xE7\x88D\xB6\x82J)gHx\xA2|\x85\xE9t\xA0d~\xE9\\xACD\\xB6\xBE\x99>x\xAAz\xE7a\xA4\x93\x81U.\x95\xDFV\x92xc/\x9C\xBA\x8D'!Hys\x95\\xA4j\xEA\xA7x&?2\xF5H\xB4\xAB\xF3\x93\xE7rt
+R4\xC2l\xFB\xFAÓŸ\xB0E\xE00p
+\xC2\xD0Ì…\xC4\xE5\xA6\xE3U\x84\x87\x95\xAC\xFFai5\xF1×±w\xFC\x95\xFDs\xD1k\xB2\x927\xF2/1\xECПiP\xFB\xBFp\xC62\xFB\x8E\xD9^\xE3`⍏\xE1b\xB48d\xFE\x9A\xA5z}\xEBI\xEF5\xD8q\xFD\x87N5\xE6ο\x8D\xBF\xB3\xEEL	\xB9\xC1#\xF9\xDF\xCEiu@\xDB|\xF3\xFDA\xED\xEE\xED\x95\xF9\xD9\xCE\xE2|'\xBF\xB6Ô’i\xE5\x96\xBF5\xB8](9U|	Sn5p\xF7\xBB\xA7u?\xDC\xF7	\x8E\xE2GT\xFA\xEB4\x9B\xE4ÍžXÉ°7\xFB_~\xCB\xFE\x8Ca\x8E\xF4\xA4\xB5
+]f\x94\xB1H\xB7\xCC<;\x90\xF4\xD2Ug+\xF7S×\xBB\xDC#\x87jc\x9D3\xF0c<CCD\xE5\xCCh\xCC\xFB\xB7J\x886<\xFC3\xA8I\xC9yRf\xB4\xAB_\x88{\xDCi\xD8J\xA6\xA4ً\xF8ѿ3\xEC/\x96\xB9\x84a'\xB9k\xE0\xC5o-,\xCE\xCD\xD1ݹ\xFB\xF6\xB9w%j,q\x83\xAE&v\x9D\xEFR\xF4^\x80-\x94\xF2C h\xFB\xD3\xDCY{x\xE3s\xF5\xCA\xEA\xA5\xF5\xCF\xD4\xF7\xEB\xCE\x81Z at Y\xBD\xC0\xE6\xE2\xF3+jQׂ*ۄϘfT\x93W\xE2@\xDB\xF2\xF8\xB2\xF2\xC2\xE2\xD2ru\x935\xA1:\x91K\xC1\x93\xB8\xC6ft\x97
+\xA5\xEE\x92*\xEEȶ#6\x83nv8\xCA\\xB3\xACi\xC8\xCA\xEF-qV\xE4r\x99\xA8<]\xC0\x93\x8D\x8Ak\\xA8i/\xBF\xBFY\x95t\xFC4\xDAÝ\x81{`\xBC\xE0\xE7$t\xBDF8\xF7$Å…h5[^\xA6Í‚"Õ¯\xD2Y\xB8H\xD5G\xA3\xAF\xFD\x82\xB9+#\xD7\xF0=
+).Hq\xA8$<E\xBE\xF6\xC1\xB5ا\x8E\xA0\xF9#AL\x96\xFFO\xA00\xF4\xC1]}\xEC\x90<\xC6jOV3\x8BSR-Ϡ\xB7\xDAx8 \xC1\x86\xE3\x9C7iR\xB9z\xD1\xE8\xDCM]M\xF7ұ\xB3\x97x\xBF\x82#\x87\x81\xFF\x83\x9F\xC0\xB8>\x8F?\xF6\x9F\xE7!\xE80\xF8\x90V\x8B\xE5zX\xA8}\xD1\xF6
+\xEB\xE0\xAFu\xFC\xFB\xF5u\x97翁\xEC;3z\xD6\xDA\xC3[\xF6wl>\xD1Vt`]
+\xB4\xEF\xAA\xE6\xBE@\x91))e\xEB\xC9/D\x9A9\xCDar8\xB3\x9CeuI9*.\xD3\xE5V\xA3\xBD|?
+\xBE\xE8\xFE\xB8
+(S\x99\x8B+\xC4	R]cw\x97\xEEhj\xA7\x91g\x8B\xE7RS
+a?\xAC\x84\xBBa\xE6\x87_\xFD \xF8!
+\xE7`\xFC\x80\xA48\xE3!\xC6)e$\x93+\xCF,\x8E\xCE+Ro\xE5q8\x8C&\xC4\xA3\xE5\xC7\xBE\xD5\xC1h\xF1\x88U\x93\x97N]%\xE5\xB5u{ZN\xF4YZ,U\xFC\x89#\xA7\xAAZ\xB8\xC1cs\xE6?\xB1j\xBEQ/\xE0\x9C\xA5*Ú†9\xBA\\xF9Q\xE6\xF6\xD2\xE6;\xD5\xE4W\x8C\xF5\xBA"U\x8C\xB2/úq\xE4L]\xC3<\xB9\xE1\xE9'\xE6\x94\xED;ó\x81\xF0-\xC3v\xFE\xF9m\xF3\xE0[\xA97\xDA/\xA1+_1\x8Bf\xE7\x90ʂ׹\xE5\xF3\x92\xA2\xD5[\xD3ß”C\xB4\xA4j\x98ː\x91\xFB\x87\x8BC\xFD(_W^^\xE2,'\xC2\xCF\xE3qÐ¥:#\xD1\xFBBd\xE5R\xA3\x91+MПc j$\xA4\xB4`kji\xC1\xF8
+\x99É‘\xB8\xB2T](\xB8*\xBAzun{K\x8AÅži^w\xCC\xF0\xDA\xD5Ó—\x8E\xED\xE5\xC1,T\xBB\xAA\xABj\xCFq~\xDE\xC6X\x99\xD3<@\xB6	\xD4\xE3\xDE-C\x9DA\x83]\xCF\xED\xDD\xD1@\xF3Kb-a\x9AQH3F
+\x8A1\x9D\x95\x95\x95\xAE\x8AÚš\xFA\xCBM_Õ‰\x86\xE7]u5\x95\xAE\xBA*\xCD]\xF2k\xE3n\xB6k\xFF\xEB\xE7\xE8
+endstream
+endobj
+134 0 obj
+<</Length 471       /Filter/FlateDecode>>
+stream
+x\xDA}\x93_\x8B\xE20\xC5\xDF\xFB)\xB2\x82\xF3\xD0i\xFA\xC7v\xA4`\xEB\x85\x9D\xB12\xECkM\xAEn\xC1&%m\xFC\xF6\x9B\xE4\xA63\xB0\xC8
+\x8A?Ϲ\xB7\xE7\xDE\xC4ŏC\xEDo\xB9<\x83?Sr\x84AN\x8A\x81_\xBE5\xBD\xB7X\xEC$\x9B:\xE3; >\xAB\xC39(\xC9jɲ\xACv\x95h\xC7'm\xAE\xBBMf\xD7cS\xD7V|[\xCCs\xC8\xF2\xBF\xFDö(>k\xFF\xD7\xDBQv\x8D#\xBF\x907\xEESSsjÇ›\xF6\xFE\xCFF\xB4FjĶ\xF85\xB4R\xBC\x90\xF0\x99R\xAAx\xBC\x94\x9D\x99m\xF0\x97\x8Fs\xE2K+\xB8r!\xC9\xD9D\xF6ˆ𖍎\xEC'\xEB\xF4\x92Lq}F\xE8*q\x91\xDEfC\x82\xA3\x87Q\xDDm\xE2'/\xF8PT+\xAEd\xF90\xA1v\xD4S\xDF\xDF\xC0\xA4!\xD4\xCBs\xC2\xE1\xA2\xEBݼ7\x90\xC0^q\xAD\xB6\xE3\xFD\xF1\xBE+N\xF7Hd9Ä°Lr\xFA\x86\x81j\xC4\xBC\x8D^ \xCD\xC9f\xAF_\xB9\x82\xFF\xA3S\xAC:_\xB5a\xFE%\xB3\xC4\xFE4\xCA4
+K݈\xD24\xCC
+E1R\x84T Ŗ\xE2i\x85\x94!\xA5HkKq\x82\xE4\xEA2K\x89\xAB[#\xA5HvIJ\xA4j\xAF\x96V!\xD2	\xBBĘs\x859W)\xB1\x949ڣ\x863\xA45G\xD8%Éҟ\xE8\xC4\xD4)ΐ9\xDA\xE2\xF3\x9C'\x8A]̙\xE1&2\x9C([\xE7\xB8i\xBBYs(\xE6n}\xDD 6)\xA5\x8F\xDF^@{\xCA\xE6|[_w\xB4\x97\xBD\xA9\xB2o{\xB9翘\xA1\x8F\xBD\xF7/{\xCF
+endstream
+endobj
+137 0 obj
+<</Length 28        /Filter/FlateDecode>>
+stream
+x\xDAc``\xE0\x90UT\x9A\xE2Ѹ\xE0\x880 ;\xF2r
+endstream
+endobj
+138 0 obj
+<</Subtype/CIDFontType0C/Length 3437      /Filter/FlateDecode>>
+stream
+xڝX	TSW~!\x90\xA9\xF2Lk\xF3\xF4\xBDhÝ•e\xE8\xD8\xD6vÚº\xB4nE\xA7*\xA8EQ\x845$d#\x86}	d\xB9!	!\x84=a10 \xA2,"j\xA9\xAD\xD6\xADN\x9B\xBAÍ´\xD3z\xB4\x9D\x8E\xAD\x9D\x99\xEA\xDC\xC7<\xE7\x9CyA\xAC=\xA3\xED\x9C3/9/\xC9{\xFF\xCD\xFF\xDF\xEF\xFB\xEE\xF7ß„\x85",k\xE6\xB6-w\xC4\xC5.\x8DÞ´U\x9A)\x94\xBC\xB6U\x94\xA2\xE5\xFE{k\xA9Y\xD4lLPB\x91,J@\xCDaSs\xE9I\xC1\xECC\xC1\x81\xF7w\xD3C\xB3\x82\xAE\xFDk,h6\x82\xB0j\x9E\xF2\x9F\xAFN\x87\xCA\xE0\xB9Ì»i\xEF\xCF\xF3_\xB8<\xE1 ,d&2\x99\x8F,A\xC6X\x93X\xD3Y\xCF\xFCL\xD6UI\xD2ц$\x91D\x99\xA6\xD4D\x85GF\xFEz\x8D4K#OKIU
+\xA2"#\x9F_\xE6?\xAF\xACl&fHÕŠ\x8C4\x81P\x92$\xD8.\xD8.\xD8,U3W\xD3\x8B\xA4A\x82(U(NH\x931\xA2\x9D\x95B$WR\xE4RU\x96bq\xB8 &5M!PK\xE5\xE6U.\x8B\x84
+Q\x92@%I\xC9\xCAT\x91`]\xEC\xB6\xC1Z\xA9D)\x88NKI"AX\x98@\xA0\x89\xA9Je\xD6\xCBJUJ\xB8T\x9E\x91\xCC\xC4("\xC4\x82\xFEqak\xBB9&,zÚ77o{3\\xB9_)H\x96\xCAI"\xA50M\xAC\xFF\xEF	?\xFC\xBCY*\xCF\x8A昅<\x87,E\x96!aH\x85\xBC\x88\xBC\x82\xBC\x8E\xACF\xD6"ë‘·\x90M\xC8$Ù‰\xECE\xF6!	H*\x92\x86d"r$\xF9\xF93\x9B\xC1\x989f#\xB3\xFDh"fV(K\xC9\xEAf\xFD5@\xE0c\xBF\xB84\xB0'hZб\xA01\xCE!4\xB5p\xF9Ü—\xB9\x9F\xB4g2gr\xCE\xE4S\xE6M\xB9\x9C6uV\xC8\xE8
+\xA1<\xC5\xE5a\x98\xD8\xEE\xFD\xDA\xED	\xED\xFEJ\xAE\x{EB0F54}\xE3\xEF=q\x9A\x90\x97\x9B\x9D\x8E9\x98\x84~\xB7\xECD\xE4K\xAB26d6k\xDC\xA7\xAB\xBD-\xAFQe%\xF4\x8E~\xFAt\xD2
+R\x8Cnѯ׿)\xE1>/\xCAْ\xCENJ\x96\xFFMv\xC97t\xF4H\x81\xADYݢA\xBC\xFA\xCBW$\xBD\xFE$k_\xB2B\x96\xB8co\xCF\xF1\xE7.\xC2H+B\xDD(\xF6\x80A8\xE0\xF1z\xA0h0\xB2}\xB0\xFB&\x96G\x9D\x84b\x9Dw\x87\xF9M\xDC>M?B\xE9\xC5EA\xE9\xE8\xC5*my\xFF\xAB.\xF4й \xAC/\xADmXt\x87\xF8\xCE \xA3L<%x#e7\xB1'ewA:\xBE+\xF1@\x9F\x8C,t\x93\x93w\xA0NPQ\xDFD\xF4v7\xE1\xA7\xFAę.\xB21\xAB.u5?\x84w\xC1÷\x9C]\xA1=7a\xEAͨo0\x8A\xDA\x83y5@\xAF-7\xEB\x89l\xAD\xF47\xF1MQ\xC7\xE1"8\xEF\xD3Q\x9F\xFD]\xA0\xE9!\xA5%:e!?˩\xF6\xD8QwsS\xE7\xB9u\x9Da4F\xB3\xE9)4\xF6\xC3"
+\xE7\xF4\xC0\xC95d< \x8A \x9B\xF55d\xB3\xE1^j
+\xAF;\xABE\x9A\xA6ʒ\xA6\xB5\xAB<\xDD-\xED\x82\xF6>v\x8DH\xAFʆۙ\x81p\x8A爇
+3,\xBC\xF7Ô§v\xA5\xABd\x92\xCCfYOK]\x8D\xD9Ld\x82\xAF\xBFA\xE8\xF5zC\xBF\xC4^f\xAD\xFD\xFC~\x80\xAD\xC6KMc\x90\xF5\xA6\xFA''\xF4\x99}\xD8\xEA\xE4\xD3^t]\xA9m\x84\xA4\xFE\x8Eb\x83?\xC1\x95NA\xA7\xEEv\xED\xC0\xE9\xE94{	Í£\x9F\xFA~>=3\xE2\xE9\xF1\x92\xD1(\xB6\xF25@\x97\xA7&\xB0\xF6Di\xBCb7\x9F\xD8Ö« \xB3\xFA\xCAG\x86\xF9؏\xB6\xF6\xBDmC\x9E\x93\xF8\xF1\xE3\x8A\x9D\xE4d\xDD\xF0%\xAB\xF3&\xB4]d\x8F\xE3j\xD1W\xB4ebI\xCAr\xBD\xDF\xDF|,\x93\xCC<~\xDFɇÜ\x96J\xD0z3\xEE=\x87\x9E\xB6d=\x8D\xE6Ad!%v⟭\xE4:\xC8\xE7Ñ•(\xB0\xD1Ö‹\xC3Iz\x8E\xD2\xC4\xE0{
+x)\x96j\xBDRO(\x9C\xEC\xB7*oaW\xA9\xA9c\xC1\xBCa\xC7\xF6\x95Q\xB1\x82\\x91\xFE\xEDC\xF7\x82\xB7\x88t\xD4\xDC\xF7h\xC3\xCFT \xFDyҫFW\x87H\xF81\xF6\xD2O\xC1 \x9Bqcdh\x90\xC0\xE66\xD8uF\xA9))\xCF)\xE0˜\xFB\xDD\xEDMN7\x83\xAC\x87v\xC0\xF5\xE7\xFB\xCFK:`|GeGh\xE7\xF9\x99\xB7\xAFy\xDDu\xBD\xFB\x86P5\xD4|^cA\xF7ޜ]:a<\xD1$Oj܍/Z\xBD\xF6\xD5\xDD\xEE\xD4f5\xA9\x92\x97f(\xF8	.qK\x81}\x9C\xB5#?!)\x9E\xBF\xE6\xDB\xE0L8\x9C\xBC>\x9Aџ\xDEHt\xBD\xE3\xDB8b\xB3\xBC\xFD\xBF\xAD\xD2n\xB3\xF2\xFE\xBE\xF26\xFC\x8E\xEFҵ\xC39n\xB2\xAE\xC6\xDB<b\xE2\xEA\xF4\xE5\xE5\xB9|MmAS]\xA3\xBD\x95\xA0+\xE0%\x97\xCB\xA2\xA4\xAA\xAD\xC7L\xCD\xE1\xE0vK\xAF\xD5]\xEF"[=5\xED\xF8_\xC0R	\x83\xEEsx\xB1\xAF\xC5/"\xB0\xD5\xD3\xBE~l\xB4\xB9\xE1\xCCg\xE4mN;|\xBC\xC2\xD0wxa\xF6 \x98P\xBCq0\x8F(\xF6=u\x86\xD1\xD0[\x85`\x88\x84*\xF4Ϣѹ\xCF\xC7o\xCB\xD0F\xF8
+\x83?]\xA9\xB5?>0\xDA\xF1\x8E~\xA0 ݀\xDE\xFD\xE3ȇ\xD6\xEF\x8B&h͓\xFD+\xC7\xCB\xF8\x83\x8FI\xB2C\x87|r\xF0\x82\xDBk\x99\xFCu\xD6>\x92BP,\x89^\xE0\xCF\xF8{{\xA3\xE1\xC6_\x84\xF9I>
+\xEA\xF1Ú³@\xDFCb\x93\xB7Rwx^Y\xABD"S\xA6KZe\xBB\xDA\xDC\x970\x93ty\xA1t|\x8E\x8C\xD5\xFB\xB0;T\x93@\xA8\xB1\xA7\x90\xF4|\xF8\xF6/\x9C\xEA\xB70=\xEBE\xF5\x8A|\x90\x80\xC7\xE5\x9B*\xF6\x92\xE9\xA8\xD3h)(\xE3g\xABsJ\xCBz\xCD
+\xA2\xB2P\xCC\xFEd\xFAFA#\xEE:\xF4}\xF8\xBD8dv\xA7\xEEo \xEB\xB3\x!
 D4
+jn\x9D\xBAY\x96\xC7\xCFÙ¯/\x87b\x88q\xD8\xE5\xAF
+\xEA\xDF\xE35N\xF6a\xBD\xD0\xF5\x90\xEA>\x8A]\xFA\x99\x8C\xA7\xFDG\xFDC\xFE5\x89\x8Fxs\x982\xE9
+\xE3\xF8\xCCs\xC6,ld컟0\xF9\xA7\xD4\xF7iVD|\xB4$\x97\xF8D\xB3Õµ_\xBF6\xAB\x804\xDE\xE6`\xA2\xE7?\xF2\x89\x86_f\xB9{}\xE4w\xE7;c~\x86ן\xE0\x97\xC758Q\xF5\x84\xFA\x98\x9ASߢ=k\x85\xC4\xFFQ\xE6\xFF\x90\xD3(\xBB\xA89\xE3\xEE5t\x93M\xE9aN\x9Fz&=s\x8D069\xFD\x9F\x8B\xE1È»\xF7\x9CND\xD9y\xF1\x86\xA9\x90H\xCCÚ£Ù‹\xC7
+\xDD=*R~T?r\x82\x9C\xED z\xDC\xFD\xAEa\xFCÔ€<\xB5\x95l\x9Ab\x99\xE6s\x83\xDE\xEE\x85K=\xA0\xFEÍ«\xEEb\xF4wv\xDDĸ:\xE0\xF4\xDF\xD3S\x93\xB6\xEF\xD8I\x9CC\xB1\xA3H\xFE\xD8Z&$\xEF\x8B~in+Pl\xF3\xCEá“¥\xF5Ƨit\xCDK/\xA7\xC6ן\xC8 
+\xC7{bz\xA4\xF5D\xEF\xEF\xF0\xAB\xE7_\xA0Y]j\xA2C\xBD\xF7x\x83
+k\xCD\xF6h\xBD\xF0\xB8{C\xE1›p\xD6\xF8\xBEs\x8E9\xBF\xE2U\x82\xDA\xDC|P\xA45\xD1\xE5\xA9*)[vbR\xFB~\xF1%:\xA0\x9B{\xCDu\xFB\xFD/\xF9wh\x86\x9F\xC5}=\xBD\x85s\xB5\xA2(\x99\xBCß„b\xE2dC\xD1k\x84*\x9D\xE7\x9B\xE1}\x90W\x85\xBEfp\xF4\x92\xC0P\xF4Sor\xA9\x8D\xEC\xC8 \xFB\xD7\xF1\xA3\xC1\xBE\xFEd;\x9E<p\xBA\xBC\xFF\xDC\xF5Y'IP\x91<\x9A\xFDJ\xCA\\x82\xF1\xEDJ\x8E\xDB\xE4h3&\xFBA\xE0\xC2o\xC1\x99\x80^\xC8p5\xAE\xA0\x89\xB5;\xB9Ú‡	\xA8T\xAF'ów\xE3Þ¸mÙ„\xF1.\xF3\xD1s\x9F$\x9C'\xB5\x89E\xE8\xE5.\x88Ü® 0n\x99\xAE\xB8T\xC9\xB7\xE5\xBBÚš\xFCn\xF2b\xB1\x87Zx\x80\xD53
+\xB5\xA3l
+\x83<\xDEq\xC9\xE8)-DE\xE9\xB6j.\xB6\xEDn>\xC2\xEFl\xE9\xFF+\xB4\xAE\x90V\xA5&\x9Bކ7 \x9B\x93\xFCm \xD5\xE5z\x90\x9BK
+%%z\xE8A\x99\x85p\xE4J{pZ ~}\xD7;\xBD\xB3\x9E<\x92Ùª\xFB\xA8\x90;\r5?I\xB1 at r\xED\xDD\xA2Vg\xB4â¹ t?IOCsAqm\xA5\xC9\xE4l"\xACVG\xAD\xD5\xCAM6\xB8=\xFA.\x90!cU(w{\xD2"o}\x8D\xADS\xB1<5T\xFD\x9B\xE0\xA8iuP\xC0W\xEBZ\xC00\xBB\xE4\xEC\x86*Ò©3\xCB\xF9\xF7\xD1T\x90\xFF!J\xE7\x98{!\xF0\xE6\xAC\xEF%\xBD"\xF49P\xD7CR\x8Dh+\xA8i\xB6\x98\xA0\xC2\xDE\x9C8k\x95Ó¯\xD61D\xFC\x8AYLS\xBD0Z
+\xAE\x88\xBB\xCE^]\xD8?\xE0=8\x9DwZ\x8B\xAE'\x8Bփ/聋\xBD\xF4b\xC8\xEC8R\xC5cd²p=W\x8Ab\xBE[\xB4\x9BCO\xBA\xA59F`9{\xD9\xEF\xC5\xD7a\xF9 \xEBGw\xF7\x86\xF1\xDD
+\xBC\x8B\xD2\xCBq\xBA]\xBE#z\xE5r\xDD\xC0	~>q\xE7
+\xD0G\x91\xF4t
+\x87\xBF\xFE\xE6\xD0'v+az\x99à\xE3Ȧ\x96yYc\xF9\xD4\\xE3\xF8\xE9\xB0\xCF\xC8\xE6\xC6\xF1
+\x99\x86_\xA8/3h\x89et\xC5<\xE8*\xAFf\xDF}\xD0\xD4F0\xD1I\xDBA1\xAEJ \xE6L&\xFAÊ\xF2\xEDN2\x82\x8B`M\x90ѢsX\xF8\xED\x87A\x93?n\xDF\xB0\xD7\xECf	w\xA2Z'u\x90\x90O\xDF
+ʫ4\x974\xE0\x8D\x865\xF2\xEC\xBEGwX-E\x8Dx\x83\xA5\xDAa!\xE1T\xF8\x89\xBD\xB5q\xF0\x8C\xE9\xD9\xEE\xC8\xF2\xD6|[\xFB\xAD\xDB\xC3\xF2\xEB[\xE6c\x8F\xEF\xEFtJ?SRd,\xE3\xB3F\x83\xE4\xE3\xF4ӐŹ\xF3\x97\xDEs\x9D\x9D\xDA\xFD\x90P\x9A\xC0\xCFp\xE7\xB6\xD4uۏ\xBE\xBB\xE3\xF8\x8B\xE9\xA7\xE3hA\xFC\xD7n\xE9Q#y\xE81>\xB8\xED\xB7
+I\xDA\xF9\xC4~C\x89\xA9Ù—\xC1e\xB8\x9C\xA1;\xEE2\x96EER\xAByU\xBA\xCE\xE4<\x85\xAETAÈ´]\xAE\xC1\xD4Zg\xB9\x966\xFB\xDD\xFC*Л,)%\xE9U\xEFXÅ„c\xC87\xA94y\x85\x8D[\xA9\x92Uj\xF0\x90H\xCCZj\xC9\xEC\xADo\xB3T\xB5n[\x93\xA5\xA1˜k\xCC)M\xE1\xE6\xBD	\xB4\xDB\xF9tp\xFDb-\xCD#\xF2L&mn\xB3\x99j*ÈŠ:\xB3\xFD\x8E\xE3\x8F G\xC19\xA2xTZ\x9A\xF5\xBA6-\xB7\xAC\xC5]Ö„\xBD\xC0_r\xDEejÚ§p\xAB\x9AW]~\x87y0z\x8A\xA4d<W^\xA3R!/+\x95Rm\x991\xC7`r\x99\xF6\xA3\k\x87\xBD\xDF\xC3H\xBAB\x99.IR\x95hK%\xAARL\x85\xA6\xFD\xB9ZS\x96\x8Dk\xAB\xACJ\\x99\x97\xA3εe\xF78jA\xDD0\xD9n\xAB215\xAB\x8DE%	\xDCrI\x89P\xCA\xDF\xE7\x96\xB7\xA5\xAF\xA3ôˆ¶‡(=d\xAC1:
+\x95\xC6v-\xB7`\xB0\xD6X\x8F\xACnr\x92\xF7w>_\xB3\xA9\x9A\xA9\xA3\xB2\xAB\xEAh\xFB\xA3:\xEC\xC2\xCA\xF4\x89:\x83\xEFG\xEC\xC8	첍\xC5Le\xE2҄\xACGu\x94\xF4\x97y'\xEAxL\xFE?\xA6Qx\xF0\xE6\xE7?\xB2\xDC\xFFW at fhv3\xB5\xA6J\xAB\xAB\x9A9\xC4\xC6qD\xF0$<\xC5;\xF9\xCA\x8F\xC9X\xAD\xA6\x8A\xAA\xF7\x83\x83=\xE6\xFAvs\xA5\xCD\a\xB5VO\xFD7\x93\xAE
+endstream
+endobj
+140 0 obj
+<</Length 496       /Filter/FlateDecode>>
+stream
+x\xDA}\x93Mo\xA30\x86\xEF\xFC
+\xEF!Rz\xA0H \xAD"\xA4&\x89\xD5\xF6c\x93\xEC\x87\xF6F\xF0$k)\xD8\xC8\xC0!\xFF\xBE\xB6Ǥ\xD2jS\xA4\xA0<\x9Ew\xC6\xEF\xD8\xC3\xE4\xCB\xDB\xCEb\xF2 ~|O\xC9:9\xA8\xFC\xF5s\xD5z\x93I.\xEB\xA1Ñ¿ 0`c\xB4{$oJ\xD6;\xE8\xC9t]\xE6\xA5\xE0\xFD\x9D\x97\xA2>F\xD5\xFFE+8q\xF1!1\xFB\x90\xE9~\xFB\xBB\xEF_\xFD\xF9\xE1{\xDEʦ\xA7\xE1\)\x9F\x9A\xAC=\xEF\xCFZ\xFD\xB9\x90\xE8(\xB9%\xB6\xCCOP\x97â‘„\xF7\x94R\xBD\xB0l-\xD3a\xE7\xCE%	F\xDFG.\x98rV\xC9\xC1\xF7ˆ0^\xF7\x8E\xEC\xBBn\xF4Q\x99\xE4Ý¥\xEB\xA1)\xC5Qz\xCB%	\xF4μ\xEB\xD5ź\xBE\xF3\x82W\xC5 at qq"\xD3\xB5f7\xB4\xED\x8CB\xBD,#\x8E\xBA\xB4>\xA3\x97\xAA\x98\xF6K\xA6\xA3\xBC\xBF\xDC:\x87\x8F\x9C\xFD\xA5Y\xD1p-tmU\x83\xAA\xC4	\xBC\xA5>\x9A\x91e\xA1\x9F\xCC\xC1\xFE\x89S\xCC:\xB5`\xFC-\xC6P\xFD\xB7R\xA6P\xB8Ö…(M\xC2\xCCP#EH+\xA4	\x95\xF1RnI/Z*P9\xB3GHs\xA4)Ar5S$\x97\xB7\xB04syH	\xD2
+i\x81\x84\xFB\xCD\\x95	\xBD$K\xF3\xA9@\x9AYJ)V\x89\x9Cw\x9Fc\xB7	E\xA5#\xF4\x92b\xEF	\xE6ͱ?m\xD0\xC6\xE1\xEE)v\x9B\xBA<\xEC/uÎ’kW\xF9F\xAFD4B?y\x81fxK\xF6VÌ…\x9AÙ¼\xCEO=(\xA5\x87\xC7\xB0\x9D3\\xC0u\xC6[Ùš,\xFB\xB3\xC7\xF8\xA1z-\xBCw4*\xF2
+endstream
+endobj
+143 0 obj
+<</Length 24        /Filter/FlateDecode>>
+stream
+x\xDAc``\x90acpTZ\x91\xD7\xF8\xC2\xE4\x90 xK
+endstream
+endobj
+144 0 obj
+<</Subtype/CIDFontType0C/Length 3849      /Filter/FlateDecode>>
+stream
+x\xDA}XyX\xD7Þž\x92I%\xE6\xF6cuFg\xD2\xCD\xEB
+h\xAD-ڧ(Z\xAD\xB4*X/"{X4$!		P){\xB6\x93@\xD8\xF7}Qw-"\xC5]k\xB5\x95\xAA\xD5\xEB\xB5-\xB5-\xB6\xBDm\xEFs\xDFw\xBF\x89\xB4\xBD}\x9E{\xFB\xCD\x93yΜs~\xEF\xF9\x9D\xF7}\xCF/\xC3\xC3\xDC\xDC0\x8F7gˎА\xC0\xA0\xC5\x81[\xD5IQ\xAAe˗nUħ(\xA3\xB4\xAE\x97ع\xEC< \xA6X
+ci+\x9F\xC6>\xCBg\x9FsC\xEB\xC4\xFC#b\xB7\xC9U\xA8{\xAE@\xFB	\xE6a\xAF\xE6O\xAE\xFB\x83?C\x89\xF89\xEE\xE9\xE9/\xC5/\xB8n\x8B_\xC4D\xD306\xA3\xB0\xF9\xD8b\xEC1ϝ7\x93G\xFCQص\xB1\xEAhŦX\x85J\x9F\xA8O[\xEE\xE9\xED\xBDb\x9DZ\x93\xA6M\x8CO\xD0Ë—{{\xBF\xB4\xC4u\xF7\x91\xFBy\xCA\xFD\xA3b\x{1A837A}=\x89\xF2(U\xAC\xDC\xDFS\xE8)R\xB9\xD6D\xF9\xB5J\xADH\x88R\xC6\xC9\xD5q\xF2`\xC5y\x8AN\xA1\xD5\xC9\xE3\xB5\xEA\x8Dn\xA1\xA7<8!Q'7\xAA\xB5{\xE4ܯV\xA1TD\xE9\xB1\xF2U\xACB+\xD7'(\xE4C\xB6\xCB7\xA8Uzy at b\x8CB\xA5SÈ—.\x95\xCBu
+\x85<A\xAF׬\xF2\xF2ҧ\xC4{\xAA\xB5\xF1^q\\x9D\x97r\xAA\x93\xCE\xCB5n醷\x82\x82\x97lZ\xF7Fж7<\xF5\xA9zy\x9CZ+\x8FU\xE8\xA3\x95:\xCF\xFFX\xF1o
+AjmR\x94\xE3.\x9B\x8B\xCD\xE3r\xB5\xF3\xC4|0_\xCCÛ€\xBD\x89\xF9c\xD8l+\x8C\x85`Û±X\x89Ea\xD1X,\xB6Ûƒ%a,3`i|.\xD9\xDC%\xC7ä®´\xBBaY<\xEF\xF1\xB4m\xD3*\xF8?\x84\xDB\xEDe\xB7Q\xC13\x82B/\xA1Cx\xC7\xFBD"\xD1|\xD17O\x85O\x9F1\xFD\x88\xBB\xBB{\xBF\xF8Eq\xAE\xF8\x87Ý’\x8D\x92A\xF4/\xC9``$\xC3\xEE0\xF2&\xB6\xCEbp\xFF40\x90A#Õ„PPa\xB6e\x90VË»&)&\xBFɈV'o\xB6\xCDQ\xE1\xDF:'\x80\xB5\x8Df\xF0(\xBB\xB6\xB1\x83(g%u\xCE@\xA7\xF0Z&pf\xAB\x85H\xDA\xB4\x94
+w4\xDFd\xC7
+`m\xA6\x80\xD52\xB4WE\xF0\xEF\x89\x89y\xCF \xEA[\xEF\xDE1z\xEC\xBF\xA3/\x8F6IX\xD5\xB2\xE1\x94m\xF8V]n\x86\x9C\xAE\xA6\xE0:|\xF4G\xF4Q]	\xE1U\xA4O@\x88\xBF\xAA>\xA3\xB9\xA5\xB6\xB6e \xEC\xA55\x9F\xA8\xEB'\x8F\x9DU,\xA3cp\xB4\xCB\xE2\xFB\xCA\xEB\x84t\xCDk_i\xCF_9\xDA\xA2\x9E\x92v\x84\xEE\x8B?L6\x8ETÝ¡\xD1+\x83\xB2\x85~\xBB#C\xA3\x9C\x80\xB3\xE1\xEB\x94\xBA\xF8#S\xCD\xC0\x83F\x8F\x81Q0\xBA\xE7\xACu\x9CMp\xFA(5I\xB5\x91a\xEC|\x83/\xB0
+4\x9B\x81CO\xAB\xF0C\xEF\xAA\xCD ßœK\xE34\xE1\xDA\xE8\xF8-J\x85Ù”\xDE\xF8"\x9C\xB5\x8AEm_}w\x93(\xB3A\x91O\xD0!Ï…\x95nl\xDD at 9\xD3R7\xCCb2Y\xAD\xC2ÑŸ\xD2N\xEF\xF4T\xE3\xEEbŽ\xC0\xAF\xAF\x9EcN\xBCO\xA5\xB4^\xBEOÞ¼\xF0\xC1}\x9D"\xF4\xB5Æ…\x92\xA1\xE1'\xA3\xE8\xE3#\xFB\xCF~\xDEs\xBE\xF1\xE0\xBB!$\xF3\xF7Yf\xD0QR[\x96a$\xE7\xC3#\xC4g\xBD=\xCE\xAE0Rm\x93\xB2-\x81Ay*\xD2G\xFD\xE5\xF9\xB6\xC2C\xEDi{\xC1\xE0%\xA5\xFD\xDEW^Z/\x92\xA0\xD8\xEC&\xC8\xDCj\xE2\xF5\x8C\xC2\xF0{|vt\x97\x95\xE6K\x8EÍ’i\xA1Ö§\x84$\x85\x90A\xABN\xC3%p\xD5\xFD\x81S\xBDg\xF6\xC66Ó™q ZW\x9B\xDE\xD2\_\xC5\}\xE3\xC4*\xF4\x94\xE7\xF3\xC8\xCD\xFCv!\xC0ٝP\JK&q\xB4\xC6 C\xC6yp]\xBEc\x96]0\xF4ŪRS\x925\xF5)\x9D\xD5\xE5\xC5\xCE"\xAA\xA0\xC0 pd\x98\x88\xCD\xC9oE\xEC\xA2\xCC\x9B\xD5L\x98\x9C&g\xE9\xE8'\xA7$?fB\xC0\xF0\xE0\xBC\xDB\xEC\xAC1\xFE\xC4&\xF8\xB9\x86 z\xA1U\xFAQ\xD5 \xBCQ\x90GOv\xE0q\x96\xECu\x94Q\xC2Ր\x80\x8B` \xEDm\x97m\xB3-ݺ\x96\x8A\xDA\xFDV\xF4+\xE4s\xC2kq7\xCD»\xC5G\xA8\x9F\x85\xF7\xAE\xC4l\xA0\x8F\xAE\xF3c	G}\x8AauF<q\x85\xCFF\xC3\xD52f>\xBB\xAFÎŒ\\xC8Ì¥\xD0\xD0d\xBC@k\xBC\xF18k\xB6J\xF8\x99\xEF\xB8\xC8\xCC\xF1u\x96\xB2\x83\xF4\xBE\x89\x91!\xB3\x9A\xD9\xC9\xC0\xB0s`"\xA3\xEA\xF7\x80\xD8esY\xFA1[\xC7I\xEB\xAFZ\xD0i\xA3a \xFEt軨>UXQ"\xF9r\x8C\xBF2\x83\xB6\xC1\xA5\xE3\x88\xCE\xA8\xF0K\xF2B\xE9\xC9F<<\xF8\xBB\xD4\xD36\xC4d\x86\xA6\xF4\xB69\xA5a\xFE\xF3\xB5\xE1\xAAvQ(\xF3\xBFu䶁C!\xE2 @|\xDC\xE3\xF3qß‹\xD2V\x98ï’·\xD9\xD9G\xB3n\xB8\xF44\xD7\xECRi~(\x8DZ\x9B\x83\xD35C\x96\x8F \xEB~Z:{\xFB\x83\xACSW\xAFSR4\xC9M)m\x9D\xF5--\x94ypi\x8Ba\xE0<\xEA\k\xFC\xE9\xA2t\x9C\xB5psk\x94`@M#\xBE\x93W&(\xB88TRB];w\xC4\xDEh1\xB8Õ˜\x92\xC8\xE4SÚ©\xB5U\xE4\xBCK
+i\x80B\x83\xAC\x97~\xFC\xDFW\xCF\xEA$;9\xB7\xE9\xF8u\xF5\xFF\xC4/
+\x8B(A\xB5\xA18+\x83H\xCB0\\xFDZO\x82v\xF2\xB0XO-\x9E#\x90+\xFF\xBC\x8B҃\xD0>뗡.\xBD\xF6qN\xBA\xE2\x9Crő\xC0\xE2_H\xB7\xB0[>\xB1Ÿx8\xEB׽f;\xF0\x83e7\xA8y	Sl\xB6\xD4\\xCE,'\xAF {UP\x9Fgzy\xFD\xC6P;\xAEaK\x9E\xEC\xCDikNOm\!
 xE2p\xBC\x9Df\xDBq\x98\xFF?\xD3Y\x85\xB9ed\xA9\xC3Y]DC\xF3\x84D`\x9F\xBC)\xFC\x85\xD9\xDD\xEEp\xC2<\xA1\x9B˪\x9F\xC0\x9A\xDB\xC2.k\xE1O\xBC9\xF1gI\xD6\xE4\xED at M\xAA\xB7G2\x97\xD9o@\x98\x8A\x9E܄\xA3\xEF\xD9VAe\x8E͞B\xA2\xA5*\xE1\xE1V\x90\xD7NO\xF6\xE1\xAA?\xC0\xC3\xD0l3^\x92\xAC\xA5\x99,196;\xA3\xCCn+\xE6@:\xEC4{
+g\xC0\xF1o(Iv\xBB\xC1\xC8\xEB\x85\x9D\xA3|6\xEE\x96A\xD9\xC2\x91\x89\x97<벁\xEFC!\x9C>\xFEzP\xBE\xA5\xB2\x98F\xEDT\xEFJU\x90q\xE15'U\xB4\xE6\xA8\xED\xEC!\xA2\x9C\xDFw\x94:\xDCq\xA4\xA6\x87\xEC;\x94\xDBN\xEF\xDB\xE2\bd\xFB\x99K\x9C\xD5\xD7\xF8\xAC\xE7,F\x89\xBFd\xA98@\xB3\xE7\xF1f`7R\xDD_\xE3^ Ux\xF3)\xD0v\x86\x9E\xAC\xC3\xE3-\x99/QJ.E\xEDã ›\xEC\xFEX\xDBi\xC9\xB4\x9D\x81^
+,\xC9d5y\xFCt֌J\x9Ff\x9DP)\x83ҥ\x8F殺 \xB3\x85\xBA\x8A\xFF\xAA\xB5\x8F\x8A\xF2"\xE8\xC9\xDD\xFF\x9F\xD6\xFCpm\xDD@\xEC%\xE2?\x8CC\xED;\xB9o\\xF1\xBARUYo\xA4\xF4\xCD{:\xCD9\x86\xBD\xBC\x86\x92\xCE<\xDAy\xB2\xBE\x97\xBCy\xCE\xB9\xD1T\x8D\xD2
+\x8F3\x8C\xBCGC|x\x99e\xC0\x91^K\xFD\xE5\x87m\xD0Fp\xFBqεDp:UV
+D\x91\xC9a~\xCFg\xDD\xC2Pj\xC7|\xBD\xFD\x89X^\x85\xDC\xE5\x9F\xBD\xEB_N:E\xBF\x9B\xA6r\x93\xF6@\x87l4>\xBD
+\x8A((~\xDB\xE7ri6Y\xF3-\xC0Z\x9BN?\xF9\xA0HmC\xAB\xB9]\x9ANe\xE7\xB8N\xE5|\xA7\xB5\xB0\xF2\xEE\x8DG'\xA9\xF7\xFF\xD11(&\\x82\xE7=\xE7À\x93\xB2v}\xA3Ve\xD4k\x93ZS\x9BÛ›;(\xC9-C\x83\x9D\x81\xC3
+\xF0\xE3\xC1y2T\xDF\xCEy\xF8\xA8Q\x9A7\xF5 at VJ\xB3\xB2A~\xB6\x8Dzˤ\xD2\xEC!we?\x9DKg\xDF\xCC;e\xEEJ\xDA7'\xAB<\xB9=\xB8Z$M\xFF\xAE\xF9Ӌ\x9F\xE3Hp\xBD@\xA1\xC1\xFF\xF4p\x8E\xE9w]L\xBF\xF7{c\x85\xA5P\x84KO\xF5\xCCR\xB7\xD3\xFB\xC0\xB0\x81x
+$\x89\xA4\xF6V\xD2\x93\xB7*4\xD2(\x81]![\xB6Í¢\x90\xAC6\x83\x8A\xC6B\xCA^\xDA	H\xE9\xB4\xCF\xE0L\x80\xBB\xF2Æ™\xD6\xD5\xFE\xBA)\xC32\xDF\xEE\xBA-\x9D	\xFF\xC9Je\x9D\x9A\x8EÈ•*\xAF\xD4|\xCA\xF9B)\x83\x88\xDF\xDC\xB5\xFC\xDB\xCEp\xEE\xD0~\xFD	6\\x9AgJ\xFD\xFD\xAC\xE5h\xB8\xEF\xFB\xB4\xC4l\x85T\xAE\xF9\xDD|
+\xA1jΪih\xA8l\xA7$\xCCIJv\xDE\xD0\xDC<rk\x84\xCFf\xC0 \xD9y\xFDQM7w4\xBC<\xB6M똽\xA32\xFC\xD4%\xE2\xA3ዷ\xE0\xABMhed\x95\xE9 \xE62\xB28\xEBh\x8E\xD7g\xB6\xC5\xDEˣv	.\xEC\xDCTA"\xFE\xAA\xE5/8C\xF7\xC4\xF6\xE4\O\xEB\xC9=\x93Q\x95/:\xAE\xDF\xB2\x8DX\xB3}\xFD\xAB\xE1\x81\xE5\x87C\xA9-\x83\xE6\xB6n\x91\xAD$ "\x98\xD2h\x8E\xA7SY\x91\xDDQQLu\x9F\xC4\xB8\x98\xF8w\xBA}\xF6
+\x9Cƥ\xA8\xAC\xDC \x97\xD7\xC1\xEA:^\xF7Q\x98v\x94\x86R\xD9\xD0R*~\x9F\xA6hS\x85(\xA9ȯ\xEA\xB1\xAF\xF1ؗ\x90W\xE4\xA9tP\xB9\xF6bP0\xF6\xA7'XsSSr\xF2\xA8V\xA5\xB2h\x89f\xC4o
+\xCE	\xBD	t\x97zޱ\x9C3Y\x95\x96V\xA3\xA8noe\x8A\x9A\x88\xD4\xEE|i\xD3\xCE\xDE\xEFS(s\x9D\xCD\x88B\xABX\xC8)\x9Cs\x9F\xE0t\xDA퍵\x94\xB38\xAAkDa\xBDC\xA0\x96\xFCyp\xE46-v\xECz\xA7\x81\xF5\ᢞ\xE0ɚQ>\x8EfX+\xEB\xCD\ɤDa\x82&aA]\xE9\x85\xCArQQ\xC9MPE\xC2\xE1\xB3h\x89@;\xBD\x8A\xDE\xE6\x923p\xF4UR\xA7p\xB8\xB0\x8A\x8E_\xA5$\x86\xF6/\x85\xB6\xC3\xD5-p\xC6ӵx|8\xB6\xF1a\xE7ة\x87R\xC6C_\xD9Wko,\xAE\xA5\xB4|\x8B\xB8\xED3\xB2\xE8/k\x83\xFC()\xB9&f_nucKug\x97\xAE*%\xDF
+l\xEA\xC3ޯ\x81\x93쾼wa\xAAe\x9B*\x92N\x8AH\xB4hl"\xE9\xB5\xC6$\x8B \xDDf\xB6\xE5\xD9NPG\xDE\xEF}c1zfcB\xE8N\x9F\xE6+*Z*ǺLL\xDDBz:\x8B14\xA8u\xC9\x8A\xE5_\xF8A>%\x95ˡ\xFB\xE7c?pk\xBF
+\x8C\xC7ɯ?\xBD\xBE\x8E\xB9'\xCDc\xE0k\xB2\xA1%=78\xFB]QN\xDEV\xEE\xA4E\x81\xC2\xF6\xE6\xF3\x97\xDAZD\xD2\xC7\
+'\xFC\x8E\x80\xB8\xF7\xA7\x9C\x886.xy\xC7P\xD0\xD8V\xDDÕ‘Z\xAFΙ]?t\xEC2yp\xBD\xD7\xCAе[7s\A\x81\x8E\xE5\xE1\x92\xD9}\xAC\xA8\x9F7U\xCA\xF0\x9FT2s\x8BOҐ\xC5ѳ\xFF\xCBF|e\xF8\xFA5>\xA6\xE3\xA7)\xF8\xB7_ÞŒ\xCBr-\xC2A|\xE7n*\xB9e \xF3}\xB2\xB60\xFBi\xA6\xB9\xA6\xCBp\xAE\x9A(7\xB0\xDE\xAF\x8E\xD5\xF3YÓ“"Ûª\xCA J\xD2\xC7\xC1Mp\xC8\xEAL\xCA"r\xAC&S&\xF5"*\xE7\xDE#0UÙ€\x93h\xEB\xE52\xC8\xF5Õ¾4\xE4bW\xDF\xE12\xB3\xB2\x82\x86ϣǂ\xA7\xC3TA9j\x8Bi8\xDE)m\xAA=|\xC9>G\xFF\xC5Q\xE7;\xE6ë}\xC1\xAC\x99:@#\xAD \x82Lw\x80\x9E\xB7\xD5\xED1&K\xAE5\x8FBK&Uh%\xB6kI\xD1y\xB4\xB8B\xEA\xD6\xA9
+\x9A:pOWY\xD2\xCA\xE9\xE2\x{1CA555}\xF1\xE8\xF9É­\xB3\xD1
+\xD6\xC4at9z\xE7\xFB\xA0\xCD5@\xEF˝п\xAA
+f\xE8\xE4\xFF
+\xF6:ͥd\x89\xB3\xA0\xDAI\xC3Ul
+\=Y\xC35:-%dia\xA1\xAB\xF1m\xF6o5'\x98\x86Sv\xEE\x84\xDDl\xE8e\xB7\x8C\xAA\x8F\xFA\x9B\xE0&,\xBE)\xF5\xF8]\xCA\xF6\x90\xAB\i8h-Õ§\xB9Rf\xCE\xE6R\xE6H_@|\xD8*ȯÅ€\x90\xB7\xF5\x80\xA6\xE4P\xD3"×€\x91\x93\xB2\x92\x86'\xA7E<\xAC\xE6\xDC9I\xE9E8\xA9L\xAD4\xE8)\xEC!ZR+\xD3(iu\xBA![\xA58wzx\xE0\xE4\xC56\xAEe_\m?n\xAF'9=N\xF8y\xA3\xB0\x84\xAB\x82\xE1Dz{\xA6\xCF\xE2G\xA9{\xD1\xEB\x9AB\xC9-\xEBU\xAF\xC6\xD1\xEA\x80\xEC@\x84\x8B\x8A\xFD\xAC\xA7|\xFB\xAE\xE9\xC9\xA7G\xFA\xC0MÇ£·B\xF6&\xF0\xCD\xE2\xCA\xD9i\xA9\xA9	\xE4\xFF:\xC8K\xA5\xB3΁я\x88\xBB\xE0\x93\x9A\xB3\xD4\xD5\xDA\xF7\xF7&{G\xF4/\xD7Ó•[\xC1k	\x89\xEB\xC6\xD3,)\x9E?\x8F\xFBC\xBC\xDA\xF5Ub\xC2\xC3\xD0È®\xAB\x86ê²’F!\xE5\xAC\xF4?\xC4\xEE\xCC\xF4\xCB\xEE\xF5vg(E\x85vG\xB5X\xDC\xD4^\xE5(r8\x85E\x85\xE2\xEC{3'\x9E\x91\xFD\xAC\xF0ߧ
+endstream
+endobj
+146 0 obj
+<</Length 512       /Filter/FlateDecode>>
+stream
+xÚ…\x93Ok\xE30\xC5\xEF\xFE\xDAC =\xB8\x91\xED\xD8nK04\xFF \xB0M\xBBIv){s\xACI\xD6\xCBF\xB6\xF9\xF6+\xE9\xC9-\x94
+H\xF0/3\xF3\xE6y4}{\xDB\xFBÏ¢>\x92\xDDs\xB6\xA3\xB6\xEEUA\xFE\xE2%o\xBC\xD1hY}E\xB2\xDB	C\xB4}bo\xAA.\xF6Ô±\xF1b\xB3\xDCȲ\xBB\xD3\xC9Y\zACÖ¿\x93\xE6t.\xE5g\x8A\xE9\xC3\xC6z\xF7\xBC\xFF\xFE\xF9\xB2\xF5\xBF\xBF\xEC\xEA*\x97A\xE8\xEF\xE8\xDC_r\xE5sSv(\xBB\x8BN\xFFO&\xD3av+̬\xD0/RmY\xCB'\xDCs\xCE\xF5+)ue^\xB2\xF5&\xCE(\x9B\xD6O\xA5ʹeG\xE3\xDDB&Ê¢sd\x8BJO\xCB\xEF\xAFmG\xD5F\x9Ejo6cݹl;u\xB5\xBE\xEF\xBCÉ«\xA4Jyf\xE3[&uÒ¾o\x9AC\x8C{Y\xC6\x9D\xB4\xB6\x9E\xD36\xAF\x88M\xCC6BG\xCB\xEEzs\x9FE\x87kC,\xB4\xC0rQj\x9B\xBC \x95\xCB3y3=\x9E\xB1\xD9Z2\x8F\xA4\xF8\xE7\xA8:\x9E\x80:ax\x8C\x82!T\xFCÉ•
+\xE6Z\x88\xF3i\x90YZXJ--\x85\x89\xA5\x99Ir\xB1h\x95\xA9\xA5\xE8\xD1R\xE4h\x8D\xBAK\xD3\xF4J at s\xD0\x9A\xD3gh.Ap6]Y\x8Ad\xAEAЌ\xE0:\x9EZJ9(\x86Ot\x8F\xD1/D\xF7\xFDB\xA7	\x9FZ\xCCP¡\xE2\xFDb\xBC{\x82~\xA9#\xF4\x8BR\G.\x86\x99EN3KcK\xA9\xEB\x80馮TR\xF8L\xE13u\xF3\xE4\xCEҞ\x9D9v\xB3\xC3kV\xF4J\xE9\xB3\x8Bn\xF7\xC8lP)\xE9\xE3.4uc\xAA\xEC\xD7^\xA2\xE1Nz]{\xFD\xDD2\xA9
+endstream
+endobj
+149 0 obj
+<</Length 13        /Filter/FlateDecode>>
+stream
+x\xDAc```h   \x85 \x81
+endstream
+endobj
+150 0 obj
+<</Subtype/CIDFontType0C/Length 604       /Filter/FlateDecode>>
+stream
+x\xDAuR[O\xD3p\xFFw\xAC(R\x91K\x8C\x84\xC2z$\xE2\\xBB\xA0\xC6\xE8N0\xE06\x8C装\xFD\xB75+-i;7\x92q	\x84\xD9\xEA.ܗ0Pc$c\xF4ɏ\x80&~?\x80\xF1\xCD\xC7V\xEB\x83m\x8C/&\x9E\x87߹\xFDNN΅@n7"\xA2}\xE0\xC1\xC4\xFD\xC0\xBD\xBE`hL\x9E\xE6\xA5\xBE1O\x89\xBC\xE2\xE4fW\x9E\xF2\x98d2\x84	.\xF3|\x9D\xD9\xED\xEE\xA1\xEA\xDEP\xEE_i\xEBCg}\xC7O\x93\xECB\x88\xD8<\xE3\xE0A\xCB\xD5m\xAEu\xC1\xF1w\xA8t҅Ԏ\xBAP\xEAE?\x88\xA2\x858\xF7\x9F\x9EQyG\xB1\xA4	\xDAl?\xEB\xF7_\xC83\xB3\x8AOh\xD0\xEF\xF7_\xBD\xE2\xE0M\xB8\xCD\xC2?\x95\x94\xD3jR ^\x8A\xC2!\xC2rڎ
+pI\x96`'x1r"\xF8!\xA4T\xAC\xA8W\xE4ÔŒz\x99\x85HBP!-+I\xB0\xB5\x82EÌ«8
+))\x8A\xD0\xEEN\x8CG`H\x964
+SXR1\xF8| *Ɛд\x99[\xA7\xA5⬬Ĺ\x98\xCDQ9\xF1I\xE5\x9C:\xDF\xD0h8\xE2\xC3レ\x96\xD1 &+\xC5/\x88*\xFB\xEF\xC0\xFD\xB0\xACL\xF3"\xB2\xEA\xECm\xD9\xE2B.\x82pGM\xE6g\xE3\xDBc3\x90n5\xCAÇ£\xC7m\xCDf\xD6\x9F\xAD-\x96\xB2e\x8F\xE5\xFDhx?\x91\xD5\xF2V\xA9Ö±\xBB\xB0\x97Yz\xB2\xB6\xBC\xE8\xB1:\xFDdÛ£\xAA\xD1K\xEE\xE9\xAB\xCFez!\xB3\x9CZ-\xCCrÌ®\xC5X\xF4Wrc>\x97\xCFÑ™\x85Ù¹\xCCV\xAE\xBA\xC2ސ\xE5
+\x92ٕ\xC5\\xA6#\x9FO\xBE\xF3}\xDFɶR\xD6\xE2\xC8܉\xE5\xD5M\xED\xBD][V\\xDBY+1sc\xD0~ri\xA7\x94/ѵ\xED\xBD]\xA6\xC9y\x96f\x93\xA6.\xDAGGם\xE0[\xD3\xFBf\xA0jH\x9B\xFB\x{15E448}\xC8Q
+y\xAA\xF1\xED\xA9/\x8D/u]/<\xD5+z\xE5\xF5!E\xBD*\xEBï‹…b\xA5\xB8^\xACP\xA7L\xAA\xE4\xDD
+endstream
+endobj
+152 0 obj
+<</Length 359       /Filter/FlateDecode>>
+stream
+x\xDA}R\xCBn\x830\xBC\xFB+\xB6\x87HɁ \xE9\xA1R\x84\x90R\xD2H\xA8\xCDC!}\\x89\xBDPK`#c\xFC}m\xA9j\x8A\xC4c=\xB3\xE3\xD9\xC1\x93\x87C歘<\xA3\xF78\xE0\x88\xAD\xECE/\xD9\xE6
+\x99LÖ’v5
+\xBDCd\xC8F\xB4]\xC2AI\x9A\xA1\x86i\x92\xAES\xC1\xF5̐SA\xAB\x8E\xE1\xC8\xFA\x9B\xF4\x8C%7\x8A\xDD\xA6'\xFC\xF2V\x9F\xEF\x87\xE4\xD5{\xDBe\x9D\x8B'\xEF\x88eW\xE5\xCAl׉\xEBʰ\xFF'\x82A\xE1
+N\xE6U˥XB8\x82\xC0,\xBC\x96\xC8\xDAN\xD8\xFF\xE2\xFC\xD1w\xC1S\xABp\xB6\xC6I\xB8 Ʃ\xBET\xEEIk\x95m\xCE\xFAVc\x9D\x8AB\x92(\xDF\xEC\xCC[\xADz\xE7zF\xFC\xBDb\xA8\xB8(azǣ\xE1d]\xD3Th\xFD@@\xE2F\xDAd\xB4\xCBkߎ\x9F2\x83r\xDD\xDF\xCB\xE1\xD6s\xEA\x84\x85\xAB\xC3\xC10\x95\xDB&\xA7\xA8rQ"\x89LA\xD1\xC6\1A\xC1~\xE1\xC1\xD0u.\x86\xD2\xC6\xCFpD\xE8w\xAE\xAC\xCE\xC2\xEA\x98\xD7*hn\xDD*\xDAp\xAE\xD0N)\xE3\xDE%\xE8,Zs\\xE05\xE4F6\xB6\xCB\xDD\xEE\xEF\x8C'\xC5V\xFB
+\xF9\xDB(\xDF
+endstream
+endobj
+5 0 obj
+<</Type/ObjStm/N 100/First 804/Length 3068      /Filter/FlateDecode>>
+stream
+x\xDA\xD5Z[s9~\xF7\xAF\xD0#\xD4V\xBAu\xBFlMQ\x95\x90	0\xC0 ,^?8N\x93\xB8\xC6q\xA7\xEC\xCE2\xBC\xECo\xDF\xEFH\xED;\xEDØŽw\x8A)bt\xE9#\xB5ΧOG稥g\x9EI\xCDS\x8A	\xC9L`B1Ï™\xB0Lp\xFCj\x93\xA8ÐŽ!'\x9C"yBKT\xA0dQ\xC1\x99\xA4.S\x9C)'\x98eZ@\x983m\xD0\xDA1\xB2Ì¡K\xF4\xE3\xBA\xD5\xCC+\xD7\xD2H\x9CcFBr]\xE1\xFD	\xE3Z\x90b(J\xE19\xEA\xB5D\xD9 \xB5\x9EY\xCC\xCB,\xDA[\xEFZ4~\x87~,\xFA\xF1\xB2h4\x9EC\xBB\xE0\x91B[\x81W;Xr<\x87R\x92\x86zÕ¼\x862(@i\xB4j9\x89\xD1s\xC7<\xCA\xDEK\xC5
+4\xD0LI`\xE4\xB4\x86<)\x83\x97;\xF5U\x80jLRpO/ Òµ\xA0\xAAx)\xD0P\xC0\xB5
+8)J,\xF3)\xF0\x9Eim8ß\xB6xY@\xEA\xF0\x900@ h\xE0\xA2dKf\x94\xFA
+\x8D\x80\xAA\xB1 Tp\xB4u\x80F\xA8 \x95-\x90
+\x94Q\x80\xCA\xC98\xB7V\xA3\xA4\xF1\xC4\xC1\xA6\x93\xA1%x J$:8l\xF0PXč&3\xC51\xE74S\xCE {\xE4\x9D#\xACA\xE71N\x85=\xB7\x94\xA8«\x96 k\xBC\xE4T8
+\xE6\xD3\xE9\x9D\xC2X@\xEFifA\x9E\xC0%QPAYFY\xB0
+\xDAըƒ *Z\x8A\xC6\xCEi\xBE5N\xF8@!M\x89\x9A\x9E\x83\xD9 X\x9Cq\x91\xC7P$4)ɉr\x91f\xD4	\xAD!	2C9T\xEB\x97_\xF2\xF3\xFCE\xF9\xA1̏ٓ\xFDjPd\xE2\xE9\xB3g\xAD\x94\xDAZ\xBD\xAA_k\x91\xB3\xFB\xCB\xFE\xFF\xE6\x9A\xDFu\xAB\xAA
+\xC7M\xE22\xF5\xF8\xFD\xAEU\xD5^7	\xAA(\xF8\xA6?\xAE\xA8\xDB\xF2+\xFD\xFA@\xE7:\x8D\xA5\xF8Z\x8C\x8Aa\xAFX\x92kcsv\xC6\xF2\x93~Ձ \xD18\xF2\xD3\xEEu\x91?/\x87U1\xAC\xC6`?	\xE5gŸ\xBC\xA1Z\xD4T\xF1\xB6\xB8\xEAw\x8F\xCA?\xDBEL&\xB1\xBC\x99t\x81V 5\x89\xA6\xAE'\xAF\xCB?\xFF\xEB\x91#\xF3\xE0\xA63* |x?t~(\xA7\x93\x9C\xB0ror\xC6\xC8L\x80\xA439\x8D\xE5\xE8\xFC\xAE\xDB+\x98J\xB8\xD4\xF0b\xB1\xC6\xE2\xAFV/ΫnU`'܀\xDEp\xEB\xA8b\xB20\xB2\xCE*"Û\x83\xF8KY\xD8
+\x93\xB2:\xD2<fY\x8F:\xCBTB\xFCV \O\xAD,\xAD\xB4Ԋ,l\x9Du\xB4\x8A#\xC2\xF9\xE9\xA8\xEC\x9DU;?=>\xC9?\xAE\x99Qm\x97fT\xEBgT\x9Bd]\xF0?\x9E\xD1%9\x9A-m\xA6a\xF63\xD8Et\x8D\x9A\xA0=gչy\xC1\x927|i\xB6Ш% \x8D\xD8@#7[r	@ktF\xDC_ந\xB9e\xD4̮\xA8\xD9
+h\xF7× \xB1V,Cv\x84\xC0\xF2
+\x88\xF3SB`\x96 \xB0jW\xF4ߕa\x82]wT\xEB\xFF\xA6,p\xCB\xB8m!\xC8\x87\xC3=y]\xD2vi\xEC.\xE9\xE4\xEBRR\xD8锘\xF4,\x89\xB8\xE4\xFE\xF8(ҙ\x8E4v\xCC\xF2\xA3rtU\x8C\xE2 at D'\x99\xBFʟ\xA3 \xA8p\xF7\xAA-\x9D\xC9,.H%vw\xEDl\xA6\xF0\xE3]&B\xA7\x95\x9F\xDF_V\xD4ߛ\xFE\xF0\x8F\xFCp\xDA{\xF4\xCC\xE0\x83}<{E\xBF'7Uu\xF7\xCF<\xFF\xF6\xED[\xF6m\x9C]\xC2\xBC\xE9\xDEVpފ\xAB\xFB\xFC\xEB\xA85\xEA\xF7nrr\xE4\xE6\xD0\xDCt\x8CAd{\x84\xB1*\xD3\xF0\x8F\xB5
+\x99\x81\x9BoÖ‹\xB7\xFB\xE4]_4\xBB\xA9n\xBB
+~y\xE6(5"\xB3Q$W\xA7\xE1Z"\x80\xFEن+\x83\x92)\x91\xA9@\xE8\xDA, e\x84\x8F\xA2\xB9\x9D\x86\xFBG\xD9\xEB\xB7\x97ݬ]\xE7\xBD\xFB˂Ʒ\xE3\xF00,\x8Be`D\xC8,,\xC2\xCF\xCCQ$\xAD8,\x84x\xFC\xF0n\xBB\xD5M^\xDE\xEC>B-TfaTt -QN\xE9)D\xA6\xDDn \x8E\xBAëb0\xBE)\xF3d\x98\xE4b\xF9$
+\xCB?r\xCF3.\xF6 at R\x8Du\xEE\xE1~+\xB2\x82t\x9F\xFBs\x8E\x99\xEC@\x80\xB9\xD3\x8CU3\xA0\xB5C\xD4N\x83\xEE}\xB2^y\x9B\xFFwT\xF4\xAF\xF2\xB3\x85a\xEFbc \xA9dR\xA0\x97\x974\xC9`\x8F\xDB\xCEo\xD9,\xC9E\xC7\xA3\xD5\xDE\xFC\x9C\x8E\xF9\xEC?\xC6\xF2\xBB\xEB\xAFw\xA3\xEBKÖž\x8E&?.\xFE\xD3\xEFg/\x8E:\x8C\xF6T\xE9\xDBV\xA8\x8E2m\xE3yG\xAB\xB6	\xA2cx\xDBß±\xB6\xAD\xB8\xEC8Þ¶\xCAv\x9C\x8B\x92^Ä’\xD7Q$X8\xAA\xB2<"@\xDF\xDC\xC4\xF6\x82\x87(;\xDBrI\xD9\xE3b\xDC\xF5\xEF\xAAr\x8B\xBFwo\x8B\xFC\xF5\xD1ѧ7\x9F\xFF\xF1\xE6\xEDYy\xDB>\xEFލ?8+\xAE\xEF]H
+\xBA׈]\xA3\xF4\xF9:Xv \x9D\xF2x\xAE\xC3;\xF9\xE1\xB8GNrt\xF0\xB2\xE8_\xDFT\xCCz\x95\xD3\xE9\xB5\xC8_U\xDDA\xBFw8\xBC\x8C\xE7\xE7Uq\xFB\x89\x8E\xCA\xF2\xCFu#ҋN\xFA\x83B1\x9F\xB0\xFE\xEA3og>\xD9T\x9D)I\xA9\x86\xE7\xBF{\xE5\xF6\xA1\xFC\xD5\xDEٯ\xBE\xBC̏\xBA\xE3"\x8A\xAEU3
+\xF3\xAA\x8BwCv\xDC\xD1\xF3\xEF\xE4ʏ\xC3>:-\x98\xEBޏAR9
+c\xB3W.N\x9DJ\x92\xB6tL9Q\xFB\xFB\xBD~-\xF1N4돫\xD1w\xF6\xE4\xF0\xAA\xBC,\x9E\xE6\xEFhyCY\xF6d\xA2\xEDS\xE7\xEEnP\xDC\xE0\xFCٳ\x9A[3D\xDC2\x96\xB8\xA5\xB5\xEEh\xC7\xCAw\xB4\x8B\x95`U%\xAD\x8A\x95\xE0\x89\x80wF"\x91\xA9\xA4\xDBA8b!\x89xx\xD3V \xBF\x8E\xF7Q,\x98\xB6\xC3QA\x82\x85<
+a\x96)e)b{!d\xEC\Hef\xEAɧ\xF7\xEF~}9\xC1\xF3|\x80\xE9ZOUDÉ\xAA\xFE\xDE\xE7\xE6\xA8*ݦT=\xB25\xE5\xAAVb\x8E\xABA\xCDs5\xC8Gru\xBD\xA2+d\xB5\xCBd
+f{\xB2> \xEE"[\x83\xAE\xD9ľ\xD9*Md+\xE2'\xB2\x84\x94\xA4JF\xD9H\xCE:\x9BD\xC9"R\x92\xBA\x81a\xAC\x9FG\xC1u{\x96Q\xE4a\xCE\xBF8yyXÞ–\xC3r\xCA!\xC6:\xA0\xAF
+\xF0\xFC\xE9\xBC\xDC\xCE\x87\xC2<ㄘ1
+'\x9Ci\xA2\X\xA0\x9C$\xE5\xD6\xEA\xB9\xCC8\xFA\xE2\xB1D9\xA8\xB7=\xE7Öƒ\xBBH9\xFA\xECRs\xCE\xED\x9BsR\xB5\xF7\xD1B:\xA9\xA7CÇ€%JD\x9B\x88\xD9D\xB8FD;Äžd\xA9d\xDA\xD6ӥؙ\xA9\xF1P'{"\x95Uq\x83\xE6.Q\x85 at 9lb\xF6\xDE}\xFA\xED\xEC\xF4w\xA0t\xDE\x8E\xFD:\xF2\xC1ʁK\xF1\x8B}>Bx4\xB3wFϳ/\xE8y\xF6\xE9n\xCD\xC1Ϩ\xA7\xE7wf\xF8\xF3\xDC\xC3\xC2z$\xF94\\xA5\x9D_\xA5\x9DÛžvM\x80.\xCEÖ„\xA3\xEFz{fHBV	\xF9{\x948J(̍\x8F3%_z0\xF9E\xCEÝ”t\x94\xA4\xDE\xC9\xF8\xCD\xC9D\xE37\xCD'Ze6`\xE0\xFB\xD3/\x9F\xEBu\xBA\x96\x81\x86H\x9F)5\xD1D\xE8y\xF3\xA7ÍŸl\xF0
+\x9Dk0~B\x88
+\xFEH6h\xB8\xC2@\xA1W(\xD4\xF6lt\x89\x81BN\xF6\xC9@%\x88\x8E\x94\xF0\xC0\x9C\xA6\x93\xAA
+H\xF0\xE5\xCB\xEBOo\xDFM\xBB\x86F\xF2\xA2<6~\xD8\xC6F;\xE7w\x99f\xBF\xCB\xFF\x98\xA2\x99n\x91\x8F
+\x9At\\xE1\x81\xE4\xAB<\xD8!Bh\xC4t\x99\x93\xE8\x80.\xEC\x93\xDCd\xD4\xE1\xF6\xFF\x9CR\xB1\xD3\x9D\xD1\xB0qEN\xFE!\x90\xCD\xF4\xBC4\x97\x99M9\xAB2\xD7i\xB5\xE9\xC6\xDC5ҵ\x9DI!\x82Ҵ\xB3Y\xC8\xC2$]!\xA1\x9B#V\xA7jD\xB7^оݦ\xD37\xBA\xF41	3h\xEF\xA6xF\xA6^a\x98\x94Ru\C\x91fv\x94_p\x98W\x8AՍ⎞zd\xF1\x9C\x8F\xFAY
+wDcfQO
+z\xFD\xD4Qt\xA2c:\xBB\xAC;\x9C\xBC\xA3\x8E\x84\xE8"	4\x942Yf
+\x8D\x84\xAFC\xA4\xBF%\xE1\xDAvGz\x85
+\x91\xE5\xA2]ó\xC1*~~\xFC\xE1\xFC\xE8l¸\xF5\xBE\xAC\xE2\x93\xF0I\xB8\xDDç\x83'Q\xDF\x98\xACbi\xB9\x8Au\]\xC6aeK\xBF\xFD2nui\xD7\xD7:.\xE8k\xDF.\x85v\xE4RX
+\x9CT\xA4>\xF9B\x91\xA1\xEA\xF8^(-ׁɗE,g]:[\xA2\xD8I\xD0s\xFA\x98\x81\xB5U\x81\xD9^\xD1\xC9;\x8F>\xAC։̞\xAEWyVK\xA7'
+\xAD\x88\xB3a\x93
+\xE5\xF4\xF0\xE8\xE8\xD3\xF95ypT\xAE~Sщ\xDD<2\x8Ex\xA8\xE6y\xA8yh\xE7x\xE8CÉ\x93n\xF2k\xEB3\xBE	\x95x$\xAC\xE1
+\xD3]\x95*\xBD=\xF0\\xA2`}]\xE6"\xDE\xFB\xFFx\xB5\x81\xD7qC\xF8C\xBF\xE8݆\xC8H\x8A\xAE\x88\x91\xD1Ϣ+<#\xCBRPoE4\xC8T\xF5|
+\xEF!2]Q\xA9\x8E\xAEL\xA2"|Mb'"\xB3\xC8NKW+I\x8E\xD5%K\x8A2\xB9>4@\xCE\xC3L=\xFF\xDBÅ—\x8Fdt\x80%\xF6 \xA1\xC3V\xAE\x8F|0[\xB4\x99\xF5\xFD\xA5)U\xDD#\xA9Ú¤\xE2
+YÓ½\xA8\xB2j\xBE=Y!]\xA6k\x98\xD2\xD5î•®\xF06\xE8\x83r \x97DF\xBE*\x93NF%\xA2O\xF6\x92\xC2\xF3\xFB\xEB\xE47\xC8\xFB\xBB\xE4.Hr|@\xC9RW\xC4N\xEA\x8D\xC5\xF8\x86\xA7{f"9
+22U\xC6\x96\x9E\xDA\xE8!P:\x9D4N:y\xB4\xF1rn\x93U.\x96nvj\xF0\xFE\xF3\x97\x8Fo\x9F\xB3kH\xBF\xE6\x92\xDAz\x8B\x8D\xDE7l\x{122274}Z/\x90V\xAB\xC7FmM:\xAE\xB2Ö­\xB2\xD6\xEE\xB75\x82\xBAD\xDB\xFA2\xDEE\xBC-\xBB\xDF\xC8\xCDØ°\xC1\xF4^|<}\xFEz2R\xB7n\xF6\xBD\xAAM\xDD5Æ„ÏŸI\xBD\xAD\xC9\xBC\xD1f\xBE8\xFD\xE1\x91\xD3ߤ\xE3\xCA짻\x84\xB3o\xE4\xF6\xB3߈\xE9\xD2\xE4\xD77/\xE2\xE8\xBDM\xFE\xFF \xD3Ý 6
+endstream
+endobj
+156 0 obj
+<</Length 25        /Filter/FlateDecode>>
+stream
+x\xDAc``\x90\xDC\xFD\xBF\xF8\xF3\xE3\xED\xFF'\xFE\xFB\xF3\xEA  @
+
+endstream
+endobj
+157 0 obj
+<</Subtype/CIDFontType0C/Length 6484      /Filter/FlateDecode>>
+stream
+xڍZ\\xD7ÖŸvQ7\xE2\x8E\xDE!\xC6[\xAC	E!\x82FQ"(\xD2\xDB²\xB0\xB4\xA5\xEEÒ†\xDE\xFBÒ«T\xECØ‚eQ\x93\xAC51\x89IT\x8C\x9Ab\x92\xF7\x92w\xC6w\xC9\xF7\xFBf\x85\xBC$\xEF\xFB\x96\xFD\xED2w\xEE\x9D{\xEE)\xFFs\xFE\x84\x91!\xCCm6\xED\\xBF\xDDf\xFEfi\x88\xF4\x8D\xC5\xB7y\xFBFy\xC8\xF4\xF76qÓ¸\xE9\xAC	\xE2\xC11\xCE€{Ր\x9Ba\x94e"\xC0kLu&F\xCEX\xF7\\xFA\xEF,\xE1t\x82\x94O\xE0?
+,'\x81\xA9\xC9\xFE7\x8B:\x93\x99\xFA\x81\xD9&\xB3cB@\x98Ó‰Y\xC4<\xE2\xB9`\x8C`\x92`\xCA\xDF\xECk\xED%\xF5\xF4\xB6\xF3\xF2\x91\xFBË£\x97X.^\xBC\xECih\xB4\xCC\xDF\xD7On\xB1d\xF1\xE2\xA5\xF4\x9F\xAB,l,-\xEC=\xF6J\xE1\x81\xFE!^\xF6\x96\x96\x8ER?\xEAo1Wb\xE1\xE9\xED\xE7\xE4c!\xF5\xB1p\xF2~\xDF""\xDC[n\xE1+\x93F\x84\x86\xBFni\xE1\xE4\xE7n\xA1\x90\xCA-\xF8o\x99w\x90\xB7G\xB8\xB7\x97ED\x88\x97\xB7\xCCB\xEE\xE7m\xB1q\xC7v'[i\x88\xDCb\xB3\xFF>\xEF\x90po\x8B\x85-,½\xBD-\xFC\xE4\xF2\xD0Õ‹\xC9#|-\xA52\xDFE>\xFC\x9C\xF0EAC\x93\xC2\xE9\xD7-\xB4\xDD\xE2\xE8\xB4p\xB3\xDD;\xB7o\xB0\x94G\xC9-|\xA42/o\xB9\x87P\xB8\xE5\xF8ŵ\xA3T\xECD\xF0/\x9A\x98F0\x841\x83x\x8D\x98I\xCC&\xE6s\x89\xD7y\xC5\xCD'	Kb\xF1\xB1\x84XJ\xAC \xDE$V\xAB\x88\xD5\xC4\xE2-\xE2mŠ\xB0&l[b#\xB1\x89\xB0'\xDE%Gb\xB1\x95x\x8F\xD8Fl'\x9C\x88\xC4N™x\x9Fp%܉\xBD\x84\xE1I\xEC#\xBCo‡\xF0#\xFC\x89 "\x90"\x82\x89P"\x8C\x90r"\x92\x88"\xA2
+y\xBB\xF1\xAF\x8D\xC4F\xBD\x8D\x88X\xE2N\x82\xFB{\xCE\xFCli\xF8/\xA3%F\xC1F\x9F\xE7\xF7	+\x84?\x93\xE4S\x91\xAD\xE8\xAC\xF1"\xE3\xA21\xC21ac~\xFB\xED\xB8\xC0q\xF7M\x8CL6\x9B\xB4\x8F_5>}\xFC\xD3\xE4	s'h&\x8A'\xF6M\x9A3\xC9g\xD213\xB1Y\x9E\xD9Mj
+u\x88\xBA>y\xED\xE4~\xB1\x83\xF8\xE7W\xAF\xF4N1\x9FR8\xA5\xD7|\xBAy\xD4T\xE1T\xE5ԯ$[%G\xE8}\xF4\xEFӊ\xA7\xAF\x9C^6\xFD>X\x9B\xB2\xDAj\xB9W\x82f\xD8\xF2=l1\xE4\xD4m\xE2\xB2\xD4\xE2\x84<\x94\xA3\x8E`\xE3h<\x9E\xD3&+\xB3\x82\xE8\x90X\xD6;\x99\xC1\xE3j\x85J9\x9B\xA1f\xD5\xEA\xA4xIp[\x85~!\xABضv\xEB\xCB\xD4\xFFS+\xC8\xFAׄ\xBE
+6(\xB8\x81\xADf~!\xAB\x9A\xD86\xAF\x83\xF7\xC5؜\xFC>\x9A\xAA\xB5NZ\xB8\xA15;\xAD\x83X\xC5U\xB6\x8B\xDBdl\x9CGR^N
+\x82 э_\xE3\x99{g\xB16\xC1\xB5\xB1
+-E]Y\xA80+K\x93\x8D\xB2\xCA\xCB\xD8"\xFAӳA\xEB\xBC!O\xD85_B%\xDA^\xB1\xFF\xA5\xAB\xAF\xA0\xFD$\xA2\xAC\x82\xEANe\xA4[\xEA\xD8v~\xC7\x88\xE5l\xA4W4\xA2\xCAb|\xDD\xD8\xDA\xC1\xF3\xC0\xA1\x9E\xFB]0+\x971\xE5\xECၸ2\xAE26Q\x9D\xAAV!ipX\xAC\x92NJ)*\x8Dg\xCA\xE2\xB5\xFEt\xA846F\xCE(\xE2B"\xA2%\xB1\xB1\x95%\xF9y\xF9\xA8\xA5\xAD\xA9\xB2\x9C..LN(c\xE2\xCB4\x91\xE8\xE6\x96ʪzFS\xD1ZW-1\x85\xE8\x8F\xB9\xDD \xAEJ(\xCA\xC8B\xB2\xAA\x8D\xFB\xC3ʁ\xB8d^ZPVP#\xC9e[\xF7!<\xF1avS\xD6G\xAD\x92"v@ \x90\x92e\x97\x860qEX\xA4\xCC`U\xB4">:.\xAAD]\xA6b@\xB0[\x85	\xAAx\xB5B\x92ƆF0\xF1\xA60#,\xD3.D\x92\xCC\xEC\xDF\xCF\xEE/j\xCD\xFC(\xA3	i\xFD}4\xD7=\x8Cc\x9B\xB3\xD9BZSV]\xC1\xF0ƅH-\xB8i;\xD5A\x9C\xCEUG\xE7"a\x8DX\xE7zmu
+\xBAZw\xECl\x9F\xE4\x96\xE3=l\x88p$\xA9c\x83\x83\xD9J\xA6y@J\xC6\xCAx\xE35\xB1\xE5d\x92\x94\x84\x97\xFB\xEF2o@\xB7\xD83\xD0n\x9A	n0\x89\xA4>\xFB\xA6\xCE!\x80\xA9Ň\xC4.^[\x97!LA$ \x922\xFA\xA6\xCDƍ\xE1-\xB7\xB5 \xD4
+~\xD0A\xBEΐ\x8B\x83 1LX\xF2㫮n\xD1A\xFE\xECE\xED\xEAbd3\xB2\xD5\xF1\x81|R\xC1Fv`5\x8Dȣ\xFBhr
+\x82\xBE\x8A\xB1}e\xFE\xFB
+\xEB\xFC\x9EB\xB7D\x97.\x9E\xBBr\xFB\xA2\xCD2d\xCA\xF9\xB8\x8AÓŠ\xD3\xF3\xFE\xFA\xF9FaqjJU\xAD\x88\x8B\x89N\xC9M\xCAQ3\xF0\xF5\xEF\x85Iy\x851u\xB4\xA6\xA2\xAA\x9A1]\xA9\x85\xD3\xFA\xB7 \xA2t\x93\xBF\xE1|\x9DÅ­\xB2\xACd\x84\xA7\xE5\xB0\xB4K`\xB9\xA81\xBDÛ©
+i\xAC؟\xD5h\xE6\xA2F\xF6pN!:X\xFD0\xBB\x93\xCE\xD7\xE47\xB4\x87\xB3\xD1\xB0 ~i\x93\xA9fwI%o\x88|\xD98\xDFX\xE7\xBB+SN\xAB\xEA\xF0\xE0\x86\xCCb\xA6)\xE9\xD9;\x8C\xF1jQ0\xEBv6ɏ|\xA8:E\xF31\xD2\xFEg)ࢸ-<+	\x85ga\x83\xEC\x8C^cX#ja\x8F;\xB7\xA2&\xD7͹~t\xAF\x9E\xB0\x9A4\xDE(\x83\xF5
+\x90\xE0\xE5\xA2}\x81G\xE5h{`\xC6\xEE4	\xB6\x85\xB0\xBExV\xD2\xEF\xCE\xB0\xEA\xC1w\x9A/+\x98\xAC|\xF6t\x8B\xE4\x91\xE8\xB6\xE2\x83JT\xF1\xC1\xA9\xAC\x86\xC1#\xE8\xF7\xFE\xBF\xB9\x8C\xB7\x89b\xA7\x98?R,\xC2\x9E\xBFÈŠF>\x86\xF9kÛ‘\xAA\xE4@\xE6\xF7wEA\xF9I\xD8
+\xDE{\xB9V\xA93\x84=\xC4\xCF\xDF\xB2!?=N\xC6{O\xEF=\xB0\xE0\xF7\xD7\xF0\x82Q\xD7v\xE4\xFE\x82\xA2\xC64Q\xCBj\x87up\x89\xDF8
+ÖŠ\x{1C7CC9}\xC9r6$\xBD\xAEZ\xEEI/^\xFẼ\xD7\xFC\xD6\xF9\xC3=\xABË™\x98\x9C\xEC\xD86\xBA\x93\xAD\xD50\xC0\x88*\xD9\xC6\xE0\xE8\xD4$U*\xCAHc3\xE2e\xC6-{4\xEF\xD3X\x8C\x8D\xB0\xDB\xE3w\x81\xFF\x86W\xC0\xF8~\xFF\xA3A\xE7\xFBL+\xB8\xA5\x83\xF0~C\xCE\xE2\x96V\x9B\x94\xA1P\xA1xu\xD4nkz\xC5;׿=\xD5"\xA0k\xB1ÉŒ_V\x8D\xB2\x81n\xA8\xADj\xBD\xF5놭\xB6\xE0iK\xB1\xC9\xD3Y`́\xAB\xF8H\x82I`\x93\xB0&\xC2]\xCEH\xDC\xDC\xE8-
+\xF2i\xEB8\xD8\xD8ÞŽ\xF0%\xA3?\x8D\xE9\xD7\xE9\xD7\xCC6\x84g\x8Db\xAD\xD7!\xF7}\xF2\xE0@\xEFV\xD9\xFE\xFC\x82\xAC\xEC\xE7\xB0;6!\xCD8)=:U!\x89\xAB\x88\xA9\xEA\xF8\xE5<\xF0Ë´\x9CR+\xB8\xA7\x83j^Y\xD1p^Ë–\xC3<<a\xCF\xF1R\xC1\xD4
+(#F\xAE\xC0\x93\x84)\xC1\x96\xF3\xE1\x82Ǽ\x87'\xF0q=\x9FS~O\x82\xB0O\xC5\xC6\xCC\xE8~\xA2J3hK[\x9D-XN6\xA5\xE2\xB9"}\xC3X%r\xE3\xF2\xC9?E%^B\xB6xV`\xFEL1T\x9E\xF8h\xDEo\xBDG\x9A[[\xE5\xE8\xCB*\xA3[de\xA3p-\xE1M1չ\xDDm\xE5[\xEB\xB7\xDC\xE8\xFF\xFE\xFA\xB5\xEBW{\xB6;\xE9\xCFZpך\xF1`0Ew\\xB7[G\xFD\x9B\xCB\xEC\xF7\x8Bj\xD8:?6R\x81l\xB1"`\x8Aȓ\x8D\xE5\xA0\xAE=\xBE\xEB\x89\xF0p'\xA9n\xC8\xD8IF\xB1\xF4>\xC1\xC1\xA0\xA4c\xC88=r\xE9U\xD06\xA0Qǐ\x94\xC1\x90冀\xEC\xE5O/\xC3d\xAD\xCAy
+\xBBCtJz\x94
+\xBD\xB1#YJ[Y\x9D\xBE\xCB\xC0\xB2\xB6\x86\xED\xF2\xDD\xF1+x\xDC\xFC9xCuaÓŸg\x83\xCCO>jD\xEBa\x86א\xB7\xCA/}x\x9D>\xDB'\x9BY\xA4wl\xC8\xD6\xC2\xAD\xD91\x9D\x93\xEA\xF9j'\xF1\xFBKÖµ\xE8\x8B\xE6\xE3=$\xF7V\xDC\xC5\xE3\xB0É›kWo;\xB1\xEB\xF30DÝ°\x8A|w\xAB\x95dÞ“\xA5\xBCg\x99=~\xF8Z	\x87\xC5\xDB\xDCm\xB5\xDF\xC6\xE1x\xEF\xD9\xDES\x9Fß½\xE0\xEAÌ”\xF3 kk\xB7}%\xA2\xB6\xAD\xB4\xEB\xD5i/^\xF9\xF6\xF1\x85ÍŽ\x83\xE8\xA0~\xD1\xC14^\xA9<\x98\xC4sj\xF1\xC5LQ\xC5\xFEe\xC0(O\xB1\x89tg\x80i\xE4_\xEA|+g\x94\xC2\xF5\xFB\xF5ia\xFF\x9Bu?<0\xE4\xEC\xB8\xF3\xE2\xCBk\xD8\xD85o\xEDY\x86v\xCE
+n\xD0\xC8o\xF03\xEE\x9B=bh +\xF8\xFC\xDF\xC6\xC61\xB3\xA1LG\xE1\x8C\xE9I\xF2\xEE\xC7lJ+\xF2\xEA\xD4\xD4W\xB6 \xBD6Ûµ\xB0\+x\xA8\x83L\xDE\xF9\x83`\x9B\xF8\xE7\xB7~\xC4c\xFD\xDCU\x9E\xB6\x81J4\xB2\xBEn\xA7p\x8D(\x9A\x95wT\xE7\xE6\xA2\x8E\xE6\xEE\xEA\x8B\xF4\xBD\xE36\xF6k\xD6oyS\xFAn\xE1\x87R&/\xAF\xB0@#i\x95WF\xC6'{\xAD\xFCz\xC1\xA4g\x8F\xC0p\xF0T\x84\x96\x9B\xAE\xC0\xEDÞ¾^C.\\x87 at q\xFCJ\xEEW\xFA#)\x9E\x9A\xA9\x88gp\xFE\xB709\x9E\xCDPH\x8AT\xED\xF20\xE1@Ɔ\x9F6\x8D\xCC\x88\xBBC\x90\x89m\xDA\xC5XF\x82~\xEA\xB7TÇ´\x82\x83:h\xE2\xA7\x95>\xF0\xE27\x82\x98GHl\x94\xE0\xB2{'\xBD\xFAm `,\xFC\xE2w;\xAF\xC81Q\xC5\xC4d\xE7'4\xFD#S\xFD\xE3P\x9Bß¾
+\x9B\xCC\xC44\xB6Û\xFF\x89\xA7¸G\xDA\xEA5L\xAB\xB2,\xAC5\xD4\xEB\xD3\x8E\xBE\xD6>\xBCo_\xBEl\xD6z1J\xB7M\x9Bta\xD3t\xEF]\xA4&\>g.\xAE\x8Fjß‘\xE8\x92\xE9\xBFQc\x89\x92X\xBF\x9A=\xF4\xC2\xF5V+\xF6VTD1\x94\x80H\x8CM\x8E\x96\xF8\x95ËŠ\xA5\x9Ah\xED\xC6nL\x94,\xFF\xD5&\xC3\xE4_\xFB\xBEA\x94\xB5EW\xF4\xE9\xF7\x9BQA\xBCG\xDD\xF42%\x9E\xCDNa\xE2\xD4lyC\xCDHL,Ϭc%\xB9\xD9\xE5\xB9\xC5(#ç ¼\x87~|\xEBf?C-\xB1jKn\x8DiA\xB5\xA5
+\xB9eYÆ¡\xF9\xF5\xAAb\xBA\xAA\xBE\xB4\x95\xC1\x9B\xB0\xA1x\x9B\xBB\xBB\xF3\x8F\x93\xE7u-\xEF±cg\xCFÙ½\x81\xB1\xD8\xDDj\xEF\x9C9VG\x8FUuthPec{\x8B\xEE!\xBB|\xA4<Ё\xAF\xF4̶!\xFB\xCA8e\xE3(We\x81F\xEC\x86\xFD\xC0\xED\x8Fw_Ú¹q@)e\xF5q#\xB3d|\xE4\x87#e\xA3\xB2߸\xE1\xC4\xC9\xAF\xBEr\xE2\x85(⅐\xF1B\xB8C\xF9\xF3\xFBG\xD7nr\xF3\x8F\x8AB\xE0\xF8E\x91\xD2}T5\xB6\x94,\xD7\xC7\xBF\x94q\x87
+\xE4O\xB7\x9E9W.݂\xB0\xC2k(\xFE\x9A\xF5\xB3\xCEbL\xA1Ẁ\xF3\x83K\xE2N?6\xE1d\x82\xEB\xE7\xD7ɖ2p\x83,\xEDd;\x99\xE1L×"\x86\xDC6^\xA6Ag$8%#A\x8B\x8E
+fb@\x89\x89Q\xD7\xE71C\xE0p\xFB'3\xF0\xFF\xC9FGi9\xD7\xE1\x87Í€{C)\xCF\xB5J\x88\xFB\xF0\xF8Q\x88tj\xE8)\xD4b<\x83\xAB\xB7D\xD4I\xA5Ri]DKK]]\xCB\xE8\xC7\xBA\\xB7\xF7n\xD7\xC9Ó¸\xBC\xE1-\x82H\xFC:\xEC\x84	 v\x8E\x92\xDAr\xC4H]$^\x81\xE1\xD7!\xF5ڏ\xA8g@\xE92\xCA\\xA3\x90\xD1\xE5K\xF2\x8B\xDB0/"2\x83\xB6\xFB\xF2\xB0\x83J\xE8@\xAD\xAFl\xF5yL\xC3\xD6ò¸©ˆ\xE4\xF3\x98\x9AS\xF6\x8AÊ›_ȱb\x94J\x9F\x91+\xCEd\xB84e\xDFa\xE7į\xBCH\xC5|\xFA1\xFF+\xBC\xF6Å£\xAE\xD7*-Tj\xCD.\xF4\xEE\xED\xFD\xA2\xA6\xF1_T=\x97\xCB?-\x92
+D\x9CR\xD4Q\xCB?\xB5\O\xB2\xD0v\xD23M\x96\xCCl\xC2n	\xBE\xC9!ꐩ\x99d\xD2ɥP\x9A\x91oܐ$c\x95\xF4\xF6A\x9D0TkP-ہ\x94\xA2\xC0H6\x88\xA1\xF2\xF4r\xA3\xE1M\xA9\x8F\x87\x9E\x96%*\xD9s;\xE5\xC6\xCA˼\xF3T\xC6)\xF9\xA5\xAAR\xBA\xAC\xBC\xB0\xBC\x90\xC9\xC9\xFF\xF2K\xCFg
+\x84\x91\xFAg\x9CJ%w_\x94\x98\x9D\xEB\x85q\xFA\xF7\xE4iTW6(\xB5/\x82T^\xAB at .	\xF6\x8C\xF7\x92\xA2q\xD2\xEA :0X\xCEP_\xB6e(\xD8h:pÈ¥j\xD9\xDC'\xF2\x8D\xF6\xFF\x87C^\xC0?\x83\x81\x8D"\xAA\xA7\xBF\xFBdw}y\x8C=\xC2JQÔ‹ \xB9\xF3\x87I\xFFeʈ\x94\x83\xB1\xCBs\xA8\xBF^J\xD7\xC1V\xEC\xFBc\xE9\xD4\xF7_b\x97j\xFD?\xA2\x97\xCF\xAB\xFA\xA0\x8B׎A\xFD\xCA\xC251\xA8\xB1\xA1n6\x9C\xBD\x8F\xC7\xE4\xC3%`p\xF6lU\xF7q\x9EU&\xAD\x9B;\x9FN\xF6ͪ\x8Cdr\xF3\xF2\xF2\xAB$
+Ñš0\x99"&8\xB0z=\x8F\xCC\xE6|\x88L\xB4\xEE3\xB1ÓŽm+W\xEF\xFC\xF8\xF6\x83\xBD7\x8F\xB6\xC8\x95\x882\xEE\xF0*\x8AZ/1\xAD\x8D\x847\xAF\xC3\xEC\xEB\xB0B!\xE0q\xC0e;\xEC\xC8j\x98-<5\xFAÆ›,\xE7\xE3\xAD+/\xBC8\x8EJI\xC8d\xE2\xF0x\xE1Ì¿}kw>&\xA3\xF1l\xA1\xCB\xC8\xC0!2O`SYItyLm{Nki6\xAAS\xE1?\xFEz\xF8\xD3!\xD4«\xC1N\xAC\xD0\xCCA\xB1\x86\xB9E\xAF\x9A\xF9\xF2\xE3	\x89l\xC1\xD8!2\xC5GjC\xC16\xD75\xC3d[$v`\xD7'\xEE@\xDB\xC3"\x97\xD0Ke\xB5\xA7\x98\x843\xEC\x83%}\xEC'%'Ð¥\xB2\xF6\xD2{\xF4\x9D\xCEd\xA7
+\xA6t7k\xE5(&tШP=\x8D\x9Dd\xF9\x8C\xA7F\x96s\xF1$L}\xB7 \xC0\xE0\xBB\xEF\xC1\xD9\x88-\xAC\xAC\xAD\xEE<\xF9\xF6Úµ7\xAF\xDA/\xAC\xE5M\xB5`\xCA\xA9\xFCz\xC7\xE1 _\xCCU\x91\xFA\xA5NHHE\xDE+\x9C\xA32\x8Cc3#3\xA4YujEMw\xFE\xC1ch`\xF5b\xD1H\xA6\xC9	\x9A\xCDZH\xCC%\xFC#圕\xF8\x89\xF5#,BX\xFEw\xC50\x88G\x9016\xF3\xF4\x8Co=z\xC2S\x85\x9D{m\xE7\xA3W!\xFD7\xF2\xFB\xA3\xB6;\xF9\xFA@\xA6\x85E\xFAl5\xE8\xF0\xC7t`\xA1\xA3\xCC\xFF\x93\xBDS\xCFZ3ʽ\xFF\x98\xA7Z\xFE\xD6\xD7=É¿g\xF3\x94\xD9\x9Fk\xFE4v;\xC4\xAA\xDC\xE8RÞŸ\xBF\xDES\xC1H\xF2\xD3A`@\xF2-\xAA,)È­\x90\xA6j\xC2B\xF0^l\x8E\x8B\xF0\xB8ot\xEEB6\xE7\xEElo\xA0\x9B\xF24\x85|\xC6\x{30279BF}\xF2\xC6\xEDy\xE4w\xDD\xDAi\xD5N\xCBÔŠ\x94\xB8U^:+\xB1\xA0/\xB7\x97\xCC\xF1\xC1\xA6\xA3\xB8\xA4\x94\xD48IJ\xBE\xA2\xB1\xF6\xF2!R\x84LW\xF6\xC1\x8C>H\xEF\x83\xD7\xFA\x9D|M\xF8\x9B\xBE.o\xEE\x82\xF8\xAEW\xAF\xAB\x8B\xF7{V\xEBm?\xD5s\xF0\xE2Q\xCF\xC4\xD5qU\x8ApUoE\xDC\xF4\xFBaZRF\xAAJU[\xD3PP]\x92\x8B\xA0\xF9\xF9Fanqv^\x81\xE4\xEC\xC0o\xE2\xDB>\x97v\xED\xF2\xD9jmݵ\xF5\xF4\xE9\xAEK\xB7\xEE\xE7
+\xC5\xEEQÒ„\x84\xA8\x96c\xDD\xD5mee\xD5\xC1|\x9D\xBB@?ʏ6;V\xD3\ZZ\xEA\xFE\x92N\xEA)hߟ\xE8\xDB\xDD\xE4\xD9\xF5\xBC2`\xA7!ws\xE1ΓC\xA5}\x8C7j
+\xF5l\xDAFc\xA3Y<\x9D\xC3\x9F\xCE\x83ONt\xD5\xD728\xD0E4\x92\xD7\xB0K\xB8W\xC4\xDB\V\xAD\xB2\xB6\xBF\xFE\xE8\xF1u\xDDw\x8E\xBFe\x87^\x923\xBE\xAA\xB2\xD3y\xE84<\xFD\xA0\xBE\xE3j\x9E\x88;x^\x9F$g\x833QJ\x86O\x8C\x94=q\xEE
+[\x98\\x8FZ\xE5\xB5\xCAc\xEA׏\xBAj\xB4ݒ\xFBo\xDF\xC3c\xDE\xF0\xFF+\xAC\xEE\x925m\xAC\xB4\x83\xA1\xFE]\xC9FxH\xEC\xD9\xE0\x9A@\\xD5{\x80\xBE\xD2\xF0\xD1A^N\xF8\x87\xD8\xC5\xED\xBD\xC5\xE8\xB8IR\xFD\x8F\x8Fmu\xC1nX\xA8C\xFB
+\xB5\x98\x8B\xE5Ɖ5	GV\xBE\xFFn\xF4f't at D}6\x94h
+F
+\x81/q\xDF\xEAQeA\xF9\xA8\xB2\xC2P\xDF\xFA\x9A\xF9\xF4\xD2\xF70\x85gU)\xE9:Me\xF3p\xC3\xEC\xEC5{\xDDI0:\xEFkTO^V\x8B\xAF\xFAI(C\x9E\x87C\xD6U\xAF\xAE6\xF7(\xF5\xEE<)9\xD3s\xEA\x8C\xADX\x94\x8F"rJÔš\xE1\x9A\xDE|\xB0\xA6O\x8D	NA\x9D\x9E;J\xDDhlh\xB5vŦv_\x853 
+R-\xEA\xAF\xCB$\xCE{\xB7\xAE\x95\xBA\xE46\xEFC\xCDiG2\xAB\x8D\xAB23\xABi=\x91f\xB0\xB9(\x96\x95\xB5\xD5\xE5\x97w\xA1\xE0\xC3\xDAØ«4\xDF|\xD8\xFF\xA2+rS\xD5ZC\xCE&\x89\xFF\x89ŵ\x81yhc\xA90$wc\xE9!ISG\xFBw_\x95\x87å ˜\xAC\xEC\x98\xF6!\xA9tCB\xA5)U\xA8\xD6ݝ\x8D\xA2\xF1\xF9*\xDFE\xBF\xC6<V2=)_\xC4\xEF\x94\xF8\xF8,Þ½\xBD\xE4\xAEU\xA7\xA6\x95\x84
+\xC91oP\x8C\xA2ʬ\xAER\xE4\xDBs.\xA3\x85\x86%_\x9D\xFA\xF5R\xF2\xF0S\xF1G\xC1޾aRi\x95_\x8A\xDF\xE1\x97b\xACNW\xAAb%uߟ#dZ\xC9]\xD4
+\x8E\xE9.\xE2\xE0g\xC3\xC5\xD3Wd\xA5:\x9AM\xA1\xFDÙˆ(\xC6C4DakZT\x91\xD8o\xF6Ç¡\xD8@\xA2d:\xAB\xAAJZQt\xC1B\xB0\xD1^2\xD6Tgg\x97K\xF4\x89× \x8C\xFA\xF8\x9A\xCA\xEC܍\xF5\x9FC\xDA\xE7\xCE:\xEA$\x9F}w\x88\x81\ڏ
+\x9C\x9Dc<\xDD\xBCZ\xFE\xF4\xDEC\xFA at ebj\x93\x9A\x9A\xAA\x8E\x96\x84W+\x9A5Um=\xBE\xE7\xE7a	\xFF3\x9E\xE7I`d\xF3Q\x8F@\xF0\xE3\xD7`\xC2\xE3\xDFr\xBBm\xEF\xD8{\xF5h(\xA9!\xBB\xA1\\xD2w\xF9\xF4\xA7_\x9E\xDBd\xADoi>\x9F3\x88(\xAA\xB8x5\x92\xDFm\x85\xAA\xD8L6E]\xA3\xA9+\xA8(\xCBG\xF0\xD5s[aAe[(.?\xD6=\xE6&\xAF\xE4RG\xF1\x9AHI	`lD/\xFC9\x98:\xA0t\xE2Ö£|\xAE7\xCD\xF6\xD5\xFA Ї\xCD^\xB7;\xC0L\\xCD\xD6\xFAdF\xC6 \x87\xCCmIr\xFA-\xF6l#É°r_y\x8F|\xD9\xD0Y\xB5l\xA4#\xF0\xA7\x93\xF3?\xF1\xBDu\xFBË£\xFD\x83?\xFB*\xB8hÍŽ\xF5o\xE9/뇱\xBA}:*d\xB0grc\xF7%\xBB6\xD4\xFBAË…\xF3\x92\xDB6c6\xD9\xE0jШ\xD4\xD4\xD6W\xB5\x94\xAB\x8B\xD3sP{\xFB
+\xB6\x88\xFEä´¯[p\x9C_h&\xCB\xF0\xCD0Þ–džH\xF4C'H\xAA\xF8Ù™M\xEF9nß¼x\xDF[%'Ø\xBC\xBC\x82|\x8D\xA4!J#\x93G\xC4.\xF9\xE1=\xBE\x9A\xF2\xCD\xE3'\x83\xE99\x9D\x8F\xDB~\x90\xE9BtT:\xD4-n\xEE\x82DIN&\xA9\x89\x97\xCE|\xE7\xE8ac\xEAÉ•\xDEW\xBF\x90\x80\xC9\xEC;\xD8\x8F]\xBBj\x85OKb\x95^\xB0\xD2Ô²\xE4t\xA2\xE2d\xFB\x87\xF4\xBD\xCF\xF6,\xDD\xE0\xF2\x9E\x9D\x83ð\xA309E\x9D\xAA\x94\xE8;\xEB\x88ʃ\xC7$e\xFC\xB2ʧ\xF0;:H\xE4\xD5[\xC5\xDDn\x88Gep\xFC\x94\xB4\xB0sv\xDEi\xF6_\x9E\xB6\x89xjo\xA1?\xCCzF\xE2	\xFD\xF4Óƒ\xC70\xC1\xB36\xD1`/n\xA8\xDB\xD77\xBA\xD57\x8D\x8Ai\xF5\xBD\xE0e\xA8W\xFDI\xAA\xE7\x8D\xD5	\x81k\xD9\xFD\xEA\xFF\xCCFq9_~\xAB\xBB\xBB\xB8\xA5Q\xBB\xB3j\xD9jz\xB8\xFBgZɍ\xD5
+`\xD7=\xD8eȥs3\x87\xC3q\xCC\x94\xB6\x90X\x80\xEF`\xDC\xB6\x8C\xA2\xD7cFp\xBF\x8D~"\xF4/\xE5]S\xCF\xEE/\xE1\x91\x9E
+Û†\xAB\x9F\x94\xAF\xB9\xADY	,K\x86e\x{DC0C}z\xC2\xEB\xE3^\xAF\xBC\xB5\xA3r	\xE9\x8E\xEF\xA78\xAA\x9C3\xA5<\xB9Q_\xDD
+.\x99\xF9\xC6\xF5\xC9r6\x99NR\xB0IL\xBAj7ޝ\xEA`\x9CI\xE6eÖ¨\xCE#g\xCEB8\x8A\xF1\xAF\xD5k8(\xB8\x85-b\xB2È›!\xF5\x99_^[JiXM1\x93Sp\xE2sg\x91\xB9n\xE7qtV\x86\xB1\xAC\xA0\x89-\xA0K\xD8\xCE<\xE6&\xA7\x964\xEB\xA5M\xFB\xCEh\x95\xE0\xFA\
+\xB9<n\x96\xB8-\x9C\x8DFXDF\x87\xF3*\xA9gk\x98r>#\xCC$Ӛ\xE2O$t_\x89N/\xF1\xA3\x93\xF8 at L\xE4e܇Q\x9A\x82\x97\xD1\xCE{\x86\xFE\xC8&g\xA3\x98\xEBk\xF9=.\xE3~\xA1<7'\xEE0}8\xA7H[\xCD4>\xCC*ϩ\xE3%\xCBs\xEE\xC2crS\x8CcJ\xABy\xB9\xBBr*\xEBr\x99\xCB\xD0/l\xD3S\xC1\xA1\xC4h\xD6.\xD8	\\xCE\xF1_\x9B\xC1\x85\xFA\x8CS
+\x93\xEA}$\x9Eˁ\x84\xB9\xC2\xC3\xE4\x996e\xDB\xCCX\xCF~\xFBgaSï’²\xE1;a\xC3\xE60	c\xF1\</\xEE#\xA9Æ—\xE30fH\xBFz.y&\xF4\xE3	BiÄ‹t?fp\xBE\xFE\x8C\xD2:\x82\x99\xBB\x96sÕš5\xC1.\xBC\xE9\xD8\xC2.J\xF2w\xFE\xF4\xF6\x8F\xF7QG\xAB\x82x;\xA7\xD6$תj,Ae\xDE\xF8\xD7\xCE\xD5N\xC2\xFC\\x98\x9BĦ\xB3V\xF6f\xBCQ\xAA'ߌ\xB8Lc6\xAF\xA8LBY5FW\xF3\x83GCc\xA2\xC3<\xEC\xEB\xF9\xE98\x98\x97\xE42\xB0\x88s}邃\xAA\xF4è ›]i\xB7\xF8\xE2H\xDB׉\xE0\xF4k5Y9U\x92l\xC2O\x86\x90x\xCF7A\xB6_\xC3=\xC2HEfz\x8CÄ¿\x8E\xADA\xDC\xB2.\x9F\xD5TH\x86\xE9\xCCi\xE2\x9F\xA2\xA73\x8E\xB3`
+6\xC0Fs\xFF\xD6\xE1\xF8\x9E\xC2s\xA3\x9F@\xF6ȶD\x8C\xE7\xDA\xE3\xB1\xEB\xD6\xD9\xC3X\x98\xB3u\xCFnߺ\xFE:\x9E\x83L\xF5\xFF\x800\x91\xA3MfO'b\xB5\xFE
+\x8E\x98%\x96p\xEF\x94\xC0\xBA\x92\xDC\xD9;-2Ú\x8CӎՍ;X\x99\x9F\xA5\xE5ir\xF3ML:k\xB3s\xB2j\xB2\x8A\xCF\xEF/6\xCF\xD5M\xFE\x97\xF8\xD2\xB1
+endstream
+endobj
+159 0 obj
+<</Length 658       /Filter/FlateDecode>>
+stream
+x\xDA}\x94Mo\xE20\x86\xEF\xF9\xDE=\xA48qb\xB7\x8Aħii\xAB\x82\xAA\xBD\x86Ä°\x91\xC0\x89\x92p\xE0߯\xEDw\xA0R\xB5,\x88'\xF6x\x9E;\xFCxß„\x93\xB2\xDE\xE9P<r\xF6\xA1\xBB\xFA\xDC:\x9C\xAD\xF3&\xE6uq>iÓ¿j]\xEA\xF2:Ú½\xB0\xF7\xB6.6\xBAg\xC3\xD9j\xBE2U\xFF`'\xAFLq<\x97\xFA:\xEBß“\xA6\xFAP\x99\xAF).n\xF5\xEFp\xFA\xF3s\xBE\x99\x86\xBF\xD6\xEB\xDA\xD4?\xF4\xE1|\xCCې\xBB\xA8m\xD5\xED\xEC\xFFOdv\x94\xDDe~\x99O\xDDvUm^X\xF4\xC89\xB7\xA6\x9C\xD5'Wa\x8CÈ’\x8D\xAE\xDE\xFBÊ”-\xA9\xB2\x9D\xA2\x98\x95U\xD1\xF9\xDF\xE2d[\xE5\x827\x97\xAEק\x95\xD9\xD7\xC1x\xCCF6s\xD5\xF5\xED\xC5[?\xA3\xB7\xB6\xD4melx\xC7\xD1\xCEÙœ\x9B樝\xE3A\x96\xB1R\xEF\xEDÒ¶G\xAF\xF9I\xB3\x91+U\xDAѪ\xBF\xDC\xEB\xC3W\xCC\xF6\xD2h{\x8E \ԥ\xD0mn:\xDB&\xF0\x8C\x8D\x97\xF6\x93Ú”\xDF\xC69\xA2v{\xA0\x9Dp\xFD\xABnCÅŸ\xBCuES\xBB\xE7I\x94y\x9Ay\x92DKOj\xE1)\xE6\x9E\xE2	(F\\x88#J<\xA53\x90\xC4*S\x90\xCDAO\x98Ic\xCF \x9B \x83 \xC1S\xC1S\x90\xCBf\x94o\x81\xB8\x84$HDKA\xA8A\xA1\xF1\x82u"A\xB0\x96D\xB0kA\xC8Z\x81Èš\x88\xCC(\x99\x81\xEA.jO\xC8\xF3D\x9ED0\x93\xE8Y\xB3\xB5'0\x93D\xE4Bk\x92z&\xB1\xB7	\xCCe\x80Y\x8C^\xA70\xB3=\xC1L\xC1L༤\xE8\xA0
+\xF0\x84S\xA0\x88R\xAC\x89jS\xD4#_\x8Ab\xF43E
+1\xCCRX+\xCA \xB3\xE7L\xC2L\xC1,\x85\xB5\x84\x99"\xA2\xBDE\xCF$\xCCvE\xC2L`o%\x99\xA1>I\xE7{+\xB1ÓŠ\xDD\x94\x9E\x82\p>ST$\xD1kRd\x8D|\x8A\xAC\xE1\xA2Èš\x88:\x88\x9E)z\x8F\xD033\x857@\xD1\xE4\xDEv\xFFv\xBB\x8B\xC1\xDDq\xB7{\xA88\xB7\xAD\xBD\x84\xFCE\xE8ow\xC7TF\xDF\xEEʦn\\x94\xFF\xFAK\xF6z\xE1;z[	\x99\xE1
+endstream
+endobj
+162 0 obj
+<</Length 22        /Filter/FlateDecode>>
+stream
+x\xDAc``\xE0`PdPf\xF1`\\xE0 \x9B\x8E
+endstream
+endobj
+163 0 obj
+<</Subtype/CIDFontType0C/Length 2068      /Filter/FlateDecode>>
+stream
+x\xDA}\x96{TW\xC7'<2Q"\xA5\xE3ÖŒ\xDE\xBB\xD4\xDAZ\x83\xBAv]\xBBn[u\xC5\xF2\xF4Al\xADZ!\x90 \x91@\xDEB\xD4^\xC9$\x90\x801\x86\x870@DQu*\xBE\x8E\x8F\xEE\xB5\xBBZÛ®\xED\xDA\xD6]\xA5{Z\xEF\xE8\xF5\x9C݉\xAE\xAD\x9E\xED\xEE\xFCqgνw\xEE\xFD\xFE\xBE\xBF\xDFg\xE6
+\xB0\xB00L L\x8E\x8F[\xF9\xEE\xA2ؙ\x89I\xABt\xB9ʼ9\xF3g\xADRgY\xB4Jcp0\x96\x9B\xC2MeĀG	8:\x84\x9Bʽ\x86\xDC\xE2гⰇѨgJ\xF8\xEE\x87O\xC50\x81\xEF\xB9`{\xF2y"~\x91\xFDK\xEC8&~	\x85`l2\xB0\xE9\xD8L\xEC\x81 B0Q \xFB_\xDB.R\xE9\xD2\xD5q*u\x9EYc\xB6ΕϞ=o\x89No5j\xB2\xB2\xCD\xF4\xDCٳ\xF5Z\xB0]@/\x96\xD3\xF1ʌ]\xBE)GC+\xF3Tt\xBC\x9CN\x92\xD3ɺ|\xBEWC\xCF\xD0\xE5\xD1\xE9\xEAl\xA56\x93\xD6e\xD2
+\xF5\xDAbRMt\x96QgÑ›^\x91ÓŠl\x8D\x89\xCE\xD7sh\xFEnTk\xD5J\x93ZE[\xF2Tj#m\xCEV\xD3\xCBV\xA7(\xE8X]\x9E\x99N\xD4d\xA8\xF3Ljz\xD6,\x9A6\xA9\xD5t\xB6Ù¬#&\xC6lÉ’\xEB\x8CY1\x99\xFCS\x8C\xF6\xF1$SL\xF0\xBDY\xB1Ë“\xB3\xE3\x96,MNY*7\x98\xE9L\x9D\x91V\xA9\xCDJ\x8D\xD6$\xFF\xAF\x88\xECH\xD6s\x95Z\x8C\xBF\xA6`\xBF\xC4\xE6b\xF3\xB1\xC5X,\xB6K\xC2Vb
+,K\xC3\xD21
+\x96Ê›\xC9_QXT\xD0\xD60\xCC%\xC09\x82+!sB.\x85N
+\xAD\xE5\xC2\xCA—\x87
+\xF5\xC2A|2\xDCÉ¥\xB6\x9F\x83\xE9C\xD7\xFD\xA1\xDC\xEA/\xA5\xC3\xD6Ux\xB2\xDEV\x98\xCE\xF6\x8D_`\xF6+{\xC0\xBEÌ´Z
+\xB9pUR\f\xBB\xDDS\xBF\xA7fok\xC1\xCE\xCD\xE5eGu\xBE\xE9#\xFF~\xF2\xC4\xC9\xD4\xF9T*\xBE\xC2\xFE{[J\xAE(1\xDB\xFA\xBEZ\xF6\xE6W\x96\xA1\x93\xA7\x9AA\xAAkoF\xD94\xE4\xFD\x85^;!\x9D\x97\x94\xAAx_u\xE0h{\xFD\xD0\xE9Np\xBC\xEDdU\xA7K\xC9\xD5\xD8|\xDC\\xD4\x90\xDCX3+G\x88\xEF9\xD4J\xE1\xC49\xDFLOJݨ\xCA\xF0:\x8E"\x8A\xC3
+\xF8\x99\xA5먇w\xFDx\xE0O\xE1\xEB\xBD9\xA7ɻc7\xE1*\xC1)Ek\xD1\xF8b \xB5\xEAN\xE7P\xC5
+\x8C\xCB/\x83kq?S\xE9mg{\x86\xDD
+d\xFB?\xB7\xA0\x95T$\xF7\xAA\xCD-\xBB\xB6\xFA\xE0\x9F\xA4m\x96\xD79)\xAC\x92~\xB7\xFAK$\x9C6:zM\xFAv\xE60\xACjÔ8\xECE\xE5`\x99E\xA1y\x8FLKk\xE9\xD3S\xDA\xE6\xCC1\xECtU㪕\xADvH	\xB2	at\xF5'\x9D\x87ȋGP\x98\x93\x8A\x84\x86\xE5"Y\xB8\xF4\xE2N\x9F\xA4\xEB"3p\xEB"\xF1	\xBCp_*=\x98\xB5'c\xD5\xEF\xD6O(ⷆk\xE8&\xAE./K \xDC\xD5r\x94a\xC9\xC0 co\xA3X\x9Cش\xA4\x88\xE9\xA7\xE0P\xC8"\x9C\x80\xDF82\xD8[\xBF\xAB\xBC\xA4\xD8\xEC\x9BJ\x8C2C\xA3\xCD\xEBm\xACaA$\xAC䷊`
+\xE0\xF3\x9FJ>\xBB\x9E8@\xB4\x93X>9\x9En\x8A\xE2\xC4)\x84=\xAE\xE1=D?\xED\xD7˴\x92-\x87\xFB\x8Axa-7&m)ؽɴ\xB9\xC0bj\xD8\xDCԲ\xBB\xA1Dr\xD6\xC7Q\xE4\xF3\xAB\xF3Y\x82\x9E\xDE0\xBF\xF6\xFA\xE2}\xB9\x92\xC0\xA4p\x87\xAB\xCCS)\xBBv\xE5\xD4\xF1n7\xEB\x9C\xCC\xE2\xA5\x86Z\xEBץ1.=e\xC0\xBD\x8EZۇ\xB2\xFCM@3\xE7
+qb\xDF\xD3i}JR/\xA9\xB5\x8F\xB1\xB7\xF0$\x94W\xF5P0\xBFt~\xBD^g\xAD\xFD\xB0Pf\xB5V\xFD\xA8=\x92e\xD8\xFB\xAC \xFE\xE2B(\xD7=R\xABp\x86\xADMDo\x91ra\x86\xDD\xDDEq\xBDx\xB7\xAB\xF6*hf\x85\xF6\xF4uL:\xA9Ma\y\xBC\xA8K;\x99
+\xD4Ã\xF8\x86b&\xB8,\x9C\xAF\xC7G6\x96\xF9$cCP5D\xB8\xFCIOD\xE1\xDBn\xA0\xF1ӓ3\xB6ǘ\x90\xB8\xC4\xD7\xDC\xFD\xE8\xFD,\xC9\xF6?\xAD_\x81\x81[×\xFEx\xB9&n@\xB6\x9F\x9B\xCA3i\xF3s\xF3|\xBE$#\xA1\xDC\xB8\x91\x87@~	\x90@\xFE2\x8E\xE4\xEB\x99P _߆\x90P#Uٗ\xEBׁtijr}\xC6\xDE3e\xEC\xAF\xEE\x93q
+\xB2\xFD`_cO\xE7 \xD9И\xDDBu\xACg\xE2\xB42>4\xF4_\xF7\xC1[\xFEn\xB6\xC4/\xB93\xBD#ČǴI\xE6ݎ^\xBEvc\x86\x8C\xE2Ľ\xA7\xF3\x92\xFB\xFF\xE2Z\x8E+G\xF4CO8tH\x910A\xBE0K\xB5\xFBX.(lf<\xBE \x83^\xA6\xA9\xE7  \xC6W\xB9\xBB\xDAO\x90\xA3gg#!y\xE1\xC3\xF6\xFB\xB6\xB0p\x9B\x9Ee%\xF0\x85\xB8f\x84\xB9\x9A~\xB5\xFD\xEAv?E\xDF\xF33\xA9\x87\xA9\xDE\x884\xB7\xCDQZNŗ\xE5Y\xB4\xA4\xA2\xF4\xFC\xB9R\xAA\xA2ɾ\xCB\xDE,"R\xDF.=aEݢo\xAE\x8D\\x93}3\xEDsD\xD4l>\x9B[\xDCd:ȎA\xC6\xE0\xD5\xC7\xB1\xF2\xC1q\xF8\xA9Ns\xA1\x97:\xA4b\xF4\xCBd\xEF0\x9Av
+ \x8A\xE9\xF4\x83\xE5\xCD$\xB9\xE2\xF2\xCE\xBB)\x94\xC2\xFDF\x8A\xA4ӌo$\x84M\xC2.\x97\xFB\xDE\xF8{\x8A\xE2\xBFǰ\xF1\xB1\xF05\xD3\xC1#\xF1\x8BD\xFC\x82\x9B$\xED\xCCiԼ\xB5qQ\xF66\xE0\x80!@\xA2\x9F\xAD\x96g\x80\xF71\xF0\xF0ۇ\xBF\xBAR]\x{DA28}\x8C\xA5\xC4 35l\xDBU\xD7\\xBD\x97\xD9|\xF0\xB0\x97\xF1\xDD\xF1z%\xAD\xDD\xFAn\x98\xDFM$\xF2߈(逾\xAD\xB0\xE4vdW+kD\x8A\xBA\xA5\xDEs2\xD6{r\xEC\x9E\xE7\xE5(s\xBA\x95\xE4\xA6r7\xC3p"\xCA\xEFp\x96\x96;[\x8B at E\xF9\xF6m\xE5"\xA2\xAB+g\x83s3\x89B3V\xAE\x9C\xF3ݦ@)u\xBE\xB0\xB9\xBC\xC9*\xAA/j\xB6dɔ\xA6\xD51\xF3\xB4nZ\xE2\xAD`\x9C6\x92\xB39\xF9\x8AƭN\x87\xC7\xEDtָak\xEB
+\xD77\xEE7\x93w\x86>\xFAs\xD0 \xBE\xAE\x93\xF2%\xFF\xB2\xFA!\xF0\xDFó\xBC\xDAS\xD6<V\xFF\x812/\xA3\xF1o vC\x9AE4L‰l\xAB\xD0\x9D=\xE7\xD7v\xD1\x9C\xFD+\xEA0(\x8A\xCEt\x9D\xBE\x82\x8C..\xE2\x80\xE0\x9F\xA1\x8F\xF0\\xB1\xDDs\x9C\x82p4\xE1'\x83\xE3\xF1\xF9/ZP\xF2\x87A ?!
 \xFD\xCFÈ¡6&\xC3I!\xFE\x93\xC6\xEA at a}\xAB\xE1c\xF2\xF3}7\xD5PN\xB902x\xBA\x89\xE2H\xF1t\xFE\x8C\x82\xBD\xCE7\xE3\xC9\xB7\xB8\xEAj\xBC>!\x88Whc\xC4\xE3q;\xDE\xB1\xCB\xE9t\xBA\x9D.\x97\xA7\xB2{\x87X\xEC\xF7\xD7U\xBA<n\x97\xAB\xAA\xCA-\x9E\xF0o:\xB4\xA5
+endstream
+endobj
+165 0 obj
+<</Length 434       /Filter/FlateDecode>>
+stream
+xÚ…\x92Mk\xE30\x86\xEF\xFE\xB3\x87 at zp-;qLK0\xB4N
+^\xB6\x9B\x84Ò«#MRA,\xD9>\xE4߯\xA4\xB1[X6l\xC0\xC1\x8F\xDFw>4\x9Aُ\xB7]\xF8 \xF4\xC3\xC5-\x83-vz0\xC3\xE2\xB9n\x83\xD9l\xA3\xF9Р\xEA_\x8AI\xED\xEE\xE1\xCDh\xBE\xC3\xE6E\xB5\xA9\x94\xECo\xAC\xB9R\xFC<\x9C\\xFF6=\xE2I\xAAo\x8B\xAB\xF3=~\x84?\xAB\xDF\xEFe\xF8\xEBy\xAB\x9BZ\xC5Y\xB8\xC5\xD3p\xAEM\xC8\\xD8^\xF6gk\xFF\x8F\xAC\xD7d\xF0\x89\xDE\xD1tR\xAB{\x88oc\xF6Ó\x85n\xDC!\xBB \x85hj\xFD(\x950c\xB7pp\xBDqB\xF2~$\xFF\xCF;-\xBC\xBBt=6\x95:\xEA`\xBD\x86\xC8V\x96]o.\xBE\xEF\x9B z5\x8DT'\x98_kÒšvCÛž\xD15,\xC8sx\xB4\xB9\xED\x9C^\xEA!r\xA8\x84Ue\xB9:\x8A\xEF\xA0\xFD\xA5EH<\xC7\xD42\xD7\xBB\xB6\xE6hju\xC2`m\xC7\xC0rX\x97\xF6\x97\xA8\xC4_:\xA3\xA8Ñ\xD0\xA6\xD78\x9D$\xFEY\x97(.l"\xC6Vq\xEE(Y%\x9E	QJ\x94\xAD<-G\xED\x8EhE\xF4HD\xCEeA\xB4!\xED\xC9S\x95DKO#*=\xA5T}\xC5H\x89\xEAe\xA2;\xA2%U\xC8Òœ\xCE\xEA\xCF\xE6\xC6\xE2\xEE\xF8\xEB\xF8`\x8C\xBD\xBF~\xCEn\xC2R\xE1×®\xB4\xBAuQ\xFE\xF1K6\x{DF23}\xD72\xF8O&
+endstream
+endobj
+167 0 obj
+<</Length1 1502/Length2 6194/Length3 0/Length 7174      /Filter/FlateDecode>>
+stream
+xڍuT\xD3\xD4>\x8D\xA4t\xA8\xC0 \xE9\xDD\xDDݍ0Æ€\x8C\x91\xA3\xBBA$TA\x90nI%%\xA4%\xA5\xDE\xE9\xCF_\xFE\xFF\xE7\xBC\xEF\xD99\xDB\xF7s\x9F\xE7\xDE\xFByn|\xC7\xC6l`̧\xE8w\x80\xA8\xC1aH> \xBF\xA0@YW\xD5(\xE6"dc3\x81"\xDD!\xDA	\xD9\xCC o(&\xF5\x862B\xA2m* $\x9A\xA8\x87\xB4|\xDC@a PL
+(.%(\x94\xFC\x93GHT@\xBEPG\x80.?@\x83x\xB2)\xC3=Pg$:ÏŸ\x8F N0 ())\xCE\xFB\xCB\xA0\xE8A@\xC1 @\x84t\x81x\xA03\x82A\xEE c8
+A\xFC+\xA7\x8C\xE9)% \xE0\xE7\xE7\xC7\xF2\xF0\xE6\x87#\x9C\xE5\xB8x~P\xA4\xC0\xE2
+A\xF8B?%\xF4@\x90\xDF\xD2\xF8	\xD9 &.P\xEF? c\xB8\xD2\x84\x80 \xD0w(\xF3F\xBB\xF8\xC0! :;\xC0XS\xA0\xEF	\x81\xFDA\xD6\xF9\x83\xC0\xF8] \x90\xF8W\xB8\xDF\xDE?Aa\xBF\x9CA`0\xDC\xC3\x80œNPw@_M\x87\xE9\x8F\xE4\x80`\x8E?\x89 wo8\xDA\xE4\x82\xBA\x83Є_W\xD4
+ \xB4\xC2\xDF\xFA\xBC\xC1\xA8'қ\xDF\xEA\xFES\xA3\xC0\xCF0\xE82\xAB\xC2\x95\xE1қ\xF0\xE7\xFDT\xA0]\xF7 \x81\xDF\xCDu\x83\xC1\xFD`\xA8?ONP\x98\xA3\xD3O\x8E>\x9E\xA60\xA8\x97DS\xE57m"\xFC\xDB\xE6AD%\x85\xC4\xC5\xC4 / \xC4\xEC"\xF03\x81I\x80'\xE4\xFCiFkFy\xC2=Nh\x90`\xA8\xFDC\x88\xF2\xF9B H\x84$\xF5O\xE0\xDF'B \xE0#g(\x8C\xF0\xEF\xE8h3\xC4\xE9\x8F3\xBA\xFF\xA8?\xC0Z=~@\x80\xE0\xCF\xCF_O\xB6\xE8	s\x84\xC3\xDC\xFE\xA6\xFFj\xB1\x80\x9A\xB9\xAE\x86\x8E.\xCFo\xC9\x81JJp \x8AOH\xC0'$)& \x8A\x88\x8A \xC4Ņ \xC1\xFF\xF4W	\xFE\x94\xFF\xCBj \x82\xFE\xBE\xDE?Bjœ\xE0 \xC9?T\xA0\xCB\xF7\xA7\xDFߣ\xC1\xF9{o\xB8 \xFFΠG4\xC0\xF9\xF7\xFC\xDB\x8A
+\x82\xD1_\xC0\xFF\xF3\xFCr\xF9\xFF
+\xFF\xCF(\xFF\xEB\xFC\xFF\xF7Fj>\xEE\xEE\xBFp\xCE?\xFF\xF2\x80\xBA\xFCf\xA0\xDA\x89^]8zE`\xFF\xA5\x9AC\xFE\xD8h]\x88#\xD4\xC7㿨&\x84^E\x98\xB3\xFB_\x85\x84z\xABA\xFD!\x8EP$\xD8\xE5\x8F9\xFA\xB3\xE8\xF0\xEEP\xC4 \xEE
+\xFD\xF9\xCE\xF0\xFF\x83\xA1\xD7\xEC\x86~\xAFx\xA3\xBB\xF5\x82\xA0\xB7\xEA\xDF)Ua`\xB8\xE3\xCF\xF5\x80P !\xBA\xF9\xE8\x93( D\xEF\xA9#\xC4\xFF\xD7x\xF8ap$\xDA\x80\x96p\x82#\xF6($p@\x80\xC0$\xD4\xD3\xBD)\xEE'\xE4O\xCEoX\xF8?\xF0\xFD\xF9\xEE\xE3\xF9g\xD1\x81\xBB\xFEK\xD8\x81 at o\xF8\xAF1C\xEB\xFB\xF3\xFC\xEBu\x81\xF8C\xC0\x84\xB3\xD3p\xB0t\x94kCT\xFBi\x9D\xE2m?\xBE\xB5Q\xD9\xF7lk\xE6\xB9\xF8P\xB3\x88\x9F\xA4\xF8\x99\\xB5\xB9\x8B\x88c\xC5\xCC\xC1Wds+\xAA\x9CG
+\x99.QÛ­M\xF8\xB1m_\x9E]\xD8\xDD7_{I83F\xD3\xFF\xAEd[\xB1\xB1\x8F\x81\xE0\x9F\x89\xC2zÐ¥W\x90Y\xB8v+f\x97[\xA1\x97\x8F\xA9A1\xE5\xA9\xDFku\xFFƾ\x8AOoc\xA6\xD7\xD7kÅ´\x89.*&\xF8\x92M\x93l\xC2\xCB&ÙŠ\xF2\xA6\xE8X\xF0\x90|7\xB8)\xF6\xFDoN\xBF\xA7(xwͤu\x9F\x870x'Y\xB8e\xB5$\x94r68_e"\xE4\xDDM\x97ÞŠ\x8E\xFB\x88\xE2\xED8;Ji#K\x8B\xF6\xAA\xBCt\xE1\xC9$s\x8A\x93絺\xBC\xF5\xB1I8\xD2\xCD'\x97C\x94F\x9F\xD8  \xFC6b\xCD_\xA34\xA8\x94\xB9\xA3\xCC!yk\xBF\xB1\xAF.\xFE\xE4\x9B_\xC1\xF6\xED\xA3*e]Gm\xFC;\xD81\xEC6\x96&(V\xDF*\x8FA@;\x9E\xAA\xA8x\x9Bz\xC8b1O\x84\xB0u_i\xF4c\xF1$\xE1\xBE<)v\xBD"[\xA5U-9Q\xC9\xE8\x95\xEF\xF9+N\x8A\xCFqX\xE2Z\x9A\xA4j\xFA\xB8nV\\xCAXO\xDD\xC2V>\xE2/\xB5\xF0\xF1\xF5{\xFC\x9A$\xA9l6\xE6Ô™}:\xB1\xCA\xF4b\x8F\x8AG\xA5\xDA\\xB1\xB4oiq\xB2\x91q\x97au`\xCA \xCF_\xFA	\x9B-"\x8F\\xA1d	\xFF:\xA5\x80\xBCH?\xB3f)lw-\xC4釖HÔ¶\xC4\xCC\xCA7CM\xF7\xB0\xF84\xF4\xF4\xF3s\x96\x9C\x90\xAA/\xB8\xE9[~\x8F}\xAB>L\xC6^Q\x9B\xB7\xAF^okb`{hY\xB8\xDD"p\xC3I\xA1\x9A\xDA\xECR\xAB\xE4'\xC7-\xD0\xF5[\x9B\xC3=\xDDW\xEEq\xEE~\x95\xA6\x9E\xF0\x8BX\x961\xBFÔ·\x98##(\xA7\xF1\xB3|\x88\xC2\xFBD\xE3W4\xF0aY\xE168\xFB\x87&\xF5\xF8nƏ.\x8A\xE2\x80\xE7\xE1\xF5}\\xF6>\x9AO\xC83\xC7\xF1\x9D\xE1;l\xF8G\xB0\xAC\xB5TV\xB6:.\x83\xDA!\x9A\xB8ev;t\xB6\xD903\xDE\xC9'\x94w";\\xAD'\xA95&Í¢u\xD3]$JG\xF4CgB\x90GVJk\x8F9O7\xA0Ë¥N\xB9|\xED\xE1\xCD\xD6\xEA%\=a\xA7\xB28v\x84_\x93\x97\x8D\xC6;\xD79\x86\x98\\xE5Hm\xD4\xF0\xA6\x875O4\xA2\x9F\xD5\xDC\xCD.\xBE\x8B\xC0%n\xBA=\xCB/P\xEF\xEF:"!\x9CC\x86\xF4ioY.2P\xEE\xD6z\xC7M\xC9\xBD\xF1\_\xBE\x8F\xDF|\x9F,q]\x98\x98<Q\xE1fx\xA9\xA9\\xD0\xE2u\xA7\xEEs\xF9'\xFFr'\xC7>\xA4\xC1i5\xEC\x9BR\xA3Û²\xEE\xB6S\x8C;\x8F\xC6\xE1RÏŸ7\xC5n\x95\xA8>H\xAC\x86~*ÛµNU\xBC\x97\xF5\xEE\xF2\x98$n\xC0:[\xE0暪ш\xF4\x9B\xA3\xCDd\xE9R\x96~1ξg\x8DÚ·å•™G䤝]\xB8:\xA7\x88\xD5A\xAD_	$a\x86Ϙ\xE6\xBBe"h\xD7\xF7c\xF28)\x99d>b\xC6%\xE7\xDC\xE2\x89\xE1
+\x9E2\xE8\x8E\xA5bV\xEFȘ\xE5\xE5\xBEXd]\xD1$uih\xD9\xE8]S;\x86h\x9E\xF3\xC57\xE20\xE4\xCFG1\xC1V\xBF\xBC
+B\x95\x82\x99\xE2\x9C|\x93Ek\xCE_m\xDB\xFA\xEA\xC7\xCA\xCC'ZQ\xBC\x8B\xD2c\xD5Ü«\xE1\xC0\xB4\x91\x9C\xF3<\xEF\x8D6\xA8\xC1\xF6L\xFD~\x85\xDBf\xBF\xD5\xAD\xDE\xC1\xE1\\xD6Ã¥\xC7t*-\xFEV\x9B\xA4\xD8>t\xDFZ\xFE~\xE8\xD9\xD0upv\xE8{q\xBDO\}|\xC8#\xAE\x92{\x95\xAA\x9A\x9C\xF7\xE6\xD2u\xADo.&:^l\x9B8\x95[wnw\xDD\x9C\xDFD\xCE!È”\xA7\x85j\xBA,\xBF\x83?+\xF7\x95\xE0\x96\xF6U1Vc\x9D9\xAD]Òž\xF9êM\xF6\x9CM\x94\x9Cg\xEF9\xB5E\xE9S\x95\x98WE\x93u
+k\xCF;i\x84\xFA\xECo\xCC<\x80\xC8\xDD>>\xD3k\x8DN\xFB\x90yJQ\xF5\x94\xE9ī8c\xCC?<]̓\xDA.\xF8&>Tf\xF9\xA4̶\xE5\xADo~ʹ\xBE\xD5\xC9^i\xE1 qN-ӹl\x87\xB9\x99\x8B\xE5Mv\xA3+T5\xB3P觹\xF6
+\x8Em=\x84\xC3`}\xAACr\xA1[\x89]$\xDD\xC7g\xE3+76\xEB\xAEh
+h\xBB\x9F\xDDY\xDE\xE6\xE8V\x88\xA3\xF6S/7\xA3H\xF7u\xB5\xE7\xD3\xC2\xEC\x8E\xCF\xEDf_\xAB\x83\xE6M\xBA\xB10\x87F\xADÊ•P\xAB%E$\x8E\xD3kxBZ\xC7Y5\xABr\xE7 q\xA3\xF77\xE2G\xB5\xABÄ“\x96q~HM\xBB1>C\xDBcB&\xFD\xA6nc\xA7\x9A\xC7Z$M\xE9;7Ɲ̮^"!\xD2⅍\xE8}\xEChsy,ã“—\xEC\x843\xCB\xC7\xACu\xD6v\xCF*\x8F\xF7\xEFq\xA0\x92.\xB8\xCC\xDE6\x85)\xF1\xE6 \xADlLΓ\xA7\x94\x85\xA8 Ò²
+\xEF\xC5`?j\xC5\x83\xE8\x8E\xA6\xE7xU\xC9\xC3\x9BD\xF0\xBDd\xAB\xFDnG\xAAD2\xDA&\xCE\xC9Es\xEDO\xAD-\xF6(\xE3\xC2\xEBU\xAF\xE1\xE5>\xA5\xFB\xBCm
+\xC1\xD3A{\xAF\xDDɀ\xAFЂ\xEFv\xFAO:q\xC47\xA9>\xEBj3w\x89\xD6qzo\xD19\xC9\xA9
+\xDEx\xA9\xE1\xB7`\xB5-\xE7\xDCT\xF6zD\xAF\x94\xC6Ȥ\x97(ɼ&-A\xA4\xF0q\xF1\x91TØ»*\xF6-\xBETN\x95HA\xC1\xE7\xFB\xE5\xFBNn\xCA\xF8T\xD6\xE15Ys\xFE\xF4I\xF3\xB2\xFE1=\xE6\xA1ßžAC\xBDI\xCB(\xA8/\xAB\xFCbÏ’\x93\x9F4\xEA\x97t\x84\x99m\xD5\xC4ECs&\xB5bt\x96\xE8\xDE\xFF`KϤGM\xCC?\xC4Rà\xBF`\x91"\xAC\x99Z\xCF]\xF5~Í»iM\x9B\xF6\x8E\x86\xE4/\xDB\xF2\xA9\xAC\xF1g}{\x98F\xB2\xDBe)\xF7\xDD\xCD_\xC9Ó´U\x99y\xD8_Y\xC1Q\x9Cu\xF4뱊z\xAC1\xDEkûa\x9E\x98\xB7+\xA6\xA2\xBA\xF0\xC5d\xAE\xBF\x9CÖ…\xE0ﳨlv9O\xE5\xA9\x96h\xE0\x938<\xDFk—\xE5\xE6,\xF3:"\xB0nY\xE4\xF2Ô¼Ûª\xAB>\x9E\x88\xEE\x8C\xEF\xEC\x91r\xA2\xAD\xB4 \xD7\xED\x99\xDB!-\x8A\xE0\xA4(A\xE2\x85\xF8'\xBD\xDE8\x97\xF3T\xD8k\x80\xEF\xAF\xFAR\xB1\xE4\xF2\x8Ca3\xAF;\xAF\xA4`3\xB8\x93\xD1I\xB3\xB9m\x8C\xB6\x92\xB0F$=\xF6\xDDa!\x88x\xC1\xF6I\xF7\xD9+\xC5t\xB1\xE9=Th\xF4\xB6\xB6L\xDBd:\x95\xF3{\xE9u9\xCD\xED\xF6\xC6\xF5'\xFDk\xCE-̹E\xCA\xC6Ѝ\x99Þ‡p\xA7\xB1g\xDAw:)\xB8pa@\x83\xE9\xFE|\xF1\x87}P.M\x8F4\xEEǃ\xA5x\xA7J\x85\xE5\x9CG\xBE3\x9F\xAB\xAE\xAC.k]\x89\xF4\x94l#K\xA9\xF6\xF9^@\x8FÌ…{\xCF	DQqIo\xEE\xB2`PJ\xDF\xDE\xFC`ya[\x99b_\xC8\xA0.ê­¢\xEA`7\x83\xBEcTE\x99\xF3\xFAÖŠ\xCD\xF5}\xE6 y\xDC
+Za\xA3\x9A\x95\x9F\xF8\xBC\xCBe\xAA\xDC\xF5%kҍ\xE5\xC9}a&\xAAx\x83\xB7\x91\xE9Þ”i\xB1\xB8U\x99Û¬"\xAFDn\xD8'\xF9\xAB\xF4\xEF\xBFÆ„K\xA9N#?1\xA2t\xA3\xC4X\xA5b\xB3cj\xDB\xFA}Y\xC8?\xCAQV\xAC\xC8\xCF\xE4p\xB5-\x92=?\xD7\x89\xC3=d\xD8SU\xEC\x95-\xA9\x95\xD6ÕŸ\xF5O\xF0\x98YZ\xAF<u\xE0\x9Dg\xF0 \xCDr\xB7&Ð¥\x8F\x88If[%\xD4\xD9\x95\xBCl\x8F\x8B\xAA\xB5gz'OE\x93\x88\xF4=P\xDB(\xF6\x9BEq\xF5\x8F10\xC53N\xAC\xF2\xAD`\xEB\xFBÖ‹b\xF7\x91\xF7(\x84>K\x8C\x90ض\xB1\x8E]c~s\xF6\xD3?$\x85\xF1\x95\x99`\xF8Ià Œ\xC6<\x85\xE90\xA0\xE4\xD4vkß°e)$\xE8Uq\xDBD\x95Q\\x90
+\xB1T\x9B[\x8Fm?d\x9B\x81\xB4e7\xC1\xEE0\x9B\xB9\xB3\x8A\xC0\x8A\xB8{\xE4d\x94\xF6`\xE0\x{14F18F}\x84	xE\xF9]\x92 B"V\xA6\x94\xAD\x87\x881w\xF3\xED0\x9A\xF66sAz\xDCK鰺\xF3\xFCFy\x8Dd=\xDA稥\x81\xDDul\x97\xDB\xFD\x9A\xD9s\xAC\xEEЦ\xAF\x8DhgoܽFP.\xCA4!\!
 xE9s\xA0\x98\xA0\xDE\xC2\xDDwTxB2\x97\x8DY鐁O\x8F#\xC2F\xE2S5W\xA3\xC7I\x9E-}\xA0NJZ\xB3\xC5c\xF8HW\xD7Ë\xAD\xF6\xFDD\xAAN\xA3h&}\xDAÝ’D-K\xC38t\x8Fz\xE7\xCD\xFD[	\xDD\xF4R\x99\xEAT\x96+\x87\x97Qm\xDF\xD41w1\xE2Q\xE6V\xC6@\xEB\xD5\xD7-,\xE5\xE4Q&\x87\xA8\x9BH9v\xBD\xA8g\x86\xB4\xEA\xE6G|Ø­\xAA\xF5\xD5\xC11!zJO\x91\xD9eC\xBE\x96F \x80\xB19\xF7}\xCB\xCCknh\xFE"̼\xF1È„\xA6\xAD\xB5Q\xAF\x99\xE0\x86jzE\xCA\x91\x99磴\xEDQ\x8F\xEF\x87|\xAB\xCBÃ…\x99\xB1É·WiUc\x9B&\x93\xAA%Ó¦h\xEA
+WR)\x82y\x8AY2\xEA\xCD\xE7\xC6\xDCÚ‰K
+(\x9C\x8C\xE8%\xF2\x86$\xE8͒\xE4\xA9Mtm\xA4M\xEDz\xD6t\xB2C\xFBv\x88\m\xE1\xB3\xD1\xCEůx{\xEF&\xB8K\x82N\xBB\xDA]	;g\x87K@y8\x9C\x96(\xF7\\xACT0\x881\xF6\xC3[\xB3\xDA\xF7Yv\xD7_\xFB<\xC9s\xE4\xBD\xEFm\xF0\xB1܉\xCByO!6K]_;\xF0(\x930lu\xBD\xBB\x95\xC0\xB8\xF8\xDE~\xC6\xD1D:/\x93єS\xDAN˕\xEA+\x9B\x9C\x9A\xEB"(f\x8B\xEF3\xD3\xECai\xA9\xB5\xAFֆF\xEF\xD7$g\xEE\xB8a8vƜ\xF9ug\xD9~\x81\xFAQN\xD3\xBF4踬gu|\xA8\xE7\xF8\xB1y\xB8[\xBEJ<\xE2I\x9DRP\xF6\xC5V\xD6\xD7\xC9\xC1\xBFvE\x9F7r(\x93>[\xF1\xB6\xEB\xED\xC1}\xC7\xE5ԃ\xB3\xEA\xF4+\xE6H\xEAo\x91\xBA\x9E\x941\x85Џ᜔E'<6\xBC\xB4$\x9EV\xB6ϻz\x8B[\xAB\xFD\xC0\xEEv\xAA\xB7vf.\xBA_\x8C\x86\xA9c\xB1\xDE>\xFB0\xF9\xBE\xBE\xE7U\xC5V\xF5cY[Kq
+\xEEÜ”iD\xA4\xE1\x80\xD9\xDCp\xEE}\xA2\xEF\xA8\xE2\xD8s\xC9QW\x92\xB1\xFB=\xEC\xF7K\x83@S\xE7\x9D\xACÜ¥\x87E\xE1\xA8\xCAM\xA56\x9C\x9B2\xE2c\xA0\x91\x8B\xBE+\xEEi4͍\xE83\x9B\x93\x87#J`?Ò‡\x814y\xA4\xFDC\xAE 2Hs\xF3\xFB\xF7\xE4\xD3\xFA6)\x9A2M3o\x84Pyn\xBEU\x8D\xB8ssc\xF5)5\x95[\xE8\x80惚%\xB0\x88\xB3\xCC\xF4\xE6K\xDA\xD5OJ[mgV\xDB6]XJÔŒ\x95Ñ¢.y\x88\x96\x98\x9B\xF4\xAAO
+\xA3\xA8\xEFQ\xF6\xF9U\xBCJ\xC0\x9A\x856?\xF7 K\xE3	Ó±\xC8\xF7m\xDA\xDA\xDB\xD5\xD3<\xB3\xD0\xE1K0b\xDAl\x8E\xFA=\xCC\xE5
+\xBF)\xC9&YHN\xFB=\xC71\xCAX,t\x92\xDE"Y>8&\x89g%_gв\\xEBݽ \xE0\xD9\xD0)`\x9B\xD3e\xDAp\xEBb\xD2@\xEFQ\xB9˫&\xE0\xB8\xFA\x90!a\x92\x81EC\xFC\x96\xFC+W\xE2\\xB3\xE0\x88\xE3,!\xC2uwB\xFD&wN5K\x89u\xF2\x8B\xF5\xBB"u\xFC}$c\xD2
+\xB6\xE52\xF5
+\xE9T
+\xA8\xB7\x83%\x8AL\x98\xFC\xC6q$\x83NrI\xF0\xEEc\x9D'\xFDEb\xD9\xF3_\xBA2z\xFB(\xF55j \x8A\xCB%\xB18\x87\xA3\xACdR\xAE{k\x84M\xE2D\xA5\xDDb\xCD7\xEFX\xAEv\x8F\xDD3\xF2e at 4m\xCA\xE36\xD1\xEA\x9DN\x9BMh\x8E\xCF\x9B\x9F\xFA\xDF\xCB3P\xDC\x9D\xBA^\xA9Z?\xCD\xD7\xCEc\xC2\xF5A\xA6_ß·\xB7\x8A\R7\xB2g4\xC9t\xDE\xD1\xE8Y\xCE\xFB\xC01\xD16"\xB1\xAF\x98w\xCB\xE3y^\xB9@\xBF\xBC at F\xEE\xB4\xDC*>_z\xA9\xA1g\x80\xE7E\x9FF\xAE\xE5<\x86'2\xBA\xBB\xB9\xF4uÆ’\xF4K\xEF\xC6\xFE\xBC\xD6׏3\xFC\x9B\xDFq\xB1\x97Ƙ\xD4\xE1\xD6\xC7\x94\xBE\xF5\xF7\xF95\xF3\x8C\xDBy\xD2$ɨ]GM\x9Bty\xE2\x9A8\xF9d\xB4\x97\xBE\xF10,\xAAwb\xEC\xF5V?\xD0u\xE3\xDA2\xB2Z~-W \xE4/\x8B\xF3"r\x94\xFE\xA5\xE9\xCD\xCC\x9C"\xC8\xEE\xF6\xCCÅ·V\x89nn\xF9\xE6\xD5u\xE6\xA3\xD44\xFE\x9D\x80[\x97Z\xBD\xE9\xB1\xCAq \xE5[\xAF\xB0Þ¯\xEBKJ罆:Ý”&\xA3\x81\xCF\x89\xA4[=\x84\x87v\x833\xA3\xAB/;\xB7>\x8A\x8B\x9E>J\x9E\xE1[\xF6\x96\xF8r^1 \xF3o\xEA\xEDb\x8E_\xE3N:\xAD\xC8\xD2I\xBAh*I!$\xB9k\x94\xB1\xD77"2\x8E~äš´\x9E\xEE~\xB5\x8B\x8D~\xE5z/\x91o}\x9C\xC3V\xA0Ö·z"\xA5\xBFz5)o\x9A\x92QZ\x96\xD6)(\xAD\x86 -W\x90\xE1\x94\xA7	Ø‘\xE4\xF0-\x8D\xA9p\xC0\x98\xEF\xE8\xAFr$\xD5\xEB\x8C+<$~6\xC3\xCFl\xEA?\xF6-\xE4&\xC4\xC8U\xD6Tv\xB4T\xC5k\xBD^\xFB\xE9b:{\xBE\x8F\xE4\xE69ΈWΨ\x8A\x8C\xD4"\xA0\xB96\x91|YÇ¡\x83_\xB8\xFD\xE0:4
+\xBCz\x85\xCB\xF6\xD1߶\xF2C\xBC4NMu\xCFkl\xE2}ڎ5\xD0n\xCBC\xA3\x80\x98\x92OV\xA5\xA6\x92{\xDD\xEF\xA7t\xDF?\x83}$#e@\\x98&=Śz\xBA'\xC2\xD5\xE7\xA2\xFF<]_\xD7\xF1\xF5Y\xEBzz\xE8\xD54\xF16P\xE4\xA8I\xC0\xE2<\xFE\xB97\xA8\x8EN\x90eG\xB1r\xBB\xAAy\xE0\x82x\xB4ܒ\xAD\xA4w3\xA1Q \x917>_g\xF9% \x99\xE8\x92\xD8'\xBFv\x99\xCD\xCFb\xFE\xC5&\xA4\xB2\xC4\xF9\x92\xAD\x9FD\xD6\xF1\xE9\xB8\x84\xE2h.\xD8\xEBf\xA7(nAv\x96Mˏ,ζ\x80)f\x9A\xD4˧\xF7>\xCFncsꔵE\x85g]}c]&\xEELmJn>ϨIXϾ->Miu\xA4ly\x8C\x87\xB9\x96\xDC\xD6\xFAV\xBFg\xA9B\x8A\x97\xF9y\xFA\xA5)U\xB4\xF2]\xEE\x8F.\xD6\xEA\xE1\xAF\xD80E\x927\xF4c;YyJd\x89\xB1\x8C\xC9\xF1\x91K\xB1Z\xE8\xB0uY\xE6S\xA7
+\xAA\xC4;VV\xF3Z/\xE0]T\xD5\xD4Ī\x9Bl\x96\x84\xC79[\x80#\xC6\xEA\xBB:\xA4J\xE8\xE1\x92\xB1\x996\xA8\xBD\xA8\xEA\xFD\xEBv6_\xC9#$
+\xFE\xBC)\xA3UiS\xA9a_&{\xE4\xB5kϾ\xC9\xD2O\x93\xBC\xE6\x89k\xDB\xD9-\xC7\xDBj\xAD\xEF\xD4
+\xC2>\xE8\xE63,Q5oSQm\xF5\xCEg\xE57\xC1S\x92	F\xCD'T\xD5K\x9Dߝ\xE6\x89DpoV\x9Bg\x84\xE6\xE7\xE3\x86-Ԙ:t\xE5\xDAت\x96\xFBz\xE3\xF5\xCA\xEB\xB8\xC1JR\xF4kJ&\xAF\xA0j\xC9\xF1	\xFE\x99#\x9C\xF1\x81\xC0\xE53j\xC7\xC8\xDE~\xF8\xFCy\xB7\xF6\xC2Xr\xEBشo܃\x8AF\xF7J\xF6(\x9D\xD82h}YŢ)\xF2D\xBA\xF6%\xF4\xDEW\xCEx\xF8&6#<q\x84\xF0u\xF5\xADIu&\xC8F\xFC\x9A \x80'\x9C\xF5\xC1\xA23\x88Z\x97)\xC6\xE1\x9Bj\xBD\xE0AuO\xD6\xBE\xA9|\xAD
+`\xD9\xC1\xB2\xE4}\xC7v\xEC\x89fd\x89\xC7P\xF6?ŀ\xBD?\xFD7\x9EʈB^VR8\xAE+\xF5O7\x91\xE6\xBAtu\xDA\xD2\xFD\xB5\xFDOs\x89\xBDwؽ.l\xE0^\xE5m)f\xAE\xB8\x86 6h\x8D\xB0[x:\xC6]\xD8\xD1\xF7#:\xAA^\xD9$UV\xEE^Bs33\xE2\x8EB\xCD%C\x89m\xBA\xB0ÕKl\xB9ɥP(\xF1\x94\x9D\x83\xC1+\xF2\xE8y\xE8\xDA\xE3\xA1\xCEq~\xFBs\xC1\x91q\xA1\xEF1\x82\xEB\xD3s\xA3\xBE\xE7~\xEE\xFC\xB6\x90D\xF7Gc\xA1\xBBg\xF3}\xCC5\x96\xD9ف9\xD3,×\x91j\x8BnF#\x8FZ\xA6F\xD7x\xABۻ-\xB3%>\xD4\xF4q ]\xC0l\xAE\x8C>\xC6\xFA\xD09\xD2/\xE0\x92\x8CH!\xE7\xE4\x9F\xD7\xEDX>5N\xF9q^$`n\xE1N\xA3\xBF\x99JZcۃ*wM#\xEC\xAEw\xCAΌ\xB3\x8B\xF7\xCAXے\xB5\xD2\xCF\xE0\xFC\xCASqi\xBF\xADA@\xD8&J\xF28w\x9C1V\xDC\xD1\xE5\xC6\xAC\xAE\xE9J[\xB3O\xC0\xA6\xA9ɨ\x9D\\xA1b\xF21\xCEQs\xEB^*\xA4:\xA19 \x83\xB3\x99d'\xB0\xB0@\xFB\xA7v:y\xA3\x87\xBCB؊9\x91A\xEE0E\xA7,q\xD1\xFC\x88T\xADL\xBA&¯Xpa\xDCո\xC1\xA0\x98U\x971\xB132\xA7C\xA9
+\x92^\xA9#\x96A\xCC\xDF\xC3!}\x84\xF3\x8Cpn\xC4kߘ\x86\xFF\x9A\xFCa\x8Cd\x89\xCDNË«
+\xCA\xF5\x9C[\x93X\x85\xAD\x89\xB2\xBE\xA1\xA3|\xDF86U\xD4Ȝd\xDD\xE9ߜ\xEB\xDFY'\xF0
+\x94N\x95\xD1\xDE}jq\x8Fp,\x84\xF43{\xAA\xA5Æ™\xC0\xC0\xC6Jæ«„\xAB~\xB5w;+\xAF0\xBF\xDFl\xB5f\xE9\xE3"\xD2L~\xA7\x94ʇ\xA5\xC8R\xF2\xEE\xE6\xDFĝ[0\x8F\xED}\x85\xD2\xC8[
+!k\x9F\xDA+\xAB~\xD73\xC7?}\xE6\x99\xD6\xD9r\x8Dy\xFCN\xE0\xC1\xEBW\x85\xA0v|@\xE5垝^5\xD5D߁\xE0\xD1\xE6~P\xE8\xFD\xA4\xBD\xE7b\x83f\xA3[\xC74M\xE2\xC1\xE6\xC8ʵ\xAB\xB2dq\x8F\xC3\xE3\xD9 S\x95\x84\x85G\xE1O'B\xA0!ޕ\x87{\xCD9\xF1 \xDB\xFB\x90\xE7Rnw\xF7\xF3b_\xA4\xB5\xF3 cm"h at z \xD8$\x81t\xBEr\x90\xE4Ժ\x86\x8D\x8E\xB2\xEF͍\xB7\x98\xBDH~\xFFΝ\xB8-\xDD]R=X\x81\xF2\xB4G\x87\xC7.\xAFD\x8C5\xEC\x8E/\x87`\xF2\xFC\xB9[\xA2\x86/gq1h\xE9\x9A]Q\xAA۬
+\xE3!\xF3\xE4p\x8A\x98sm,\x88\xE2m\xE0R\xE1w\xBA\xD6G\xB1M\x89qH]Љ\xFB0\x86\xF8\x9AoO\xBEL\xEFFA\xBAl \xF6\xA8=Tž\xE9\xFA\x9D\xC4\x83-\xFFÍ‹\xB3\xA2U\xFB\x99\xB1\x97}f\xF2\xFCƆ;\xFB-L\xB1\x94\xE5\xEBuj\xE0\xC72\xCE1[ZS\x9F\xAB\xCD\xE8\xA7\xA9\xE3\xB6.'\x97\x91\x8B\xDE\xC2'p\xFB\xB2Ë›bO\x84S1\xF9\xD6*:HN\x99;f\x86b\xC4E\xDAu\xAEt\xBFf/\xD1\xB9\xE5\xB8\xC3UÔ›E\xC34\xC8,&\xD8\xFB\xBD_ܧ\xF3{\xC3}p\x9A]\x94\xFEjxU\xFA\xF6Öª7gu2\xAB\x81\xD2l'\xC0\xAE\x8FdK\xD0J}\xD9K\xD0K\xE73\x8EqL\xBA\xC0/uqp\x98\xF7)2\x92\xE4\x9A\xB2\xB2\xE6\xCD\xE8]\xABZÒ¿&z\x9B\xC9\xFD\xE8\xCA`+\xC77\x83\xBB\xD4\xCD\xF6\x86\xE81\x86ʹ\xD8z\xB2|\x95\xFF\xBA\xF0\xEA\xDB\xF3\xB1Z\xD5\xEF\xE5\xCDP\xB3\xEB\xEE\xC2k\xD7\xFE\xF7åµ­eO"\xF5\xFC\xAD}{;%7\xF8\xF0\xC8\xC0j\x8E?\xE6[\x9A\xA3(\xB1\xD0%V\xE4\xF8\xE0E\x9E\xCE\xEER}\xCFA\xD4\xE0"Ϗ\x97?\xAF#\x95\xD5\xF9%^et\xD2Õ˜\x9A\xD4l\xF7\xF6\xBEÈ¥\x94\xA5\x92Ù‰\xE8\x8E\xFEZ\xA6Pi\xE0cs\x91\xBD\xE7Kg?P\x94\xFA\x9C\xF8UƼ,\x89\xC3f\xE0\x96\xF7\xE4XIGI\x96\xA5BerK0\xB6`J\xF2BiO\xEC\xEEP\xF6d\x99sB\xCAn\xCB\xCAÒ€l\x86\xF4R$\x9Dq8oT_qu\xDEb\xB1\xFA\]\xBF\xFB`\xE4a\xB0NY\x9B,9\x86\x9B\xAF\xDCX\xA2\\xE5
+LD\x96\x865\xA8\xDC\xE52\xE4l!S\xE4\x9B\x9E\x9Dl\xED\xC4\xDA[\xC6\xA2\xFA\xA2\xDFbk}\xE5j/\xA0\xA5p\xB1\xE9M\xF2\xF5\xA7\xF2\xFBs\xAAw\xDC:+;\xD3\xFC\xF12Cp袼N\xB7܊\xB4jB6\xDB\xB0\x84\xF5\x8B\xFC\xEF1\xE6\xBB4V\xA4,\xA7\xCF
+\xF9§\xE2Ø…\x93Ä· \xA4;\x8B\xFC\x9F\x911\xDDEg!\xF1'
+\xF2\xE4v\xECr\xCA\xF5\xF1_Ó‡S\xB3\x8CNvM\x9B\xA5\xF3lV\xE9\xF1\xA4	\xBE\xC7\xDBGo\x91\xD7`G\x85\xCC\xEF|\xA1\xF6Q\x9Ef݃\xCC\x{DFED}%\xE0\xA5'y#\xC7\xD2i\xE0\xAC\xE6wD\x8B\x9B>t\x8F\xA6\xE2,^ߣ`\xDD \xB5\xCE\\xF6c\x91@\x80\x8E\x87a\x98\xF5\xEA\xB9'%2\MG\xB7\xC7\xC7,\xA3\xE4S$\xCFP\xA7\xC1`\xFB}L";\xD6\x81+\xA5\xD2\xFCÝ„\x99E\xEB4zâ°€\xF3\xAD\xFC\x91\x81*\xA2[\xEB\xEF\xFB\x8E\xE5"\x82Ye\xEB?\xEF\xCCi\xD0\xC6'\x92\xB9Ì¿8v
+;\xF3cÒ†Q\x81lPm\x92}\x9E at vL\xFF\x8E\xEEt\xED<*z,\xDBV[Q\x9D\xCC{\xA7\xC7\xE5\xDB#4\xB8\xCEo\x86&\xBF\xA8\xD7eN\xB0,ax@\xB4I\xF0\xB1\x86S\xAEj\x89\x83\xCER\xD8\xB2'WÖ•\xF0\x83\xB75q/86N\xAE\x89\xE1\xCF>\x9E\xE9\xEC\xEB\xD0"y\x8E\x92z\xB6\xA5\xAA\xD1\xE0g5\xE6\xEEzׄ\x96v\x80\xF8\x84\x8EH\xD7H\xF1\xE6C\x89,\x87\x8D\x81\x81\x8AF=W\jcР"\xF1\xCF~\xF7El\x98\x9F\x9594t\x99\xE0\x83.O\xB2)sk0v\xFD\xAA\x88\\x8D\xBBx$\xD8g\xB8\x96
+\x99?\x99Er.\xDD禭gxfp\x99r3\xA6\x86K\xEB6\xD7d\x94p\x8F\xB2W\xD3nH\xA5	\xAE&\x97E\xB2jIO\xD05\x94\xE0\xC8`
+c|1\xA3l\x8CK\xE2s\xEC\xB7\xE6&<-\xF8\xA5\xE4\xE58
+endstream
+endobj
+169 0 obj
+<</Length1 738/Length2 4177/Length3 0/Length 4780      /Filter/FlateDecode>>
+stream
+x\xDAmWy4\xD4}\xFB&d+\x86\x8A\xAC}\x91\xEC\x8Cƾ\x84k\x{19DC8D}\x99a&cf\xEC[!\x84\xEC"$k\xB6Ù²o\xD9\xC9"[d\x8D![^O\xBD\xCF\xF3\x9E\xDF9\xBF\xF3=\x9Fs\xEE\xED:\xF7u_\xF7\xFDÏ—\x97K\x8Fs7\xF1!\xA0\xC4E\xC4E\xC1r\x80\xB1\xBA\xB1\x858\xC0\xA2^^\x98+
+\xEE\x8E\xC1\xE3T\xE1\xEE(9\xC0\x85\x8CQ@\xFC6p\xA7\xE1`x\x82\x8F+\xC6\xED\xF0#~3,\x89qƸfx,\xDE\x83@
+\x9E\x9E\x9EÊžn\xA2\xAEwD\xCFA\xC6(\xE0\x8EF,
+\x80\xE9Xj\xE9i \xFCz\xA6\x80
+\x87r\x85c{,\xE8`(\x9CJ p\xC0\xBB\xD8?\x80\xC0㐘\xBF9\xB9\x89\xFE&\x80\xF3D\xB9\xBA\x9Fsp\xC5;\xBAj&*\xEA\xFAz&\x80L\xCC\xC0qH at G\xF3\x8Esw\x93;\xAFF!ܼ\xFF\x9ENp\xFF\xD7\xC2\xC2\xFF\xB5\xEC\xFF\xB5\xFEͺz\xFF\xB1Di\xC4\xC5$\xE1Ø£18\xB1\xBFu\xD3\xC29\xE0\xA9?a\xA4\xE1\x9F\xD49!\xB7s~ \xFF\xB9\x86 \xE5p^\xED\x81\xC5\xEA\xC1\x9DQ ?\xEFL\xF0pG\xB9\xBAx$\xCA\xC3qn犸b (\x8BÔ¼\xDDQ8$
+\xF9\xEE\x8C\xC1\xFA\xFC\xBF\xD0\xFFVh\xB9\xC3ϥQ\xC19\x9E\x8B	\xFE¸\xA9c\xBCQH\x8C\xFB\xB9\xFAp\xEC\xB9j\xBF\xE3\xE6\xA8?\xAB\xFA\xBB\xD1\xF4y+\xE0|\xC5H<\xEB\xF3߆\xE7s\xFDn'f\xA0\xAE\xAF\xD5\xFA\xF7"~\xA7\xD5p<\x83s\x8C\xDD\xCFŅ\xBB"\xFF
+\xFCN\xC01\xCE\xE9*\xFF\x9C \xFE?_\xEE\xEE\x8A\xF1\xEE\x83E\xFF\xBE\xF0\xDF\xDF?\x96\xF5\xFF\xAA\xA0P\xBC\xB7\x9F\xC8m\x88$ \x81H\xE2\xB20p\xFE\xFD\xBAWW\xCE\xFD\xF7\xCEg\xF9\xC7\xFF}Y(\x947
+A\xF3i\x8F\x90y\x90\Z诖3TD!4\xF4\xC1\xCETh\\x9Ctb\xA0\x89x\x9F\xF3\x8D\xB4]\xDAd\xFDnš\xE9u\x89c\xF0\xB1\xBD\xE2\xFC\xB79\xAD\xEFU\xDC\xF0XÔ¥\xE5\xBE\xFE(\xAEp\xEBq\xD6\xAFx\x8A\xFD\xDF\xCCf\x95\x87\xDBl\x91\x9B\xB18#\xF4ȉOw\xDCS\xA6>\xF6K\xA4\xBD\s\xD7%_\x91AC<Ê®\xA0\xAE\x95479\xBA\x87\xD3\xB0\xE6cL\xBDwz	\xF5E\xA84\x84~\x92\xBDe\xAF\xF4c\xE1Ó…\xB0\xCC\xE0\xF9KD^[tv\xE1c\xC2R\x98\xE5w\xC7S\xAD\xA1h/$\O\xEC\xE0F`\x8F\xA6\xB15\xE6m\xB9\\xF1i\xFEZ\xED\xE6\xFC\xB9\xFC;\x9E>\x81\xE0¸nktr at h\xCF8\xE6y #*\xFDhG\xFC\x87[\xBA0\xB3P,\xB8\xE6\xD9Z\xBF~zWÞŒgV\xCBÓ«\xEC?\xB1\xCEU\xC2eu\xF9Z'd4\xC136ÚŸ\xE7u\xA8\]>\x9A\xC3o\xEA\xFF \x90pW\xF0J\xBB\xBB\xA5\xD1	f*\xAB\xF2Ó¨w\xF0\xB8
+:\x8A\xD2&\xD8s\xC0\xB3J\xD0`\xADL\xBCPxJ~`9s\x9D_\xDE\xC9F\xA5oG\xE2Jh\xAE\xC3л\xFA
+\xB3$\x99\xA6lCP\x8A\xF6\x8B&\xC3;\x8Ar\xF7\x89k\x97^?\xB1d\xA0\xF3 \xCD1d\xE1/\xA2*\xFFe\x90\xB6\xAD~l\x95Ø«\xE1e\xB1\xBFf\xB1b2Z?\xC9sYrÙ•U\xF6\xC8L\x99\xDB\x92\xF4\xF2_u+\xE7\x9C\x81Ç“g\\x81@\xC8\xFAwg\x9C?i\x8A\xDB\xE36\x9D\xF5\xAEoDL\xEB\xEA6\xF1A\x96A)\xAF\xF40n\xB8]Ò°\x87\xB9\xB9_^\x9B at p\xBF6\xF4\xB1\x8D\xD6|\xF9\xA9Zt\xCB\xDF\xC5D\xEF\xF9\xFAk\x98Fc}\xB8\xFF\xA2hj
+\xDF\xC3z\xB7\x87\xDFl\xABc\xF0;A\xAE\xFB,\xFD>\xCAW\xCF(\xDBÓ–\x8Fi5\xD3\xF4\xD65x
+\xB9\xC4Z\xBE\xFB3Ѷ\xE8\xD6Q\x8F7\xEC\xFC,vË·M+\xC9\xF8\x8A=x\xE2\xD2\xE9dr*\xE8B\xB7\x8B\xDE\xF9\xC2\xE8\xF9\xF0ã‚€u\xE0'V\x86\x85\xEF\xF6\xAD\xD6:\x82q<\x81"\x8D2\xB7\xB0Æ‚+{T\xD5
+\x92\xC3\xFE0\x8Cs\xEDAi\x9E<\xB1\xC7\xE8\xE8\xC2\xD3\xED\x89\xF4\xA5Ɵa#\xF6\x8F\xC5\xC89\x99\xA2Bk\x89\x88K4\xE3!9i5\xE2\xF1k\xA3)Y\x9F!4JO\xBD\xA4\xFB\xF2\xC3=:.B3\xFBA]C-&q\x8D\xCET\xA63K\xA5\xEC\xED\x9Aϣ2)\xC3\xD2\xF7\xE3\x94&\xE4\xE4\x9F$\x96\x95\xDFg\xE0\x99 \xA84\xEF-\xA5Z*\xC1j\x96\xB9\xBB)\x8DQ\xB2\xD9b\xBF<<TscTw\xD3\xECl\xE9՚\xCD/\xAD-\xA68\xC4/\xBE\xC2R_\xD6?\xA4\xE9\x88\xE8>iS\xF5\x8Dλx؜d2pV\xE5\xF3
+!\xDEwE\xD3\xF4\xAD\xE6\xCFP\x8C|\xDD䛑\x8D\xC5\x87\xFC$\x95\x84\x83\xB8ǭR6\xE6d\xED\xCD\xCA5,\xFEk}>\xC1\xB0a\x94(\xFF\x99L9\xC3d\xC1i\xC8T\x83\xC0`\x83\xA1\x9F!u?4\xA2\x8B\xD5s\xA8\xBF\xF9V\x97\x9Ai\xDCI\xFE\xA7\x83;l\xF2ZX)f\xDDK\xB6 \xA2\xB1\xC7\xFE\xC5\xF8:\xEA\xB8\x87\x88\xB93\xF5\xB3n\xCE\xEF\xFA\xA7h\xB6zsٌ\xB0\x9DX\xB7\x82\x87\xA7b\xE1\xF8m\xDF\xC2"k\xB66u\x8E\x9A\xE0x֑NA\xBF\x9C\xBD\xA5*\xAB\xB1\x96\xD5*q[\xFFQ\xFEqmd\xFB?\xFC۔v\x9BP1\xC2\xDA\xE8ƽ3+EG\x95\xEE\xC4f%\xB5\xCB\xED\xE9/\x96$\xF7+Iʏ\xF7Ȍ\xC3H
+>\xE6\xBC\xE8\x8A\xD3ڠ\xCC\\xE5~\xC0\xF7\x91\x99/\xAA\xA8\x8F-N\xBDw\\xAB\xD7\xFA\xB1v+\xEA\xC8i\xBF hS\xFA\xDA\xEAH\xAEQ\xE6V<\xDF͝\x80\xB2P\xA7\xDAUe3\xE7\x90+S\x87\xBE\xF16v񽔮\xFC\xAB\xCF\x91R\xE5\xBAc\xB9Ȑ^\xA2.\xAB\x8B\xC6c\xE0\xE1\xC8t54
+\xC8l\xB0~\xBC\xA2\x96\xCEȡ\xFELdd\xAAl\xA8\xE1;\xF0\xF6\xF9\xAD\xBE\x92\xE8\xDD+\xC7G[lO\xEFݎhuK\x8DkN\xF0\x97L'a3\xC0\x9C~\x87\x89\x81x\xFD9\x99:#Ĩ\x88\x87<\xD7)vѪ\x9FfW \xEF\xA7\xE5\xF9;\x93\xCEi
+|}9Q
+wA'\xCA[bR|n6H\x8D\xB0\xDB\xF6\xAB\xC1\x85fJ>\x88\xEEhK\xED\x84`\xF5\x87IYy\xCE\xFB^\xB3Wt\xEC\xA4\xCC)\xE9#0\x91\xD3=\xAA\xD7?90\x8D>\xF3\xF5 =\xE3{&\xBD\xE0W\xF0\xB9Kb\xBCVH\xB5\x99\xE7/\xB2\xAEv\x85*M\x8C\xAF룼ҹ˭\xD4\xCBw\xAEݵ4=apØ›\x8B\x97\xDEÚ†u\x99e\xCBpY}\x8BA\x96h\xAF\xF9Mng=m\x83\x9AWA\x82G\xD7\xD3Z\xE7\xF5ß‘\xE8N\xB1s\xAC\x85\xE8pA\x94\xDF\xE1\x97d\x9A\xAC\xA5$\xD3\xE9\x8C\xAE\xAC\x8B~y?\xFDUK=\xCEd5\xC1H_\xEF\xA9Y\xF9\xB86&Ј:O\xF8\xCBD\xEBG\x98\x89\xF8\xCB0\x80xe\x985\xD4\xEE;\xA3\xB2`\xB5-\xA4\x93~\x9A\x91\xBF\xA3\xD0\xDC\xBB\xFBmj\x9F)w]q\xEE\xAC\xED)\xEE\xD5\xF8\x94\xD8!\xBF\x8A\xB1Ù„\xCE\xF3\xC73\xA9Y>\xE2\xA3\xDC\xDF\xD6\x8F\xE2\x9B	VY\xA7F\x866\xC0;~\xD9\x99\x87\xA3\x97a_\xBE\x81u\xB5-\xC7\xD0	\xA1?\xEFÖ™\x9AY\x94\xB0d\xE8\x9A+\x90\xB6\xF2\x81\xE5\xB0\xDCVs9\x96\x99\x83*\xBE\xCD\xFDѨ2R\x88\xF4\x90\xEF
+\x8E
+\xF6\xEC\xF84y$2\xB9x\xF0\xF7\xFEE2\x9B\xE6\xBE"\xC2o\xEE\xE8\xE2\xA8T\x8A\x83L9\xE73&\xED\xD9\x9E4\x99C\xD7\xF9 \x89\xF2x\xAE\x89u\xE1f-\xA6\xA3A\xB5\xEB\xBB\xB7^f\xAC\xB9\xE5\xDC7\xBC\xD9RJ\xF2.\x8C\xB4*\xF26yRׄ\xC6]\xF4/\xEC\9\xB0]\xF5E\x98\xE1\xB8\xF42f\x9Ae\xB2D\xB7xs\xC5\xEB\xFBĉ\xFE\xCCݯ\x89\xDFv$8\xF3E\xB68`\x8C\xCCa\x8A}\x85G$\xF3\xBF\xCFl\xA4\xF7\xAB\xF7Z\xD0-Gw\x94\x92\x8Cs\xD2k\xEE]ÇŽ2\xDE=\xE9,G\x86.T\x84\xE5\x87:\x85H%\xE9\x8D\xEE\x85zY\xFDN\xBE\xD6q\x94\xB7Bß½\xB3:\xAA\xDCAø\x88\xDB\"\xE2_	\x87oRH8\x8CVR5Lß°\xDE\xF7\x99\xFC\xB8\xB8\xA3A\xBBÛ¯a\xC2\xEB\x9Bb\xB4\x84\xBBV\xE9!\xC24u\xEF\xA9\xF8\x85,_\x8F\x99\xA4\xCDa\x98O@\xF6hi\xF11m\DP߃\x83y\xA0צg@\xFE\xC1\xA2黯!VACo\xA8qR05y\xD6K\xBE&\xC5:\xBC\xC0d\x87e/Ob\x85в`\xB5\xF7pM\x98Ml\xA2\x88\x9D\x87|N\x82_ I;\xC0\$\xFA\x96\xA7\xEF\x8CX\xA1\x9D\x8D z{\xDFx\xE9 \xF2\xE8\xC2j\xED]\xB2\x97\xF1(\x86n\xA22CG\x96\x95_Z\xB4\x92\xBASt*;\xB6\xD6R&h&ï…‘\xC5\xD4V
+\xB4\xA8CFm\xEA\xF0&K\xA2\x8A\xBC\xD27\xE6\xDEM-\xF8A\xEA׬\xDDY\xB1\xE4T\xD0i\xE4\xA7 at 9Ϩ\xC1(\xE9\xA2\xEDT\xFB\xC6\xC8~\x9D\xF14\xDD\xAB	\x90\xB5¹E[\x89:8qitS\x92\xF7Ԋ\x96X\xEEc{\xF!
 2+\xE12F\x9F\xB3p\xF7{\xE5{Yu\xF2\xD7?\x84>\x91\xFDX\x96\xB7\xC8\xF1\xAE\xDF\x{118D9C}\x95\xEDp
+\x81v2q\xF5KK\xBEÄ•M\x8FÞ°\x94#o\xE9\x9F\xD2\x95n\;\xE2\xC7X\xD9\x933"\x81Tu\xBB\x9EH\x83n\xE7E\xC6謤E\xC3Lß“8\xF3+:\x93\xFEkw\xF9&\xFA;N\xE7_\x92'hg\x94\x9Fj\x82i\x9C.\x97DC\xA9轘5\xA8繎S7O\xCCæ®´3\x83<\x94\x83\xDF\xD9\xF0^\xFDxY\x965\xE8z\xAC&\xEDX\x8E\xA2\x85\xB2\xC28\xE6Zm/\xF5\xA4YI!;1ww\x8AY\x82.)7\xA7T\xE2
+\xEE\xF22J]z\xF5.CI5\xC7T\xCCZ\xEDVÛ¼p$fR\xE7\xA59\x9FDDU/s\xC0\xE6\x8E\xC1\xFEm
+jr\x91\xFAD\x8C\x95\x9BY`\xEFP\xE9\xC0#~'2~\xFB\xF8;\xF6\xE4~\xF1\xF7Q\xA9\xA9\xE8x\xDD\xA1\xF60\xFBH\xEF\xF4X\xBA\x8BS\xCBxJ}\x96\xBE\x96$\xD0\x98>\xF9Ù´yj\xE1Z$\xAA\xCB%av\x89zK\x92\xF1U\xFBqK\x8FF*H\xF0\xEBÓžOh\xF8Ùž1e\xFAڏ\xF4\xF0]\xE8\x92\xFB@=\xAD7Y\xACßœ\xA5\xB5,)\xCDv$\xE6\xFB\xBA\x85n\xD9\xA5\xB5\xB7%\xBB\xA6\xC3_&q\xE5`]\x85CN`\xAE\xFF'\x99\xC5\xDA\xE2\xF2j捷^\xDD\xF9\x8AE)q\xBC\xAAW6\x97\xBE\xCEp!\xA4#\xB7\xAE\xDA\xF5
+\xD1\xCAmDZSË‘\x92\xB4MC\xEA6x\xF7\xBFubmG:_O\xFC%j6fgk$\xB4\xF4\x86ݾMYP\xF2\xB8]\xF8[\xDB\xA8\xC1,\xD93[\x81\x92\xE7\xB3Fn\xEDځ\xFAs\xFF;b\xE3\xE5\x9E\xE2^\xA6\xC9\xCA\xC2V\xB9\xE8\x8D(\x9D\xE9\xAD7F\xBF\x94a?\xBE\x90\xA3\xB8[<\x9F\xEF\xABЧX߉oG\xF40#uc\xBB\xA8|
+\xC8\x86\x86\xDBro\xBF5.R\x8A\x82\xE2\xB2Ǹ\\x9Bڮ?\xBF\}y\xD8\xD0Et\x80\x9DƅDy\xC5?\xBC&s}\xB6%b\xB2\x9A\xE9Y_\x93\x83Wӂ\x80C\xE8+\xECŗt\xED|N\xCA\xCC\xCA\xCF\xF4
+\xCC4y\xE4%#檹X\x80W>\xE3\x8D\xE6^J3\x86\xBB{\x97Cz;\xD5C\xDA\xCA\x85\x84\xC7˵j\xCA;0գ9\xEBo&\xC9\xEE+<6\x80\xFB\x97<y\xC5\xCFpQ\xEE\xFA,\xC7ic\xF1\xF3=\xC4\xD1\x89V\xF9\xAFCo\x9C\xCAp\xBCϾ7\xFF\xE2\xD6>AU\xCBI\xBA\x82\xECk1K\xFC\xF1\xACQE\xCA\xFAdQ\x85Yo\xE4Q\xD4{\xEF\xFB\xE2\xBAr\xE8\xE6\xF7/\xBA\xAC\xA1ZU\x8D\xEA\x84N\x9D\xC9Q\xF6\xCBz\x9C\xC7\xCFe\x91H\xD1|Uu\xFAQ]\xCA;b\xF1\x98T\x86L@}s\xBEO$\xC2\xDE'ȭ\xD9\xF1\x8D\xCE8ͨrX\xE7\x99kS\xB44\xD1d\xCE\x80\xBE\xDE\x92\xBCz[\x9A>\x97\xBC\xD9P\xDD\xC9\xFD~\x8FSR0\xFB\xACy\xB1\xDC\xF45]\xA7 \xFB\xCBB-\xFC\x85\xDC==Q5\xB8\xB9\xF2\x9E\xACӍg\xAD\x99\xD6\xC8\xFC\xEC\xAA\x9B\xDEc.\xA5\x9F\x8B\xD2V$n\xE0\xE1^\x8C.F`\xC9<l0\xE1Y]\xB1 \xF5_ Nn\x8A\o\xF7o\xEA\xEAsSK3_W\x95PD\xD0W\xA6\xBD\xB2\xD8\xCC8{*[O\xE7D\xAA\xA8\xEB\xE1\xE6O\x93\xEE\xAFz\xA7 \x90%y\xC8S}25\x86p\xF3GY\xE6\xA9e\xE3>\x95\xBAj\xD2	X\xADI\xD0\xFA~%\xAD\xAB\xF2\xA8/g\xE0\x93\xF7N\xBA*N)\xAF\xB7!NU\xBB\xDD%k6\x9C\xA7\xA0\xB1\xCA\xB4\x9D\x90F\x80\xF0\x92R\x8A\xA95\x9F\xCD*\xE4
+\x9CN\xD0\xFE\xBAau[\xF7\x9BDψ(\xED\xEAcY\x92 \x89캠\x9F\xD4\xC9_\xA7\xD8cSV\xCDˈ\xEAyJ\xA9ӹ~\x93\x9D\xF7\xAD}\xEE`tv\x9CP\xC7	\xC6\xCC\xE4I\xCDE\xE8&\xBF|K8X\x96
+\xA2q\xC5m\xCD\xC8v4\x87\xB4\xD7!\xA4\x98\xBCPÏ£\xF0\x80\xA3%\x95t\xBF\xC8U4,#EDW\x9B\xD0t+
+\xC1\xDA_[\xE0.ʧe\xEEI
+\x92wm\xA0צlQo\xED8mԵ
+5_\xAC\x9BΫ\xC9\xC9\xDC\xE9l\xE0\xD3$\xE72\xF5mR\x8B\x93h\xC5:\xAD\xD6+y\xBA\xEDЃ\xD9\xDC1\xF5\xA1SA\xFF\x9Ah\xA7\xA3݈*\x98bIi\xCC\xFAkpC
+8\xAEi\xAE<\xB9	Õ“w2*K\xE4JQ}D\xAF\xFF\xBC\xF6~g\x97\xEA\xABwe\x8Bx ;\xDF:\xA9\xBArqE\xDAjq\x9E\xEF\xEC\xAB_`\x83\xB7T\x9C\xE2O\xBF\xBD\)\xAAZ\xB7\xEC\xDB\xEB22\x8F骶\x92\xA4SCnve\x92\xB6\xD7Y\xAD\xC2t\x83,g0\xEF9\x9D\xA5U7\xFC\xBA\xF8\xDE"\xC2\xB7_
+\xC4\xCF!\xEEO\xA6L\xE0-\xDAi7\xACb\xFB\xF8KU\x94\xC2+av\xB7:\xE8c\xA7d$\xED\xD8&\x8FT\xF6v\xDFl\xDEÓ–\xA25\xEE\xE0\xB5l\x8A\xA2\x80K\xA2dÙˆ\x84\xD3\xFFkmc\xE0r\x85C*\x95~p)2 \xE6\x91\xF4ײ\xC95!\xE7\xA8\xC8\xEDW\xBB\xB3X\xA0\xD5j7(qkQQ\xD6\xA7|2\xF0\x85dFA\xEBÞ›\x8F\xE1M\x8B\xDE\xE4E)Acn)>\xB3\xB1F\xC6e\xE0\xD8pН\x8C\xAB\xBC\x88\x9B\x9A\xEBd\xD0p\xD3흦k\xD1\xB7c\xEB\x98\xEAGk\xA95\xC9\xC6\xF1pW\xB7\x97.\xB2M\xDA\xF0\xD0]\xBD'0J\xEA\xBE.\xB9Q)r:,\xEF㹤\xBE\xC4cjP\xE6\xD6\xEDÓ¯\xECË©7Y\x89nV\xF1	\xC2\xBE\xEDli	\xA5\xC8P\xD2
+\xE0\xEEY)\x8Bo\xE8\xCD$\xF6)T\xA7ùӕZk\xD4\xDB&K\x8B\xD4\xC6S\xBC.r\xAFL\xEF\xAB\xD8\x80|A\x8D\xD83\xC3[\xB7\xDFs]}\xFC\xB9\xD4o0ߢ\x85\xCC\xD5oOM88\x9F\x9C\xB0pÕ‡G\xBF]\xFEvRɪ\x80k\x9A\xBC5r\xA4:<\x96^>BÏ£\xA7\xE9w\xD5KR4\xBDy\xFFL\x91Z`\xBF\xC2\xF3\xE8\xE3G\x99AG\xD6[2EJ\x94$\xB6\xF5\xF8
+\xD7p"{\xF6\xF2\xE6|\xA7\xEF\xA0\xE8\xF0 sbu\xF9\xFAY\xD6Y\xF8Y>\x8C)\x8B>c\xB8j\xFDLjlz/\xD1z\xF4J\xB4,\xD5\xCA,\xB6~H\x90S.\xD8\xEDI\x8A%6s^\xF6t\xF8\xB9\xEE\xE4n\xEC\xEF\xCB\xF00\xCA\xB9\xBB\x93mMM*f\xCF\xDB\\x9DQB\xFF\xB1mH	eE\x89\xB8K\x8AÈ­\xE7\xC8
+\x9Cn\x8C\xA8 B\xA6\xFDH̕\xEB\x94ъ\x90\xF3\xDFԵ\xDFu*\xE3[{\xFCz\x9F\x8F\xD2sY]\xC7uC\xFBbL\x925rL\xFB(z\xC0\xB0\xE8lD-P9U\xD0Y+\xA9\xCCQ{\x96\xD0a\xC3\xF8\x8A\xE7A͙s\xE3=\x91\xE3F\xDC\xE3\xB1\xD5\x93\xD9\xE4s\x81~R\xC3Kz\xBB-\xA1\xAAT\x9A\xE5R\xEB\xB7\xC4\xEC\xDC\xEA\xB2sGȆ\xEE~p\xA7\xA8l\xDFN&\xBBn#\xA1 \xD9%\xB81`H,t\xD9\xF9\xFE\xCB
+endstream
+endobj
+175 0 obj
+<<
+/Author()/Title(rubikpatternsLIST.pdf)/Subject(Rubik\040cube,\040Rubik\040bundle)/Creator(LaTeX with hyperref package)/Producer(LuaTeX-0.95.0)/Keywords(Rubik\040cube\040LaTeX)
+/CreationDate (D:20170305143157Z)/ModDate (D:20170305143157Z)/Trapped/False/PTEX.FullBanner (This is LuaTeX, Version 0.95.0 (TeX Live 2016))>>
+endobj
+155 0 obj
+<</Type/ObjStm/N 23/First 188/Length 1171      /Filter/FlateDecode>>
+stream
+xÚ­W[O\xE3F~\xE7W\x9CG"\x94\xCE\xC5s\xB3\xB4B\xCAeSh\x93eKX\xC9\xF2\x83I\x86`)Ø©\xEDl\x97\xDF3\xB6\xE3\xD8!\x81V-\xC2\xCC|\xE39\xF7\xEF\xCC&P`Ò€\xE7\xF9\xE0q\x90\x82S\x94\xD2820\x9E\xF8\x82\x81Ç€1!+`\#R\x98p\x95(_\x9C1\x8E\xAB>\xE0\xE1\xDFP@\xAD\x9C\xFA\x84\x9C;(\x86\xA3\xC1?\xF8\xAB|\xDC\ `G\x83\xDFK)AW\xCC?c\x9A\xE3\xC4\xD9\xD2(ࣻL\x9Ch\xEF,\xE0:\x90\>\xA1\xC7\xF6S\xB1\x9BVд\xE1{O(\xFC\x8E\xA4\xA7$Cŏ\xBD
+5\xED(Ѝ\x82P\xEB\xEAE#\xED\x97!\x85\xBE\xFCH2d\x{1349CC}u\E\xAC\x82j4\xD5\xC8\x9F\xC3\xF0\xEC\xD3'\xF2\xEDuc\xC9$M\x8A\xB1\xCDY\xBC)Ҭ\x84_\xA2K\x86W\xF7\xE3\xF9\xF0b:\x9B\xA5I\xCAh\xFF֮\xB6\xEB7\xAC\xA3U\xA2\xDC8\xA6?\x83\xBE\x90\xFAS\xA0]\xD1)S!\xE4\x9B% \xA3hse\xE3\xD5s\x8A1\xE2L\xB9WN\x80\\xD1:^\x92\xD5\xDA%\xF3¾\xDCc\xCD%\xF9^\x8F\x95v&\xF1\xDA:\xDAh$\xF0-]\x8F\xE7\x95K\xE5\xE0\xE5e'2\xDF>\xB8J>'\x8Bt'+r\xBDD\xABq\xF1ڿ"\xC3(\xB7\xE5\xD6S!V>.#4\x8C\xDB\xF2\xC05	Z
+ɷ\xF4.\x89Q\xA1E\xE3\xFE{\xC6\xD1E\x87+>\xB4\xD7-A٢.\xCE\x9C\x89&\xE2\xD7\xD3s\x9D<\xA5h\xE3\xBC\xC8^\xE1|\xB0Lm\x8F\xDCdK\x9Ba\x98p\xBE\x8B\xB3\x87\xBEl6k\xFB\xE2\x92M/\xF1\x9B\xC8B\xFA\xA1\x874c,\x944T\x85Rbs\xA9P\xA9\x80K\xEAh-RW\x8Fq\x9Ba\xA5\x90%B\x8A*\xD7\xEAR\x84\xBE	<|\xC1\xA8d\xD4/w|̬߮\xFF\xB8L0
+\xB7\xE9K\x940\xFD\xB5(\x85>7xy\xEE\x94a\xC8܆[\xDA\xDC2Þž[(q\x94[\xB8\xE7\xB5\x94ס\x96\xE2\xFF\x91Z'c|\xCB-\xF5\x86[J\xFE{n\x9DN\xEA\xB9\x94Ø‘\x8F\xFC\xFF\x8F\}\xF20\xBB\x9A\xCE.F\xB3\xCF\xDF=Ri.\xB0l>6\xDE:\xB4\xE6M\xA1m\x95\x99(=Zd\xA1;E=G\xD6\xF4\x9C<f\xD1\xC2>\xF1f\x99\xFE\x95\xAC\xEDS\xD1]Éœ\xC4~i\xBB\xE9n\xD9n\xCA
+\xBD\x864\x98?}\xA4L\xC7b\xFF:\xB9\xF9uxu1\x9F\xCC1vz4zO\xE2\x89\xE8!\xCF}\x8F>M\xF4\x9A\xB36\xCB}\xB1O Cp,\x92\xEE \xCD>C2&2%\xB7\xE4\x8E\xFC\xB9M\xFB6\xA2\xC3C\xAD\xE1\xF88~z\xB2\x99M6<\xBF%\x8E_d\x88\xDDGÆ 12ЊL\xC1prF\x92\xBB\xF0\xBDb{\xF6\xB0㐲\xD5y8\x89\xB3\xBCp\xD1\xE0	'Ó¨\x92<\xC4\xCB\xE29Ç©\xF7Q߶\x8C\xBE)ˁYM\xCCb\xE0\x8DU\xD32ZM\xAE\xC0}u\xBD\xF8\xADld\x94n\xB1n\x86\xFC/\xF3\x80\x97}\x8F*É«\xA1Z\xAC\xEE\xA8Z\xAA\xF0A\x97C;\xA37\xDBb'6\xAF\\x84\xEAvt\xAF\x8F\xB3Ò \xACE\xE2kÌ«\xF6@\xE5$\xBA\x96\x95\xA7\xA9\xAEaf\xB8ï´½\xFF\x95\xAD\xA5\x98>-UFB\xBEØŸ;\xFBm
+L\xED4x\xA75\xB0\xBD\x86\xB7>0^k\xF0O*\xD0-yy(ojqqL\xBC\x92i\xD5\xCD5n\x9C\x8F\xD3E^DY\xD1\xAF*\xCAy\xA9\xEDÖƒ\xAAV\xE7,\xAE\x83\xDCoa\xDE\xC3s\xA8\x85\xBDTwy\x8Db\xD3\xC2\xD5\xF1V\x88\xDB\xFAu4ma\xD3S\xE3\xDC.\x8A8M\x9C\xEC`	\xBD`\xA2\xBB\x84\x8E0\xD3]B_*
+\x87d\xBF\xC4E7\xECÖ¶\x9A{\xD8#\xD2^Þ‘\xA3\xA3tU\xB3]Tu\xDEqt\x9Fi\x97\xD8\xF2\xDF9Qn\x9E\xE1\xADG\xEEr\xDB\xF0\xF9fc\x93Ai\xFFA\xA8\xAD\xFC
+q\xBA\x92\xF5
+endstream
+endobj
+176 0 obj
+<</Type/XRef/Index[0 177]/Size 177/W[1 3 1]/Root 174 0 R/Info 175 0 R/ID[<DD89A24C526E1E24DA9FBECE2EDC1684> <DD89A24C526E1E24DA9FBECE2EDC1684>]/Length 494       /Filter/FlateDecode>>
+stream
+x\xDA%\xD3KlLa\xC6\xF1\x{1E97B6}Ú¡-:5\xEEÓ–\xBA\xB7\xB4\xAE\xA5\xEAV\xE3^:-e\xD45\x84
+!l,\x9A\xAE\xBA\x94.\xBE4\xB1\xEB\xD2F"\xC4\xC2FÓ­\x8D`Cb\xD3\xA9\xC4B\x82\x84\xEF\xFFv\xF3Ë“\xE7}\xCFw\xCE\xE4\x9C13\xFBWd\x96\xB4 at +l \x93M\x8Eif$\xCC&	\x8A\xA0\x92ni+\xA1\x9A\x94@	\xD4\xD2U\x91J\xA1\xD6\xD1q at 2Ê¡\xAAdV\xE9\xB7L\xC1\xF68%\xF8-/@?\x9C\x82^8Δk\x83_qr\xB0\x87\x8E\x929P-KM\xF8\xC9\xFE\xCC\xB0
+6\xC3\\xA8\x91\xD5\xFE\xF1\x954̇\x8C\xAC\xE1\xBAw\xF3`,\x905_\xF3n!da\xB1\xAC\xAD\xE0\xDDh\x80:Y.\xE7]=4\xC2rX	\xAB`5\xAC\x85\xF5\xB0T\xD6sׯh\x86\xB0\x9A`l\x94\x86\xE2\x9B)L\xFA\xDE&Ù¥\xA7\x9E\xB6\xC0V\xD9\xE5\xD18\xBDR\xE1]\x9B\xEC\xD6OÛ¡]v\xFBm\x9C\xDEi\xF1n\x87l\xA0\xDD\xD3N\xD8%\xEC\x8A\xD3\xC1g\xDE\xED\x96\xDD\xFF\xE2i/t\xCA\xFC\x88Ó‡y\xEF\xF6\xC9\xA7<\xED\x87\xB2\xE1\xA68~\xE4\xDDAY\xF3t\x98\xB7\xE0\xEF\xF7\x85.\xD9Ƚ\xB8<\xF2\xCBW\x8EÉž\xB7zꆼ\xEC\xC5\xEF8}\xD9\xEF]\x8Fl\xAC\xCE\xD3	8)\xEF\x8C\xD3\xF1\xA9\xDD'{7\xE0\xE94d\xEF_\xC5釬wgdC\x9E\xCE\xC29\xD9׏q\xFAm\xEAn\xE7e\xDFz\xBA\xC8C\x9A\x94\xA7\xCB\xE1\x83 )\xDD\xE8\x89o<K\x99\x92\xB8\x97\xB9\xEA]"e?{*\x95\xEA?y*\x93:z=\xF1e\xFF\xE3\xF0\xFD\x85HK\xDD7\xE3}\xAF\xED?\x94\xDD\G
+endstream
+endobj
+startxref
+88512
+%%EOF

Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.sh
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.sh	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.sh	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,9 @@
+
+## rubikpatternsLIST.sh
+## run twice to get hyperref-links correct
+
+ pdflatex  --shell-escape  rubikpatternsLIST.tex
+ pdflatex  --shell-escape  rubikpatternsLIST.tex
+
+## echo "...checking error file" 
+## grep ERROR  ./rubikstateERRORS.dat

Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikpatternsLIST.tex	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,305 @@
+%% rubikpatternsLIST.tex  
+%% part of the rubikpatterns package v 4.0
+%% authors: RWD Nickalls & A Syropoulos
+%% 03 March 2017
+%%------------------------
+%% this file uses the rubikrotation package
+%% run this file as : $ pdflatex  --shell-escape  rubikpatternsLIST.tex
+%%------------------------
+
+\documentclass[a4paper]{article}
+
+%------LUA-----------
+\usepackage{ifluatex}
+
+\ifluatex
+  \usepackage{shellesc} %% for use with LUAlatex
+  \usepackage{fontspec}
+\else
+\fi
+%--------------------
+
+
+\usepackage{tikz}
+\usepackage{rubikcube}
+\usepackage{rubikrotation} 
+\usepackage{rubikpatterns} 
+%--------------------------
+\usepackage{url,ifpdf}
+%---------------------
+\ifpdf
+  \usepackage[verbose]{microtype}
+  \usepackage{cmap}
+  \usepackage[pdfencoding=auto]{hyperref}
+
+  \hypersetup{%
+     pdftitle={rubikpatternsLIST.pdf},
+     pdfsubject={Rubik cube, Rubik bundle},
+     pdfkeywords={Rubik cube LaTeX}
+     }
+\fi
+%%-------------------
+%-------------
+\pagestyle{myheadings}
+\markright{\texttt{rubikpatternsLIST.pdf} \ \ 
+(Rubik bundle v4.0,  March 03, 2017) }
+%-------------------------------------
+\newcommand{\ShowPattern}[1]{%
+\noindent%
+  \RubikCubeSolvedWB
+  \RubikRotation{#1}
+  \ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}
+  \hspace{0.5cm}% was 1cm
+\begin{minipage}{9cm}
+\noindent\ShowSequence{,\ }{\texttt}{\SequenceShort},
+\newline\noindent\texttt{\SequenceInfo}.
+\end{minipage}
+}
+%-------------------------
+
+
+
+%======================
+\begin{document}
+
+
+\ifpdf\pdfbookmark[1]{Title}{Title}\fi
+\title{List of Rubik patterns\\%
+\smallskip\normalsize\texttt{www.ctan.org/tex-archives/macros/latex/contrib/rubik/rubikpatternsLIST.pdf}%
+\footnote{This file is part of the Rubik bundle. To generate this file, 
+use the following command: 
+\newline \texttt{\$ pdflatex --shell-escape  rubikpatternsLIST.tex}}}
+\author{RWD Nickalls\,\footnote{email: \textsf{dick at nickalls.org}}%
+  \ \ \& A Syropoulos\,\footnote{email: \textsf{asyropoulos at yahoo.com}}}
+\date{March 03, 2017 (v4.0)}
+\maketitle
+
+
+%==========================================
+\section{Rubik patterns}
+
+
+
+A Rubik pattern  is the configuration generated by a sequence of rotations 
+(or `moves') from some initial starting configuration (typically a `solved' 
+configuration). For example, `sixspot' is a well known pattern  generated  from 
+a solved Rubik cube by the  rotation sequence  \texttt{U,Dp,R,Lp,F,Bp,U,Dp}, as follows:
+
+
+\bigskip
+
+\noindent\hfil%
+\RubikCubeSolvedWB
+\ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}%
+\RubikRotation{\sixspot}%
+\quad\SequenceBraceA{sixspot}{\ShowSequence{}{\Rubik}{\SequenceLong}}\quad%
+\ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}%
+\hfil%
+
+\bigskip
+
+
+\medskip
+{\noindent}The code for this image is as follows:
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz}
+\usepackage{rubikcube,rubikrotation,rubikpatterns} 
+...
+\noindent\hfil%
+\RubikCubeSolvedWB%
+\ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}%
+\RubikRotation{\sixspot}%
+\quad\SequenceBraceA{sixspot}{%
+                        \ShowSequence{}{\Rubik}{\SequenceLong}%
+                        }%
+\quad\ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}%
+\hfil%
+\end{verbatim}
+\end{quote}
+
+
+Note that the  appearance of a pattern generated by  a given rotation sequence is,  
+of course, sensitive  to (a)~the particular colour configuration of the solved 
+cube used, and (b)~the initial  orientation of the cube.
+
+
+The initial condition   associated with all the pattern images shown in this 
+document is the  solved form of the `WB' colour configuration 
+(White opposite Blue), since this is the solved cube colour configuration used 
+by the Reid website, from which nearly all these patterns are drawn.
+
+
+The following image shows the WB cube form (set up using the command 
+\verb!\RubikCubeSolvedWB!) displayed in a  semi-flat (SF) mode 
+(\verb!\DrawRubikCubeSF!) so we can see all the faces 
+---see the \textsc{rubikcube} documentation for details.
+
+\bigskip
+
+  \RubikCubeSolvedWB%
+  \ShowCube{2cm}{0.5}{\DrawRubikCubeSF}%
+
+\medskip
+{\noindent}The code for this image is as follows:
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{tikz}
+\usepackage{rubikcube,rubikrotation} 
+...
+\RubikCubeSolvedWB%
+\ShowCube{2cm}{0.5}{\DrawRubikCubeSF}%
+\end{verbatim}
+\end{quote}
+
+
+
+
+
+\section{Typesetting}
+
+The remainder of this document just  displays the various patterns made available 
+ with the \textsc{rubikpatterns} package. 
+We display the patterns using the following   \verb!\ShowPattern! command, which
+uses the  \verb!\RubikRotation! command (from the  \textsc{rubikrotation} package),
+and  takes the pattern macro-name as the argument:
+This command draws the cube from the right-upper (RU) viewpoint, and shows the 
+rotation sequence and metadata.
+
+\begin{verbatim}
+%----------------------------------------
+\usepackage{tikz}
+\usepackage{rubikcube,rubikrotation,rubikpatterns} 
+...
+\newcommand{\ShowPattern}[1]{%
+\noindent%
+  \RubikCubeSolvedWB
+  \RubikRotation{#1}
+  \ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}
+  \hspace{0.5cm}%
+\begin{minipage}{9cm}
+\noindent\ShowSequence{,\ }{\texttt}{\SequenceShort},
+\newline\noindent\texttt{\SequenceInfo}.
+\end{minipage}
+}
+%------------------------------------------
+\end{verbatim}
+
+\pagebreak
+
+For example, the first pattern below (Pons Asinorum) is typeset using the following  
+command:
+
+\begin{verbatim} 
+\bigskip\ShowPattern{\ponsasinorum}
+\end{verbatim}
+
+
+%-----------------------------
+\section{List of Patterns}
+
+\bigskip\ShowPattern{\PonsAsinorum}
+
+\bigskip\ShowPattern{\CheckerboardsThree}
+
+\bigskip\ShowPattern{\CheckerboardsSix} 
+
+\bigskip\ShowPattern{\Stripes}
+
+\bigskip\ShowPattern{\CubeInCube}
+
+\bigskip\ShowPattern{\CubeInCubeInCube}
+
+\bigskip\ShowPattern{\ChristmasCross}
+
+\bigskip\ShowPattern{\PlummersCross}
+
+\bigskip\ShowPattern{\Anaconda}
+
+\bigskip\ShowPattern{\Python}
+
+\bigskip\ShowPattern{\BlackMamba}
+
+\bigskip\ShowPattern{\GreenMamba}
+
+\bigskip\ShowPattern{\FemaleRattlesnake}
+
+\bigskip\ShowPattern{\MaleRattlesnake}
+
+\bigskip\ShowPattern{\FemaleBoa}
+
+\bigskip\ShowPattern{\MaleBoa}
+
+\bigskip\ShowPattern{\FourSpot}
+
+\bigskip\ShowPattern{\sixspot}
+
+\bigskip\ShowPattern{\OrthogonalBars}
+
+\bigskip\ShowPattern{\SixTs}
+
+\bigskip\ShowPattern{\SixTwoOne}
+
+\bigskip\ShowPattern{\ExchangedPeaks}
+
+\bigskip\ShowPattern{\TwoTwistedPeaks}
+
+\bigskip\ShowPattern{\FourTwistedPeaks}
+
+\bigskip\ShowPattern{\ExchangedChickenFeet}
+
+\bigskip\ShowPattern{\TwistedChickenFeet}
+
+\bigskip\ShowPattern{\ExchangedRings}
+
+\bigskip\ShowPattern{\TwistedRings}
+
+\bigskip\ShowPattern{\EdgeHexagonTwo}
+
+\bigskip\ShowPattern{\EdgeHexagonThree}
+
+\bigskip\ShowPattern{\TomParksPattern}
+
+\bigskip\ShowPattern{\RonsCubeInCube}
+
+\bigskip\ShowPattern{\TwistedDuckFeet}
+
+\bigskip\ShowPattern{\ExchangedDuckFeet}
+
+\bigskip\ShowPattern{\Superflip}
+
+\bigskip
+
+
+%------------------------
+\section{References}
+
+\begin{itemize}
+\item Fridrich website (Fridrich J). \ \ \url{http://www.ws.binghamton.edu/fridrich/}
+See the `Pretty patterns'  webpage 
+\url{http://www.ws.binghamton.edu/fridrich/ptrns.html}
+
+
+
+\item  Kociemba website (Kociemba H).  \url{http://www.kociemba.org/cube.htm}
+ {\newline}---for superflip see: \url{http://www.kociemba.org/math/oh.htm}
+
+
+
+\item Randelshofer website (Randelshofer W).  Pretty patterns. \url{http://www.randelshofer.ch/rubik/patterns/U080.01.html}
+
+
+
+\item Reid patterns web page (Reid M).  
+\url{http://www.cflmath.com/~reid/Rubik/patterns.html}
+
+\end{itemize}
+
+
+\begin{center}
+------ END ------
+\end{center}
+
+\end{document}
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figA.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figA.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figA.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figA.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figA.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figB.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figB.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figB.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figB.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figB.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figC.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figC.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figC.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figC.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figC.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figD.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figD.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figD.pdf	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figD.pdf	2017-03-06 21:58:50 UTC (rev 43415)

Property changes on: trunk/Master/texmf-dist/doc/latex/rubik/rubikrot-doc-figD.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/rubik/rubikrotation.1
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikrotation.1	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikrotation.1	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,26 +1,27 @@
-.\" copyright (c) 2015 A Syropoulos and RWD Nickalls
+.\" copyright (c) 2014--2017 A Syropoulos and RWD Nickalls
 .\" rubikrotation.1
 .\" place this file in: /usr/share/man/man1/
 ..
 .TH rubikrotation.1 
 .SH NAME
-.B rubikrotation (v3.0)
+.B rubikrotation (v4.0)
 .SH AUTHORS
-A. Syropoulos and R.W.D. Nickalls (September 25, 2015)
+A. Syropoulos and R.W.D. Nickalls (3rd March 2017)
 
+ dick[at]<nickalls><org>
  asyropoulos[at]<yahoo><com> 
- dick[at]<nickalls><org>
 
+
 .SH DESCRIPTION
 .B rubikrotation
 is a Perl script for processing Rubik cube rotations. It is part of the LaTeX rubikrotation package, and is typically CALLed by rubikrotation.sty. See the package manual for full details (type at the commandline: texdoc rubikrotation). Both the rubikrotation and rubikcube packages are part of the LaTeX Rubik `bundle'. The latest version can be downloaded from
 .PP
-CTAN: tex-archive/tex/latex/contrib/rubik/
+CTAN: mirror.ctan.org/macros/latex/contrib/rubik/
 .PP
 rubikrotation reads Rubik configuration data and instructions from an input file, and writes the new configuration data to an output file. The input and output filenames can be  specified as command-line arguments (see: command-line use). 
 
 .SH COMMAND-LINE USE
-rubikrotation  [-h] [-o  <outfile>]  -i  <infile>
+rubikrotation  [-h|--help|-v|--version] [-o  <outfile>]  -i  <infile>
 
 .B -h  
 displays the help info and exits.
@@ -27,7 +28,7 @@
 
 .B -i  
 defines the input filename.
-Typically the file rubikstate.dat which is generated by the LaTeX RubikRotation{} command.
+The default input filename set by  the rubikrotation package is rubikstate.dat, and this is generated by the LaTeX RubikRotation{} command (see the rubikrotation LaTeX package manual rubikrotation.pdf).  Note that the rubikrotation perl script expects the input file to have a certain structure, as described in rubikrotation.pdf and rubikrotationPL.pdf). 
 
 .B -o  
 defines the output filename.
@@ -34,7 +35,7 @@
 If no output filename is given then the default filename rubikOUT.txt is used.
 
 .SH SEE ALSO
-The rubikrotation package manual (rubikrotation.pdf)  and examples, and also the rubikcube package manual (rubikcube.pdf) 
+The rubikrotation Perl script manual (rubikrotationPL.pdf), the rubikrotation LaTeX package manual (rubikrotation.pdf), examples (rubikexamples.pdf), the rubikcube LaTeX package manual (rubikcube.pdf), and the rubikpatterns LaTeX package manuals (rubikpatterns.pdf and rubikpatternsLIST.pdf). 
 
 To view  rubikrotation.pdf, type:  texdoc rubikrotation
 
@@ -42,7 +43,12 @@
 
 To view  rubikcube.pdf, type:  texdoc rubikcube
 
+To view  rubikexamples.pdf, type:  texdoc rubikexamples
 
+To view  rubikpatterns.pdf, type:  texdoc rubikpatterns
+
+To view  rubikpatternsLIST.pdf, type:  texdoc rubikpatternsLIST
+
 .SH BUGS
 Please report bugs to Dick Nickalls or to Apostolos Syropoulos.
 

Modified: trunk/Master/texmf-dist/doc/latex/rubik/rubikrotation.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/rubik/rubikrotationPL.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/rubik/rubikrotationPL.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rubik/rubikrotationPL.tex	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/doc/latex/rubik/rubikrotationPL.tex	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,1333 +0,0 @@
-%% rubikrotationPL.tex (v3.0)
-%% Sept 25, 2015
-%% document the perl program rubikrotation.pl
-%%********************************************
-%% use pdf only to get the landscape version
-%% remember to manually adjust long lines in the writestate sub
-%%********************************************
-
-\documentclass[a4paper]{article}
-
-\usepackage{url,ifpdf}
-
-%% need to widen the page for the code
-\addtolength{\textwidth}{4cm}
-\addtolength{\oddsidemargin}{-2cm}
-%-----------------------------
-%% use pdflatex only (to use landscape)
-\ifpdf
-  \usepackage{pdflscape}           %% landscape environment 
-  \usepackage[verbose]{microtype}  %% pdftex  nicer margin alignment
-  \usepackage{cmap}                %% make the pdf searchable
-  %% use hyperref
-  \usepackage[pdfencoding=auto]{hyperref}
-  \hypersetup{%%% pdftex,  
-        bookmarksopen=true,
-        bookmarksnumbered=true,
-        bookmarkstype=toc,
-        bookmarksopenlevel=2,  %% (book=0, chap=1, article=2)
-        %---------------------
-        pdftitle={Documentation of rubikrotation.pl.},
-        pdfauthor={RWD Nickalls and A Syropoulos},
-        pdfsubject={Rubik, rubikrotation}, 
-        pdfkeywords={TeX, Rubik, Rubikrotation},
-         }
-\fi
-
-\begin{document}
-
-
-\title{\vspace{-3cm}%
-       \ifpdf\pdfbookmark[0]{Title}{Title}\else\fi%
-       %% \strut\vspace{\baselineskip}%
-       Documentation of \texttt{rubikrotation.pl}\\ version~3.0}
-\author{Nickalls RWD (\textsf{dick at nickalls.org})\\ 
-  and\\ Syropoulos A (\textsf{asyropoulos at yahoo.com})}
-\date{Last revised: 25 September 2015\\ \smallskip this file: \texttt{rubikrotationPL.tex}}
-\maketitle
-
-\tableofcontents
-\ifpdf\pdfbookmark[0]{Contents}{Contents}\else\fi
-
-\section{Overview}
-
-This Perl program, is part of the \LaTeX\ \textsf{rubikrotation} package. 
-The two packages Rubikcube and Rubikrotation form the `Rubik bundle' 
-(available from \url{http://www.ctan.org/pkg/rubik}). 
-
-This program reads (as input) a formatted `data' file (typically the file \texttt{rubikstate.dat} when used with 
-the rubikcube package). The data-file  defines the 
-current state of the cube (using the keywords up, down, left, right, front, back), 
-and  includes special keywords (checkstate, rotation, random) which trigger   the relevant 
- subroutines to process the input data accordingly. Finally, the program writes the final state to
-a text-file (typically the file \texttt{rubikstateNEW.dat} when used with the Rubikcube package),
- and writes any error messages to the file \texttt{rubikstateERRORS.dat}.
-
-Version 3 onwards  uses the input and output filenames specified by the CALLing command-line, 
-the usage being as follows:
-\begin{verbatim}
-rubikrotation  -i <input file>  [-o <out file>]
-\end{verbatim}
-If no output filename is specified, then the default filename \texttt{rubikOUT.txt} is used.
-When used in conjunction with the Rubikcube package, then \texttt{rubikcube.sty} calls the program  and sets
-the input filename as \texttt{rubikstate.dat} and the output filename as \texttt{rubikstateNEW.dat}. 
-
-%%================================
-\begin{landscape}
-
-\section{The code}
-\begin{verbatim}
-#!/usr/bin/env perl 
-##
-use Carp;
-use Fatal;
-use warnings;
-##
-our $version = "3.0 (25 Sept 2015)";
-##---------------------------
-##
-##  rubikrotation.pl 
-##  VERSION 3.0 
-##  Copyright 25 September, 2015, 
-##  RWD Nickalls (dick at nickalls.org} 
-##  A Syropoulos (asyropoulos at yahoo.com)
-##
-##--------------------------------
-## changes in v3.0:
-## 1) accepts command-line arguments for input (mandatory) and output (optional) filenames
-##    default output filename is: rubikOUT.txt
-## 2) included the symbols [ and ] to denote a rotation-name label (ie as well as *)
-## 3) fixed some of the variable definitions (as highlighted by <use strict> pragma)
-##--------------------------------
-## changes in v2.3:
-## 1) accepts a single  commandline argument (datafilename)
-## 2) uses the standard modules Carp and Fatal (give extra  line info on error)
-##--------------------------------
-## changes in v2.2:
-## 1) changed licence --> LatexPP
-## 2) included random n errors in ERROR messages (lines 492--495)
-## 3) included version number in error message
-##------------------------------
-##
-## This file is part of the LaTeX  rubikrotation package, and 
-## requires rubikcube.sty and rubikrotation.sty
-##
-## rubikrotation.pl is a Perl-5 program and free software:
-## 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; either
-## version 1 of the License, or any later version.
-##
-## rubikrotation.pl is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-##---------------------------------------------------------------------
-## OVERVIEW
-## This program is part of the rubikrotation package, and is complementary to 
-## the LaTeX rubikcube package. It processes Rubik rotation sequences  on-the-fly. 
-## The program reads a datafile (rubikstate.dat) output by the rubikcube package 
-## and writes the new state to the file rubikstateNEW.dat, which is then input 
-## by the TeX file. Further documentation  accompanies the rubikrotation package.
-##
-## Note that all possible state changing rotations of a 3x3x3 cube are
-## either combinations of, or the inverse of, just 9 different rotations,
-## three associated with each XYZ axis.
-##--------------------------------------------------
-\end{verbatim}
-
-
-
-\subsection{Main}
-
-\begin{verbatim}
-\begin{verbatim}
-## This main module opens three files, and 
-##      sets up an array for collecting all errors (%error), and sets an error flag to "",
-##      reads in the rubik state data file =rubikstate.dat (output by TeXfile),
-##      and calls subs to write the TeX_OUT_FILE,
-##      and finally closes all files.
-## Each line of the input file consists of a comma separated list of arguments.
-## The first argument in each line of the file rubikstate.dat is the rubikkeyword.
-## Program is documented in the rubikrotation.pdf (see section ``Overview'')
-
-our $source_file="";
-our $out_file="rubikOUT.txt"; #default
-our $argc=@ARGV;
-our $commandLineArgs = join(" ", @ARGV);
-our $showargs="\tcommandline args = $commandLineArgs\n";
-our $usage="\tUsage: rubikrotation [-h|--help|-v|--version] -i <input file> [-o <out file>]\n";
-our $rubikversion="\tVersion: this is rubikrotation version $version\n";
-#
-## check for correct number of commandline  arguments and allocate filenames
-#
-if ($argc == 0||$argc > 4 ){ # croak if  0 or  more than 4 arguments
-        croak $rubikversion,$showargs,
-        "\tWrong no of arguments\n",
-        $usage;
-   }
-   else {
-        SWITCHES:
-        while($_ = $ARGV[0]) {
-        shift;     
-        if (/^-h$/ || /^--help$/ ) {
-             die $rubikversion,$usage, 
-             "\twhere,\n" . 
-             "\t[-h|--help]\tgives this help listing\n" .
-             "\t[-v|--version]\tgives version\n" .
-             "\t[-i]     \tcreates specified input file\n", 
-             "\t[-o]     \tcreates specified output file\n",
-             "\tFor documentation see: rubikrotation.pdf,\n",
-             "\trubikrotationPL.pdf and rubikcube.pdf.\n\n";
-        }
-        elsif  (/^-v$/ || /^--version$/ ) {die $rubikversion;}
-        elsif (/^-i$/) {
-              if (!@ARGV){
-                       croak $showargs, 
-                       "\tNo input file specified!\n",
-                       $usage;
-                      }
-              else {
-                  $source_file = $ARGV[0],
-                  shift;
-                  }
-        }
-        elsif (/^-o$/) {
-              if (!@ARGV) {
-                 croak $showargs, 
-                    "\tNo output file specified!\n",
-                    $usage;
-                    }
-              else {
-                $out_file = $ARGV[0],
-                shift;
-              }
-        }
-        elsif (/^-\w+/) {
-            croak $showargs, 
-            "\t$_: Illegal command line switch!\n",
-            $usage;
-        }
-        else {
-            croak $showargs, 
-            "\tmissing filenames or ? missing -i or -o switch!\n",
-            $usage;
-       }
-   } # end of while
-};   # end of else
-
-print "This is rubikrotation version $version\n";
-#================================ 
-  open(IN_FILE, "<$source_file")  ||croak "\tCan't open source file: $source_file\n";
-  open(TeX_OUT_FILE, ">$out_file")||croak "\tCan't open output file: $out_file\n";
-
-  ## create error file (for append)
-  open (ERROR_OUT_FILE,  ">>rubikstateERRORS.dat")||croak "ERROR: can't open file rubikstateERRORS.dat\n";
-
-
- ## use dots for Perl messages (I have used dashes for LaTeX messages in the .sty)
- ## gprint sub prints its argument (message) to both the screen and to the TeX_OUT_FILE
-
- gprint ("...PERL process..................................");
- gprint ("...program = rubikrotation.pl v$version");
-
-## setup  global error parameters, so we can write all the errors to a file as an array
-my %error       = (); # setup an array for error messages (was %)
-my $erroralert  = ""; # error flag
-my $errornumber = 0;  #set number of errors to zero
-
- gprint ("...reading the current rubik state (from File: $source_file)");
-
-my $dataline = "";
-my $rubikkeyword = "";
-my $rotationcommand = "";
-my @data;
-
- LINE: while (<IN_FILE>){
-          next LINE if /^#/;  #skip comments
-          next LINE if /^%/;  #skip comments
-	  next LINE if /^$/;  #skip blank lines
-          $dataline = $_; # grab the whole line as a string
-	  chomp $dataline;  # remove the line-ending characters
-	  #$n++; # count the number of lines
-	  @data=split (/,/, $dataline); # create an array called data
-	  ## we have 10 fields (0--9)
-	  ## check for rubikkeyword= up,down,left,right,front,back,checkstate,rotation:
-          gprint ("...$dataline");
-	  $rubikkeyword=$data[0]; 
-
-	  if ($rubikkeyword eq 'up') {
-                                $Ult[0]=$data[1], $Umt[0]=$data[2],$Urt[0]=$data[3],
-                                $Ulm[0]=$data[4], $Umm[0]=$data[5],$Urm[0]=$data[6],
-                                $Ulb[0]=$data[7], $Umb[0]=$data[8],$Urb[0]=$data[9]
-                                }
-
-	  if ($rubikkeyword eq 'down') {
-                                $Dlt[0]=$data[1], $Dmt[0]=$data[2],$Drt[0]=$data[3],
-                                $Dlm[0]=$data[4], $Dmm[0]=$data[5],$Drm[0]=$data[6],
-                                $Dlb[0]=$data[7], $Dmb[0]=$data[8],$Drb[0]=$data[9]
-                                }
-	  if ($rubikkeyword eq 'left') {
-                                $Llt[0]=$data[1], $Lmt[0]=$data[2],$Lrt[0]=$data[3],
-                                $Llm[0]=$data[4], $Lmm[0]=$data[5],$Lrm[0]=$data[6],
-                                $Llb[0]=$data[7], $Lmb[0]=$data[8],$Lrb[0]=$data[9]
-                                }
-	  if ($rubikkeyword eq 'right') {
-                                $Rlt[0]=$data[1], $Rmt[0]=$data[2],$Rrt[0]=$data[3],
-                                $Rlm[0]=$data[4], $Rmm[0]=$data[5],$Rrm[0]=$data[6],
-                                $Rlb[0]=$data[7], $Rmb[0]=$data[8],$Rrb[0]=$data[9]
-                                }
-
-	  if ($rubikkeyword eq 'front') {
-                                $Flt[0]=$data[1], $Fmt[0]=$data[2],$Frt[0]=$data[3],
-                                $Flm[0]=$data[4], $Fmm[0]=$data[5],$Frm[0]=$data[6],
-                                $Flb[0]=$data[7], $Fmb[0]=$data[8],$Frb[0]=$data[9]
-                                }
-	  if ($rubikkeyword eq 'back') {
-                                $Blt[0]=$data[1], $Bmt[0]=$data[2],$Brt[0]=$data[3],
-                                $Blm[0]=$data[4], $Bmm[0]=$data[5],$Brm[0]=$data[6],
-                                $Blb[0]=$data[7], $Bmb[0]=$data[8],$Brb[0]=$data[9]
-                                }
- 
-## if the rubikkeyword is `checkstate'  we just check the  
-## state and write the output data to a file. 
-          if ($rubikkeyword eq 'checkstate') {
-                                        gprint ("...");
-                                        $rotationcommand=$dataline; ## used in output message
-                                        gprint ("...command=$rotationcommand");
-                                        checkstate();
-                                       };
-
-## if the rubikkeyword is `rotation'  we first check to see if the second argument=random.
-## if so, then we check that the third argument is an integer, if so --> random sub
-## else  --> exit line  and get next line.
-## finally we  write the output data to a file. 
-
-	  if ($rubikkeyword eq 'rotation') 
-                   {
-                     gprint ("...");
-                     $rotationcommand=$dataline; ## used in output message
-                     gprint ("...command=$rotationcommand");
-
-
-                   ##-----random-----------------
-                   ## if second argument = random, 
-                   ##   THEN we also need to check if third argument is an integer; 
-                   ## if so -->random sub.
-                   ## if the 3rd argument is NOT an integer then reject line & get next input line
-                   if ($data[1] eq 'random') 
-                         {
-                            if ($data[2] =~/\D/) {  
-                                errormessage("[$data[2]] not an integer");
-                                ##  we reject the whole line and look at next line in the file
-                                next
-                            }
-                            else{ 
-                                ## data[2] must be an integer (n), so we just do n random rotations 
-                                random($data[2])
-                            };
-                         }
-                   else {
-                         # the line must be an ordinary rotation sequence line, so send the sequence 
-                         # to the rotation sub,  BUT, need to first remove the 
-                         # rubikkeyword `rotation'  from the begining of line (array)
-                         # as we need to send ONLY the  sequence string to the rotation sub.
-
-                         ## remove keyword rotation
-                         shift (@data);
-
-                         ## process @data string by the rotation sub
-                         rotation(@data);
-                         }
-                   }
-##-------------------------------
-## place additional keywords here
-##-------------------------------
-           }; ## end of while
- 
- ## we have finished reading in all the lines from the source file,
- ## and doing all the rotations etc, so we now just write the new cube state 
- ## to the output file = TeX_OUT_FILE (so LaTeX can read it)
- writestate();
- close; ##close all files
- exit;
-##==============end of main==========================
-\end{verbatim}
-
-
-%--------------------------
-\subsection{Errormessage}
-
-\begin{verbatim}
-sub errormessage{
-## writes the argument as a standard error message to out file
-  my $errormess        = $_[0];
-  $erroralert          = "YES"; ## set error alert flag (for use in out message)
-  $error[$errornumber] = "** ERROR: $errormess"; 
-  $errornumber++; ## increment number
-};
-\end{verbatim}
-
-
-%----------------------
-\subsection{Gprint}
-
-\begin{verbatim}
-##  prints argument (comments) to screen and also to TeX_OUT_FILE. 
-## The typeout commands will find its way into the log file when read by latex
-## Important to include trailing % for messages written to the TeX_OUT_FILE 
-##    to stop extra <spaces> being seen by TeX.
-sub gprint{
-    my $gmess=$_[0];
-    print  "$gmess\n";
-    print (TeX_OUT_FILE    "\\typeout{$gmess}\%\n");
-           };
-\end{verbatim}
-
-
-
-%------------------------
-\subsection{Checkstate}
-
-\begin{verbatim}
-sub checkstate{
-### simple check to see if wrong no of colours being used etc
-### uses the cubie colours as used by rubikcube package= ROYGBWX
-
- gprint ("...checking state of cube");
-
- my @cubies=($Ult[0],$Umt[0],$Urt[0],  $Ulm[0],$Umm[0],$Urm[0],  $Ulb[0],$Umb[0],$Urb[0],
-             $Dlt[0],$Dmt[0],$Drt[0],  $Dlm[0],$Dmm[0],$Drm[0],  $Dlb[0],$Dmb[0],$Drb[0],
-             $Llt[0],$Lmt[0],$Lrt[0],  $Llm[0],$Lmm[0],$Lrm[0],  $Llb[0],$Lmb[0],$Lrb[0],
-             $Rlt[0],$Rmt[0],$Rrt[0],  $Rlm[0],$Rmm[0],$Rrm[0],  $Rlb[0],$Rmb[0],$Rrb[0],
-             $Flt[0],$Fmt[0],$Frt[0],  $Flm[0],$Fmm[0],$Frm[0],  $Flb[0],$Fmb[0],$Frb[0],
-             $Blt[0],$Bmt[0],$Brt[0],  $Blm[0],$Bmm[0],$Brm[0],  $Blb[0],$Bmb[0],$Brb[0]);
-
-my $R=0,my $O=0,my $Y=0,my $G=0,my $B=0,my $W=0,my $X=0; 
-
-my $cubiecolour = "";
-
-foreach $cubiecolour (@cubies)
-      {
-       if    ($cubiecolour eq R) {$R = $R+1}
-       elsif ($cubiecolour eq O) {$O = $O+1}
-       elsif ($cubiecolour eq Y) {$Y = $Y+1}
-       elsif ($cubiecolour eq G) {$G = $G+1}
-       elsif ($cubiecolour eq B) {$B = $B+1}
-       elsif ($cubiecolour eq W) {$W = $W+1}
-       elsif ($cubiecolour eq X) {$X = $X+1}
-       else  {print " cubiecolour counting ERROR \n";}
-     };
-my $cubiesum=0;
-$cubiesum = $R+$O+$Y+$G+$B+$W+$X;
-gprint ("...cubiesum = $cubiesum (Red=$R, Or=$O, Ye=$Y, Gr=$G, Bl=$B, Wh=$W, X=$X)");
-
-if ($cubiesum != 54) { errormessage("cubiesum not = 54")};
-if ($R >9){ errormessage("No of Red cubies > 9 (=$R)")};
-if ($O >9){ errormessage("No of Orange cubies > 9 (=$O)")};
-if ($Y >9){ errormessage("No of Yellow cubies > 9 (=$Y)")};
-if ($G >9){ errormessage("No of Green cubies > 9 (=$G)")};
-if ($B >9){ errormessage("No of Blue cubies > 9 (=$B)")};
-if ($W >9){ errormessage("No of White cubies > 9 (=$W)")};
-};
-##====================================================
-\end{verbatim}
-
-
-
-%--------------------
-\subsection{Rotation}
-
-\begin{verbatim}
-# no of arguments passed to the sub = $#_ (black book p 156)
-
-sub rotation {
-## here we process the array @data  (from main) consisting of all 
-## the rotation commands associated with 
-## a single RubikRotation command.
-
-  my $m; #multiple associated with the char, eg D2 etc   
-  my $n = ($#_ +1);  ##total no of arguments passed
-  my $originalchar="";
-  my $j;
-  my $numberofchars; ## length of a string
-  my $nfrontchars;
-  my $char = "";
-
-     gprint ("...arguments passed to `rotation' sub = @_ (n= $n)");
-     foreach $char (@_) {
-        $char =~s/^\s+//, $char=~s/\s+$//; ## clean leading and trailing white space
-        ## grab a copy of the original char for use if  m Mod4=0
-        $originalchar=$char;
-
-    ## if argument has a leading * or [ or ] then it is a label (not a rotation) 
-    ## so jump to next one
-   if (substr ($char,0,1)  =~  /[ * \[ \] ]/  ){
-                                   gprint ("...$char is a label OK");
-                                   next;
-                                   };
-
-  ## Need to detect any trailing integer associated with a command (eg rotation multiple, eg:U3, L2 etc)
-  ## NOTES: since we are using mod4, we are only interested in trailing digit
-  ## if trailing character is a digit, then 
-  ##    split char string into front chars (= $char) + trailing digit (= $m)
-     $m = 1; # initialise m 
-
-  ## if terminal char is a digit (d) then let d --> m  and let frontstring --> char 
-  ## (Black book p 130 & 136) 
-  ## if the frontstring contains any digits then it will be rejected in the filter below anyway.
-
-   if ( substr ($char,-1) =~ /(\d)/) 
-          {
-          $m = $1; ## grab the trailing digit (only traps a single digit)
-          $numberofchars = 0; #initialise it
-          $numberofchars = length $originalchar;
-          $nfrontchars   = $numberofchars-1;
-          ## reassign the string except the terminal digit
-          $char = substr($char,0,$nfrontchars); 
-          ## use MOD 4 since we are dealing with Rubik rotations 
-          $m = $m % 4; 
-          ## (if MOD 4 = 0 then nothing will happen as j starts at 1)
-          ## but should generate an errormessage
-          if ( $m == 0 ){
-                     gprint ("...rotation $originalchar equiv 0 (NOT IMPLEMENTED)");
-                     errormessage ("[$originalchar] in RubikRotation (4 MOD 4 = 0)");
-                     next;
-                    };
-          };
-      ## if  single trailing digit present, then we implement the rotation command m times.
-      ## if more than one trailing digit
-      ##     then the error is trapped at the end (as frontstring will not be recognised
-      ##     ie will not be  in the following list, and hence will be trapped as an error, eg R3)
-      ##
-       if ($char eq "R")   {for($j=1;$j<=$m;$j++) { gprint ("...rotation R   OK"); &rrR}}
-    elsif ($char eq "Rp")  {for($j=1;$j<=$m;$j++) { gprint ("...rotation Rp  OK (= rrR3)"); &rrRp}}
-    elsif ($char eq "Rw")  {for($j=1;$j<=$m;$j++) { gprint ("...rotation Rw  OK (= rrR + rrSr)"); &rrRw}}
-    elsif ($char eq "Rwp") {for($j=1;$j<=$m;$j++) { gprint ("...rotation Rwp OK (= rrRp + rrSrp)"); &rrRwp}}
-    elsif ($char eq "Rs")  {for($j=1;$j<=$m;$j++) { gprint ("...rotation Rs  OK (= rrR + rrLp)"); &rrRs}}
-    elsif ($char eq "Rsp") {for($j=1;$j<=$m;$j++) { gprint ("...rotation Rsp OK (= rrRp + rrL)"); &rrRsp}}
-    elsif ($char eq "Ra")  {for($j=1;$j<=$m;$j++) { gprint ("...rotation Ra  OK (= rrR + rrL)"); &rrRa}}
-    elsif ($char eq "Rap") {for($j=1;$j<=$m;$j++) { gprint ("...rotation Rap OK (= rrRp + rrLp)"); &rrRap}}
-    ####
-    elsif ($char eq "L")   {for($j=1;$j<=$m;$j++) {gprint ("...rotation L   OK (= rrLp3)"); &rrL}}
-    elsif ($char eq "Lp")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Lp  OK"); &rrLp}}
-    elsif ($char eq "Lw")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Lw  OK (= rrLp3 + rrSrp)"); &rrLw}}
-    elsif ($char eq "Lwp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Lwp OK (= rrLp + rrSr)"); &rrLwp}}
-    elsif ($char eq "Ls")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Ls  OK (= rrL + rrRp)"); &rrLs}}
-    elsif ($char eq "Lsp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Lsp OK (= rrLp + rrR)"); &rrLsp}}
-    elsif ($char eq "La")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation La  OK (= rrL + rrR)"); &rrLa}}
-    elsif ($char eq "Lap") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Lap OK (= rrLp + rrRp)"); &rrLap}}
-    ####
-    elsif ($char eq "U")   {for($j=1;$j<=$m;$j++) {gprint ("...rotation U   OK"); &rrU}}
-    elsif ($char eq "Up")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Up  OK (= rrU3)"); &rrUp}}
-    elsif ($char eq "Uw")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Uw  OK (= rrU + rrSu)"); &rrUw}}
-    elsif ($char eq "Uwp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Uwp OK (= rrUp + rrSup)"); &rrUwp}}
-    elsif ($char eq "Us")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Us  OK (= rrU + rrDp)"); &rrUs}}
-    elsif ($char eq "Usp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Usp OK (= rrUp + rrD)"); &rrUsp}}
-    elsif ($char eq "Ua")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Ua  OK (= rrU + rrD)"); &rrUa}}
-    elsif ($char eq "Uap") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Uap OK (= rrUp + rrDp)"); &rrUap}}
-    ####
-    elsif ($char eq "D")   {for($j=1;$j<=$m;$j++) {gprint ("...rotation D   OK (= rrDp3)"); &rrD}}
-    elsif ($char eq "Dp")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Dp  OK "); &rrDp}}
-    elsif ($char eq "Dw")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Dw  OK (= rrDp3 + rrSup)"); &rrDw}}
-    elsif ($char eq "Dwp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Dwp OK (= rrDp + rrSu)"); &rrDwp}}
-    elsif ($char eq "Ds")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Ds  OK (= rrD + rrUp)"); &rrDs}}
-    elsif ($char eq "Dsp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Dsp OK (= rrDp + rrU)"); &rrDsp}}
-    elsif ($char eq "Da")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Da  OK (= rrD + rrU)"); &rrDa}}
-    elsif ($char eq "Dap") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Dap OK (= rrDp + rrUp)"); &rrDap}}
-    ####
-    elsif ($char eq "F")   {for($j=1;$j<=$m;$j++) {gprint ("...rotation F   OK"); &rrF}}
-    elsif ($char eq "Fp")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Fp  OK (= rrF3)"); &rrFp}}
-    elsif ($char eq "Fw")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Fw  OK (= rrF + rrSf)"); &rrFw}}
-    elsif ($char eq "Fwp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Fwp OK (= rrFp + rrSfp)"); &rrFwp}}
-    elsif ($char eq "Fs")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Fs  OK (= rrF + rrBp)"); &rrFs}}
-    elsif ($char eq "Fsp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Fsp  OK (= rrFp + rrB)"); &rrFsp}}
-    elsif ($char eq "Fa")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Fa  OK (= rrF + rrB)"); &rrFa}}
-    elsif ($char eq "Fap") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Fap  OK (= rrFp + rrBp)"); &rrFap}}
-    ####
-    elsif ($char eq "B")   {for($j=1;$j<=$m;$j++) {gprint ("...rotation B   OK (= rrFp3)"); &rrB}}
-    elsif ($char eq "Bp")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Bp  OK"); &rrBp}}
-    elsif ($char eq "Bw")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Bw  OK (= rrFp3 + rrSfp)"); &rrBw}}
-    elsif ($char eq "Bwp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Bwp OK (= rrFp + rrSf)"); &rrBwp}}
-    elsif ($char eq "Bs")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Bs  OK (= rrB + rrFp)"); &rrBs}}
-    elsif ($char eq "Bsp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Bsp  OK (= rrBp + rrF)"); &rrBsp}}
-    elsif ($char eq "Ba")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Ba  OK (= rrB + rrF)"); &rrBa}}
-    elsif ($char eq "Bap") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Bap  OK (= rrBp + rrFp)"); &rrBap}}
-    ####
-    elsif ($char eq "Su")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Su  OK "); &rrSu}}
-    elsif ($char eq "Sup") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sup OK (= rrSu3)"); &rrSup}}
-    elsif ($char eq "Sd")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sd  OK (= rrSup)"); &rrSd}}
-    elsif ($char eq "Sdp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sdp OK (= rrSu)"); &rrSdp}}
-    elsif ($char eq "Sl")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sl  OK (= rrSrp)"); &rrSl}}
-    elsif ($char eq "Slp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Slp OK (= rrSr)"); &rrSlp}}
-    elsif ($char eq "Sr")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sr  OK"); &rrSr}}
-    elsif ($char eq "Srp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Srp OK (= rrSr3)"); &rrSrp}}
-    elsif ($char eq "Sf")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sf  OK"); &rrSf}}
-    elsif ($char eq "Sfp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sfp OK (= rrSf3)"); &rrSfp}}
-    elsif ($char eq "Sb")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sb  OK (= rrSfp)"); &rrSb}}
-    elsif ($char eq "Sbp") {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sbp OK (= rrSf)"); &rrSbp}}
-    ## XYZ stuff
-    ## need to include lowercase x,y,x, and also u,d,l,r,f,b equivalents
-    elsif ($char eq "X" or $char eq "x" or $char eq "r")  
-               {for($j=1;$j<=$m;$j++) {gprint ("...rotation $char OK (= rrR + rrSr + rrLp)"); &rrR;&rrSr;&rrLp}}
-    elsif ($char eq "Xp" or $char eq "xp" or $char eq "l")  
-               {for($j=1;$j<=$m;$j++) {gprint ("...rotation $char OK (= rrRp + rrSrp + rrL)");&rrRp;&rrSrp;&rrL}}
-    elsif ($char eq "Y" or $char eq "y" or $char eq "u")   
-               {for($j=1;$j<=$m;$j++) {gprint ("...rotation $char OK (= rrU + rrSu + rrDp)"); &rrU;&rrSu;&rrDp}}
-    elsif ($char eq "Yp" or $char eq "yp" or $char eq "d")  
-               {for($j=1;$j<=$m;$j++) {gprint ("...rotation $char OK (= rrUp + rrSup + rrD)");&rrUp;&rrSup;&rrD}}
-    elsif ($char eq "Z" or $char eq "z" or $char eq "f")   
-               {for($j=1;$j<=$m;$j++) {gprint ("...rotation $char OK (= rrF + rrSf + rrBp)"); &rrF;&rrSf;&rrBp}}
-    elsif ($char eq "Zp" or $char eq "zp" or $char eq "b")  
-               {for($j=1;$j<=$m;$j++) {gprint ("...rotation $char OK (= rrFp + rrSfp + rrB)");&rrFp;&rrSfp;&rrB}} 
-    ## extras
-    elsif ($char eq "M")   {for($j=1;$j<=$m;$j++) {gprint ("...rotation M   OK (= Sl) "); &rrSl}}
-    elsif ($char eq "Mp")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Mp  OK (= Sr) "); &rrSr}}
-    elsif ($char eq "E")   {for($j=1;$j<=$m;$j++) {gprint ("...rotation E   OK (= Sd) "); &rrSd}}
-    elsif ($char eq "Ep")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Ep  OK (= Su) "); &rrSu}}
-    elsif ($char eq "S")   {for($j=1;$j<=$m;$j++) {gprint ("...rotation S   OK (= Sf) "); &rrSf}}
-    elsif ($char eq "Sp")  {for($j=1;$j<=$m;$j++) {gprint ("...rotation Sp  OK (= Sb) "); &rrSb}}
-    ####
-    ## check for missing rotation
-    elsif ($char eq "")    {for($j=1;$j<=$m;$j++) 
-                               {gprint ("...rotation ,$char, ERROR  ? typo or missing rotation"),
-                               errormessage("[,$char,] in RubikRotation: ? typo or missing rotation")}}
-    ####
-    ## rotation must be undefined
-    else {
-         gprint ("...rotation $originalchar NOT KNOWN");
-         errormessage("[$originalchar] in RubikRotation\{\}");
-         };
-      }; # end of foreach 
-  };    # end of sub
-
-##---------------------------------------------
-## aNOTE we have  defined (as rotation SUBs at the end) just 9 primary rotation transforms, 
-## rrR, rrSr, rrLp
-## rrU, rrSu, rrDp
-## rrF, rrSf, rrBp
-##  and since all the remaining ones  are simply combinations of these 9
-##  we now define all the other rotation subs in terms of these 9 primary moves.
-##  do NOT use multiples here: write each rotation separately
-## -------------
-## derivative subs from R and Sr and Lp
-sub rrRp{&rrR;&rrR;&rrR}; # (=rrR3)
-sub rrRw{&rrR; &rrSr}; # (= rrR + rrSr)
-sub rrRwp{&rrR;&rrR;&rrR;  &rrSr;&rrSr;&rrSr}; # (= rrRp + rrSrp)
-sub rrRs{&rrR;&rrLp};
-sub rrRsp{&rrRp;&rrL};
-sub rrRa{&rrR;&rrL};
-sub rrRap{&rrRp;&rrLp};
-####
-sub rrL{&rrLp;&rrLp;&rrLp}; # (= rrLp3)
-sub rrLw{&rrLp;&rrLp;&rrLp;&rrSrp};   # (=rrLp3 + rrSrp)
-sub rrLwp{&rrLp;&rrSr};
-sub rrLs{&rrL;&rrRp};
-sub rrLsp{&rrLp;&rrR};
-sub rrLa{&rrL;&rrR};
-sub rrLap{&rrLp;&rrRp};
-##-------------
-## derivative subs from U
-sub rrUp{&rrU;&rrU;&rrU}; # (=rrU3)
-sub rrUw{&rrU;&rrSu}; # 
-sub rrUwp{&rrUp;&rrSup};
-sub rrUs{&rrU;&rrDp};
-sub rrUsp{&rrUp;&rrD};
-sub rrUa{&rrU;&rrD};
-sub rrUap{&rrUp;&rrDp};
-####
-sub rrD{&rrDp;&rrDp;&rrDp}; # (= rrDp3)
-sub rrDw{&rrDp;&rrDp;&rrDp;&rrSup};   # (=rrDp3 + rrSup)
-sub rrDwp{&rrDp;&rrSu};
-sub rrDs{&rrD;&rrUp};
-sub rrDsp{&rrDp;&rrU};
-sub rrDa{&rrD;&rrU};
-sub rrDap{&rrDp;&rrUp};
-##-------------
-## derivative subs from F
-sub rrFw{&rrF; &rrSf}; # (= rrF + rrSf)
-sub rrFp{ &rrF;&rrF;&rrF}; # (=rrF3)
-sub rrFwp{&rrF;&rrF;&rrF;  &rrSf;&rrSf;&rrSf}; # (= rrF3 + rrSf3)
-sub rrFs{&rrF;&rrBp};
-sub rrFsp{&rrFp;&rrB};
-sub rrFa{&rrF;&rrB};
-sub rrFap{&rrFp;&rrBp};
-####
-sub rrB{&rrBp;&rrBp;&rrBp}; # (= rrBp3)
-sub rrBw{&rrBp;&rrBp;&rrBp; &rrSfp};   # (=rrBp3 + rrSfp)
-sub rrBwp{&rrBp;&rrSf};
-sub rrBs{&rrB;&rrFp};
-sub rrBsp{&rrBp;&rrF};
-sub rrBa{&rrB;&rrF};
-sub rrBap{&rrBp;&rrFp};
-####
-## bring all the S versions together
-sub rrSup{&rrSu;&rrSu;&rrSu}; # (=rrSu3)
-sub rrSd{&rrSup}; # (=rrSup)
-sub rrSdp{&rrSu}; # (=rrSu)
-sub rrSl{&rrSrp}; # (=rrSrp)
-sub rrSlp{&rrSr}; # (=rrSr)
-sub rrSrp{&rrSr;&rrSr;&rrSr}; # (=rrSr3)
-sub rrSfp{&rrSf;&rrSf;&rrSf}; # (=rrSf3)
-sub rrSb{&rrSfp}; # (=rrSfp)
-sub rrSbp{&rrSf}; # (=rrSf)
-\end{verbatim}
-
-%----------------------
-\subsection{Random}
-
-\begin{verbatim}
-# no of arguments passed to the sub = $#_ (black book p 156)
-# parameters  passed = $_[0]
-
-sub random{
-## scramble  randomly using n rotations
-## example command = RubikRotation{random,74}
-## if no n given (second argument  = ""), then use default n=50
-## if second argument is some string (not integer) then --> ERROR
-##
-## asign numbers to the minimal set of rotations to be used using a hash array list
-## (perl 5 book page 68)
-## ? maybe we should only use the 18 rotations mentioned in Rokicki 2013 paper?
-## but here I have included all the S ones too.
-
-my @rrlist= ("U", "Up", "Su", "Sup",
-             "D", "Dp", "Sd", "Sdp",
-             "L", "Lp", "Sl", "Slp",
-             "R", "Rp", "Sr", "Srp",
-             "F", "Fp", "Sf", "Sfp",
-             "B", "Bp", "Sb", "Sbp");
-
-my $rrlistnumber=$#rrlist;
-print " rrlistnumber = $rrlistnumber\n";
-# these are numbered 0--$rrlistnumber,
-
-## let default no of random rotations for scrambling = 50  
-my $defaultn = 50;
-my $maxn     = 200;
-##  grab the integer passed  from the random() command in main
-my $s = $_[0];
-if ($s >= $maxn) {$s = $maxn;
-                     gprint ("...WARNING: maximum n = 200");
-                     errormessage ("random: max n =200 (n=200 was used)")}
-    elsif ($s == 0) {$s = $defaultn;
-                     gprint ("...WARNING: integer = 0 or not given: using default value 50");
-                     errormessage ("random: n invalid (n=50 was used)")};
-
-my @rr; ## array to hold all the random rotations
-print " randomising the available rotations\n";
-
-
-## set the seed for the randomisation (BlackBook p 235)
-srand;
-
-## now select s numbers at random (with replacement) from range 0--listnumber+1
-## Since we are using int(rand x), and  using nos from 0--lastindex number,
-## then max  rand vaue = (lastindexnumber -1).99999, the  integer of which 
-## = (lastindexnumber -1). Therefore we need to use the range 0--(lastindexnumber+1)
-## in order to randomise all posibilities on  our list.
-
-my $j;
-
-for ($j = 1; $j <=$s; $j=$j+1) 
-    {
-     my $p= int(rand ($rrlistnumber +1));
-     print "Rotation = $p, $rrlist[$p] \n";
-     ## push rotation code   $rrlist[$p] on to END of array @rr 
-     push (@rr, $rrlist[$p]);
-    };
-  
-  ## we assume the user is starting from a solved cube (ie use the state given by user) 
-  gprint ("...scrambling Rubik cube using $s random rotations");
-  ## now send the array off to the rotation sub
-  rotation(@rr);
-}
-##===================subs==================================
-\end{verbatim}
-
-
-%-----------------------
-\subsection{Writestate}
-
-\begin{verbatim}
-sub writestate{
-## this just writes the final state to the TeX_OUT_FILE (= rubikstateNEW.dat) will be read by latex.
-
-print (TeX_OUT_FILE    "\%\% output datafile=$out_file\n");
-print (TeX_OUT_FILE    "\%\% PERL prog=rubikrotation version $version\n");
-print (TeX_OUT_FILE    "\\typeout{...writing new Rubik state to file $out_file}\%\n");
-print (TeX_OUT_FILE    "\\RubikFaceUp\{$Ult[0]\}\{$Umt[0]\}\{$Urt[0]\}\{$Ulm[0]\}\{$Umm[0]\}\{$Urm[0]\}\{$Ulb[0]\}
-    \{$Umb[0]\}\{$Urb[0]\}\%\n");
-print (TeX_OUT_FILE    "\\RubikFaceDown\{$Dlt[0]\}\{$Dmt[0]\}\{$Drt[0]\}\{$Dlm[0]\}\{$Dmm[0]\}\{$Drm[0]\}\{$Dlb[0]\}
-    \{$Dmb[0]\}\{$Drb[0]\}\%\n");
-print (TeX_OUT_FILE    "\\RubikFaceLeft\{$Llt[0]\}\{$Lmt[0]\}\{$Lrt[0]\}\{$Llm[0]\}\{$Lmm[0]\}\{$Lrm[0]\}\{$Llb[0]\}
-    \{$Lmb[0]\}\{$Lrb[0]\}\%\n");
-print (TeX_OUT_FILE    "\\RubikFaceRight\{$Rlt[0]\}\{$Rmt[0]\}\{$Rrt[0]\}\{$Rlm[0]\}\{$Rmm[0]\}\{$Rrm[0]\}\{$Rlb[0]\}
-    \{$Rmb[0]\}\{$Rrb[0]\}\%\n");
-print (TeX_OUT_FILE    "\\RubikFaceFront\{$Flt[0]\}\{$Fmt[0]\}\{$Frt[0]\}\{$Flm[0]\}\{$Fmm[0]\}\{$Frm[0]\}\{$Flb[0]\}
-    \{$Fmb[0]\}\{$Frb[0]\}\%\n");
-print (TeX_OUT_FILE    "\\RubikFaceBack\{$Blt[0]\}\{$Bmt[0]\}\{$Brt[0]\}\{$Blm[0]\}\{$Bmm[0]\}\{$Brm[0]\}\{$Blb[0]\}
-    \{$Bmb[0]\}\{$Brb[0]\}\%\n");
-
-## now include any error messages generated 
-## (these are all  in an array waiting to be printed out)
-
-if ($erroralert eq "YES")
-      {
-       ## write errors to a separate file (just for errors---we append the errrors to end of file)
-       ## the error file (rubikstateERRORS.dat) was created by the TeX file
-       my $ne;  #number of errors
-       $ne=$#error; ## number of errors= largest index num since we started at zero
-       ### do not attach error to a <checkstate> command
-       if ($rotationcommand eq "checkstate") {}
-          else { 
-                print (TeX_OUT_FILE     "\\typeout{** ERROR: command=$rotationcommand}\%\n");
-                print (ERROR_OUT_FILE   "** ERROR: $rotationcommand\n");
-               };
-       ## last index number or array = $#arrayname (Black book p 62)
-       my $k;
-       for ($k=0; $k<=$ne; $k=$k+1)  {
-                                       print (TeX_OUT_FILE      "\\typeout{$error[$k]}\%\n");
-                                       print (ERROR_OUT_FILE    "$error[$k]\n");
-                                     };
-      };
-print " Perl output file written OK\n";
-}
-##===========================================
-\end{verbatim}
-
-%-----------------
-\subsection{rrR}
-
-
-\begin{verbatim}
-## The following 9  (90 degree) rotation transformations are used 
-##   to generate all the rotations used in the `rotation sub'
-##   each of these is a permutation for both colours and numbers
-##   of the cubie facelets.
-## The following 9 subroutines are named as follows: 
-##   (about X-axis) rrR, rrSr, rrLp
-##   (about Y-axis) rrU, rrSu, rrDp
-##   (about Z-axis) rrF, rrSf, rrBp
-##   see the rubikcube package documentation for full details regarding
-##   rotation notation and commands.
-## METHOD & NOTATION
-## each sub (below) starts by making an array[0] for the cubie colour
-##   and an array[1] for  the cubie number. 
-## Each  of the face rotations (rrR, rrLp, rrU, rrDp, rrF, rrBp) is involved with 
-##   two pairs of connected but different permutations/transformations as follows: 
-##   (a) one pair for the 12 Side cubies (arrays = @Xs0 (for Side colours), @Xs1 (for Side numbers)), and 
-##   (b) one pair for the 9 Face cubies (arrays = @Xf0 (for Face colours), @Xf1 (for Face numbers)).
-## Each of the center slice rotations (rrSr, rrSu, rrSf)  is involved with just one pair of
-##   permutations for the 12 Side cubies (arrays = @Xs0 (for Side colours), @Xs1 (for Side numbers)).
-## We document only the side and face of the first sub (rrR) in detail, since the other subs are of similar form. 
-##================================================
-  sub rrR{
-
-##  the R (slice + face) transform
-## R = RIGHT, s = side; 0=colour, 1= number
-## make the clockwise rotation permutation
-## In this permutation the Front-right-bottom (Frb) (side)facelet rotates to 
-##    the new position of Up-right-bottom (Urb) (side)facelet.
-##-----------SIDE-------
-## 12 side cubie facelets in  arrays @Rs0 (colours) and @Rs1 (numbers)
-## these are the initial positions
- at Rs0=($Frb[0],$Frm[0],$Frt[0],   
-      $Urb[0],$Urm[0],$Urt[0],  
-      $Blt[0],$Blm[0],$Blb[0],  
-      $Drb[0],$Drm[0],$Drt[0]);
-
- at Rs1=($Frb[1],$Frm[1],$Frt[1],   
-      $Urb[1],$Urm[1],$Urt[1],  
-      $Blt[1],$Blm[1],$Blb[1],  
-      $Drb[1],$Drm[1],$Drt[1]);
-
-## now we reallocate the initial array elements to the new 
-##    post (90 degree clockwise) rotation position.
-## Cube is viewed from FRONT.
-## Positions of side facelets of Right slice are numbered 0-11 in clockwise direction,
-##   (as seen from Right face) starting with Up-right-bottom facelet. 
-## First line example:  
-## variable $Urb[0] (Upface-right-bottom colour) <-- colour of first element in @Rs0 (=Frb[0]) 
-## variable $Urb[1] (Upface-right-bottom number) <-- number of first element in @Rs1 (=Frb[1]) 
-$Urb[0]=$Rs0[0]; $Urb[1]=$Rs1[0];
-$Urm[0]=$Rs0[1]; $Urm[1]=$Rs1[1];
-$Urt[0]=$Rs0[2]; $Urt[1]=$Rs1[2];
-
-$Blt[0]=$Rs0[3]; $Blt[1]=$Rs1[3];
-$Blm[0]=$Rs0[4]; $Blm[1]=$Rs1[4];
-$Blb[0]=$Rs0[5]; $Blb[1]=$Rs1[5];
-
-$Drb[0]=$Rs0[6]; $Drb[1]=$Rs1[6];
-$Drm[0]=$Rs0[7]; $Drm[1]=$Rs1[7];
-$Drt[0]=$Rs0[8]; $Drt[1]=$Rs1[8];
-
-$Frb[0]=$Rs0[9];  $Frb[1]=$Rs1[9];
-$Frm[0]=$Rs0[10]; $Frm[1]=$Rs1[10];
-$Frt[0]=$Rs0[11]; $Frt[1]=$Rs1[11];
-
-##-------------Right FACE---------------------
-## R FACE (9 cubies in each array)
-## (numbered in rows: 1,2,3/4,5,6/7,8,9 from top left(1) to bottom right(9))
-## R=Right, f = face; 0=colour, 1= number
-## do the Rface (90 degree) rotation transform 
-## here  the Right-left-bottom (Rlb) facelet rotates to the possn of Right-left-top (Rlt)
-## we start with two arrays (one for colours @Rf0, one for numbers @Rf1)  with 9 elements each.
- at Rf0=($Rlb[0], $Rlm[0], $Rlt[0],     $Rmb[0], $Rmm[0], $Rmt[0],     $Rrb[0], $Rrm[0], $Rrt[0]);
- at Rf1=($Rlb[1], $Rlm[1], $Rlt[1],     $Rmb[1], $Rmm[1], $Rmt[1],     $Rrb[1], $Rrm[1], $Rrt[1]);
-
-## now we reallocate the  array elements to the new 
-## post (90 degree clockwise) rotation  facelet position.
-## Right face is viewed from RIGHT.
-## First line example:
-## variable $Rlt[0] (=Right-left-top colour) <-- colour of first element in @Rf0 (=Rlb[0]) 
-## variable $Rlt[1] (=Right-left-top number) <-- number of first element in @Rf1 (=Rlb[1]) 
-$Rlt[0]=$Rf0[0]; $Rlt[1]=$Rf1[0];
-$Rmt[0]=$Rf0[1]; $Rmt[1]=$Rf1[1];
-$Rrt[0]=$Rf0[2]; $Rrt[1]=$Rf1[2];
-
-$Rlm[0]=$Rf0[3]; $Rlm[1]=$Rf1[3];
-$Rmm[0]=$Rf0[4]; $Rmm[1]=$Rf1[4];
-$Rrm[0]=$Rf0[5]; $Rrm[1]=$Rf1[5];
-
-$Rlb[0]=$Rf0[6]; $Rlb[1]=$Rf1[6];
-$Rmb[0]=$Rf0[7]; $Rmb[1]=$Rf1[7];
-$Rrb[0]=$Rf0[8]; $Rrb[1]=$Rf1[8];
-
-}
-#============================
-\end{verbatim}
-
-
-%--------------------
-\subsection{rrSr}
-
-
-\begin{verbatim}
-sub rrSr {
-## Sr = Right middle SLICE rotation (only 12 side facelets)
-## modified from rrR (change the U,D,F, r --> m and Back Bl-->Bm; Rs--> ?Srs)
-## change only the slice 
-## s = side; 0=colour, 1= number
-## make the post rotation permutation
-
- at SRs0=($Fmb[0],$Fmm[0],$Fmt[0],  
-      $Umb[0],$Umm[0],$Umt[0],  
-      $Bmt[0],$Bmm[0],$Bmb[0],  
-      $Dmb[0],$Dmm[0],$Dmt[0]);
-
- at SRs1=($Fmb[1],$Fmm[1],$Fmt[1],  
-      $Umb[1],$Umm[1],$Umt[1],  
-      $Bmt[1],$Bmm[1],$Bmb[1],  
-      $Dmb[1],$Dmm[1],$Dmt[1]);
-
-
-$Umb[0]=$SRs0[0]; $Umb[1]=$SRs1[0];
-$Umm[0]=$SRs0[1]; $Umm[1]=$SRs1[1];
-$Umt[0]=$SRs0[2]; $Umt[1]=$SRs1[2];
-
-$Bmt[0]=$SRs0[3]; $Bmt[1]=$SRs1[3];
-$Bmm[0]=$SRs0[4]; $Bmm[1]=$SRs1[4];
-$Bmb[0]=$SRs0[5]; $Bmb[1]=$SRs1[5];
-
-$Dmb[0]=$SRs0[6]; $Dmb[1]=$SRs1[6];
-$Dmm[0]=$SRs0[7]; $Dmm[1]=$SRs1[7];
-$Dmt[0]=$SRs0[8]; $Dmt[1]=$SRs1[8];
-
-$Fmb[0]=$SRs0[9];  $Fmb[1]=$SRs1[9];
-$Fmm[0]=$SRs0[10]; $Fmm[1]=$SRs1[10];
-$Fmt[0]=$SRs0[11]; $Fmt[1]=$SRs1[11];
-
-} 
-##===================
-\end{verbatim}
-
-
-%--------------------
-\subsection{rrLp}
-
-
-\begin{verbatim}
-sub rrLp{
-
-## Left slice (side + face) anticlockwise rotation
-## s = side; 0=colour, 1= number
-##-------------side-----------
- at LPs0=($Flb[0],$Flm[0],$Flt[0],  
-      $Ulb[0],$Ulm[0],$Ult[0],  
-      $Brt[0],$Brm[0],$Brb[0],  
-      $Dlb[0],$Dlm[0],$Dlt[0]);
-
- at LPs1=($Flb[1],$Flm[1],$Flt[1],  
-      $Ulb[1],$Ulm[1],$Ult[1],  
-      $Brt[1],$Brm[1],$Brb[1],  
-      $Dlb[1],$Dlm[1],$Dlt[1]);
-
-
-$Ulb[0]=$LPs0[0]; $Ulb[1]=$LPs1[0];
-$Ulm[0]=$LPs0[1]; $Ulm[1]=$LPs1[1];
-$Ult[0]=$LPs0[2]; $Ult[1]=$LPs1[2];
-
-$Brt[0]=$LPs0[3]; $Brt[1]=$LPs1[3];
-$Brm[0]=$LPs0[4]; $Brm[1]=$LPs1[4];
-$Brb[0]=$LPs0[5]; $Brb[1]=$LPs1[5];
-
-$Dlb[0]=$LPs0[6]; $Dlb[1]=$LPs1[6];
-$Dlm[0]=$LPs0[7]; $Dlm[1]=$LPs1[7];
-$Dlt[0]=$LPs0[8]; $Dlt[1]=$LPs1[8];
-
-$Flb[0]=$LPs0[9];  $Flb[1]=$LPs1[9];
-$Flm[0]=$LPs0[10]; $Flm[1]=$LPs1[10];
-$Flt[0]=$LPs0[11]; $Flt[1]=$LPs1[11];
-
-
-##---------------Left FACE-------------
-## do the Lface transform (in rows: 1,2,3//4,5,6//7,8,9)
-## f = face; 0=colour, 1= number
-## NOTES: not same as for R 
-
- at LPf0=($Lrt[0], $Lrm[0], $Lrb[0],     $Lmt[0], $Lmm[0], $Lmb[0],     $Llt[0], $Llm[0], $Llb[0]);
- at LPf1=($Lrt[1], $Lrm[1], $Lrb[1],     $Lmt[1], $Lmm[1], $Lmb[1],     $Llt[1], $Llm[1], $Llb[1]);
-
-$Llt[0]=$LPf0[0]; $Llt[1]=$LPf1[0];
-$Lmt[0]=$LPf0[1]; $Lmt[1]=$LPf1[1];
-$Lrt[0]=$LPf0[2]; $Lrt[1]=$LPf1[2];
-
-$Llm[0]=$LPf0[3]; $Llm[1]=$LPf1[3];
-$Lmm[0]=$LPf0[4]; $Lmm[1]=$LPf1[4];
-$Lrm[0]=$LPf0[5]; $Lrm[1]=$LPf1[5];
-
-$Llb[0]=$LPf0[6]; $Llb[1]=$LPf1[6];
-$Lmb[0]=$LPf0[7]; $Lmb[1]=$LPf1[7];
-$Lrb[0]=$LPf0[8]; $Lrb[1]=$LPf1[8];
-}
-##==================================
-\end{verbatim}
-
-
-%------------------
-\subsection{rrU}
-
-
-\begin{verbatim}
-sub rrU{
-
-## Up slice (side + face)
-## do the Uside transform
-## s = side; 0=colour, 1= number
-## ----------SIDE--------------
- at Us0=($Lrt[0],$Lmt[0],$Llt[0],  
-      $Brt[0],$Bmt[0],$Blt[0],  
-      $Rrt[0],$Rmt[0],$Rlt[0],  
-      $Frt[0],$Fmt[0],$Flt[0]);
-
- at Us1=($Lrt[1],$Lmt[1],$Llt[1],  
-      $Brt[1],$Bmt[1],$Blt[1],  
-      $Rrt[1],$Rmt[1],$Rlt[1],  
-      $Frt[1],$Fmt[1],$Flt[1]);
-
-
-$Brt[0]=$Us0[0]; $Brt[1]=$Us1[0];
-$Bmt[0]=$Us0[1]; $Bmt[1]=$Us1[1];
-$Blt[0]=$Us0[2]; $Blt[1]=$Us1[2];
-
-$Rrt[0]=$Us0[3]; $Rrt[1]=$Us1[3];
-$Rmt[0]=$Us0[4]; $Rmt[1]=$Us1[4];
-$Rlt[0]=$Us0[5]; $Rlt[1]=$Us1[5];
-
-$Frt[0]=$Us0[6]; $Frt[1]=$Us1[6];
-$Fmt[0]=$Us0[7]; $Fmt[1]=$Us1[7];
-$Flt[0]=$Us0[8]; $Flt[1]=$Us1[8];
-
-$Lrt[0]=$Us0[9];  $Lrt[1]=$Us1[9];
-$Lmt[0]=$Us0[10]; $Lmt[1]=$Us1[10];
-$Llt[0]=$Us0[11]; $Llt[1]=$Us1[11];
-
-##-------------Up FACE-------------------
-## do the Rface transform (in rows: 1,2,3//4,5,6//7,8,9)
-## f = face; 0=colour, 1= number
- at Uf0=($Ulb[0], $Ulm[0], $Ult[0],     $Umb[0], $Umm[0], $Umt[0],     $Urb[0], $Urm[0], $Urt[0]);
- at Uf1=($Ulb[1], $Ulm[1], $Ult[1],     $Umb[1], $Umm[1], $Umt[1],     $Urb[1], $Urm[1], $Urt[1]);
-
-$Ult[0]=$Uf0[0]; $Ult[1]=$Uf1[0];
-$Umt[0]=$Uf0[1]; $Umt[1]=$Uf1[1];
-$Urt[0]=$Uf0[2]; $Urt[1]=$Uf1[2];
-
-$Ulm[0]=$Uf0[3]; $Ulm[1]=$Uf1[3];
-$Umm[0]=$Uf0[4]; $Umm[1]=$Uf1[4];
-$Urm[0]=$Uf0[5]; $Urm[1]=$Uf1[5];
-
-$Ulb[0]=$Uf0[6]; $Ulb[1]=$Uf1[6];
-$Umb[0]=$Uf0[7]; $Umb[1]=$Uf1[7];
-$Urb[0]=$Uf0[8]; $Urb[1]=$Uf1[8];
-}
-##==============================
-\end{verbatim}
-
-
-%----------------------
-\subsection{rrSu}
-
-
-\begin{verbatim}
-sub rrSu{
-## middle slice rotation (side only 12 facelets)
-## s = side; 0=colour, 1= number
-## make the post rotation permutation
-##-----------SIDE-------------------
- at SUs0=($Lrm[0],$Lmm[0],$Llm[0],  
-      $Brm[0],$Bmm[0],$Blm[0],  
-      $Rrm[0],$Rmm[0],$Rlm[0],  
-      $Frm[0],$Fmm[0],$Flm[0]);
-
- at SUs1=($Lrm[1],$Lmm[1],$Llm[1],  
-      $Brm[1],$Bmm[1],$Blm[1],  
-      $Rrm[1],$Rmm[1],$Rlm[1],  
-      $Frm[1],$Fmm[1],$Flm[1]);
-
-
-$Brm[0]=$SUs0[0]; $Brm[1]=$SUs1[0];
-$Bmm[0]=$SUs0[1]; $Bmm[1]=$SUs1[1];
-$Blm[0]=$SUs0[2]; $Blm[1]=$SUs1[2];
-
-$Rrm[0]=$SUs0[3]; $Rrm[1]=$SUs1[3];
-$Rmm[0]=$SUs0[4]; $Rmm[1]=$SUs1[4];
-$Rlm[0]=$SUs0[5]; $Rlm[1]=$SUs1[5];
-
-$Frm[0]=$SUs0[6]; $Frm[1]=$SUs1[6];
-$Fmm[0]=$SUs0[7]; $Fmm[1]=$SUs1[7];
-$Flm[0]=$SUs0[8]; $Flm[1]=$SUs1[8];
-
-$Lrm[0]=$SUs0[9];  $Lrm[1]=$SUs1[9];
-$Lmm[0]=$SUs0[10]; $Lmm[1]=$SUs1[10];
-$Llm[0]=$SUs0[11]; $Llm[1]=$SUs1[11];
-}
-##==============================
-\end{verbatim}
-
-
-%--------------------
-\subsection{rrDp}
-
-
-
-\begin{verbatim}
-sub rrDp{
-
-## Dpwn Face anticlockwise rotation (side and face)
-## s = side; 0=colour, 1= number
-## make the post rotation permutation
-##--------------SIDE----------------
- at DPs0=($Lrb[0],$Lmb[0],$Llb[0],  
-       $Brb[0],$Bmb[0],$Blb[0],  
-       $Rrb[0],$Rmb[0],$Rlb[0],  
-       $Frb[0],$Fmb[0],$Flb[0]);
-
- at DPs1=($Lrb[1],$Lmb[1],$Llb[1],  
-       $Brb[1],$Bmb[1],$Blb[1],  
-       $Rrb[1],$Rmb[1],$Rlb[1],  
-       $Frb[1],$Fmb[1],$Flb[1]);
-
-$Brb[0]=$DPs0[0]; $Brb[1]=$DPs1[0];
-$Bmb[0]=$DPs0[1]; $Bmb[1]=$DPs1[1];
-$Blb[0]=$DPs0[2]; $Blb[1]=$DPs1[2];
-
-$Rrb[0]=$DPs0[3]; $Rrb[1]=$DPs1[3];
-$Rmb[0]=$DPs0[4]; $Rmb[1]=$DPs1[4];
-$Rlb[0]=$DPs0[5]; $Rlb[1]=$DPs1[5];
-
-$Frb[0]=$DPs0[6]; $Frb[1]=$DPs1[6];
-$Fmb[0]=$DPs0[7]; $Fmb[1]=$DPs1[7];
-$Flb[0]=$DPs0[8]; $Flb[1]=$DPs1[8];
-
-$Lrb[0]=$DPs0[9];  $Lrb[1]=$DPs1[9];
-$Lmb[0]=$DPs0[10]; $Lmb[1]=$DPs1[10];
-$Llb[0]=$DPs0[11]; $Llb[1]=$DPs1[11];
-
-##---------------Down FACE-------------------
-## f = face; 0=colour, 1= number
-
- at DPf0=($Dlt[0], $Dlm[0], $Dlb[0],     $Dmt[0], $Dmm[0], $Dmb[0],     $Drt[0], $Drm[0], $Drb[0]);
- at DPf1=($Dlt[1], $Dlm[1], $Dlb[1],     $Dmt[1], $Dmm[1], $Dmb[1],     $Drt[1], $Drm[1], $Drb[1]);
-
-$Dlb[0]=$DPf0[0]; $Dlb[1]=$DPf1[0];
-$Dmb[0]=$DPf0[1]; $Dmb[1]=$DPf1[1];
-$Drb[0]=$DPf0[2]; $Drb[1]=$DPf1[2];
-
-$Dlm[0]=$DPf0[3]; $Dlm[1]=$DPf1[3];
-$Dmm[0]=$DPf0[4]; $Dmm[1]=$DPf1[4];
-$Drm[0]=$DPf0[5]; $Drm[1]=$DPf1[5];
-
-$Dlt[0]=$DPf0[6]; $Dlt[1]=$DPf1[6];
-$Dmt[0]=$DPf0[7]; $Dmt[1]=$DPf1[7];
-$Drt[0]=$DPf0[8]; $Drt[1]=$DPf1[8];
-}
-##==============================
-\end{verbatim}
-
-
-%%------------------
-\subsection{rrF}
-
-
-\begin{verbatim}
-sub rrF{
-
-## do the Fside transform (side and face)
-## s = side; 0=colour, 1= number
-## -----------SIDE-----------------
- at Fs0=($Lrb[0],$Lrm[0],$Lrt[0],
-      $Ulb[0],$Umb[0],$Urb[0],
-      $Rlt[0],$Rlm[0],$Rlb[0],
-      $Drt[0],$Dmt[0],$Dlt[0]);
-
- at Fs1=($Lrb[1],$Lrm[1],$Lrt[1],
-      $Ulb[1],$Umb[1],$Urb[1],
-      $Rlt[1],$Rlm[1],$Rlb[1],
-      $Drt[1],$Dmt[1],$Dlt[1]);
-
-$Ulb[0]=$Fs0[0]; $Ulb[1]=$Fs1[0];
-$Umb[0]=$Fs0[1]; $Umb[1]=$Fs1[1];
-$Urb[0]=$Fs0[2]; $Urb[1]=$Fs1[2];
-
-$Rlt[0]=$Fs0[3]; $Rlt[1]=$Fs1[3];
-$Rlm[0]=$Fs0[4]; $Rlm[1]=$Fs1[4];
-$Rlb[0]=$Fs0[5]; $Rlb[1]=$Fs1[5];
-
-$Drt[0]=$Fs0[6]; $Drt[1]=$Fs1[6];
-$Dmt[0]=$Fs0[7]; $Dmt[1]=$Fs1[7];
-$Dlt[0]=$Fs0[8]; $Dlt[1]=$Fs1[8];
-
-$Lrb[0]=$Fs0[9];  $Lrb[1]=$Fs1[9];
-$Lrm[0]=$Fs0[10]; $Lrm[1]=$Fs1[10];
-$Lrt[0]=$Fs0[11]; $Lrt[1]=$Fs1[11];
-
-## -------Front FACE-------------------
-## f = face; 0=colour, 1= number
-
- at Lf0=($Flb[0], $Flm[0], $Flt[0],     $Fmb[0], $Fmm[0], $Fmt[0],     $Frb[0], $Frm[0], $Frt[0]);
- at Lf1=($Flb[1], $Flm[1], $Flt[1],     $Fmb[1], $Fmm[1], $Fmt[1],     $Frb[1], $Frm[1], $Frt[1]);
-
-$Flt[0]=$Lf0[0]; $Flt[1]=$Lf1[0];
-$Fmt[0]=$Lf0[1]; $Fmt[1]=$Lf1[1];
-$Frt[0]=$Lf0[2]; $Frt[1]=$Lf1[2];
-
-$Flm[0]=$Lf0[3]; $Flm[1]=$Lf1[3];
-$Fmm[0]=$Lf0[4]; $Fmm[1]=$Lf1[4];
-$Frm[0]=$Lf0[5]; $Frm[1]=$Lf1[5];
-
-$Flb[0]=$Lf0[6]; $Flb[1]=$Lf1[6];
-$Fmb[0]=$Lf0[7]; $Fmb[1]=$Lf1[7];
-$Frb[0]=$Lf0[8]; $Frb[1]=$Lf1[8];
-}
-##==============================
-\end{verbatim}
-
-
-%-------------------
-\subsection{rrSf}
-
-
-\begin{verbatim}
-sub rrSf{
-
-## do the Fs  transform (side only)
-## s = side; 0=colour, 1= number
-##----------SIDE--------------- 
- at SFs0=($Lmb[0],$Lmm[0],$Lmt[0],
-       $Ulm[0],$Umm[0],$Urm[0],
-       $Rmt[0],$Rmm[0],$Rmb[0],
-       $Drm[0],$Dmm[0],$Dlm[0]);
-
- at SFs1=($Lmb[1],$Lmm[1],$Lmt[1],
-       $Ulm[1],$Umm[1],$Urm[1],
-       $Rmt[1],$Rmm[1],$Rmb[1],
-       $Drm[1],$Dmm[1],$Dlm[1]);
-
-$Ulm[0]=$SFs0[0]; $Ulm[1]=$SFs1[0];
-$Umm[0]=$SFs0[1]; $Umm[1]=$SFs1[1];
-$Urm[0]=$SFs0[2]; $Urm[1]=$SFs1[2];
-
-$Rmt[0]=$SFs0[3]; $Rmt[1]=$SFs1[3];
-$Rmm[0]=$SFs0[4]; $Rmm[1]=$SFs1[4];
-$Rmb[0]=$SFs0[5]; $Rmb[1]=$SFs1[5];
-
-$Drm[0]=$SFs0[6]; $Drm[1]=$SFs1[6];
-$Dmm[0]=$SFs0[7]; $Dmm[1]=$SFs1[7];
-$Dlm[0]=$SFs0[8]; $Dlm[1]=$SFs1[8];
-
-$Lmb[0]=$SFs0[9];  $Lmb[1]=$SFs1[9];
-$Lmm[0]=$SFs0[10]; $Lmm[1]=$SFs1[10];
-$Lmt[0]=$SFs0[11]; $Lmt[1]=$SFs1[11];
-}
-##==============================
-\end{verbatim}
-
-
-%-------------------
-\subsection{rrBp}
-
-
-\begin{verbatim}
-sub rrBp{
-
-## Back rotation anticlockwise (side + face)
-## do the Bp side transform
-## s = side; 0=colour, 1= number
-## --------------Side-----------------
- at BPs0=($Llb[0],$Llm[0],$Llt[0],
-       $Ult[0],$Umt[0],$Urt[0],
-       $Rrt[0],$Rrm[0],$Rrb[0],
-       $Drb[0],$Dmb[0],$Dlb[0]);
-
- at BPs1=($Llb[1],$Llm[1],$Llt[1],
-       $Ult[1],$Umt[1],$Urt[1],
-       $Rrt[1],$Rrm[1],$Rrb[1],
-       $Drb[1],$Dmb[1],$Dlb[1]);
-
-$Ult[0]=$BPs0[0]; $Ult[1]=$BPs1[0];
-$Umt[0]=$BPs0[1]; $Umt[1]=$BPs1[1];
-$Urt[0]=$BPs0[2]; $Urt[1]=$BPs1[2];
-
-$Rrt[0]=$BPs0[3]; $Rrt[1]=$BPs1[3];
-$Rrm[0]=$BPs0[4]; $Rrm[1]=$BPs1[4];
-$Rrb[0]=$BPs0[5]; $Rrb[1]=$BPs1[5];
-
-$Drb[0]=$BPs0[6]; $Drb[1]=$BPs1[6];
-$Dmb[0]=$BPs0[7]; $Dmb[1]=$BPs1[7];
-$Dlb[0]=$BPs0[8]; $Dlb[1]=$BPs1[8];
-
-$Llb[0]=$BPs0[9];  $Llb[1]=$BPs1[9];
-$Llm[0]=$BPs0[10]; $Llm[1]=$BPs1[10];
-$Llt[0]=$BPs0[11]; $Llt[1]=$BPs1[11];
-
-##-----------------Back FACE-------------
-## do the B face transform (in rows: 1,2,3/4,5,6/7,8,9)
-## f = face; 0=colour, 1= number
- at BPf0=($Brb[0], $Brm[0], $Brt[0],     $Bmb[0], $Bmm[0], $Bmt[0],     $Blb[0], $Blm[0], $Blt[0]);
-
- at BPf1=($Brb[1], $Brm[1], $Brt[1],     $Bmb[1], $Bmm[1], $Bmt[1],     $Blb[1], $Blm[1], $Blt[1]);
-
-$Brt[0]=$BPf0[0]; $Brt[1]=$BPf1[0];
-$Bmt[0]=$BPf0[1]; $Bmt[1]=$BPf1[1];
-$Blt[0]=$BPf0[2]; $Blt[1]=$BPf1[2];
-
-$Brm[0]=$BPf0[3]; $Brm[1]=$BPf1[3];
-$Bmm[0]=$BPf0[4]; $Bmm[1]=$BPf1[4];
-$Blm[0]=$BPf0[5]; $Blm[1]=$BPf1[5];
-
-$Brb[0]=$BPf0[6]; $Brb[1]=$BPf1[6];
-$Bmb[0]=$BPf0[7]; $Bmb[1]=$BPf1[7];
-$Blb[0]=$BPf0[8]; $Blb[1]=$BPf1[8];
-}
-##=====================end===================================
-\end{verbatim}
-
-\begin{center}
------- END ------
-\end{center}
-
-\end{landscape}
-
-\end{document}

Modified: trunk/Master/texmf-dist/scripts/rubik/rubikrotation.pl
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/source/latex/rubik/examples.bat
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/examples.bat	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/source/latex/rubik/examples.bat	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,4 +0,0 @@
- latex  --shell-escape  examples.tex
-# latex  --shell-escape  examples.tex
-
-

Modified: trunk/Master/texmf-dist/source/latex/rubik/rubikcube.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/rubikcube.dtx	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/source/latex/rubik/rubikcube.dtx	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,10 +1,9 @@
 % \iffalse meta-comment
-%
 %  rubikcube.dtx
 % 
-%  version 3.0    25 September 2015
+%  version v4.0  (03 March 2017)  
 %
-%  Copyright 2015  
+%  Copyright 2017 
 %  RWD Nickalls (dick at nickalls.org) and 
 %  A Syropoulos (asyropoulos at yahoo.com)
 %
@@ -63,7 +62,7 @@
 %
 %
 % 
-% \CheckSum{4105}
+%%% \CheckSum{5683} 
 %
 %%% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -82,7 +81,9 @@
 %%   Right brace   \}     Tilde         \~}
 %
 %
-% \title{The \textsc{rubikcube} package}
+% \title{%
+%       \ifpdf\pdfbookmark[1]{Title}{Title}\else\fi%
+%        The \textsc{rubikcube} package}
 %
 % \author{
 %      RWD Nickalls (dick at nickalls.org) \\
@@ -96,7 +97,7 @@
 %  The \rubikcube\ package provides LaTeX commands and macros 
 %  for  typesetting  Rubik cube (3x3x3) notation,  configurations, and 
 %  rotation sequences  using the  TikZ graphic language. It is part of the 
-%   rubik `bundle'.
+%   Rubik `bundle'.
 %  \end{abstract}
 %
 % \medskip
@@ -104,7 +105,7 @@
 % \begin{minipage}{11cm}
 % \centering
 % \ifpdf
-%  \includegraphics[width=10cm]{Rubik-doc-figF.pdf}
+%  \includegraphics[width=10cm]{rubik-doc-figF.pdf}
 % \else
 % \fi
 % \end{minipage}
@@ -118,58 +119,109 @@
 % The  \rubikcube\  package (part of the \textsc{rubik} `bundle') provides  a 
 % collection of \LaTeX\ commands 
 % and macros for  typesetting  Rubik cube  configurations  using the  
-% PGF/TikZ graphic languages. Note that this package relates  only to  the 
+% PGF/TikZ graphic languages, and relates  only to  the 
 % familiar  3x3x3 Rubik cube. 
-% We have extended  the  layer-rotation  hieroglyphic notation,  originally  
+% We have extended  the  rotation  hieroglyph notation,  originally  
 % developed  by Garfath-Cox (1981), and improved by Duvoid (2010, 2011).
 %
 % The \rubikcube\ package is designed to be  used in conjunction 
-% with the  \textsc{rubikrotation} package (see below); the former deals 
-% primarily with  typesetting, while the latter  processes  rotation sequences
-%  and keeps  track of the cube's configuration.
+% with both  the  \textsc{rubikrotation} package and the \textsc{rubikpatterns} package. 
+% The \rubikcube\ package deals  primarily with  typesetting, while the \textsc{rubikrotation}
+% package processes  rotation sequences  and keeps  track of the cube's configuration.
+% The \textsc{rubikpatterns} package is a small database of Rubik cube rotation sequences 
+% which generate well-known named cube configurations (patterns).
+% For full functionality it is  recommended that  all three Rubik packages  are used 
+% together; for~example,
+%\begin{verbatim}
+%  \usepackage{tikz,rubikcube,rubikrotation,rubikpatterns}
+%\end{verbatim}
+% Note that the \verb!TikZ! package must be loaded \textit{before} the \textsc{rubikcube} 
+% package.
 %
 %  The \rubikcube\ package has been road-tested  on a Microsoft 
-%  platform (with \textsf{MiK}\TeX), a Linux platform (Mandriva and {\TeX}Live),
-%  and on a Solaris platform (OpenIndiana).
+%  platform (with \textsf{MiK}\TeX), a GNU-Linux platform (Debian 8.2.0 
+%  and {\TeX}Live 2016), and on a Solaris platform (OpenIndiana).
 %
 % 
 % For the mathematics and group theory associated with the   Rubik cube  see Chen~(2004), 
-% Davis (2006), Golomb~(1981, 1982), Joyner~(2008), Hofstadter (1981), Hutchings~(2011), 
-% Kociemba web site, Rokicki~\textit{et al.} (2013), Tran~(2005).
-%  Useful web sites for solvers are the Speedsolving website, and  those 
-% maintained  by Duvoid,  by Fridrich, by Jelinek,  by Reid, and by Vandenburgh 
-% (see References).
+% Davis (2006), Golomb~(1981, 1982),  Hofstadter (1981), Hutchings~(2011), 
+% Heise website, Joyner~(2008), Kociemba website, 
+% Rokicki~\textit{et al.} (2013), Scherphius website,  Tran~(2005).
+%  Other useful websites are the Speedsolving website, and  those 
+% maintained  by Duvoid,  by Fridrich, by Jelinek,  by Reid, and by Vandenburgh. 
+%  A useful online solver utility (based on an algorithm by Kociemba) is
+% available at the RuWix website. Websites with good pages on  patterns and symmetries are 
+% those by  Fridrich, Kociemba, Longridge, Reid, Randelshofer, Scherphius 
+% (see References for details).
 %
 %
 %      \subsection{Requirements}
 %
-%  The \rubikcube\ package requires the TikZ package.
-%  In particular, we make  use the \cmd{\pgfmathsetmacro} command and 
-% the TikZ picture environment.
+%  The \rubikcube\ package requires the TikZ package, since it makes  
+%  use  of the TikZ picture environment and the \cmd{\pgfmathsetmacro} command.
+% Consequently, the \verb!TikZ! package must be loaded \textit{before} 
+% the \textsc{rubikcube}  package.
 %
+%  Both the \textsc{rubikrotation} and \textsc{rubikpatterns}  packages (see below) 
+% require  Perl to be installed.
 %
+%
 %  \subsection[rubikrotation package]{Supporting  tool---the 
 %   \textsc{rubikrotation} package}
-%  \label{sec:addons}
+%   \label{sec:rubikrotation}
 %
-%  The \textsc{rubikrotation} package, is a dynamic extension to
-% the \rubikcube\ package, and is part of the `Rubk bundle'. It consists of  the  
+%  The \textsc{rubikrotation} package (also part of the \textsc{rubik} `bundle'), 
+%  is a dynamic extension to  the \rubikcube\ package. It consists of  the  
 % Perl program  \texttt{rubikrotation.pl}  and the associated  style option
 %  \texttt{rubikrotation.sty}. 
-%  The \textsc{rubikrotation} package  implements rotation sequences and 
-%  random  scrambling of the 3x3x3 Rubik cube on-the-fly using a
+%  The \textsc{rubikrotation} package  implements rotation sequences on-the-fly using a
 %   \cmd{\RubikRotation}\marg{rotation-sequence} command. It returns the 
-% new state in a form which is then used by the \rubikcube\ package.
+%  new state in a form which can then be used by the \rubikcube\ package.
+% It also returns some useful strings associated with the rotation sequence 
+% which can  be used by the \rubikcube\ 
+% package---see also Section~\ref{sec:showsequence}.
 %
 %  Since the  \cmd{\RubikRotation} command works by \textsc{call}ing the  
 %  \texttt{rubikrotation.pl} program, it follows that the \textsc{rubikrotation}
 %   package requires  (a)~Perl to be installed, 
-%  and (b)~\LaTeX\ needs to be run using the  \texttt{--shell-escape} commandline option.
-%  See the \textsc{rubikrotation}  documentation for details.
+%  and (b)~the \LaTeX\ engine  needs to be run using the  \texttt{--shell-escape} 
+%  command-line option. Those wishing to use Lua\LaTeX\  will also need to have access 
+% to the recent \texttt{shellesc} package (in {\TeX}Live 2016). 
+% The \texttt{shellesc} package can always be downloaded from CTAN directly.
+%  See the \textsc{rubikrotation}  documentation for further details.
 %
 %
+%
+%  \subsection[rubikpatterns]{Supporting  database---\textsc{rubikpatterns.sty} }
+%  \label{sec:patterns}
+%
+%  
+%  The \textsc{rubikpatterns.sty} file (also part of the \textsc{rubik} `bundle')
+%  is a small database of some well-known  Rubik cube rotation sequences, stored as 
+%  named macros. For~example, the `fourspot' and `sixspot' sequences are encoded in 
+% this package as follows:
+%\begin{verbatim}
+%  \newcommand{\fourspot}{[fourspot],F2,B2,U,Dp,R2,L2,U,Dp,<(12q*, 8f*)>}
+%  \newcommand{\sixspot}{[sixspot],U,Dp,R,Lp,F,Bp,U,Dp,<(8q*, 8f*)>}
+%\end{verbatim}
+%  These sequences  can be  processed by name (using the  \cmd{\RubikRotation} command
+%  which also requires Perl to be installed---see Section~\ref{sec:rubikrotation}), and 
+% then displayed (using the \cmd{\ShowCube} command in conjunction with various 
+%  \cmd{\DrawRubikCube...} commands). So, for~example, one could typeset the so-called 
+%  `fourspot' configuration using the following code:
+%\begin{verbatim}
+%  \usepackage{tikz,rubikcube,rubikrotation,rubikpatterns}
+%  ...
+%  \RubikCubeSolved
+%  \RubikRotation{\fourspot}
+%  \ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}
+%\end{verbatim}
+% See also the \textsc{rubikrotation}  documentation---especially
+% Section~5.1.1 \textit{Sequences as macros}.
+%
+%
 %  \subsection{Copyright}
-%  Copyright 2014--2015 RWD Nickalls and A Syropoulos.
+%  Copyright 2014--2017 RWD Nickalls and A Syropoulos.
 %
 % \medskip
 % {\noindent}This work may be distributed and/or modified under the
@@ -181,8 +233,11 @@
 %
 % \section{Installation}
 %
+% The Rubik bundle consists of the three package \rubikcube, \textsc{rubikrotation} 
+% and \textsc{rubikpatterns}, each of which needs to be installed separately.
+% Here we describe  the installation of the \rubikcube\ package.
 %
-%  \subsection{Generating the files}
+%  \subsection{Generating the \rubikcube\ files}
 %
 %  Place the file \texttt{rubikcube.zip} into a temporary directory, and unzip it. 
 % This will generate the following files:
@@ -189,14 +244,19 @@
 %\begin{verbatim}
 %   rubikcube.ins
 %   rubikcube.dtx
-%   rubikcube.pdf
-%   Rubik-doc-figA.pdf
-%   Rubik-doc-figB.pdf
-%   Rubik-doc-figC.pdf
-%   Rubik-doc-figD.pdf
-%   Rubik-doc-figE.pdf
-%   Rubik-doc-figF.pdf
+%   rubikcube.pdf         --documentation of the rubikcube package
+%   rubik-doc-figA.pdf
+%   rubik-doc-figB.pdf
+%   rubik-doc-figC.pdf
+%   rubik-doc-figD.pdf
+%   rubik-doc-figE.pdf
+%   rubik-doc-figF.pdf
+%   rubikexamples.tex
+%   rubikexamples.pdf
+%   rubikexamples.sh
+%   rubikexamples.bat
 %\end{verbatim}
+%
 %  The  style option \texttt{rubikcube.sty} is generated by  running (pdf)\LaTeX\ on  
 % the file \texttt{rubikcube.ins}  as follows:
 %\begin{verbatim}
@@ -203,9 +263,9 @@
 %   pdflatex  rubikcube.ins 
 %\end{verbatim}
 % This documentation file (\texttt{rubikcube.pdf}) can then be generated using the following
-% steps\,\footnote{Since the documentation includes a complicated indexing 
-% system as well a \textsc{pdf} index and hyperef links (the package \texttt{hypdoc}
-% is used), then  several pdflatex runs are required. Prior to the first run it is
+% steps\,\footnote{Several pdflatex runs are required, since the documentation includes 
+% an index as well as hyperef links (the package \texttt{hypdoc}
+% is used). Prior to the first run it is
 % a good idea to delete any relevant \texttt{.toc}, \texttt{.aux}, \texttt{.out} files.}:
 %\begin{verbatim}
 %   pdflatex   rubikcube.dtx
@@ -216,6 +276,14 @@
 %   pdflatex   rubikcube.dtx
 %\end{verbatim}
 %
+% Note that the package includes a  `rubikexamples' file (\texttt{rubikexamples.tex})
+% as well as associated  \texttt{.sh} (Linux) and \texttt{.bat} (Microsoft) batch 
+% files which can be used to facilitate processing the file. 
+% Note that many of the examples in this file use the \cmd{\RubikRotation} command
+% (associated with the \textsc{rubikrotation} package), 
+% and hence this file needs to be run using the \verb!--shell-escape! command-line 
+% option  (see Section~\ref{sec:rubikrotation} for details).
+
 %
 %  \subsection{Placing the files}
 %
@@ -229,7 +297,7 @@
 %
 % \medskip
 % {\noindent}Finally, (depending on your system) update the  \TeX\ file database.
-% For example, on a Linux system one uses the  \texttt{texhash} command.
+% For~example, on a Linux system one uses the  \texttt{texhash} command.
 %
 %
 % \subsection{Usage}
@@ -240,159 +308,41 @@
 % \begin{quote}
 %\begin{verbatim}
 % \usepackage{tikz}
-% \usepackage{rubikcube,rubikrotation}
+% \usepackage{rubikcube,rubikrotation,rubikpatterns}
 %\end{verbatim}
 % \end{quote}
 % However, the \rubikcube\ package does check for the presence of TikZ, and will 
 % load it  if TikZ is not already loaded.
 % While \rubikcube\ is a stand-alone package, it is best to also load the complementary
-%  \textsc{rubikrotation}  package.
+%  \textsc{rubikrotation} and \textsc{rubikpatterns}  packages.
 %
 %
-%    \section{TikZ picture environment}
-%      \label{sec:tikz}
+% \DescribeMacro{\rubikcube}
+% This command generates the logo \rubikcube.
 %
-%  For a basic introduction to the use of TikZ see the following manuals
-%  (from CTAN or from \texttt{http://altermundus.com/}).
-%  \begin{itemize}
-%  \item \texttt{pgfmanual.pdf}, version 3.0.1a (August 2015) (1161 pages)
-%  \item \texttt{pgfplot.pdf}, version 1.12.1 (2015) (504 pages)
-%  \item tkz-base-screen.pdf
-%  \end{itemize}
-% An example of the TikZ picture environment for use with the \rubikcube\ package 
-% is as follows:  
-% \begin{quote}
-%\begin{verbatim}
-% \begin{tikzpicture}[scale=0.5]
-% ....
-% \end{tikzpicture}%
-%\end{verbatim}
-% \end{quote}
-% If no scale is used (default scale = 1), then each of the small
-% cubie sides  will have a length of 1~cm.
 %
-% A very useful feature of  TikZ  is that it automatically 
-% minimises the surrounding  white-space, and consequently this is 
-% mostly quite sufficient. However, it is good practice to place 
-% a \% symbol after the \verb!\end{tikzpicture}! command *see above) 
-% to avoid  additional white space (see Section~\ref{sec:trailingpercent}).
 %
+%        \section{Command conventions}
+%        \label{sec:conventions}
 %
-%   \subsection[ShowCube command]{\cmd{\ShowCube} command}
-%   \label{sec:showcube}
 %
-% \DescribeMacro{\ShowCube}
-% \DescribeMacro{\ShowCubeF}
-% When making side-by-side figures it can be very helpful
-%  to place each sub-figure inside a  minipage.
-% In this case, a useful approach is to  first adjust 
-% the  tikzpicture `scale' parameter  to obtain the appropriate size, and 
-% then adjust the minipage width as necessary 
-% (see Section~\ref{sec:sizeofminipage}).
-% The  \cmd{\ShowCube} macro (See Section~\ref{sec:showcubecode}) places one 
-% or more commands  inside a tikzpicture environment  and places all of 
-% these inside a minipage.  It takes three arguments: the first is the 
-% minipage width (\verb!#1!), second is  the tikzpicture scale 
-% factor (\verb!#2!), and third is a \cmd{\Draw..} command (|#3|).
-% 
-% \noindent\textsc{usage}:
-% The following command would display a Rubik cube  in a 
-% minipage of  width 2cm  using a tikzpicture scale factor of 0.5:
-%\begin{verbatim}
-% \ShowCube{2cm}{0.5}{\DrawRubikCubeRU}
-%\end{verbatim}
-% For example, the following two sets of commands are equivalent (see
-%  Section~\ref{sec:showcubecode} for the code); i.e.,~any commands which are valid in
-% a \texttt{tikzpicture} environment may be used as the main argument for the 
-% \cmd{\ShowCube} command.
-% $$
-%   \left.
-%   \begin{array}{l} 
-%   \verb!\RubikCubeSolved!\\
-%   \verb!\begin{minipage}{2cm}!\\
-%   \ \   \verb!\centering!\\
-%   \ \   \verb!\begin{tikzpicture}[scale=0.5]!\\
-%   \ \ \ \ \   \verb!\DrawRubikCubeRU!\\
-%   \ \ \ \ \   \verb!\draw[->] (0.5,5) -- (0.5,4);!\\
-%   \ \   \verb!\end{tikzpicture}!\\
-%   \verb!\end{minipage}!\\
-%   \end{array}
-%         \right\}  
-%                 \begin{array}{l}  
-%                 \verb!\RubikCubeSolved!\\
-%                 \verb!\ShowCube{2cm}{0.5}{%!\\
-%                 \ \ \ \ \verb!\DrawRubikCubeRU!\\
-%                 \ \ \ \ \verb!\draw[->] (0.5,5) -- (0.5,4);!\\
-%                 \ \verb!}!\\
-%                 \end{array}
-% $$
+% All  \rubikcube\ package commands assume a 3x3x3 cube by default.
+% There are three primary command categories: (a)~\cmd{\Draw..} commands 
+% (which must always be used \textit{inside} a TikZ picture environment), 
+%  (b)~`parameter-allocation' commands---e.g.,~\cmd{\RubikCubeSolved}---which can 
+%  be used either inside or outside  a TikZ environment),  
+%  and (c)~commands which can be used in ordinary text 
+% (e.g.,~|\rr{}| rotation commands).
 %
-% The  \cmd{\ShowCubeF} command is similar in all respects except that it places 
-% an fbox around the minipage in order to enable users to see the extent of any 
-% associated white space.
 %
-% Unexpected spacing between two adjacent images, or between an 
-% image and adjacent text, is usually related to 
-% `hidden' white-space associated with the image itself or excessive width 
-% of the associated \cmd{\minipage} (see also Section~\ref{sec:trailingpercent}).
-% Consequently,  a temporary fbox around the minipage can be a 
-% useful aid  when trying to  visualise the  full extent of the minipage 
-% (and its associated whitespace). Use the \cmd{\ShowCubeF} command for this, as follows:
+%   \subsection{Environments}
 %
-% \medskip
-%
-% \RubikCubeSolved
-% \ShowCubeF{4cm}{0.3}{\DrawRubikCubeRU}
-%\begin{minipage}{5cm}
-%\begin{verbatim}
-% \ShowCubeF{4cm}{0.3}{\DrawRubikCubeRU}
-%\end{verbatim}
-%\end{minipage}
-%
-% \medskip
-% {\noindent}Clearly either the minipage is too wide (4cm) or the \texttt{tikzpicture} 
-% scale factor is too  small (0.3). Once the figure/code has been corrected, then the 
-% \texttt{F}  in  the  \cmd{\ShowCubeF} command  can be removed. Note that while 
-% the \cmd{\ShowCube} command centers  the image  inside the minipage, \LaTeX\ positions 
-% the minipage in the \cmd{\textwidth}, and  hence it is  generally best to minimise 
-% the white-space as revealed by the \cmd{\ShowCubeF}  command.  The relationship 
-% between the required width of the minipage and the TikZ  scale factor  for the various 
-% Rubik cube images is detailed in  Section~\ref{sec:sizeofminipage}.
-%
-%
-%
-%   \subsection[Draw.. error message]{\cmd{\Draw} error message}
-%   \label{sec:drawerrormessage}
-%
-% If a \rubikcube\   \cmd{\Draw..} command is used \textit{outside} a 
-% TikZ picture  environment, then \LaTeX\  issues an
-%  ``Undefined control sequence'' error message, indicating 
-% that it is trying to draw  something using an undefined 
-% TikZ \cmd{\draw} command. 
-%
-% For example, if we  use  the \rubikcube\ command 
-%  \cmd{\DrawRubikFlat}  without a surrounding TikZ picture environment 
-%  then something similar to  the following error message will be generated.
-%\begin{verbatim} 
-%! Undefined control sequence.
-%\DrawFlatUp ... }{#1}\pgfmathsetmacro {\uy }{#2}\draw
-%                                                      [line join=round,...
-%l.56 \DrawRubikFlat
-%\end{verbatim}
-%
-%
-%
-%        \section{Command conventions}
-%        \label{sec:conventions}
-%
-%   \subsection{Commands and  environments}
-%
 % Although the \rubikcube\ package has been designed with TikZ in mind, 
-% it is important to appreciate that of all the  various \rubikcube\  
+% it is important to appreciate that of all the  various \rubikcube\ package   
 % commands only the Rubik \cmd{\Draw...} commands and  TikZ commands actually 
 % have to be  used  inside  a  TikZ picture environment. 
 %
-% Indeed, using  \rubikcube\  commands which influence the Rubik colour state
+% Indeed, using  \rubikcube\ package commands which influence the Rubik colour state
 % (configuration) outside the \texttt{tikzpicture}, \texttt{minipage} or 
 % \texttt{figure}  environments can make for useful 
 % flexibility when a document is generating  more than one figure
@@ -399,55 +349,84 @@
 % or image. This is because the scope of any colours specified by commands inside
 % these  environments is constrained to 
 % be `local' to that particular environment, and hence  any change in the 
-% Rubik colour state brought  about by such commands is not accessable 
+% Rubik colour state brought  about by such commands is not accessible 
 % globally (i.e.,~outside  the environment) ---see also Section~5 in the documentation 
 % of the \textsc{rubikrotation} package.
 %
 % Consequently users need to be mindful of the  environments when  
-% drawing long sequences of rotations across several figures; for example, keeping 
-% \cmd{\RubikRotation} commands outside the environments keeps their effects global. 
+% drawing  sequences of rotations across several figures; for~example, keeping commands like 
+% \cmd{\RubikRotation}, \cmd{\RubikFace..}, \cmd{\RubikSide..}, \cmd{\RubikCubeSolved}, 
+%  outside the environments keeps their effects global. 
 %
+%
 %   \subsection{Capital letters}
 %
-%  Each `word' in a command (except the word `text')  starts with a capital letter. 
-%  For example,  \cmd{\DrawRubikCubeRU}, \cmd{\DrawCubieRU}. 
-%  However, as with  \LaTeX,  `text..' commands start with a lowercase `t'; 
-%  for example \cmd{\textCubieRU}.  Letters  for  colours (R, O, Y, G, B, W, X)  are 
-%  always written in uppercase. 
+% Virtually all Rubik bundle commands start with a capital letter, primarily to 
+% avoid any confusion with TikZ commands (these generally start with lower-case letters). However,
+%  each `word' in a Rubik bundle  command (except the word `text') also starts 
+%  with a capital letter, primarily to facilitate readability. 
+%  For~example,  \cmd{\DrawRubikCubeRU}, \cmd{\DrawCubieRU}. 
+%  However, as with  \LaTeX,  `text..' commands start with a lower-case `t'; 
+%  for~example \cmd{\textCubieRU}.  Letter arguments  for  colours (R, O, Y, G, B, W, X)  are 
+%  always written in upper-case letters. 
 %
 %
+%
 %     \subsection{XYZ argument ordering}
+%     \label{sec:xyzarguments}
 %
-% Many commands have an appended two (XY) or three (XYZ) ordered letter code 
-% which is used to for  specifying some feature of the command; perhaps 
-%  either  face or cubie colours or a viewpoint direction. 
+% Many commands have an appended two, three, or even six  ordered arguments or letters 
+% which form  some feature of the structure of a command; perhaps 
+%  either  face  or colour code or a viewpoint direction. 
 %
-% The convention is that the letter codes are ordered in the XYZ order; 
-% i.e.,~the first code relates to  an X-related parameter; 
-% for example  L (Left) or R (Right); the second relates to  a Y-related 
-% parameter;  for example  U (Up) or D (Down); the third (if required) 
-% relates to  a Z-related  parameter;  for example  F (Front) or B (Back).
+% We adopt the convention that where ordering of arguments is critical, then the 
+% arguments are ordered in the XYZ, $+$, $-$  order. An XYZ code implies that 
+% the first letter in the code relates to  an X-related parameter, 
+% for~example,  L (Left) or R (Right); the second letter relates to  a Y-related 
+% parameter,  for~example,  U (Up) or D (Down); the third (if required) 
+% relates to  a Z-related  parameter,  for~example,  F (Front) or B (Back)
+% ---see Figure~\ref{fig:notation}.
 %
+% Some commands have six arguments which adopt an  (XYZ;$+$$-$) format. In this case,
+% for~example, the  \cmd{\SolvedConfig} command, for which   the six colour  arguments 
+% are ordered  as X$+$, X$-$,  Y$+$, Y$-$, Z$+$, Z$-$. Here the colour argument 
+% associated with a  face positioned on the $+$ve axis is  ordered before  
+% its $-$ve  complement on the same axis. 
 %
-% \textsc{example}: |\DrawCubieRU{G}{Y}{O}|  draws a cubie from 
-% the RightUp viewpoint. The sequence of  colour codes for the three visible 
-% faces are XYZ ordered, and hence result in the cube having a Green Right face, 
-% Yellow Up face and Orange Front face.
+% Another example is the  |\DrawCubieRU{G}{Y}{O}| command, which  draws a cubie. Here 
+% the RU letters are XY ordered; i.e.,~RightUp viewpoint. The sequence of  colour codes 
+% for the three visible  faces are XYZ ordered, and hence result in the cube having a 
+% Green Right face,  Yellow Up face and Orange Front face.
 %
 %
+%
 %  \subsection{Trailing \% on the end of commands}
 % \label{sec:trailingpercent}
 %
-% It is important to include a trailing \% on the end of \rubikcube\ 
-% commands when used \textit{outside}  a TikZ picture environment, and 
-% also on the end of each \cmd{\end\{tikzpicture\}} environment command. 
-% This is to prevent  unwanted `space' characters appearing in 
-% the graphics. In \TeX\ every newline character is automatically converted
+% Since the all the output of this package is drawn using graphic elements
+% using TikZ, it is important to include a trailing \% on the end 
+% of \rubikcube\ package commands when used \textit{outside}  a TikZ picture environment, and 
+% also on the end of the \cmd{\end\{tikzpicture\}} environment command itself. 
+% In particular it is  important to use a trailing \% on 
+% the end of lines which  break  before the terminal curly bracket of a \cmd{\newcommand}.
+%
+% This is to prevent accumulating spurious spaces which may otherwise appear in 
+% figures and diagrams as a strange or unexpected horizontal shift or white-space.
+% That this can occur is because in \TeX\ every newline character is automatically converted
 %  to a white space---unless you have an empty line 
-% (Feuers\"{a}nger 2015, \S\,3.2.3, page~20). 
+% (Feuers\"{a}nger 2016). 
 %
+% The \LaTeX\  fbox is a useful aid for visualising unwanted white space 
+% which may have accumulated, and for identifying the cause. 
+% See  Section~\ref{sec:showcube} on the \cmd{\ShowCubeF} command for 
+% more regarding this approach.
 %
+% Although this effect is mostly small, and  is generally only observed in situations
+% when centering a graphic is critical, it is, however, cumulative and can be surprisingly large. 
+% In these situations,  the cure is the addition of terminal \%  characters to preceding 
+% code guided by careful detective use of the fbox technique mentioned above.
 %
+%
 %     \subsection{Cubies, cubicles, faces and facelets}
 %
 % The  sub-cubes which make up the Rubik cube are  known as `cubies'; the small 
@@ -457,13 +436,13 @@
 %
 % We distinguish three types of cubie:  
 % centre-cubies (single colour), edge-cubies (two colours) and corner-cubies 
-% (three colours). For example, the red/white edge-cubie  is called  
+% (three colours). For~example, the red/white edge-cubie  is called  
 % the RW cubie, and  the red/white/green corner-cubie  is called the 
 % RWG cubie etc. Note that the colour of a particular face of a  3x3x3 Rubik 
 % cube is determined by the colour of its  centre-cubie. 
 %
 % Similarly, the positions (known as `cubicles') occupied by cubies  are 
-% defined using either a  two or three  letter face  code. For example the  
+% defined using either a  two or three  letter face  code. For~example, the  
 % right edge position  in the Up-layer is termed  the  Up/Right position, 
 % or just the UR position, and the  corner   joining the \textsc{down}  
 % \textsc{front} and \textsc{right} faces is the DFR position.    
@@ -470,25 +449,270 @@
 %
 %
 %
-%    \section{Colours}
+%     \section{Rubik cube coordinates}
+%     \label{sec:coordinates}
 %
+% The coordinate origin  of all 2D  Rubik cube images  is located  
+% at the bottom-left corner of the \textsc{front} face, as shown in 
+%  Figure~\ref{fig:cubesquaregraph}. Note also that the bottom left 
+%  extent  of this particular  2D  rendering of the cube  is actually  at $(-1,-1)$, 
+%  and hence the default height and width of all oblique-view cubes is 4~units
+%  (i.e.,~equivalent to 4cm if the TikZ scale-factor = 1). 
+%
+% \begin{figure}[hbt]
+% \centering
+% \ifpdf
+%   \includegraphics[height=4cm]{rubik-doc-figB.pdf}
+% \else
+% \includegraphics[height=4cm]{rubik-doc-figB.eps}
+% \fi
+%
+% \parbox{9cm}{\caption{\label{fig:cubesquaregraph}Origin of coordinates 
+%  is at the  bottom left corner of the grey \textsc{front} face. 
+%  Since  $P$ is  at $(-1,-1)$ then the default height and width of the 
+%  2D~cube image is 4~units.}}
+% \end{figure}
+%
+% Arranging for $P$ to be at $(-1,-1)$, as well as using the bottom-left corner 
+% of the \textsc{front} face as  the origin, are useful  design  
+% features which make it easy to know the coordinates of any point, and hence 
+% facilitate the use any of the  TikZ commands  
+% (e.g.,~\cmd{\draw} and \cmd{\node} commands) to  superimpose lines, 
+% arrows and text etc.,~onto the Rubik cube (see Section~\ref{sec:arrows}).
+
+%
+%      \subsection[Size of cube minipage]{Size of cube \cmd{\minipage}}
+%      \label{sec:sizeofminipage}
+%
+%  Since the the default height and width of the oblique 2D~cube image is 
+% 4~units (see Section~\ref{sec:coordinates} above), 
+%  it follows that the width of the \cmd{\minipage} required for a cube in a 
+%  \texttt{tikzpicture}  environment can be easily calculated. For~example, 
+%  if the \texttt{tikzpicture} scale factor used is $0.5$, then the minimum
+%  width of the required minipage for the \cmd{\DrawRubikCubeLD} view (shown above)
+%  is therefore $0.5 \times 4\mbox{cm} =  2\mbox{cm}$. 
+%
+% Note that the width of the semi-flat (SF) cube representation is therefore 
+% 10~units ($=3+3+1+3$),  and that of the  flat (F) cube is 12~units ($=3+3+3+3$)
+%  --- see Section~\ref{sec:flatcommands} for images of these forms. 
+% If in doubt check the  horizontal extent of an image  using the \cmd{\ShowCubeF} command,
+% which places an fbox around the image.
+%
+%
+%
+%    \section{TikZ picture environment}
+%      \label{sec:tikz}
+% 
+%  All the Rubik bundle \cmd{\Draw..} commands are designed to be used 
+% with the TikZ picture environment, and  are compatible with standard TikZ. 
+%  For a basic introduction to the use of TikZ see the following manuals
+%  (from CTAN or from \texttt{http://altermundus.com/}).
+%  \begin{itemize}
+%  \item \texttt{https://en.wikipedia.org/wiki/PGF/TikZ}
+%  \item \texttt{pgfmanual.pdf}, version 3.0.1a (?\,2013) (1161 pages)
+%  \item \texttt{pgfplot.pdf}, version 1.13 (2016) (544 pages)
+%  \item \texttt{tkz-base-screen.pdf}, version 1.16c (2011) (91 pages)
+%  \end{itemize}
+% An example of the TikZ picture environment for use with the Rubik bundle 
+% is as follows:  
+% \begin{quote}
+%\begin{verbatim}
+% \begin{tikzpicture}[scale=0.5]
+% ...
+% \end{tikzpicture}%
+%\end{verbatim}
+% \end{quote}
+% If no scale-factor is used (default scale-factor = 1), then each of the small
+% cubie sides  will have a length of 1~cm.
+%
+% \textsc{useful commands}:\  Probably the most  
+% useful TikZ commands for use with regard 
+% to the Rubik bundle are the \cmd{\draw} command (for drawing  lines, arrows, circles), 
+% and the \cmd{\node} command (for writing text at specific coordinate locations). 
+% The basic structure of these commands  is as~follows, where 
+% (x,y) represent grid coordinates of start or end points of lines or arrows, 
+% or of a circle centre, or of text position (see Sections~\ref{sec:flatcommands} 
+% and \ref{sec:arrows} for examples).
+% \begin{quote}
+% \begin{verbatim}
+% \draw[->,thick,color=blue] (4.5, 2.5) -- (3.5,2.5);
+% \draw[->,ultra thick,color=red] (4.5, 2.5) -- (3.5,2.5);
+% \draw [color=blue, thick] (0.3, 0.3)  circle (1.3);
+% \node (B) at (7.5, 1.5)   [black]{\small\textsf{B}};
+%\end{verbatim}
+%\end{quote}
+% Remember that all TikZ commands  which are valid inside a \texttt{tikzpicture}
+% environment require a terminal semicolon (see Section~\ref{sec:arrows} 
+% for examples).
+%
+% \textsc{colours}: \ 
+% The following colors are predefined by TikZ: red, green, blue, cyan, magenta, 
+% yellow, black, gray, darkgray, lightgray, brown, lime, olive, orange, pink, 
+% purple, teal, violet and white (see \texttt{https://en.wikipedia.org/wiki/PGF/TikZ}).
+%
+% \textsc{line width}: \
+%  TikZ allows line width to be specified directly 
+% (e.g.,~\texttt{[line width=<dimension>]}), or by using the following abbreviations: 
+%  `ultra thin' for 0.1pt,  `very thin' for 0.2pt, `thin' for 0.4pt (the default width), 
+% `semi thick' for 0.6pt, `thick' for 0.8pt, `very thick' for 1.2pt, 
+% `ultra thick' for 1.6pt (see \texttt{https://en.wikipedia.org/wiki/PGF/TikZ}).
+%
+%% \textsc{white space}: \ 
+% A particularly useful feature of  TikZ  is that it automatically 
+% minimises any horizontal white-space. However, it is good practice to place 
+% a \% symbol after the \verb!\end{tikzpicture}! command *see above) 
+% to avoid  additional white space inadvertently being added by \LaTeX\
+%  (see Section~\ref{sec:trailingpercent}).
+%
+% When making images it can be helpful to place them inside a  minipage 
+% (e.g.,~using the  \cmd{\ShowCube}  command / environment below).
+% A~convenient approach is to  first adjust  the  value of the  tikzpicture scale-factor
+%  (to obtain the appropriate size), and  then adjust the minipage-width as necessary, using
+% the fbox associated with the \cmd{\ShowCubeF} command  
+% (see Section~\ref{sec:sizeofminipage} for a useful guide on this).
+%
+%  The main `display' tool for  drawing cubes is the \cmd{\ShowCube} command 
+% (see below), and this  incorporates a 
+% TikZ picture environment inside a minipage. The equivalent tool for 
+% displaying rotation sequences is the \cmd{\ShowSequence} command.
+% 
+%
+%
+%
+%
+%   \section[ShowCube command]{\cmd{\ShowCube} command}
+%   \label{sec:showcube}
+%
+%
+% \DescribeMacro{\ShowCube}
+% This command  \cmd{\ShowCube}\marg{width}\marg{scale-factor}\marg{commands}
+% is a convenient tool  which places one  or more commands  inside a 
+% tikzpicture environment  and places  all of  these inside a minipage
+% (see Section~\ref{sec:showcubecode} for the code).
+% This command takes three arguments: the first (\verb!#1!) is the  minipage width, 
+% the second (\verb!#2!) is  the tikzpicture scale  factor, and the third (\verb!#3!) 
+% is a  series of any \rubikcube\ package  \cmd{\Draw..}  and other commands, as well as 
+% any TikZ commands which are valid in  a \texttt{tikzpicture} environment 
+% (e.g.,~\cmd{\draw} or \cmd{\node}  etc.). 
+% 
+% \medskip
+% 
+% \noindent\textsc{usage}:
+% The following \cmd{\ShowCube} command  displays a Rubik cube 
+% (the `SixT's configuration\footnote{The \cmd{\sixts} macro is from the \textsc{rubikpatterns}
+% package.})  and a blue arrow  in a  minipage of  width~3cm,  using a tikzpicture scale 
+% factor of~0.5.
+% Note that the  TikZ  \cmd{\draw} command requires a terminal 
+% semicolon---see Section~\ref{sec:tikz}.
+% 
+% \medskip
+%
+% {\noindent}%
+% \begin{minipage}{6.6cm}
+%\begin{verbatim}
+% \RubikCubeSolved
+% \RubikRotation{\sixts}
+% \ShowCube{3cm}{0.5}{%
+%     \DrawRubikCubeLU
+%     \draw[->,thick,color=blue] (4.5, 2.5) -- (3.5,2.5);
+%      }
+%\end{verbatim}
+% \end{minipage}
+% \hspace{2.5cm}%
+%\RubikFaceUp{Y}{Y}{W}{W}{W}{W}{Y}{Y}{W}%
+%\RubikFaceDown{Y}{W}{W}{Y}{Y}{Y}{Y}{W}{W}%
+%\RubikFaceLeft{B}{G}{G}{B}{B}{B}{B}{G}{G}%
+%\RubikFaceRight{G}{B}{B}{G}{G}{G}{G}{B}{B}%
+%\RubikFaceFront{O}{O}{O}{R}{O}{R}{R}{O}{R}%
+%\RubikFaceBack{O}{R}{O}{O}{R}{O}{R}{R}{R}%
+% \ShowCube{3cm}{0.5}{%
+%     \DrawRubikCubeLU
+%     \draw[->,thick,color=blue] (4.5, 2.5) -- (3.5,2.5);
+%      }
+%
+% \medskip
+%
+% {\noindent}The convenience of the \cmd{\ShowCube} command  is illustrated below; the 
+%  \cmd{\ShowCube} command on the left is equivalent to the bunch of commands
+%  on the right (see Section~\ref{sec:showcubecode} for the  complete code).
+% $$
+%  \left.  
+%    \begin{array}{l}
+%    {\ }\\
+%    {\ }\\
+%    \verb!\ShowCube{3cm}{0.5}{...}!\\
+%    {\ }\\
+%    {\ }\\
+%    \end{array}
+%   \right\{       
+%          \begin{array}{l} 
+%          \verb!\begin{minipage}{3cm}%!\\
+%          \verb!\centering%!\\
+%          \verb!\begin{tikzpicture}[scale=0.5]!\\
+%          ...\\
+%          \verb!\end{tikzpicture}%!\\
+%          \verb!\end{minipage}%!\\
+%          \end{array}
+% $$
+%
+% \DescribeMacro{\ShowCubeF}
+% The  \cmd{\ShowCubeF} command is similar in all respects except that it places 
+% an fbox around the minipage in order to enable users to see the extent of any 
+% associated white space. For~example, unexpected spacing between two adjacent images, 
+% or between an  image and adjacent text, is usually related to 
+% `hidden' white-space associated with the image itself or excessive width 
+% of the associated \cmd{\minipage} (see also Section~\ref{sec:trailingpercent}).
+% Consequently,  a temporary fbox around the minipage can be a 
+% useful aid  when trying to  visualise the  full extent of the minipage 
+% (and its associated white-space). Use the \cmd{\ShowCubeF} command for this. 
+
+% For~example, the following use of the \cmd{\ShowCubeF} command reveals a significant 
+% white-space problem:
+%
+% \medskip
+%{\noindent}%
+%\begin{minipage}{6.6cm}
+%\begin{verbatim}
+% \ShowCubeF{4cm}{0.3}{\DrawRubikCubeRU}
+%\end{verbatim}
+%\end{minipage}
+% \RubikCubeSolved
+% \ShowCubeF{4cm}{0.3}{\DrawRubikCubeRU}
+%
+% \medskip
+% {\noindent}In this example, clearly either the minipage is too wide (4cm) or the \texttt{tikzpicture} 
+% scale factor is too  small (0.3). Once the figure/code has been corrected, then the 
+% \texttt{F}  in  the  \cmd{\ShowCubeF} command  can be removed. 
+%
+% Note that while the \cmd{\ShowCube} command centres  the image  
+% inside the minipage, \LaTeX\ positions 
+% the minipage in the \cmd{\textwidth}, and  hence it is  generally best to minimise 
+% the white-space as revealed by the \cmd{\ShowCubeF}  command.  The~relationship 
+% between the required width of the minipage and the TikZ  scale factor  for the various 
+% Rubik cube images is detailed in  Section~\ref{sec:sizeofminipage}.
+%
+%
+%
+%    \section{Colour commands}
+%      \label{sec:colours}
+%
 % The \rubikcube\ package uses seven colours which are defined as follows: 
-% red~(R), orange~(O), yellow~(Y),  green~(G), blue~(B),  white~(W), 
-% and   grey~(X). Now  according to the following webpage\,\footnote{We thank Peter Bartal  
-% for bringing this to our attention.}
+% R~(red), O~(orange), Y~(yellow),  G~(green), B~(blue),  W~(white), 
+% and   X~(grey). Now  according to the following webpage\,\footnote{We thank Peter Bartal  
+% for bringing this webpage to our attention.} 
 %
 % \medskip
 % \noindent\texttt{http://The-Rubiks-Cube.deviantart.com/journal/Using-Official-Rubik}
-% \newline\texttt{-s-Cube-Colors-268760351}
+% \newline\texttt{-s-Cube-Colors-268760351} (Nov 2011)
 %
 % \medskip
 % {\noindent}the official Rubik cube colours are defined as
 % \begin{quote}
 %\begin{verbatim}
-% .... colours which are red (PMS 200C*), green (PMS 347C*),
+% ... colours which are red (PMS 200C*), green (PMS 347C*),
 % blue (PMS 293C*), orange (PMS 021C*), yellow (PMS 012C*)
 % and white.
-% .....
+% ...
 % Pantone colors can not be accurately converted to RGB colors, 
 % the colors the web runs on. But they can be approximated. 
 % Through some research, I have found some estimations which 
@@ -512,10 +736,13 @@
 %\end{verbatim}
 % \end{quote}
 %  However, we have optimised these prescribed colours very slightly 
-%  for screen \& print use (for example, the yellow  was made very 
+%  for screen \& print use (for~example, the yellow  was made very 
 %  slightly brighter),  and so the actual colours implemented by 
-%  the \rubikcube\ package  are as follows 
-% (see Section~\ref{sec:codecolours}):
+%  the \rubikcube\ package  are as follows:\,\footnote{Although the Pantone
+%  colours cannot be converted to RGB, there is a subset of of Pantone colours
+%  which can be be converted using CMYK 
+%  (see \texttt{https://en.wikipedia.org/wiki/Pantone})}. 
+%  (see Section~\ref{sec:codecolours}):
 %
 % \begin{quote}
 %\begin{verbatim}
@@ -529,8 +756,8 @@
 %\end{verbatim}
 % \end{quote}
 % Different colours  can be allocated   to  the ROYGBWX letters  (using the 
-% \cmd{\colorlet} command) as required. For example, the standard `red' 
-% colour could  be allocated to the letter R using the command
+% standard \LaTeX\ \cmd{\colorlet} command) as required. For~example, the 
+% standard `red'  colour could  be allocated to the letter R using the command
 % \begin{quote}
 %    \cmd{\colorlet\{R\}\{red\}}
 % \end{quote}
@@ -543,141 +770,496 @@
 %     \subsection{Colour state of the cube}
 %     \label{sec:colourstate}
 %
+%
+%  \DescribeMacro{\RubikFace..}
+%  \DescribeMacro{\RubikSlice..}
+%  \DescribeMacro{\RubikSide..}
+%  \DescribeMacro{\RubikCubeSolved}
+%  \DescribeMacro{\RubikCubeGrey}
+%  \DescribeMacro{\RubikCubeGreyAll}
 % Initially, when \LaTeX\ reads the file \texttt{rubikcube.sty} all facelets
-% are allocated the code X, which can be regarded as a zero-colour state. 
-% Until a facelet is allocated  one of the six  Rubik colours it will be  rendered as
-%   grey  by a command  which just draws the current colour state of the cube or  a face 
-%  (e.g.,~\cmd{\DrawFlatUpSide}).
+% are allocated the colour-code X, which can be regarded as a zero-colour state. 
+% Until a facelet is allocated  one of the six   Rubik colours (using a suitable command)
+% it will be  rendered as  grey by a Rubik \cmd{\Draw...} command, since these commands 
+%  simply implement the current  colour state of the cube (e.g.,~\cmd{\DrawRubikCubeRU}).
 %
 % It is important to appreciate that the various commands which typeset faces 
 % or facelets with colours  differ in whether  they derive the colours
 % from the current internal colour `state' (configuration) of the Rubik cube, or not. 
+%
+% The colour state of cubies in faces and slices can be allocated using  \cmd{\RubikFace...}, 
+% \cmd{\RubikSlice...} and \cmd{\RubikSide...} commands (see Sections~\ref{sec:facecommands}, 
+% \ref{sec:slicecommands} and \ref{sec:rubikside}).  
+% In addition. the command \cmd{\RubikCubeSolved}, allocates  a prescribed  colour state 
+% for the whole `solved' cube, and is a very useful starting 
+% point (configuration) for subsequent rotations.
+% The commands \cmd{\RubikCubeGrey} and  \cmd{\RubikCubeGreyAll}   allocate  different colour 
+% states for the whole cube, and are designed to be useful starting points when illustrating
+% aspects of how to solve the cube. These two commands accept both `grey' and `gray' 
+% (to be consistent with TikZ).
+% Cubies  retain their colour allocation even if the cubies are moved using  
+% the \cmd{\RubikRotation} command (\textsc{rubikrotation} package), unless they are 
+% overwritten by a subsequent colour allocation command.
+%
+% To  visualise the current state of the cube one has to use a Rubik \cmd{\Draw...} command.
+% Although some \cmd{\Draw...} commands (e.g.,~\cmd{\DrawRubikLayerFace...}) allow
+%  you  to specify colours as arguments, \cmd{\Draw...} commands really only
+%  `paint' colours onto  cubie positions  (on the page, so to speak). 
+% \cmd{\Draw..} commands  never influence the internal Rubik  colour state.
+%
+% The current colour state / configuration of the Rubik cube can  be saved and 
+%  written to a named file (using the  \cmd{\SaveRubikState} command) in a form 
+% which can then be easily \cmd{\input} and processed  when required. 
+
+%
+%  \subsection{RubikFace commands}
+%   \label{sec:facecommands}
+%
+%  \DescribeMacro{\RubikFaceUp}
+%  \DescribeMacro{\RubikFaceDown}
+%  \DescribeMacro{\RubikFaceLeft}
+%  \DescribeMacro{\RubikFaceRight}
+%  \DescribeMacro{\RubikFaceFront}
+%  \DescribeMacro{\RubikFaceBack}
+% These  commands take nine colour arguments and  allocate   colours to the 
+% individual cubies  of a  Rubik cube face.
+% The ordering is isomorphic to the sequence 1--9, i.e.,~numbering the small 
+% squares 1-3~(top row, left to right), 4-6~(middle row, left to right), 
+% 7-9~(bottom row, left to right), as follows:
+% \begin{quote}
+% \fbox{
+% \begin{minipage}{1.6cm}
+% \#1 \#2 \#3 
+%
+% \#4 \#5 \#6
+%
+% \#7 \#8 \#9
+% \end{minipage}
+% }
+% \end{quote}
+% Conveniently, \LaTeX\ allows the colour arguments to be separated by spaces 
+% (e.g.,~separated in groups of three), or even spread across several 
+% lines (e.g.,~in a square block to resemble a 9-face). This is fortunate, as it
+%  allows the command to be formulated in a  visually intuitive way, as in the 
+% following examples.
+%
+% \begin{quote}
+% \begin{minipage}{8cm}
+%\begin{verbatim}
+% \RubikFaceUp{G}{B}{G}   {G}{W}{O}   {G}{O}{G}
+%
+% \RubikFaceFront{O}{W}{R}
+%                {W}{W}{W}
+%                {G}{W}{G}
 % 
-% The colour state of cubies in faces and slices can be allocated using  \cmd{\RubikFace...} 
-% and \cmd{\RubikSlice...} (see Sections~\ref{sec:facecommands} and \ref{sec:slicecommands}).
-% The commands \cmd{\RubikCubeSolved} and \cmd{RubikCubeGrey} allocate the colour state
-% for the whole cube, and are useful starting points for subsequent rotations. 
-% Note that cubies will retain their colour allocation even if the cubies are are moved by 
-% rotation commands, unless they are overwritten by a subsequent colour allocation command.
-% To  then visualise the cube one has to use a \cmd{\Draw...} command.
+%\end{verbatim}
+% \end{minipage}
+% \end{quote}
 %
-% The \textsc{rubikrotation} package keeps track of the Rubik state following
-% rotations and sequences of rotations processed by its \cmd{\RubikRotation} command.
-% The current colour state of the Rubik cube can be saved and  written to a named file 
-% using its  \cmd{\SaveRubikState} command; this file can then be \cmd{\input}  when required. 
+%  \DescribeMacro{\RubikFaceUpAll}
+%  \DescribeMacro{\RubikFaceDownAll}
+%  \DescribeMacro{\RubikFaceLeftAll}
+%  \DescribeMacro{\RubikFaceRightAll}
+%  \DescribeMacro{\RubikFaceFrontAll}
+%  \DescribeMacro{\RubikFaceBackAll}
+% Each of the above commands has an associated 
+% `\texttt{All}' version which allocates  the same colour to all the cubies 
+% on a 9-face  (i.e.,~only a single colour argument is required).
 %
-% Note that although some \cmd{\Draw...} commands (e.g.,~\cmd{\DrawRubikLayerFace...}) use 
-% colours as arguments, these commands really only  `paint' colours onto  cubie positions 
-% (on the page, so to speak); i.e.,~these commands do not update the internal Rubik 
-% colour state, and hence  these colours do not  exist outside  the particular
-%  \texttt{tikzpicture} environment the \cmd{\Draw..} command was used in.
+% If you want a particular face to be all grey, then 
+%  use  the colour-code~X;  for~example,  \cmd{\RubikFaceUpAll\{X\}}.
+% Failure to include a valid colour argument  will generate a 
+% `missing parameter' error, and no colour will be 
+% allocated (i.e.,~you will see  a black-hole).
+% Use of these commands is shown in the following figure.
 %
+% \bigskip
+% 
+% \begin{minipage}{2.8cm}
+% \RubikFaceUpAll{X}
+% \RubikFaceRightAll{R}
+% \RubikFaceFront{W}{Y}{G}
+%                {W}{Y}{G}
+%                {W}{Y}{G}
+% \begin{tikzpicture}[scale=0.7]
+% \DrawRubikCubeRU
+% \end{tikzpicture}%
+% \end{minipage}
+%    \hspace{5mm}
+% \begin{minipage}{0.6\textwidth}
+%\begin{verbatim}
+% \RubikFaceUpAll{X}
+% \RubikFaceRightAll{R}
+% \RubikFaceFront{W}{Y}{G}
+%                {W}{Y}{G}
+%                {W}{Y}{G}
+% \ShowCube{3cm}{0.7}{\DrawRubikCubeRU}
+% \end{verbatim}
+% \end{minipage}
+% 
 %
-%     \section{Rubik cube coordinates}
-%     \label{sec:coordinates}
+%       \subsection{Solved Configuration}
+%       \label{sec:solvedconfig}
 %
-% The coordinate origin  of each view of the Rubik cube  is located  
-% at the bottom-left corner of the \textsc{front} face, as shown in 
-%  Figure~\ref{fig:cubesquaregraph}. Note also that the bottom left 
-%  corner of the cube  itself is at $(-1,-1)$, 
-%  and hence the default height and width of the cube is 4cm. 
+%  \DescribeMacro{\SolvedConfig}
+% This command  allocates  the six face colours according to the following ordered 
+% XYZ$+-$  argument rule, namely X$+$, X$-$, Y$+$, Y$-$, Z$+$, Z$-$; i.e.,~the order 
+% of the six colour arguments follows the face order
+% \textsc{right, left, up, down, front, back} (for notation see  
+% Section~\ref{sec:xyzarguments}  and Figure~\ref{fig:notation}). 
+% {\newline}\textsc{usage}:\ \verb!\SolvedConfig{G}{B}{W}{Y}{O}{R}!
+% {\newline}Examples of its use are shown in the  next section.
 %
-% Using the \textsc{front} bottom-left corner as the origin
-% is an important feature since knowing the location of the 
-% origin enables one to easily use any of the  TikZ commands
-% (e.g.,~\cmd{\draw} and \cmd{\node} commands) to  superimpose lines, 
-% arrows and text etc.\ onto the Rubik cube (see Section~\ref{sec:arrows}).
 %
-% \begin{figure}[hbt]
+%       \subsection{RubikCubeSolved command}
+%       \label{sec:rubikcubesolved}
+%
+%  \DescribeMacro{\RubikCubeSolved}
+%  \DescribeMacro{\RubikCubeSolvedWY}
+% The action of both of these  commands is identical: 
+% they both  set all the face colours to the following  standard `solved' cube
+% configuration, namely  Up=white, Down=yellow, Right=green, Left=blue, Front=orange, Back=red,
+% by invoking the above \cmd{\SolvedConfig} command,  as follows:
+%\begin{verbatim}
+%\newcommand{\RubikCubeSolved}{\SolvedConfig{G}{B}{W}{Y}{O}{R}}
+%\end{verbatim}
+% Note that this is in fact just a convenient short-hand for the following:
+%\begin{verbatim}
+%\newcommand{\RubikCubeSolved}{%
+%  \RubikFaceRightAll{G}%
+%  \RubikFaceLeftAll{B}%
+%  \RubikFaceUpAll{W}%
+%  \RubikFaceDownAll{Y}%
+%  \RubikFaceFrontAll{O}%
+%  \RubikFaceBackAll{R}%
+%}
+%\end{verbatim}
+% Note that for convenience, this configuration is also available using the command
+% \verb!\RubikCubeSolvedWY! (WY denoting White opposite Yellow).
+% This solved configuration is shown in the following 
+% semi-flat (SF) image.
+%
+%
+% \bigskip
+%
+% \begin{minipage}{5cm}
 % \centering
-% \ifpdf
-%   \includegraphics[height=3cm]{Rubik-doc-figB.pdf}
-% \else
-% \includegraphics[height=3cm]{Rubik-doc-figB.eps}
-% \fi
+% \begin{tikzpicture}[scale=0.5]
+% \RubikCubeSolvedWY
+% \DrawRubikCubeSF
+% \end{tikzpicture}%
+% \end{minipage}
+% \begin{minipage}{0.5\textwidth}
+%\begin{verbatim}
+%  \RubikCubeSolvedWY
+%  \ShowCube{5cm}{0.5}{\DrawRubikCubeSF}
+%\end{verbatim}
+% \end{minipage}
 %
-% \parbox{9cm}{\caption{\label{fig:cubesquaregraph}Origin of coordinates 
-%  is at the  bottom left corner of the grey \textsc{front} face. 
-%  The bottom left corner of the cube  itself is at $(-1,-1)$, 
-%  and hence the default height and width of the 3D-cube is 4cm.}}
-% \end{figure}
+% \bigskip
 %
+% Note that the width of the minipage  used in \cmd{\ShowCube} command above  
+% is set to 5cm. This value is derived from the fact 
+% that  the \textit{unscaled} width of the semi-flat image is 10cm (9 + 1 squares), and hence if
+% the TikZ scale factor is set to 0.5 then the minimum minipage width = $10 \times 0.5 = 5$cm
+% (see Section~\ref{sec:coordinates} for details).
 %
 %
-%      \subsection[Size of cube minipage]{Size of cube \cmd{\minipage}}
-%      \label{sec:sizeofminipage}
+% \textbf{Other orientations:} If other orientations of the solved cube are required, 
+% this can be easily achieved using the \cmd{\RubikRotation} command 
+% (from the \texttt{RubikRotation} package) to rotate the cube as required.
+% For~example, we could make a command to show the above solved cube upsidedown 
+% and rotated slightly, as follows:
+%\begin{verbatim}
+%\newcommand{\CubeUpSideDown}{\RubikCubeSolved\RubikRotation{x2,y}}
+%\end{verbatim}
+% ---this uses  the rotations \rrx, \rrx, to invert, and then  \rry\ to turn 
+% the cube 90~$\deg$:
 %
-%  Since the the default height and width of the 3D-cube is 4cm (see above), 
-%  it follows that the width of the \cmd{\minipage} required for a cube in a 
-%  \texttt{tikzpicture}  environment can be easily calculated. For example, 
-%  if the \texttt{tikzpicture} scale factor used is $0.5$, then the minimum
-%  width of the required minipage for the \cmd{\DrawRubikCubeLD} view (shown above)
-%  is therefore $0.5 \times 4\mbox{cm} =  2\mbox{cm}$. 
+% \bigskip
 %
-% The default width of the semi-flat cube representation is 10cm ($=3+3+1+3$), 
-% and that of the  flat cube is 12cm ($=3+3+3+3$). If in doubt check the extent of 
-% any horizontal white-space  using an fbox, or the \cmd{\ShowCubeF} command.
+% \begin{minipage}{2.6cm}
+% \centering
+% \begin{tikzpicture}[scale=0.5]
+% \DrawNCubeAll{3}{O}{Y}{G}
+% \end{tikzpicture}%
+% \end{minipage}
+%    \hspace{5mm}
+% \begin{minipage}{0.6\textwidth}
+%\begin{verbatim}
+% \CubeUpSideDown
+% \ShowCube{2cm}{0.5}\DrawRubikCubeRU}
+%\end{verbatim}
+% \end{minipage}
 %
+% \bigskip
 %
+%%  \DescribeMacro{\RubikCubeSolvedWB}
+%  \textbf{Other configurations:} While the `solved' WY colour configuration 
+% described above (White face opposite Yellow) 
+% is that of the most commonly occurring  Rubik cube, another  `solved' colour configuration
+% which is also commercially available has the White opposite Blue configuration, which 
+% is available  using the command \verb!\RubikCubeSolvedWB!.
+% Its  colour configuration is as follows:
 %
+%\begin{center}
+% \RubikCubeSolvedWB
+% \ShowCube{4cm}{0.4}{\DrawRubikCubeSF}%
+%\end{center}
+%
+% \bigskip
+%
+% Note that  users can easily create their own alternative `solved'  
+% face/colour versions.
+% For~example, the above mentioned  white opposite
+% blue~(WB)  solved configuration  command \verb!\RubikCubeSolvedWB!  
+% (white opposite blue, red opposite orange, 
+% and green opposite yellow), was created using  \verb!\SolvedConfig{R}{O}{W}{B}{G}{Y}!
+% (for the code see \ref{sec:codesolvedconfig}).
+%
+%
+%       \subsection{RubikCubeGrey command}
+%       \label{sec:rubikcubegrey}
+%
+%  \DescribeMacro{\RubikCubeGrey}
+%  \DescribeMacro{\RubikCubeGreyAll}
+%  The command \cmd{\RubikCubeGrey} generates a 3x3x3 cube with no colours allocated 
+%  \textit{except} for the central  cubie of each face, which takes the same colour 
+%  configuration as defined for the  \cmd{\RubikCubeSolved} command. 
+%  The command \cmd{\RubikCubeGreyAll} generates a cube with \textit{all} the faces 
+%  completely grey.
+%  Both these commands will accept either `grey' or  `gray' (to be consistent with TikZ).
+%
+%  These two commands, are designed to be  useful starting points when wanting to 
+%  describe the movement of particular cubies. We can see  the effect of 
+%  the \cmd{\RubikCubeGrey} command by viewing the cube in a semi-flat (SF) format, 
+%  as follows:
+%
+% \bigskip
+%
+% \RubikCubeGrey
+% \ShowCube{4.5cm}{0.45}{\DrawRubikCubeSF}
+%    \hspace{3mm}
+% \begin{minipage}{0.6\textwidth}
+%\begin{verbatim}
+% \RubikCubeGrey
+% \ShowCube{4.5cm}{0.45}{\DrawRubikCubeSF}
+%\end{verbatim}
+% \end{minipage}
+%
+% \bigskip
+%  Users can easily set their own alternative  face/colour configuration either by `renewing' 
+% the \cmd{\RubikCubeGrey} command along the lines shown above (the code is 
+% in Section~\ref{sec:codegrey}), or simply creating a new `variant'  command 
+% altogether. 
+%
+%
+%
+%    \subsection{RubikSlice commands}
+%   \label{sec:slicecommands}
+%
+%  \DescribeMacro{\RubikSliceTopX}
+%  \DescribeMacro{\RubikSliceMiddleX}
+%  \DescribeMacro{\RubikSliceBottomX}
+%  These three commands  allocate the six visible cubie colours associated with  a
+%   \textit{horizontal}  slice of a Rubik cube. 
+% There are three pairs of  Slice commands; one pair 
+% (Left view \& Right view) for each of the horizontal  slices Top, Middle, Bottom.
+% The six colour arguments  associated with a given slice run in sequence 
+% from left to right irrespective of the viewpoint, e.g.,~\#1 \#2 \#3   \#4 \#5 \#6.
+%
+% Since the viewpoint of the Rubik cube (from the Right or from the Left) 
+% influences which face the colours are associated with, it is necessary 
+% to have the view (R or L) specified in the command name.
+%
+% The format of the `slice' command is shown in the following example.
+% The Rubik  cube is shown from  the LeftDown (LD) view 
+% and consequently  each of the `slice' commands in this
+% particular example  ends in L, consistent with 
+% the final \cmd{\DrawRubikCubeLD} command.
+%
+% Note that the two legacy `Equator' versions (now replaced by `Middle') 
+% are retained to allow backward compatibility. 
+%
+% \bigskip
+%
+% \begin{minipage}{2.8cm}
+% \centering
+% \RubikFaceDownAll{Y}
+% \RubikSliceTopL    {G}{G}{G} {R}{R}{R}
+% \RubikSliceMiddleL {R}{R}{R} {B}{B}{B}
+% \RubikSliceBottomL {O}{O}{O} {G}{G}{G}
+% \begin{tikzpicture}[scale=0.7]
+% \DrawRubikCubeLD
+% \end{tikzpicture}%
+% \end{minipage}
+%    \hspace{5mm}
+% \begin{minipage}{0.6\textwidth}
+%\begin{verbatim}
+%    \RubikFaceDownAll{Y}
+%    \RubikSliceTopL     {G}{G}{G} {R}{R}{R}
+%    \RubikSliceMiddleL  {R}{R}{R} {B}{B}{B}
+%    \RubikSliceBottomL  {O}{O}{O} {G}{G}{G}
+%    \ShowCube{3cm}{0.7}{\DrawRubikCubeLD}
+%\end{verbatim}
+% \end{minipage}
+%
+%
+%
+% \subsection{RubikSide commands}
+% \label{sec:rubikside}
+%
+%  \DescribeMacro{\RubikSideLeft} 
+%  \DescribeMacro{\RubikSideRight} 
+%  \DescribeMacro{\RubikSideFront}  
+%  \DescribeMacro{\RubikSideBack}  
+%  These RubikSide commands allocate colours to the side facelets of 
+%  the UP~face, and each  takes three ordered colour arguments, running from 
+%  top-left to top-right when looking directly at the side faces---see Section~\ref{sec:rubiksidecode}.
+%  These facelets are the top three facelets of each side Front, Back, Left, Right.
+%
+%  {\noindent}\textsc{usage}: \verb!\RubikSideBack{B}{G}{G}!
+%
+% \medskip
+%
+%   \DescribeMacro{\RubikSideLeftAll} 
+%   \DescribeMacro{\RubikSideRightAll} 
+%   \DescribeMacro{\RubikSideFrontAll}  
+%   \DescribeMacro{\RubikSideBackAll}
+%  These commands allocate the same colour to all three side cubies, and hence 
+%  take only a single colour argument.
+%
+%  {\noindent}\textsc{usage}: \verb!\RubikSideBackAll{R}!
+%
+% \medskip
+%
+%  The \cmd{\RubikSide..} and \cmd{\RubikFace..} commands are useful for setting up the colours  
+% for just part of the cube.  For~example, the following commands set-up the UP-face and sides, 
+% and then  draws the face and sidebars using \verb!\DrawFlatUpSide!.
+%
+%  \bigskip
+%  
+%  \begin{minipage}{4cm}
+%  \centering
+%\RubikFaceUp     {R}{Y}{R}%
+%                 {Y}{Y}{Y}%
+%                 {G}{Y}{B}%
+%\RubikSideBack{B}{G}{G}%
+%\RubikSideFront{Y}{R}{Y}%
+%\RubikSideRight{O}{B}{Y}%
+%\RubikSideLeft{Y}{O}{O}%
+%\ShowCube{2cm}{0.5}{\DrawFlatUpSide}
+%  \end{minipage}
+%        \hspace{1cm}
+%  \begin{minipage}{0.6\textwidth}
+%\begin{verbatim}
+%%set up the UP face
+%\RubikFaceUp     {R}{Y}{R}%
+%                 {Y}{Y}{Y}%
+%                 {G}{Y}{B}%
+%\RubikSideBack{B}{G}{G}%
+%\RubikSideFront{Y}{R}{Y}%
+%\RubikSideRight{O}{B}{Y}%
+%\RubikSideLeft{Y}{O}{O}%
+%%draw the UP face and sides
+%\ShowCube{2cm}{0.5}{\DrawFlatUpSide}
+%\end{verbatim}
+%  \end{minipage}
+%
+% \bigskip
+%
+% Note that we could instead have drawn the above image using  \cmd{\DrawRubikLayer..}
+% commands. However, using the \cmd{\RubikSide..} and \cmd{\RubikFace..} commands
+% makes for a much more flexible and dynamic system, since the colours allocated using 
+% these  commands (provided they are external to  an environment)  will be global, 
+% and hence will follow subsequent  \cmd{\RubikRotation} commands.   
+%
+%
+%
+% \pagebreak
+%
+%
 %      \section{Rotation commands}
 %      \label{sec:RubikCommands} 
 %
-% We  use the standard Rubik cube notation  of WCA~(2012)---see article~12---and
-% also the `s' (Slice) and `a' (anti-Slice) notation described in   the 
-% `Notation and terminology' section
-% in the `Pretty patterns' page on the website of  
-% Fridrich (see References).
-% 
-% It is recommended  that  commas  are used to separate sequential 
-% Rubik moves or commands to avoid  ambiguity, especially when using just
-%  lettercodes on their own. 
-% For example, in the following sequence the commas  remove any ambiguity:
-%  \rr{U},\rr{Lw}2,\rr{Usp},\rr{Da} \ \ (|\rr{U},\rr{Lw}2,\rr{Usp},\rr{Da}|).
+% The Rubik bundle implements not only the standard Rubik cube notation  of the 
+% World Cube Association (see WCA website), but also the main variant notations 
+% used by the  Rubik interest groups and websites.  
 %
-% 
+% \begin{figure}[hbt]
+%  \centering
+%  \ifpdf
+%    \includegraphics[height=5cm]{rubik-doc-figA.pdf}
+%  \fi
+% \caption{\label{fig:notation}Face rotations} 
+% \end{figure}
 %
-%   \subsection{Overview}
-%     \label{sec:overview}
+% To avoid confusion the Rubik bundle uses a trailing `p' (lower-case) in rotation-codes to denote 
+% a `prime' (reversed direction); we also recommend that  commas  are used to separate 
+% sequential Rubik rotations (moves). 
+% While these are mainly to avoid  ambiguity,  they also greatly facilitate computer 
+% searching  and  copy-and-pasting  of rotation sequences.
 %
-% The \rubikcube\  notation  comprises  a range of 
-% commands for moves or rotations (e.g.,~\rr{R}, \rr{y}, \rr{Bw}) and their equivalent  hieroglyphs 
-% (e.g.,~\rrh{R}, \rrh{y}, \rrh{Bw}), as well as commands for  drawing 3x3x3 cubes and single cubies.
+%  Unfortunately, obtaining a good balance between an intuitive notation for defining
+%  rotations and the need for flexibility is difficult,
+% and consequently some notation is more intuitive than others. A good compromise 
+% seems to be the World Cube Association's FADN structure; i.e.,~Face (L,R,U,D,F,B), 
+% Action (m,w,s,a,c), Direction (p), 
+% N (n); for example, codes like \texttt{R, R2, Rc, Rm, Rwp, Rwp2} etc.  
 %
-% Note that there are a few rotation commands which  do not have arrow 
-% hieroglyphs---their their rotation  is not visible from the \textsc{front} face 
+%
+% The \rubikcube\  package  includes  commands for typesetting a wide range of 
+% rotation-codes (e.g.,~\rr{R}, \rr{y}, \rr{Bw}) and 
+% equivalent  hieroglyphs  (e.g.,~\rrh{R}, \rrh{y}, \rrh{Bw}), as well as commands
+% for typesetting  3x3x3 cubes and single cubies. All the rotation-codes and 
+% hieroglyphs are typeset using  one particular font \& size which we call the `rubikfont'
+% for convenience (see Section~\ref{sec:rubikfont} for details).
+% All of the rotation-codes described
+% here are recognised by the \textsc{rubikrotation} package 
+% (see Section~\ref{sec:rubikrotation}).
+%
+% Note that there are some rotation codes which  are not represented by arrow 
+% hieroglyphs, since their rotation  is not visible from the \textsc{front} face, 
 % and hence cannot easily be rendered as  an arrow hieroglyph. Consequently these 
 % rotations  have a simple `letter' hieroglyph 
-% in the form of the rotation-code in a square; for example \rrhBw, \rrhSb. 
+% in the form of the rotation-code in a square; for~example, \rrhBw, \rrhFm. 
 %
+%
+%  \pagebreak
+%
+%   \subsection{Overview}
+%     \label{sec:overview}
+%
+% We now describe the four commands used for typesetting the various rotation-codes. 
+%
 % \DescribeMacro{\rr}
-%  The rotation-code of a rotation is typeset  (as in text) using the rubik-rotation 
-%  \cmd{\rr\marg{rotation-code}} command: i.e.,~\rr{R}\ is typeset using the command \cmd{\rr\{R\}}. 
-% The hieroglyph of a rotation command is generated  (in text) by
-% \DescribeMacro{\rrh}
-% using instead the command \cmd{\rrh\marg{rotation-code}}. Thus the command \cmd{\rrh\{R\}} generates 
-% \rrh{R}\  which is the hieroglyph associated with \rr{R}.
+%  The text version of a  rotation-code  is typeset  using the rubik-rotation 
+%  command \cmd{\rr\marg{rotation-code}}, i.e.,~\rr{R}\ is typeset using the command \cmd{\rr\{R\}}. 
+% The hieroglyph of a rotation is generated  (in text) by  \DescribeMacro{\rrh}
+% using instead the command \cmd{\rrh\marg{rotation-code}}. For~example, the command 
+% \cmd{\rrh\{R\}} generates  \rrh{R}\  which is the hieroglyph associated with
+% the rotation  \rr{R}.
 %
 % \DescribeMacro{\Rubik}
 % A vertically combined rotation-code  and its hieroglyph  is generated using the command 
-% \cmd{\Rubik\marg{rotation-code}}. For example, \Rubik{R}\ is generated by the command \cmd{\Rubik\{R\}}, 
+% \cmd{\Rubik\marg{rotation-code}}. For~example, \Rubik{R}\ is generated by the command \cmd{\Rubik\{R\}}, 
 % with  the square hieroglyph sitting on the baseline.
-% For some hieroglyphs (e.g.,~\rrh{x}, \rrh{y}, \rrh{z}\ denoting 90~degree axis rotations) 
-% the only  difference between the \cmd{\rrh\{\}} and \cmd{\Rubik\{\}} forms is that 
+% For some hieroglyphs (e.g.,~\rrh{x}, \rrh{y}, \rrh{z}\ denoting 90~degree cube-axis rotations) 
+% the only  difference between the \cmd{\rrh\{\}} and \cmd{\Rubik\{\}} form is that 
 % the \cmd{\Rubik\{\}}  form is elevated  to sit on the baseline just like the other
 %  \cmd{\Rubik\{\}} hieroglyphs. 
-% For example \cmd{\rrh\{yp\}} generates \rrh{yp}, while
+% For~example, \cmd{\rrh\{yp\}} generates \rrh{yp}, while
 % \cmd{\Rubik\{yp\}} generates \Rubik{yp}.
 % 
 % \DescribeMacro{\textRubik}
 % A horizontally combined  rotation-code and its hieroglyph (in sequence as in text) 
-% is generated using  the command stem  \cmd{\textRubik\marg{rotation-code}}. 
-% For example,  \textRubik{R}\ is typeset using the command \cmd{\textRubik\{R\}}.
-% A list of all commands and their associated  hieroglyphs is given in
+% is generated using  the command   \cmd{\textRubik\marg{rotation-code}}. 
+% For~example,  \textRubik{R}\ is typeset using the command \cmd{\textRubik\{R\}}.
+% A list of all rotation-code commands and their associated  hieroglyphs is given in
 %  Section~\ref{sec:listofcommands}. 
 %
-% \pagebreak
 %
+%
 % \subsection{Face rotations}
 %
 % \DescribeMacro{U}
@@ -688,10 +1270,10 @@
 % \DescribeMacro{B}
 % The six main faces of the cube are denoted as \textsc{front} (towards the observer), 
 % \textsc{back},  \textsc{left}, \textsc{right},  \textsc{up}, \textsc{down}.
-% The uppercase initial letter  of each face-name (\rr{F}, \rr{B}, \rr{L}, \rr{R}, \rr{U}, \rr{D}) 
+% The upper-case initial letter  of each face-name (\rr{F}, \rr{B}, \rr{L}, \rr{R}, \rr{U}, \rr{D}) 
 % denotes a clockwise 90-degree rotation of the  face as shown in  
 % Figure~\ref{fig:notation}. 
-% For example, \rr{D}\ is generated by the `rubik rotation' command \cmd{\rr\{D\}}.
+% For~example, \rr{D}\ is generated by the `rubik rotation' command \cmd{\rr\{D\}}.
 %
 % \DescribeMacro{Up}
 % \DescribeMacro{Dp}
@@ -701,58 +1283,70 @@
 % \DescribeMacro{Bp}
 %  An appended  prime~$^\prime$ indicates an anticlockwise rotation; e.g.,~\rr{Fp}. 
 %  This is sometimes written as  \rr{F}$\boldmath{^{-1}}$. The `prime' notation is 
-%  achieved by appending a lowercase `p' to the face rotation command. For example, \rr{Rp}\ 
-%  is generated by \cmd{\rr\{Rp\}}. 
+%  achieved by appending a lower-case `p' to the face rotation command. For~example, \rr{Rp}\ 
+%  is generated by \cmd{\rr\{Rp\}}. More formally, \rr{Rp} is the `inverse' of  \rr{R}.
 %
-% \vspace{-0.2cm}
-% \begin{figure}[hbt]
-%  \centering
-%  \ifpdf
-%    \includegraphics[height=5cm]{Rubik-doc-figA.pdf}
-%  \fi
-% \caption{\label{fig:notation}} 
-% \end{figure}
+%  The superscript~$^2$, or sometimes just an ordinary~2, indicates that the rotation
+%  is applied twice. For~example, \rr{R}\textbf{$^2$} or \rr{R}\textbf{2} 
+%  denote  \textit{two} successive 90~degree clockwise rotations of the \textsc{right} face;
+%   \rr{R}\textbf{$^3$} is equivalent to \rr{Rp} etc. 
 %
 %
-%      \subsection{Slice rotations}
+%      \subsection{Inner-slice rotations}
 %      \label{sec:slicerotations}
 %
-% \DescribeMacro{Su}
-% \DescribeMacro{Sd}
-% \DescribeMacro{Sl}
-% \DescribeMacro{Sr}
-% \DescribeMacro{Sf}
-% \DescribeMacro{Sb}
-% The Rubik cube (3x3x3) has three orthogonal so-called `inner' slices, whose +ve 
-% rotation  direction follows that of a named face. For example the inner slice 
+% The Rubik cube (3x3x3) has three orthogonal so-called 
+% `inner' slices (middle layers, middle slices), whose +ve 
+% rotation  direction follows that of a named face. For~example, the inner-slice 
 % rotation  between the \textsc{right} and \textsc{left} faces  whose rotation 
-% direction follows the rotation \rr{R}\ (rotation is isomorphic to \rr{R}) is denoted 
-% as \rr{Sr}, which is typeset using the command \cmd{\rr\{Sr\}}. Note that in these cases
-%  the trailing  \texttt{r}  in the command  is lowercase.
+% direction follows the rotation \rr{R}\ (i.e.,~its rotation is isomorphic to \rr{R}).
+%  The  inner-slice rotations form a group (the Slice group), originally 
+% described by John Conway (Frey and Singmaster, 1982, p~105).
 %
-% \bigskip\bigskip\bigskip
 %
-% \DescribeMacro{Sup}
-% \DescribeMacro{Sdp}
-% \DescribeMacro{Slp}
-% \DescribeMacro{Srp}
-% \DescribeMacro{Sfp}
-% \DescribeMacro{Sbp}
-% Each of these slice rotations (S rotations) has a reversed (primed)  p-form,
-% the command for which is generated by appending the suffix `p'.
-% For example  the inner slice rotations  \rr{Slp}\ (\cmd{\rr\{Slp\}}) and 
-% \rr{Sr}\ (\cmd{\rr\{Sr\}}) are identical.
-% The equivalence is more obvious when we see their respective hieroglyphs.
-% For example, in this case \linebreak \rr{Slp}\ (\cmd{\rr\{Slp\}}) 
-%  $\equiv$ \rrh{Slp}\ (\cmd{\rrh\{Slp\}}), 
-%  and  \rr{Sr}\ (\cmd{\rr\{Sr\}}) $\equiv$ \rrh{Sr}\ (\cmd{\rrh\{Sr\}}). 
+% \subsubsection*{The `m' notation}
+%  \label{sec:mnotation}
 %
-% \bigskip
+% \DescribeMacro{Um}
+% \DescribeMacro{Dm}
+% \DescribeMacro{Lm}
+% \DescribeMacro{Rm}
+% \DescribeMacro{Fm}
+% \DescribeMacro{Bm}
+% Here `m' stands for the `middle' slice, namely  that parallel to the  designated 
+% \textsc{face}; its rotation mirrors that of the 
+% \textsc{face}.   The \texttt{m}  must be in lower-case. 
+% Each of these  rotation-codes has a complementary `prime' version, formed 
+% by appending a `p'; for~example,  \rr{Rm}  (\verb!\rr{Rm}!) is a middle layer rotation 
+% \rrh{Rm} between the  \textsc{right} and \textsc{left} faces, and is in the same
+% direction as \rr{R}. The code \rr{Rmp} (\verb!\rr{Rmp}!) refers to the same 
+% middle slice, but rotated in  the opposite direction \rrh{Rmp}.
 %
-% \pagebreak
+%  This notation, which was probably  invented by Singmaster, was originally used on the 
+%  Cube Lovers usenet group (1981--1997). It is now much used on the 
+%  Jaap Puzzles website (see Scherphius J) ---see also Section~\ref{sec:codeJaap}.
 %
-%        \subsubsection*{MES slice notation}
 %
+% \subsubsection*{The `M' notation} 
+%  \label{sec:Mnotation}
+%
+% \DescribeMacro{MU}
+% \DescribeMacro{MD}
+% \DescribeMacro{ML}
+% \DescribeMacro{MR}
+% \DescribeMacro{MF}
+% \DescribeMacro{MB}
+% This variant of the above  `middle' slice notation (e.g.,~\texttt{MR} $\equiv$ \texttt{Rm}) 
+% is part of the  `superset' notation of  Randelshofer. As before,  the rotation  
+% direction follows that  of the designated   \textsc{face}. 
+% Each has a complementary  `prime' version  
+% formed by appending a `p'.   The \texttt{M}  must be in upper-case.
+%
+%
+% \bigskip\bigskip
+%
+% \subsubsection*{The MES notation}
+%
 % \DescribeMacro{M}
 % \DescribeMacro{E}
 % \DescribeMacro{S}
@@ -759,8 +1353,8 @@
 % \DescribeMacro{Mp}
 % \DescribeMacro{Ep}
 % \DescribeMacro{Sp}
-% An alternative and somewhat confusing (and hence is non-standard) slice notation
-%  which is sometimes used  is the following 
+% An alternative but very confusing 
+% inner-slice notation (e.g.,~\texttt{Ep} $\equiv$ \texttt{Um}) which is occasionally used  is the 
 % so-called MES notation,  as used in the Waterman algorithm
 %  (Treep and Waterman 1987).
 % \begin{itemize}
@@ -771,17 +1365,29 @@
 %  \item[\rr{S}] \  (\textsc{standing} \rrh{S}, between the \textsc{front} and 
 %      \textsc{back} faces;   direction follows \rr{F}).
 % \end{itemize}
-% Each of these also has a reversed (prime) version, and  a hieroglyph 
-% (see Section~\ref{sec:listofcommands}).
-% The equivalent S notation (see above) is therefore 
-% as follows:  \rr{E}\ $\equiv$ \rr{Sd},  \rr{Ep}\ $\equiv$ \rr{Su}, 
-% \rr{M}\ $\equiv$ \rr{Sl}, \rr{Mp}\ $\equiv$ \rr{Sr}, \rr{S}\ $\equiv$ \rr{Sf}, 
-%  \rr{Sp}\ $\equiv$ \rr{Sb}. 
+% Each of these also has an inverse (prime) version.
 %
-% 
 %
-% \subsubsection*{Singmaster slice notation}
+% \subsubsection*{The `S' notation}
 %
+% \DescribeMacro{Su}
+% \DescribeMacro{Sd}
+% \DescribeMacro{Sl}
+% \DescribeMacro{Sr}
+% \DescribeMacro{Sf}
+% \DescribeMacro{Sb}
+% In this equally confusing inner-slice notation, `S' stands for `inner-slice'; 
+% the face letter must  be in lower-case (e.g.,~\texttt{Sr} $\equiv$ \texttt{Rm}). For~example, the inner-slice 
+% rotation  between the \textsc{right} and \textsc{left} faces  whose rotation 
+% direction follows the rotation \rr{R}\ is denoted 
+% as \rr{Sr}, which is typeset using the command \cmd{\rr\{Sr\}}. 
+% Each has an inverse  (prime)  p-form.
+%
+%
+%     \subsection{Outer-slice rotations}
+%
+% \subsubsection*{Slice notation}
+%
 % \DescribeMacro{Us}
 % \DescribeMacro{Ds}
 % \DescribeMacro{Ls}
@@ -788,21 +1394,39 @@
 % \DescribeMacro{Rs}
 % \DescribeMacro{Fs}
 % \DescribeMacro{Bs}
-% These are an alternative (but somewhat less intuitive) form of  
-% slice notation  which can be thought of as complementing the 
-% inner slice  rotations. These were originally described by 
-% Singmaster (Frey and Singmaster, 1982).
-% See the link to `notation' on the `Pretty patterns' page of the 
-% Fridrich website.
+% This is a  `paired' form of  
+% notation (two rotations at once), which can be thought of as complementing the 
+% inner-slice  (middle layer) rotations. 
+% Each of these `slice' commands denotes a  rotation of  two opposite faces 
+% in the \textit{same}  direction.
+% {\linebreak}For~example, \textRubik{Us}\ $\equiv$ \textRubik{U}\ + \textRubik{Dp};
+% i.e.,~both face-rotations are in the \textit{same} direction 
+% as \rr{U}. Each of these rotation-codes has a complementary `anti-slice' version (see below).
 %
-% Each of these commands denotes a  rotation of  two opposite faces 
-% in the same  direction. For example, \textRubik{Us}\ $\equiv$ \textRubik{U}\ + \textRubik{Dp}, 
-% which is typeset as: 
-% \newline |\textRubik{Us}\ $\equiv$ \textRubik{U}\ + \textRubik{Dp}|, 
-% i.e.,~for  \rr{Us}\ both face-rotations are in the \textit{same} direction 
-% as \rr{U}. 
+% This notation was originally described by 
+% Singmaster (Frey and Singmaster, 1982), and is much used 
+% on the `Pretty patterns' page of the Fridrich website (this 
+% page also has a useful link to `notation').
 %
 %
+% \bigskip
+%
+% \DescribeMacro{SU}
+% \DescribeMacro{SD}
+% \DescribeMacro{SL}
+% \DescribeMacro{SR}
+% \DescribeMacro{SF}
+% \DescribeMacro{SB}
+% This variant of the above `slice'  notation (e.g.,~\texttt{SU} $\equiv$ \texttt{Us})
+%  is part of the  `superset'  notation of Randelshofer. As before,  the rotation  
+% direction follows that of the designated 
+%  \textsc{face}. Each has a complementary  `prime' version  formed by appending a `p'. 
+% 
+%
+% \bigskip\bigskip 
+%
+
+%
 % \subsubsection*{Anti-slice notation}
 %
 % \DescribeMacro{Ua}
@@ -813,11 +1437,9 @@
 % \DescribeMacro{Ba}
 % Each of these commands denotes a  rotation of  two opposite faces 
 % in \textit{opposite}  directions. 
-% For example, \textRubik{Ua}\ $\equiv$ \textRubik{U}\ + \textRubik{D}, 
-% which is typeset as: 
-% \newline |\textRubik{Ua}\ $\equiv$ \textRubik{U}\ + \textRubik{D}|.
-% See the link to `notation' on the `Pretty patterns' page of the 
-% Fridrich website.
+% For~example, \textRubik{Ua}\ $\equiv$ \textRubik{U}\ + \textRubik{D}.
+% This notation is much used  on the `Pretty patterns' page of the 
+% Fridrich website (see the note above re: `slice notation').
 %
 %   \bigskip\bigskip
 %
@@ -829,20 +1451,33 @@
 % \DescribeMacro{Rw}
 % \DescribeMacro{Fw}
 % \DescribeMacro{Bw}
-% The  clockwise \textit{combined} rotation of  an outer face AND its inner slice 
-% (officially known as a `double outer slice' rotation) is denoted by appending a 
-% lowercase  \textbf{\textsf{\footnotesize{w}}} (denoting `wide') to a face rotation command.
-% For example,  a \textsc{right} double outer slice rotation is  denoted as \rr{Rw}. 
-% Similarly, the prime $^\prime$ version \rr{Lwp}\  is generated by \cmd{\rr\{Lwp\}}.
+% The  clockwise \textit{combined} rotation of  an outer face AND its inner-slice 
+% (officially known as a `double outer slice' rotation, or a `double block' move) 
+% is denoted by appending a  lower-case  \textbf{\textsf{\footnotesize{w}}} 
+% (denoting `wide') to a rotation-code (endorsed  by the WCA).
+% For~example,  a \textsc{right} double outer slice rotation \rrh{Rw} (\verb!\rrh{Rw}!) 
+% is  denoted as \rr{Rw} (\verb!\rr{Rw}!).  The `prime' version is formed by 
+% appending a `p' to the rotation-code. For~example,  \rr{Rwp}\  is generated by \verb!\rr{Rwp}!.
 %
-%  The superscript~$^2$, or sometimes just an ordinary 2, indicates that the rotation
-%  is applied twice. For example \rr{R}\textbf{$^2$} or \rr{R}\textbf{2} 
-%  denote  \textit{two} successive 90~degree clockwise rotations of the \textsc{right} face.
-% Clearly \rr{R}\textbf{$^3$} is equivalent to \rr{Rp} etc.
 %
+% \bigskip
 %
+% \subsubsection*{The `T' notation} 
+%  \label{sec:Tnotation}
 %
+% \DescribeMacro{TU}
+% \DescribeMacro{TD}
+% \DescribeMacro{TL}
+% \DescribeMacro{TR}
+% \DescribeMacro{TF}
+% \DescribeMacro{TB}
+% This confusing variant of the above `w' notation (e.g.,~\texttt{TR} $\equiv$ \texttt{Rw}) is part of 
+% the  `superset'  notation of Randelshofer. As before,  the rotation  direction 
+% follows that of the designated \textsc{face}. Each has a complementary `prime' version  
+% formed by appending a `p'. 
 %
+%   \bigskip\bigskip
+%
 %     \subsection{Axis rotations}
 %
 % \DescribeMacro{x}
@@ -854,17 +1489,17 @@
 % with their hieroglyphs (the \cmd{\rrh\{\}} forms) being denoted 
 % as \rrh{x}, \rrh{y}, \rrh{z}\ in order to distinguish them from  square layer-rotation 
 % hieroglyphs.
-% Note that since \rr{x}, \rr{y}, \rr{z}\ rotations are always expressed in lowercase, 
-%  this practice is extended also to the commands. 
+% Note that since \rr{x}, \rr{y}, \rr{z}\ rotations are always expressed in lower-case;
+%  this practice is also extended  to the commands. 
 %
-% An \rr{x}\textbf{2} rotation (two \rr{x}\ rotations one after 
+% For example, an \rr{x}\textbf{2} rotation (two \rr{x}\ rotations one after 
 % the other, i.e.,~\rrh{x}\ \rrh{x}) denotes rotating 
 % the cube 180~degrees about its x axis so as to bring the \textsc{down} face  
 % into the \textsc{up} position.
 %
 %  An appended  prime~$^\prime$ indicates an anticlockwise rotation; 
-% for example, \rr{xp}\ (which is generated by appending a `p' to the end of 
-% the command, i.e.,~\cmd{\rr\{xp\}}). 
+% for~example, \rr{xp}\ (which is generated by appending a `p' to the  
+% rotation-code, i.e.,~\cmd{\rr\{xp\}}). 
 %
 % The \cmd{\Rubik\{\}}  forms (and their prime `p' versions) generate the same
 %  hieroglyphs  as their \cmd{\rrh\{\}} versions, except that their spacing is 
@@ -886,7 +1521,7 @@
 % \DescribeMacro{b}
 % A commonly used  alternative for the \rr{x}, \rr{y}, \rr{z}\ notation 
 % (and endorsed  by the WCA)  uses these 
-% lowercase face letter to denote a 90~degree whole-cube rotation  in the same 
+% lower-case face letter to denote a 90~degree whole-cube rotation  in the same 
 % directional sense as that of the   standard face rotations. 
 %
 % {\noindent}Thus  
@@ -894,24 +1529,62 @@
 % \rr{l}\ $\equiv$ \rr{xp}, \   \rr{r}\ $\equiv$ \rr{x}, \ 
 % \rr{f}\ $\equiv$ \rr{z}, \    \rr{b}\ $\equiv$ \rr{zp},
 %
-% {\noindent}For example, \rr{d}\ is generated by  the command \cmd{\rr\{d\}}.
+% {\noindent}For~example, \rr{d}\ is generated by  the command \cmd{\rr\{d\}}.
 %
 % {\noindent}Note that these rotations do not have prime $^\prime$ versions  
 % since \rr{u}~is the opposite of \rr{d}, \rr{l}~is the opposite of \rr{r}, and
 % \rr{f}~is the opposite of \rr{b}.
 %
-% As with the \rrh{x}, \rrh{y}, \rrh{z}\ forms (described above) there also 
-% equivalent \cmd{\rrh\{\}} and \cmd{\Rubik\{\}} forms. For example, 
+% As with the \rrh{x}, \rrh{y}, \rrh{z}\ forms (described above) there are also 
+% equivalent \cmd{\rrh\{\}} and \cmd{\Rubik\{\}} forms. For~example, 
 % \rrh{d}\ is generated by the command \cmd{\rrh\{d\}}.
 %
 %
+% \subsubsection*{The `c' notation} 
+%  \label{sec:cnotation}
 %
+% \DescribeMacro{Uc}
+% \DescribeMacro{Dc}
+% \DescribeMacro{Lc}
+% \DescribeMacro{Rc}
+% \DescribeMacro{Fc}
+% \DescribeMacro{Bc}
+% This slightly more intuitive notation (the `c' stands for `cube') also associates the rotation 
+% direction  with that of the designated  \textsc{face} (e.g.,~\texttt{Rc} $\equiv$ \texttt{x}).
+%  Each has a complementary `prime' version  formed by appending a `p'.  
+% For~example, \rr{Rc} (\verb!\rr{Rc}!) is equivalent to \rr{x}; 
+%  \rr{Rcp} (\verb!\rr{Rcp}!) is equivalent to \rr{xp}.  
+%
+%  This notation, which was probably invented by Singmaster, was originally used on the 
+%  Cube Lovers usenet group (1981--1997). It is now much used on the 
+%  Jaap Puzzles website (see Scherphius J) ---see also Section~\ref{sec:codeJaap}.
+%
+% \bigskip\bigskip
+%
+% \subsubsection*{The `C' notation} 
+%  \label{sec:Cnotation}
+%
+% \DescribeMacro{CU}
+% \DescribeMacro{CD}
+% \DescribeMacro{CL}
+% \DescribeMacro{CR}
+% \DescribeMacro{CF}
+% \DescribeMacro{CB}
+% This variant of the whole cube rotation notation 
+% (e.g.,~\texttt{CR} $\equiv$ \texttt{Rc} $\equiv$ \texttt{x}) 
+% is part of the  `superset' notation of Randelshofer. As before, the rotation  
+% direction follows that of the designated  \textsc{face}. Each has a complementary 
+% `prime' version  formed by appending a `p'. 
+%
+%
+% \bigskip% \bigskip
+%
 %  \subsection{Examples}
 %  \label{sec:examples}
 %  
-%    {\noindent}\rr{R}\  is generated by  the `rubik rotation' command \cmd{\rr\{R\}}
+%    {\noindent}\rr{R}\  is generated by  the  command \cmd{\rr\{R\}}
 %
-%    {\noindent}\rr{Fw}\  is generated by  the `rubik rotation' command \cmd{\rr\{Fw\}}
+%    {\noindent}\rr{Fw}\  is generated by  the  command \cmd{\rr\{Fw\}}
 %
 %    {\noindent}\rr{L}$^2$ is generated by \cmd{\rr\{L\}}\verb!$^2$!
 %
@@ -924,7 +1597,7 @@
 %    {\noindent}\rr{x}\ and \rrh{y}\ and \Rubik{zp}\ are  generated by 
 %   \cmd{\rr\{x\}}  and \cmd{\rrh\{y\}} and \cmd{\Rubik\{zp\}}
 %
-%    {\noindent}\rr{f}\ and \rrh{b}\ are  generated by \cmd{\rr\{f\}} and \cmd{\rrh\{b\}}
+%    {\noindent}\rr{Fc}\ and \rrh{Bc}\ are  generated by \cmd{\rr\{Fc\}} and \cmd{\rrh\{Bc\}}
 %
 %   {\noindent}\rr{U}\rr{U}\rr{R}\rr{R}\ is generated by
 %      \cmd{\rr\{U\}}\cmd{\rr\{U\}}\cmd{\rr\{R\}}\cmd{\rr\{R\}}
@@ -941,7 +1614,7 @@
 %  
 %  \bigskip
 % 
-% {\noindent}Commas can be important in avoiding  ambiguity; for example
+% {\noindent}Commas can be important in avoiding  ambiguity; for~example,
 %
 % \bigskip
 %
@@ -956,20 +1629,31 @@
 %  {\noindent}\rrh{F}\rrh{U}\rrh{y}\rrh{Rp}\rrh{Lwp} \ \ \ \
 %  \verb!\rrh{F}\rrh{U}\rrh{y}\rrh{Rp}\rrh{Lwp}! 
 %
+% \bigskip
 %
+% Note that if each rotation element uses the \textit{same} font or encoding, then 
+% typesetting a rotation  sequence  can be achieved more easily using the 
+% \verb!\ShowSequence! command (see Section~\ref{sec:showsequence}). For example, we can  
+% typeset the last sequence much more conveniently, as follows:
 %
-%  \bigskip
+% \medskip
 %
+% \verb!\ShowSequence{}{\rrh}{F,U,y,Rp,Lwp}! \ \ $\rightarrow$ \ \ \ShowSequence{}{\rrh}{F,U,y,Rp,Lwp}
+%
+%
+%
 %  \subsection{Backwards compatibility}
 %   \label{sec:backwardscompat}
 %
 % Note that in keeping with `backwards compatibility'  all rotation commands (see below) 
-% can still  be written without the usual curley braces \verb!{}!. 
-% For example,  the hieroglyph \rrhD\  (\cmd{\rrh\{D\}}) can also be generated using the command
+% can still  be written without the usual curly braces \verb!{}!. 
+% For~example,  the hieroglyph \rrhD\  (\cmd{\rrh\{D\}}) can also be generated using the command
 %   \cmd{\rrhD}. 
 %
 %  \bigskip
 %
+% \pagebreak
+%
 %  \subsection{Listing of all rotation commands}
 %   \label{sec:listofcommands}
 %
@@ -976,15 +1660,17 @@
 %
 % Note that all the commands presented here also have a \cmd{\Rubik\{\}} equivalent form which 
 % typesets both the hieroglyph and its lettercode in a vertical format, 
-% as shown in the `Examples' section above. These have been ommitted  here
+% as shown in the `Examples' section above. These have been   omitted  here
 % owing to the difficulty of including this form easily in the following table.
 %
-% Note also that some \cmd{\rrh\{\}} commands (eg~the \cmd{\rrh\{B\}} command)  
+%
+% Note also that some \cmd{\rrh\{\}} commands (e.g.,~the \cmd{\rrh\{B\}} command)  
 % show only the lettercode in a square box, e.g.,~\rrh{B}. This is because these  rotations
 %  do not have a `true' visual representation as seen from the \textsc{front} face,
 % and hence can be somewhat ambiguous unless typeset with their associated 
 % lettercode. 
 %
+%
 %  \newcommand{\dnstrut}{\rule{0pt}{17pt}}
 %  \newcommand{\dns}{\hspace{2mm}}
 %  \newcommand{\dnsp}{\hspace{2mm}} 
@@ -1016,6 +1702,18 @@
 %  \dnstrut\rr{Uap}\dns\cmd{\rr\{Uap\}}
 %  & \rrh{Uap}\dns\cmd{\rrh\{Uap\}}
 %  & \textRubik{Uap}\dns\cmd{\textRubik\{Uap\}} \nonumber\\
+%   \dnstrut\rr{Um}\dns\cmd{\rr\{Um\}}
+%  & \rrh{Um}\dns\cmd{\rrh\{Um\}}
+%  & \textRubik{Um}\dns\cmd{\textRubik\{Um\}} \nonumber\\   
+%  \dnstrut\rr{Ump}\dns\cmd{\rr\{Ump\}}
+%  & \rrh{Ump}\dns\cmd{\rrh\{Ump\}}
+%  & \textRubik{Ump}\dns\cmd{\textRubik\{Ump\}} \nonumber\\
+%    \dnstrut\rr{Uc}\dns\cmd{\rr\{Uc\}}
+%  & \rrh{Uc}\dns\cmd{\rrh\{Uc\}}
+%  & \Rubik{Uc}\dns\cmd{\Rubik\{Uc\}} \nonumber\\   
+%  \dnstrut\rr{Ucp}\dns\cmd{\rr\{Ucp\}}
+%  & \rrh{Ucp}\dns\cmd{\rrh\{Ucp\}}
+%  & \Rubik{Ucp}\dns\cmd{\Rubik\{Ucp\}} \nonumber\\ 
 %  \end{supertabular}
 %
 %
@@ -1044,6 +1742,18 @@
 %  \dnstrut\rr{Dap}\dns\cmd{\rr\{Dap\}}
 %  & \rrh{Dap}\dns\cmd{\rrh\{Dap\}}
 %  & \textRubik{Dap}\dns\cmd{\textRubik\{Dap\}} \nonumber\\
+%    \dnstrut\rr{Dm}\dns\cmd{\rr\{Dm\}}
+%  & \rrh{Dm}\dns\cmd{\rrh\{Dm\}}
+%  & \textRubik{Dm}\dns\cmd{\textRubik\{Dm\}} \nonumber\\ 
+%  \dnstrut\rr{Dmp}\dns\cmd{\rr\{Dmp\}}
+%  & \rrh{Dmp}\dns\cmd{\rrh\{Dmp\}}
+%  & \textRubik{Dmp}\dns\cmd{\textRubik\{Dmp\}} \nonumber\\ 
+%  \dnstrut\rr{Dc}\dns\cmd{\rr\{Dc\}}
+%  & \rrh{Dc}\dns\cmd{\rrh\{Dc\}}
+%  & \Rubik{Dc}\dns\cmd{\Rubik\{Dc\}} \nonumber\\ 
+%  \dnstrut\rr{Dcp}\dns\cmd{\rr\{Dcp\}}
+%  & \rrh{Dcp}\dns\cmd{\rrh\{Dcp\}}
+%  & \Rubik{Dcp}\dns\cmd{\Rubik\{Dcp\}} \nonumber\\ 
 %  \end{supertabular}
 %
 %
@@ -1072,9 +1782,20 @@
 %  \dnstrut\rr{Lap}\dns\cmd{\rr\{Lap\}}
 %  & \rrh{Lap}\dns\cmd{\rrh\{Lap\}}
 %  & \textRubik{Lap}\dns\cmd{\textRubik\{Lap\}} \nonumber\\
+%  \dnstrut\rr{Lm}\dns\cmd{\rr\{Lm\}}
+%  & \rrh{Lm}\dns\cmd{\rrh\{Lm\}}
+%  & \textRubik{Lm}\dns\cmd{\textRubik\{Lm\}} \nonumber\\   
+%  \dnstrut\rr{Lmp}\dns\cmd{\rr\{Lmp\}}
+%  & \rrh{Lmp}\dns\cmd{\rrh\{Lmp\}}
+%  & \textRubik{Lmp}\dns\cmd{\textRubik\{Lmp\}} \nonumber\\ 
+%  \dnstrut\rr{Lc}\dns\cmd{\rr\{Lc\}}
+%  & \rrh{Lc}\dns\cmd{\rrh\{Lc\}}
+%  & \Rubik{Lc}\dns\cmd{\Rubik\{Lc\}} \nonumber\\ 
+%  \dnstrut\rr{Lcp}\dns\cmd{\rr\{Lcp\}}
+%  & \rrh{Lcp}\dns\cmd{\rrh\{Lcp\}}
+%  & \Rubik{Lcp}\dns\cmd{\Rubik\{Lcp\}} \nonumber\\ 
 %  \end{supertabular}
 %
-%
 %  \begin{supertabular}[lll]{p{3cm} p{3cm} p{4.5cm}}
 %  \dnstrut\rr{R}\dns\cmd{\rr\{R\}}
 %  & \rrh{R}\dns\cmd{\rrh\{R\}}
@@ -1100,6 +1821,18 @@
 %  \dnstrut\rr{Rap}\dns\cmd{\rr\{Rap\}}
 %  & \rrh{Rap}\dns\cmd{\rrh\{Rap\}}
 %  & \textRubik{Rap}\dns\cmd{\textRubik\{Rap\}} \nonumber\\
+%  \dnstrut\rr{Rm}\dns\cmd{\rr\{Rm\}}
+%  & \rrh{Rm}\dns\cmd{\rrh\{Rm\}}
+%  & \textRubik{Rm}\dns\cmd{\textRubik\{Rm\}} \nonumber\\ 
+%  \dnstrut\rr{Rmp}\dns\cmd{\rr\{Rmp\}}
+%  & \rrh{Rmp}\dns\cmd{\rrh\{Rmp\}}
+%  & \textRubik{Rmp}\dns\cmd{\textRubik\{Rmp\}} \nonumber\\ 
+%  \dnstrut\rr{Rc}\dns\cmd{\rr\{Rc\}}
+%  & \rrh{Rc}\dns\cmd{\rrh\{Rc\}}
+%  & \Rubik{Rc}\dns\cmd{\Rubik\{Rc\}} \nonumber\\ 
+%  \dnstrut\rr{Rcp}\dns\cmd{\rr\{Rcp\}}
+%  & \rrh{Rcp}\dns\cmd{\rrh\{Rcp\}}
+%  & \Rubik{Rcp}\dns\cmd{\Rubik\{Rcp\}} \nonumber\\ 
 %  \end{supertabular}
 %
 %
@@ -1128,6 +1861,18 @@
 %  \dnstrut\rr{Fap}\dns\cmd{\rr\{Fap\}}
 %  & \rrh{Fap}\dns\cmd{\rrh\{Fap\}}
 %  & \textRubik{Fap}\dns\cmd{\textRubik\{Fap\}} \nonumber\\
+%  \dnstrut\rr{Fm}\dns\cmd{\rr\{Fm\}}
+%  & \rrh{Fm}\dns\cmd{\rrh\{Fm\}}
+%  & \textRubik{Fm}\dns\cmd{\textRubik\{Fm\}} \nonumber\\ 
+%  \dnstrut\rr{Fmp}\dns\cmd{\rr\{Fmp\}}
+%  & \rrh{Fmp}\dns\cmd{\rrh\{Fmp\}}
+%  & \textRubik{Fmp}\dns\cmd{\textRubik\{Fmp\}} \nonumber\\ 
+%  \dnstrut\rr{Fc}\dns\cmd{\rr\{Fc\}}
+%  & \rrh{Fc}\dns\cmd{\rrh\{Fc\}}
+%  & \Rubik{Fc}\dns\cmd{\Rubik\{Fc\}} \nonumber\\ 
+%  \dnstrut\rr{Fcp}\dns\cmd{\rr\{Fcp\}}
+%  & \rrh{Fcp}\dns\cmd{\rrh\{Fcp\}}
+%  & \Rubik{Fcp}\dns\cmd{\Rubik\{Fcp\}} \nonumber\\ 
 %  \end{supertabular}
 %
 %
@@ -1156,6 +1901,18 @@
 %  \dnstrut\rr{Bap}\dns\cmd{\rr\{Bap\}}
 %  & \rrh{Bap}\dns\cmd{\rrh\{Bap\}}
 %  & \textRubik{Bap}\dns\cmd{\textRubik\{Bap\}} \nonumber\\
+%  \dnstrut\rr{Bm}\dns\cmd{\rr\{Bm\}}
+%  & \rrh{Bm}\dns\cmd{\rrh\{Bm\}}
+%  & \textRubik{Bm}\dns\cmd{\textRubik\{Bm\}} \nonumber\\ 
+%  \dnstrut\rr{Bmp}\dns\cmd{\rr\{Bmp\}}
+%  & \rrh{Bmp}\dns\cmd{\rrh\{Bmp\}}
+%  & \textRubik{Bmp}\dns\cmd{\textRubik\{Bmp\}} \nonumber\\ 
+%  \dnstrut\rr{Bc}\dns\cmd{\rr\{Bc\}}
+%  & \rrh{Bc}\dns\cmd{\rrh\{Bc\}}
+%  & \Rubik{Bc}\dns\cmd{\Rubik\{Bc\}} \nonumber\\   
+%  \dnstrut\rr{Bcp}\dns\cmd{\rr\{Bcp\}}
+%  & \rrh{Bcp}\dns\cmd{\rrh\{Bcp\}}
+%  & \Rubik{Bcp}\dns\cmd{\Rubik\{Bcp\}} \nonumber\\ 
 %  \end{supertabular}
 %
 %
@@ -1265,43 +2022,171 @@
 %  \end{supertabular}
 %
 %
-% \pagebreak
+%    \subsubsection{Randelshofer notation}
+%     \label{sec:listofRandelshofercommands}
 %
-%       \section{Other commands}
+%  \newcommand{\dnRubik}[1]{%
+%    \dnstrut\rr{#1}\dns\cmd{\rr\{#1\}}%
+%    & \rrh{#1}\dns\cmd{\rrh\{#1\}}%
+%    & \Rubik{#1}\dns\cmd{\Rubik\{#1\}} \nonumber\\%
+%    }%  
 %
+%  \newcommand{\dntextRubik}[1]{%
+%   \dnstrut\rr{#1}\dns\cmd{\rr\{#1\}}%
+%   & \rrh{#1}\dns\cmd{\rrh\{#1\}}%
+%   & \textRubik{#1}\dns\cmd{\textRubik\{#1\}} \nonumber\\%
+%   }%
 %
-% \DescribeMacro{\rubikcube}
-% This command generates the logo \rubikcube.
 %
+%  \begin{supertabular}[lll]{p{3cm} p{3cm} p{4.5cm}}
+%   \dnRubik{CR}
+%   \dnRubik{CRp}
+%   \dnRubik{CL}
+%   \dnRubik{CLp}
+%   \dnRubik{CU}
+%   \dnRubik{CUp}
+%   \dnRubik{CD}
+%   \dnRubik{CDp}
+%   \dnRubik{CF}
+%   \dnRubik{CFp}
+%   \dnRubik{CB}
+%   \dnRubik{CBp}
+%  \end{supertabular}
 %
-% All  \rubikcube\ commands assume a 3x3x3 cube by default.
-% There are three primary command categories: (a)~\cmd{\Draw..} commands 
-% (which must always be used \textit{inside} a TikZ picture environment), 
-%  (b)~parameter-allocation' commands---e.g.,~\cmd{\RubikCubeSolved}---which can 
-%  be used either inside or outside  a TikZ environment),  
-%  and (c)~commands which can be used in ordinary text 
-% (e.g.,~|\rr{}| rotation commands).
+%  \begin{supertabular}[lll]{p{3cm} p{3cm} p{4.5cm}}
+%   \dntextRubik{MR}
+%   \dntextRubik{MRp}
+%   \dntextRubik{ML}
+%   \dntextRubik{MLp}
+%   \dntextRubik{MU}
+%   \dntextRubik{MUp}
+%   \dntextRubik{MD}
+%   \dntextRubik{MDp}
+%   \dntextRubik{MF}
+%   \dntextRubik{MFp}
+%   \dntextRubik{MB}
+%   \dntextRubik{MBp}
+%  \end{supertabular}
 %
-% Since \LaTeX\ commands have a maximum limit of only 9 parameters, 
-% it is necessary to use separate  `Face' and `Slice'  commands (see below)
-%   in order to accommodate  all 27 visible colours of a 3D~Rubik cube.
+%  \begin{supertabular}[lll]{p{3cm} p{3cm} p{4.5cm}}
+%   \dntextRubik{SR}
+%   \dntextRubik{SRp}
+%   \dntextRubik{SL}
+%   \dntextRubik{SLp}
+%   \dntextRubik{SU}
+%   \dntextRubik{SUp}
+%   \dntextRubik{SD}
+%   \dntextRubik{SDp}
+%   \dntextRubik{SF}
+%   \dntextRubik{SFp}
+%   \dntextRubik{SB}
+%   \dntextRubik{SBp}
+%  \end{supertabular}
 %
+%  \begin{supertabular}[lll]{p{3cm} p{3cm} p{4.5cm}}
+%   \dntextRubik{TR}
+%   \dntextRubik{TRp}
+%   \dntextRubik{TL}
+%   \dntextRubik{TLp}
+%   \dntextRubik{TU}
+%   \dntextRubik{TUp}
+%   \dntextRubik{TD}
+%   \dntextRubik{TDp}
+%   \dntextRubik{TF}
+%   \dntextRubik{TFp}
+%   \dntextRubik{TB}
+%   \dntextRubik{TBp}
+%  \end{supertabular}
 %
 %
-%    \subsection{Draw commands}
+%    \subsection{The rubikfont}
+%     \label{sec:rubikfont}
 %
-% A \cmd{\Draw..} command typesets  
-% either a Rubik cube, cubie or a layer  using parameters set or defined via 
-% previous parameter-allocation commands (eg~face colours, dimensions etc).
-% Furthermore, \cmd{\Draw..} commands can only be used \textit{inside} a TikZ 
-% picture environment  (see section~\ref{sec:drawerrormessage}).
+%  For hieroglyph-related text we use the standard  Computer Modern Sans (cmss) 
+%  bold extended (bx) 10pt font for upper-case letters, and  the 8pt footnote size for lower-case  
+%   (see Section~\ref{sec:coderubikfont} for details).  This  font (rubikfont) 
+%   and the `prime' symbol (rubikprime) can be easily changed by `renewing' the three commands there.  
 %
+%  For example, to change to the somewhat `lighter' semi-bold extended (sbx) CM Sans (cmss) form
+%   one can simply include the following in the preamble (the FNS suffix stands for `footnotesize'):
+%\begin{verbatim}
+% \makeatletter
+% \renewcommand{\@rubikfont}{\fontsize{10}{12pt}\usefont{T1}{cmss}{sbx}{n}}
+% \renewcommand{\@rubikfontFNS}{\fontsize{8}{12pt}\usefont{T1}{cmss}{sbx}{n}}
+% \makeatother
+%\end{verbatim}
+% 
 %
+%    \subsubsection*{The `rubikprime' symbol}
+%     \label{sec:rubikprime}
+%
+% We currently  use the apostrophe for the prime symbol (see Section~\ref{sec:coderubikfont}),
+%  since the  maths \cmd{\prime} seems to be a bit too faint (especially since we need to use 
+% the `scriptstyle' size in this setting). However, users can 
+% easily make the Rubik bundle use the maths prime instead, by loading the following
+% in the preamble. 
+%\begin{verbatim}
+% \makeatletter
+% \renewcommand{\@rubikprime}{\raisebox{1.2pt}{\ensuremath{\scriptstyle{^\prime}}}}
+% \makeatother
+%\end{verbatim}
+%
+%
+%
+%    \section{Draw commands}
+%
+% A \cmd{\Draw..} command typesets  either a Rubik cube, cubie or a face 
+% or layer  using parameters set or defined via 
+% previous parameter-allocation commands (e.g.,~face colours, dimensions etc).
+% Note that those \cmd{\Draw..} commands which do take colours as arguments do not
+% update the cube's internal `colour state', but simply `paint' these colours.
+% 
+% It is important to distinguish between the \rubikcube\ package \cmd{\Draw..} commands 
+% and  TikZ \cmd{\draw..} commands.  \cmd{\Draw..} commands are implemented by the 
+% TikZ \cmd{\draw..} commands, and consequently  \cmd{\Draw..} commands can only be 
+% used \textit{inside} a TikZ  picture environment---and hence they can also be used safely in 
+% conjunction with the \cmd{\ShowCube} command, which itself uses a TikZ picture environment. 
+% See also   Section~\ref{sec:drawerrormessage} below..
+%
+%
+%
+%   \subsection[Error message]{\cmd{\Draw} error message}
+%   \label{sec:drawerrormessage}
+%
+% If a    \cmd{\Draw..} command is used \textit{outside} a 
+% TikZ picture  environment, then \LaTeX\  issues an
+%  ``Undefined control sequence'' error message, indicating 
+% that it is trying to draw  something using an undefined 
+% TikZ \cmd{\draw} command\,\footnote{Note that the TikZ  \cmd{\draw}  command 
+% uses a lower-case `d', while all \rubikcube\ commands start with an upper-case letter.}. 
+%
+% This is because all Rubik \cmd{\Draw..} commands achieve their effects by 
+% implementing a series of TikZ \cmd{\draw..} and other commands, all of which 
+% need to be inside a \texttt{tikzpicture} environment.
+%
+% For~example, if  the  command  \cmd{\DrawRubikCubeF} is used 
+% without a surrounding TikZ picture environment, 
+%  then something similar to  the following error message will be generated.
+%\begin{verbatim} 
+%! Undefined control sequence.
+%\DrawFlatUp ... }{#1}\pgfmathsetmacro {\uy }{#2}\draw
+%                                                      [line join=round,...
+%l.56 \DrawRubikCubeF
+%\end{verbatim}
+%
+%
+%
+%
+%  \subsection{DrawRubikCube commands}
+%
 %   \DescribeMacro{\DrawRubikCubeXY}
-% This  command  draws Rubik cubes  in one of four 
-% orientations as denoted by the following terminal XY viewing-direction 
-% codes:  RU (RightUp),  RD (RightDown), LU (LeftUp),  LD (LeftDown). 
-%  For example, the command
+%   \DescribeMacro{\DrawRubikCubeF}
+%   \DescribeMacro{\DrawRubikCubeSF}
+% This  command  draws Rubik cubes  in one of four oblique 
+% orientations or configurations as denoted by the following terminal 
+% XY viewing-direction  codes:  RU~(RightUp),  RD~(RightDown), LU~(LeftUp), 
+% LD~(LeftDown); two additional terminal codes are F~(Flat) and SF~(Semi-Flat). 
+%  For~example, the command
 %  \begin{quote}
 %  \cmd{\DrawRubikCubeRU}
 %  \end{quote}
@@ -1323,7 +2208,7 @@
 %    \DrawRubikCubeRU 
 % \end{tikzpicture}%
 %\end{verbatim}
-% Note that these commands are equivalent to:
+% Note that the above commands are equivalent to:
 %\begin{verbatim}
 % \RubikCubeSolved
 % \ShowCube{3cm}{0.7}{\DrawRubikCubeRU} 
@@ -1347,42 +2232,32 @@
 % the xyz parameters  denote the face colours associated with each of 
 % the three axes. 
 %
-% For example, the  command    \cmd{\DrawCubieRU\{O\}\{Y\}\{G\}}   draws a 
+% For~example, the  command    \cmd{\DrawCubieRU\{O\}\{Y\}\{G\}}   draws a 
 %  single cubie as viewed  from the RightUp  direction, 
 % with face colours Orange (x-axis), Yellow (y-axis), Green (z-axis), as follows.
 % 
 % \medskip
 %
-% \begin{minipage}{1.35cm}
-% \begin{tikzpicture}[scale=1]
-% \DrawCubieRU{O}{Y}{G} 
-% \end{tikzpicture}%
-% \end{minipage}
+% \ShowCube{1.33cm}{1}{\DrawCubieRU{O}{Y}{G}} 
 %    \hspace{1cm}
 % \begin{minipage}{0.6\textwidth}
 %\begin{verbatim}
-% \begin{tikzpicture}[scale=1]
-%    \DrawCubieRU{O}{Y}{G} 
-% \end{tikzpicture}%
+% \ShowCube{1.33cm}{1}{\DrawCubieRU{O}{Y}{G}} 
 %\end{verbatim}
 % \end{minipage}
 % 
 % \medskip
 %
-% {\noindent}Since the front face is a unit 1cm and the width of the side approx 1/3cm, 
-%  and the scale factor =1, then the the minimum minipage width required for the cubie 
-% $=(1.33 \times 1) = 1.33$cm, and hence the  above commands are equivalent to 
-% \begin{verbatim}
-% \ShowCube{1.33cm}{1}{\DrawCubieRU{O}{Y}{G}}
-% \end{verbatim}
+% {\noindent}Since the front face is 1~unit wide and the 2D width of the side approx 1/3~unit, 
+%  and the scale-factor =~1, then the  minipage width required for the cubie image 
+% $=(1.33 \times 1) = 1.33$cm.
 %
-%
 % \begin{figure}[hbt]
 %   \centering
 % \ifpdf
-%    \includegraphics[height=4cm]{Rubik-doc-figC.pdf}
+%    \includegraphics[height=4cm]{rubik-doc-figC.pdf}
 %  \else
-% \includegraphics[height=4cm]{Rubik-doc-figC.eps}
+% \includegraphics[height=4cm]{rubik-doc-figC.eps}
 % \fi
 % \vspace{-5mm}\caption{\label{fig:cubiedydx}Cubie dy dx parameters} 
 % \end{figure}
@@ -1396,25 +2271,23 @@
 % \cmd{\Cubiedy\{\}} \\
 % \cmd{\Cubiedx\{\}} 
 % \end{quote}
-% as shown in the folowing example.
+% as shown in the following example.
 %
 % \bigskip
 %
-% \begin{minipage}{1.7cm}
-% \begin{tikzpicture}[scale=1]
-% \Cubiedy{0.4}
-% \Cubiedx{0.8}
-% \DrawCubieRU{O}{Y}{G} 
-% \end{tikzpicture}%
-% \end{minipage}
+% \ShowCube{1.7cm}{1}{%
+%   \Cubiedy{0.4}%
+%   \Cubiedx{0.8}%
+%   \DrawCubieRU{O}{Y}{G}% 
+%  }
 % \hspace{2cm}
 % \begin{minipage}{0.6\textwidth}
 %\begin{verbatim}
-% \begin{tikzpicture}[scale=1]
+% \ShowCube{1.7cm}{1}{%
 %   \Cubiedy{0.4}
 %   \Cubiedx{0.8}
 %   \DrawCubieRU{O}{Y}{G} 
-% \end{tikzpicture}%
+%  }
 %\end{verbatim}
 % \end{minipage}
 % 
@@ -1449,288 +2322,267 @@
 %  \textCubieLD{O}{Y}{G}  \ \  |\textCubieLD{O}{Y}{G}|  
 % \end{quote}
 % Note that these \cmd{\textCubieXY} commands are not influenced by the 
-% \cmd{\Cubiedy}, \cmd{\Cubiedx} commands as their size is preset for text use. 
+% \cmd{\Cubiedy}, \cmd{\Cubiedx} commands as their size is pre-set for text use. 
 %
 %
-%     \subsubsection[Draw.. error message]{\cmd{\draw} error message}
-%
-% See also section~\ref{sec:drawerrormessage} regarding the error message associated with 
-% using a \cmd{\Draw...} command  \textit{outside}  a TikZ picture environment.
-%
-%
-%  \subsection{Face commands}
-%   \label{sec:facecommands}
-%
-%  \DescribeMacro{\RubikFaceUp}
-%  \DescribeMacro{\RubikFaceDown}
-%  \DescribeMacro{\RubikFaceLeft}
-%  \DescribeMacro{\RubikFaceRight}
-%  \DescribeMacro{\RubikFaceFront}
-%  \DescribeMacro{\RubikFaceBack}
-% These  commands take nine colour arguments and  allocate   colours to the 
-% individual cubies  of a  Rubik cube face.
-% The ordering is isomorphic to the sequence 1--9, i.e.,~numbering the small 
-% squares 1-3~(top row, left to right), 4-6~(middle row, left to right), 
-% 7-9~(bottom row, left to right), as follows:
-% \begin{quote}
-% \fbox{
-% \begin{minipage}{1.6cm}
-% \#1 \#2 \#3 
-%
-% \#4 \#5 \#6
-%
-% \#7 \#8 \#9
-% \end{minipage}
-% }
-% \end{quote}
-% Conveniently, \LaTeX\ allows the colour arguments to be separated by spaces 
-% (e.g.,~separated in groups of three), or even spread across several 
-% lines (e.g.,~in a square block to resemble a 9-face) in order to 
-% make the command more visually intuitive, as in the following examples.
-% \begin{quote}
-%\begin{verbatim}
-% \RubikFaceUp{G}{B}{G}   {G}{W}{O}   {G}{O}{G}
-%
-% \RubikFaceFront{O}{W}{R}
-%                {W}{W}{W}
-%                {G}{W}{G}
 % 
-%\end{verbatim}
-% \end{quote}
+%  \subsection{Flat commands}
+%  \label{sec:flatcommands}
 %
-%  \DescribeMacro{\RubikFaceUpAll}
-%  \DescribeMacro{\RubikFaceDownAll}
-%  \DescribeMacro{\RubikFaceLeftAll}
-%  \DescribeMacro{\RubikFaceRightAll}
-%  \DescribeMacro{\RubikFaceFrontAll}
-%  \DescribeMacro{\RubikFaceBackAll}
-% For convenience, each of these commands has an associated 
-% `\texttt{All}' command which allocates  the same colour to all the cubies 
-% on a 9-face  (i.e.,~only a single colour argument is required).
+%  \DescribeMacro{\DrawFlatUp}
+%  \DescribeMacro{\DrawFlatDown}
+%  \DescribeMacro{\DrawFlatLeft}
+%  \DescribeMacro{\DrawFlatRight}
+%  \DescribeMacro{\DrawFlatFront}
+%  \DescribeMacro{\DrawFlatBack}
+%  These commands  \cmd{\DrawFlat..}\marg{x}\marg{y}  draw a `flat' (square) 
+%  representation of the current state of a specified face such that its 
+%  bottom left corner  is positioned at ($x$, $y$). 
+%  They are designed to supplement the \cmd{\DrawRubikCube...} commands and 
+%  allow hidden faces to be represented. 
+%  Each command (except \cmd{\DrawFlatFront}) takes two arguments, 
+%  namely the  X-coordinate  and Y-coordinate of the bottom left 
+%  corner of the  face.  This ($x$,$y$) pair allows the user to position
+%  the face. 
 %
-% If you want a particular face to be all grey, then one can 
-% either omit the particular `Face' command (since the 
-% default colour is grey), or  use  a `Face' command specifying the 
-% colour-code~X;  for example,  \cmd{\RubikFaceUpAll\{X\}}.
-% However, if you do use a Face command, then all of the command's 
-% colour arguments must be allocated, as otherwise you will generate a 
-% `missing parameter' error, and no colour will be 
-% allocated (i.e.,~you will see  a black-hole).
-% Use of these commands is shown in the following figure.
+%  Note that the Y-argument set for the \cmd{\DrawFlatLeft} 
+%  and \cmd{\DrawFlatRight} commands is not currently actioned 
+% (see Section~\ref{sec:drawflatxcommands}).
+%  This is because both the \textsc{left} and \textsc{right} faces, as used by the 
+% \cmd{\DrawRubikCubeSF} (Semi-Flat) command which incorporates the RU 
+%  view, require only Y=0. It is anticipated that this (x,y) facility 
+%  will  be fully  extended to  the left and right forms in a  later version.
 %
-% \bigskip
-% 
-% \begin{minipage}{2.8cm}
-% \RubikFaceUpAll{X}
-% \RubikFaceRightAll{R}
-% \RubikFaceFront{W}{Y}{G}
-%                {W}{Y}{G}
-%                {W}{Y}{G}
-% \begin{tikzpicture}[scale=0.7]
-% \DrawRubikCubeRU
-% \end{tikzpicture}%
-% \end{minipage}
-%    \hspace{5mm}
-% \begin{minipage}{0.6\textwidth}
-%\begin{verbatim}
-% \RubikFaceUpAll{X}
-% \RubikFaceRightAll{R}
-% \RubikFaceFront{W}{Y}{G}
-%                {W}{Y}{G}
-%                {W}{Y}{G}
-% \ShowCube{3cm}{0.7}{\DrawRubikCubeRU}
-% \end{verbatim}
-% \end{minipage}
-% 
+%  Note also that the \cmd{\DrawFlatFront} command currently takes \textit{no} 
+%  arguments, since by definition the bottom left corner of this face is 
+%  always at (0,0),  and there seems to be no reason (just now) for 
+%  this face to have the  (x,y) facility.
 %
-%       \subsection{RubikCubeSolved command}
-%    \label{sec:rubikcubesolved}
+%  \textsc{usage}:\ In the following example we use the command \verb!\DrawFlatBack{4}{1}! to
+%  append the \textsc{back} face to the side of a 3D  cube. Note that since 
+%  the coordinates of the bottom/back/right corner of the cube rendered by the 
+%  command \cmd{\DrawRubikCubeRU} is (4,1) 
+%  (see Section~\ref{sec:coordinates}), we can position the 
+%  lower/left corner of the \textsc{back} face at this point using the command
+%  \verb!\DrawFlatBack{4}{1}! as follows: 
 %
-%  \DescribeMacro{\RubikCubeSolved}
-% This command  sets all the face colours to that of a standard `solved' cube
-% and is equivalent to the following set of face commands
+%  \bigskip
+%  
+%  \begin{minipage}{0.4\textwidth}
+%  \centering
+%  \RubikCubeSolved
+%  \begin{tikzpicture}[scale=0.4]
+%  \DrawRubikCubeRU
+%  \DrawFlatBack{4}{1}
+%  \end{tikzpicture}%
+%  \end{minipage}
+%  \begin{minipage}{5cm}
 %\begin{verbatim}
-%  \RubikFaceUpAll{W}%
-%  \RubikFaceDownAll{Y}%
-%  \RubikFaceLeftAll{B}%
-%  \RubikFaceRightAll{G}%
-%  \RubikFaceFrontAll{O}%
-%  \RubikFaceBackAll{R}%
+%  \RubikCubeSolved
+%  \ShowCube{3cm}{0.4}{%
+%     \DrawRubikCubeRU
+%     \DrawFlatBack{4}{1}
+%  }
 %\end{verbatim}
-% as shown in the following semi-flat image.
+%  \end{minipage}
+%    
+%  \bigskip
 %
-% \bigskip
-%
-% \begin{minipage}{5cm}
-% \centering
-% \begin{tikzpicture}[scale=0.5]
-% \RubikCubeSolved
-% \DrawRubikCubeFlat
-% \end{tikzpicture}%
-% \end{minipage}
-% \begin{minipage}{0.5\textwidth}
+%  \DescribeMacro{\DrawRubikCubeF}
+%  This command  draws the completely flat (F) format of the cube, as  shown in the following example.
+%  
+%  \bigskip
+%  
+%  \begin{minipage}{0.4\textwidth}
+%  \centering
+%  \begin{tikzpicture}[scale=0.4]
+%  \RubikCubeSolved
+%  \DrawRubikCubeF
+%  \node (U) at (1.5, 4.5)   [black]{\small\textsf{U}};
+%  \node (D) at (1.5, -1.5)  [black]{\small\textsf{D}};
+%  \node (L) at (-1.5, 1.5)  [black]{\small\textsf{L}};
+%  \node (R) at (4.5, 1.5)   [black]{\small\textsf{R}};
+%  \node (F) at (1.5, 1.5)   [black]{\small\textsf{F}};
+%  \node (B) at (7.5, 1.5)   [black]{\small\textsf{B}};
+%  \end{tikzpicture}%
+%  \end{minipage}
+%  \begin{minipage}{5cm}
 %\begin{verbatim}
 %  \RubikCubeSolved
-%  \showcube{5cm}{0.5}{\DrawRubikCubeFlat}
+%  \ShowCube{5cm}{0.4}{\DrawRubikCubeF}
 %\end{verbatim}
-% \end{minipage}
-%
-% \bigskip
-%
-% Note that the width of the minipage above  is set to 5cm. This is derived from the fact 
-% that  the unscaled width of the semi-flat image is 10cm, and hence if
-% the TikZ scale factor is to be 0.5 then the minimum minipage width = $10 \times 0.5 = 5$cm
-% (see Section~\ref{sec:coordinates} for details).
-%
-% If other orientations of the solved cube are required, this can be easily achieved
-% using the \cmd{\RubikRotation} command (from the \texttt{RubikRotation} package).
-% For example, if one wants to show the solved cube upsidedown, then this format 
-% could be defined as follows (here we have used the rotations \rrx, \rrx, \rry, to 
-% invert the cube):
+%  \end{minipage}
+%  
+%  \bigskip
+%  
+%  The addition of  text (numbers or letters) in the faces is 
+%  straightforward---the origin of the 1-unit grid is located at the 
+%  bottom left corner of the \textsc{front} face (orange here). 
+%  The letters were placed using the following TikZ code inside the 
+%  TikZ picture environment.
+%  
 %\begin{verbatim}
-%\newcommand{\CubeUpSideDown}{\RubikCubeSolved\RubikRotation{x2,y}}
+%  \RubikCubeSolved
+%  \ShowCube{5cm}{0.4}{%
+%    \DrawRubikCubeF
+%    \node (U) at (1.5, 4.5)   [black]{\small\textsf{U}};
+%    \node (D) at (1.5, -1.5)  [black]{\small\textsf{D}};
+%    \node (L) at (-1.5, 1.5)  [black]{\small\textsf{L}};
+%    \node (R) at (4.5, 1.5)   [black]{\small\textsf{R}};
+%    \node (F) at (1.5, 1.5)   [black]{\small\textsf{F}};
+%    \node (B) at (7.5, 1.5)   [black]{\small\textsf{B}};
+%  }
 %\end{verbatim}
-% This command would then generate the following:
+%  
+%  \DescribeMacro{\DrawRubikCubeSF}
+%  {\noindent}A useful `semi-flat' (SF) alternative format, which uses 
+%  the standard RU  view of the cube  and  appends the three hidden 
+%  sides (cf.,~Rokicki \textit{et~al.}, 2013),  is generated by the 
+%  command \cmd{\DrawRubikCubeSF} as follows.
+%  
+%  \bigskip
 %
-% \bigskip
-%
-% \begin{minipage}{2.8cm}
-% \centering
-% \begin{tikzpicture}[scale=0.6]
-% \DrawNCubeAll{3}{O}{Y}{G}
-% \end{tikzpicture}%
-% \end{minipage}
-%    \hspace{5mm}
-% \begin{minipage}{0.6\textwidth}
+%  \begin{minipage}{5cm}
+%  \begin{tikzpicture}[scale=0.5]
+%  \RubikCubeSolved
+%  \DrawRubikCubeSF
+%  \node (B) at (5.5, 2.5)   [white]{\small\textsf{B}};
+%  \end{tikzpicture}%
+%  \end{minipage}
+%  \begin{minipage}{5cm}
 %\begin{verbatim}
-% \CubeUpSideDown
-% \ShowCube{2.4cm}{0.6}\DrawRubikCubeRU}
+%  \RubikCubeSolved
+%  \ShowCube{5cm}{0.5}{%
+%     \DrawRubikCubeSF
+%     \node (B) at (5.5, 2.5)  
+%              [white]{\small\textsf{B}};
+%  }
 %\end{verbatim}
-% \end{minipage}
-%
+%  \end{minipage}
+%  
 % \bigskip
 %
-%  Users can easily set their own alternative `solved'  face/colour configuration by `renewing' 
-%  the \cmd{\RubikCubeSolved} command as follows---remember to include the trailing \%  (note also
-%  that the colours  ROYGBWX are currently hardwired  so do not  use a different set 
-%  of uppercase letters).
-%\begin{verbatim}
-% \renewcommand{\RubikCubeSolved}{%
-%    \RubikFaceUpAll{..}%
-%    \RubikFaceDownAll{..}%
-%    \RubikFaceLeftAll{..}%
-%    \RubikFaceRightAll{..}%
-%    \RubikFaceFrontAll{..}%
-%    \RubikFaceBackAll{..}%
-% }
-%\end{verbatim} 
+% Note that even in this configuration it is straight-forward to
+% write text on the graphic, since the 2D width (on the page) of 
+% the green  \textsc{right} face is exactly 1-unit, and the 
+% bottom right-hand corner of the green face is raised exactly 1-unit
+% (see Figure~\ref{fig:cubesquaregraph}).
+% Consequently, since the origin of the  coordinate-grid is at the bottom left 
+% corner of the \textsc{front} face (the orange face here), the  coordinates 
+% of the centre of the  red \textsc{back} face are easily determined to be (5.5, 2.5). 
+%  
 %
+%  \subsection{Face commands}
+%  \label{sec:facecommands}
 %
 %
-%       \subsection{RubikCubeGrey command}
-%       \label{sec:rubikcubegrey}
+%  \DescribeMacro{\DrawFaceUp}
+%  \DescribeMacro{\DrawFaceDown}
+%  \DescribeMacro{\DrawFaceLeft}
+%  \DescribeMacro{\DrawFaceRight}
+%  \DescribeMacro{\DrawFaceFront}
+%  \DescribeMacro{\DrawFaceBack}
+%  \DescribeMacro{\DrawFaceUpSide}
+%  \DescribeMacro{\DrawFaceDownSide}
+%  \DescribeMacro{\DrawFaceLeftSide}
+%  \DescribeMacro{\DrawFaceRightSide}
+%  \DescribeMacro{\DrawFaceFrontSide}
+%  \DescribeMacro{\DrawFaceBackSide}
+% These commands draw the current state of a specified  face 
+% (e.g.,~\cmd{\DrawFaceUp}), or the face and all the associated side-bars
+% (e.g.,~\cmd{\DrawFaceUpSide}).
+% \textsc{Note}: these  commands  do \textsc{not} take any 
+% arguments---for code see Section~\ref{sec:drawfacecode}.
 %
-%  \DescribeMacro{\RubikCubeGrey}
-%  This command generates a 3x3x3 cube with no colours allocated except for the central
-%  cubie of each face, which takes the same colour configuration as defined for the 
-% \cmd{\RubikCubeSolved} command. 
-% This command, which is useful starting point when wanting to describe the movement of 
-% particular cubies, generates the following cube:
+% In the following example we use the \cmd{\DrawFlatUpSide} command to
+%  draw the \textsc{up} face and all its side-bars of a cube  having 
+% a `solved' configuration.
 %
-% \bigskip
-%
-% \RubikCubeGrey
-% \ShowCube{3cm}{0.5}{\DrawRubikCubeRU}
-%    \hspace{5mm}
-% \begin{minipage}{0.6\textwidth}
+%  \bigskip
+%  
+%  \begin{minipage}{0.4\textwidth}
+%  \centering
+%  \RubikCubeSolved
+%  \begin{tikzpicture}[scale=0.4]
+%  \DrawFaceUpSide
+%  \end{tikzpicture}%
+%  \end{minipage}
+%  \begin{minipage}{5cm}
 %\begin{verbatim}
-% \RubikCubeGrey
-% \ShowCube{3cm}{0.5}{\DrawRubikCubeRU}
+%  \RubikCubeSolved
+%  \ShowCube{1.6cm}{0.4}{%
+%     \DrawFaceUpSide
+%  }
 %\end{verbatim}
-% \end{minipage}
+%  \end{minipage}
 %
-% \bigskip
-%  Users can easily set their own alternative  face/colour configuration by `renewing' 
-% the \cmd{\RubikCubeGrey} command along the lines shown above (the code is in Section~\ref{sec:codegrey}). 
+% \vspace{1cm}
 %
 %
+%      \subsection[NCube]{NCube (NxNxN)}
+%      \label{sec:NCube}
+% 
+%  \DescribeMacro{\DrawNCubeAll} 
+%  An `NCube' is  a solved NxNxN cube drawn from the RU direction; 
+%  (i.e.,~only shows faces \textsc{up}, \textsc{front}, \textsc{right}). 
+%  The cubie colours of each face are All the same.
+%  \begin{quote}
+%    \cmd{\DrawNCubeAll\{N\}\{Xcolour\}\{Ycolour\}\{Zcolour\}}.
+%  \end{quote}
+%  This command takes four ordered parameters (N, X, Y, Z)---the number 
+%  (integer; $N>0$) of cubies along an edge, followed by three face 
+%  colours in XYZ order.
+%  Since the viewpoint is only from the RU direction, the  three colour 
+%  parameters are: X(Right), Y(Up), Z(Front).
+%  
+%  \bigskip
+%  
+%  \begin{minipage}{0.3\textwidth}
+%  \begin{tikzpicture}[scale=0.5]
+%     \DrawNCubeAll{5}{O}{Y}{G}
+%  \end{tikzpicture}%
+%  \end{minipage}
+%  \begin{minipage}{0.5\textwidth}
+%\begin{verbatim}
+% \ShowCube{3.5cm}{0.5}{\DrawNCubeAll{5}{O}{Y}{G}}
+%\end{verbatim}
+%  \end{minipage}
 %
-%    \subsection{Slice commands}
-%   \label{sec:slicecommands}
 %
-%  \DescribeMacro{\RubikSliceTopX}
-%  \DescribeMacro{\RubikSliceMiddleX}
-%  \DescribeMacro{\RubikSliceBottomX}
-%  These three commands  allocate the six visible cubie colours associated with  a
-%   \textit{horizontal}  slice of a Rubik cube. 
-% There are three pairs of  Slice commands; one pair 
-% (Left view \& Right view) for each of the horizontal  slices Top, Middle, Bottom.
-% The six colour arguments  associated with a given slice run in sequence 
-% from left to right irrespective of the viewpoint, e.g.,~\#1 \#2 \#3   \#4 \#5 \#6.
 %
-% Since the viewpoint of the Rubik cube (from the Right or from the Left) 
-% influences which face the colours are associated with, it is necessary 
-% to have the view (R or L) specified in the command name.
 %
-% The format of the `slice' command is shown in the following example.
-% The Rubik  cube is shown from  the LeftDown (LD) view 
-% and consequently  each of the `slice' commands in this
-% particular example  ends in L, consistent with 
-% the final \cmd{\DrawRubikCubeLD} command.
 %
-% Note that the two legacy `Equator' versions (now replaced by `Middle') 
-% are retained to allow backward compatibility. 
+%  \subsection{LayerFace}
+%   \label{sec:layerface}
 %
-% \bigskip
+%  While a cube has faces and layers, a layer has a face (the face you are looking 
+%  at or drawing) and  four sides (consisting of the nine  side facelets of the 
+%  associated cubies). 
+%  The two `Layer' commands described here are   intended  for drawing  final layer 
+%  configurations from `scratch' without any prior configuration information.
 %
-% \begin{minipage}{2.8cm}
-% \centering
-% \RubikFaceDownAll{Y}
-% \RubikSliceTopL    {G}{G}{G} {R}{R}{R}
-% \RubikSliceMiddleL {R}{R}{R} {B}{B}{B}
-% \RubikSliceBottomL {O}{O}{O} {G}{G}{G}
-% \begin{tikzpicture}[scale=0.7]
-% \DrawRubikCubeLD
-% \end{tikzpicture}%
-% \end{minipage}
-%    \hspace{5mm}
-% \begin{minipage}{0.6\textwidth}
-%\begin{verbatim}
-%    \RubikFaceDownAll{Y}
-%    \RubikSliceTopL     {G}{G}{G} {R}{R}{R}
-%    \RubikSliceMiddleL  {R}{R}{R} {B}{B}{B}
-%    \RubikSliceBottomL  {O}{O}{O} {G}{G}{G}
-%    \ShowCube{3cm}{0.7}{\DrawRubikCubeLD}
-%\end{verbatim}
-% \end{minipage}
+%  Typically, we might wish to show the yellow face in 
+%  the  \textsc{up} position,  with or without the associated side faces of the 
+%  cubies of this layer.
+%  Of course, if we already know the rotation history from some initial configuration,
+%  it would be much simpler just to invoke the \cmd{\RubikRotation} command and then use the  
+%  \cmd{\DrawFlatUpSide} command  (see Section~\ref{sec:flatcommands}).
 %
 %
-%  \subsection{LayerFace \& LayerSide commands}
-%  \label{sec:layerface}
-%
-%  These commands are   intended  for drawing  final layer 
-%  configurations (i.e.,~typically using the yellow face in the  \textsc{up} position)
-%  with or without the associated side faces of the cubies of the top layer
-% (see also the \cmd{\DrawFlatUpSide} command in Section~\ref{sec:flatcommands}) 
-%
-%  \subsubsection{LayerFace}
-%
 %  \DescribeMacro{\DrawRubikLayerFace}
-%  This LayerFace command  draws a  simple  Rubik cube 3x3 face and allocates colours
-%  to the  9~cubies.
-%  The command takes nine ordered colour arguments.
-%  Their use is illustrated in the following example, which shows  a yellow cross configuration.
+%  \DescribeMacro{\DrawRubikLayerFaceAll}
+%  These two LayerFace commands  draw a  simple   3x3 face and allocate colours
+%  to the  9~facelets.
+%  The \cmd{\DrawRubikLayerFace} command takes nine ordered colour arguments.
+%  The command is illustrated in the following example, which shows  a yellow cross configuration.
 %  
 %  \bigskip
 %
-%  \begin{minipage}{2.5cm}
-%  \centering
-%  \begin{tikzpicture}[scale=0.7]
-%  \DrawRubikLayerFace{X}{Y}{X}
-%                     {Y}{Y}{Y}
-%                     {X}{Y}{X}
-%  \end{tikzpicture}%
-%  \end{minipage}
+%  \ShowCube{2.1cm}{0.7}{%
+%    \DrawRubikLayerFace{X}{Y}{X}
+%                       {Y}{Y}{Y}
+%                       {X}{Y}{X}
+%    }%
 %  \hspace{1cm}
 %  \begin{minipage}{0.6\textwidth}
 %\begin{verbatim}
@@ -1738,35 +2590,34 @@
 %     \DrawRubikLayerFace{X}{Y}{X}
 %                        {Y}{Y}{Y}
 %                        {X}{Y}{X}
-%  }
+%     }
 %\end{verbatim}
 %  \end{minipage}
 %
-% \medskip
+% \bigskip
 %
-%      \subsubsection[Draw.. error message]{\cmd{\draw} error message}
+%  {\noindent}The \cmd{\DrawRubikLayerFaceAll} command takes a single colour argument, and paints 
+% the whole face the same colour.
 %
-% See also section~\ref{sec:drawerrormessage} regarding the error message associated with 
-% using a \cmd{\Draw...} command  \textit{outside}  a TikZ picture environment.
-%
 %  \medskip
 %
-%    \subsubsection{LayerSide}
-%     \label{sec:layerside}
+%    \subsection{LayerSide (sidebars)}
+%     \label{sec:layerside} \label{sec:sidebars}
 % 
 %  \DescribeMacro{\DrawRubikLayerSideXYp}
 %  LayerSide commands  draw the associated side colours  of  
-%  the top layer   as  small rectangular sidebars.
-%  The LayerSide commands  adopt a three-letter XYp \textbf{position} notation 
+%  the layer   as  small rectangular sidebars.
+%  The LayerSide command  adopts a three-letter XYp \textbf{position} notation 
 %   where the  XY pair define the location (X:[Left \verb!|! Middle \verb!|! Right]; 
-%  Y:[Top \verb!|! Middle \verb!|! Bottom]) of a particular cubie in the layer face.
+%  Y:[Top \verb!|! Middle \verb!|! Bottom]) of a particular cubie in the layer face,
+%  as depicted in Figure~\ref{fig:facenotation}.
 %
 %  \begin{figure}[hbt]
 %     \centering
 %  \ifpdf
-%     \includegraphics[height=3cm]{Rubik-doc-figD.pdf}
+%     \includegraphics[height=3cm]{rubik-doc-figD.pdf}
 %  \else
-%  \includegraphics[height=3cm]{Rubik-doc-figD.eps}
+%  \includegraphics[height=3cm]{rubik-doc-figD.eps}
 %  \fi
 %  \vspace{-5mm}\caption{\label{fig:facenotation}LayerSide rotation-codes } 
 %  \end{figure}
@@ -1782,7 +2633,7 @@
 %  Various different LayerSide commands are available: those for  
 %  drawing a single colour side bar, and   others for facilitating  
 %  drawing all 12 side bars.
-%     For example, \textit{either} of the following commands 
+%     For~example, \textit{either} of the following commands 
 %
 %  \begin{quote}
 %\begin{verbatim}
@@ -1805,9 +2656,9 @@
 %\end{verbatim}
 %  \end{quote}
 %  where the T and B forms require the colour parameters to be in left-right 
-%  horizontal order (eg, left, middle, right),
+%  horizontal order (e.g.,~left, middle, right),
 %  while the L and R forms require the colour parameters to be in top-down 
-%  vertical order (eg, top, middle, bottom).
+%  vertical order (e.g.,~top, middle, bottom).
 %  Note that this means that the colour parameters of the  L and R commands 
 %  can (if required) then be positioned intuitively (vertically) as follows:
 %  \begin{quote}
@@ -1864,11 +2715,9 @@
 %     \DrawRubikLayerSideR{O}{B}{R}
 %     \DrawRubikLayerSideB{R}{G}{O}
 %  
-%     \node (LT) at (0.5, 2.5) 
-%                [red]{\small\textsf{LT}};
-%     \node (LM) at (0.5, 1.5)  
-%                [red]{\small\textsf{LM}};
-%  }
+%     \node (LT) at (0.5, 2.5) [red]{\small\textsf{LT}};
+%     \node (LM) at (0.5, 1.5) [red]{\small\textsf{LM}};
+%     }
 %\end{verbatim}
 %  \end{minipage}
 %  
@@ -1903,21 +2752,19 @@
 %                          {R}   {O}
 %                          {Y}   {O}
 %     \DrawRubikLayerSideB {O}{G}{G}  
-%  }
+%     }
 %\end{verbatim}
 %  \end{minipage}
 %  
 %  \bigskip
 %
-%  \DescribeMacro{\DrawFlatUpSide}
-% \textsc{important note}: If the  colour configuration of the  \textit{whole} 
-% cube is already known to the system (i.e.,~it has been specified before,
-%  and (possibly) been manipulated using the \cmd{\RubikRotation..}  command 
+%  \DescribeMacro{\DrawFaceUpSide}
+% \textsc{important note}: If the  colour configuration of the  layer shown above 
+% is already known to the system (i.e.,~it has been specified before,
+%  and (possibly) been manipulated using the \cmd{\RubikRotation}  command 
 % from \textsc{rubikrotation} package), then the above figure could be 
-% drawn much more simply using just the single \cmd{\DrawFlatUpSide} command, 
-% as described in  Section~\ref{sec:flatcommands}. In short, using  the 
-% \texttt{rubikrotation} package to keep track of the Rubik cube configuration makes
-%  drawing these images  considerably simpler.
+% drawn much more simply using just the single \cmd{\DrawFaceUpSide} command, 
+% as described in  Section~\ref{sec:facecommands}. 
 %  
 %  \bigskip
 %
@@ -1930,14 +2777,15 @@
 %  These sidebar values (decimal values $\geq 0$; no units) can be 
 %  changed from their default values using the three commands.
 %  \begin{quote}
-%  \cmd{\RubikSideBarWidth\{\}}\\
-%  \cmd{\RubikSideBarLength\{\}}\\
-%  \cmd{\RubikSideBarSep\{\}}
+%  \cmd{\RubikSideBarWidth\{\}}\hspace{35.751pt}(default = 0.3)\\
+%  \cmd{\RubikSideBarLength\{\}}\hspace{30pt}(default = 1.0)\\
+%  \cmd{\RubikSideBarSep\{\}}\hspace{46.251pt}(default = 0.3)
 %  \end{quote}
 %  Values set in the document preamble will apply globally, while values 
 %  set within a TikZ picture environment will apply only locally to that 
 %  particular environment, as shown in the following example where we have 
-%  set both the sidebar width and length to 0.7.
+%  set both the sidebar width and length to 0.7 in position MTy using the command 
+%   \verb!\DrawRubikLayerSideMTy{G}! (for the MTy code see Figure~\ref{fig:facenotation}).
 %  
 %  \bigskip
 %
@@ -1965,7 +2813,7 @@
 %     \RubikSideBarWidth{0.7}
 %     \RubikSideBarLength{0.7}
 %     \DrawRubikLayerSideMTy{G}
-%   }
+%     }
 %\end{verbatim}
 %  \end{minipage}
 %  
@@ -1979,12 +2827,11 @@
 %  Since the \textsc{front} face  drawn using  the \cmd{\DrawRubikCube} command is 
 %  identical with that drawn using the \cmd{\DrawLayerFace} command it 
 %  follows that LayerSide commands can also be used in conjunction with 
-%  the \textsc{front} face drawn using  \cmd{\DrawRubikCube} command, as 
-%  shown in the following example. Note that in this example we have used the 
-% \cmd{\ShowCubeF} command as an exercise to implement the fbox and reveal
-% the extent of the  surrounding white space associated with a minipage width of
-% 3.5cm ($=5 \times 0.7$) ---showing that a sidebar increases the image width by about 
-% 0.5 the width of a cubie.
+%  the \textsc{front} face drawn using  \cmd{\DrawRubikCube} command. This  
+%  shown in the following example, where we have used the 
+% \cmd{\ShowCubeF} command as an exercise (to implement the fbox) and reveal
+% the extent of the  surrounding white space associated with the minipage width of
+% 3.5cm ($=5 \times 0.7$).
 %  
 %  \bigskip
 %  
@@ -2025,265 +2872,260 @@
 %     \DrawRubikCubeRU 
 %     \DrawRubikLayerSideL{G}{B}{R}
 %     \DrawRubikLayerSideB{R}{G}{O}
-%   }
+%     }
 %\end{verbatim}
 %  \end{minipage}
 %  
 %  \bigskip
 %  
-%  {\noindent}Note that since using a left or a right \cmd{\DrawRubikLayerSide}  
-%  command in conjunction with a \cmd{\DrawRubikCube} command will necessarily 
-%  increase the width of the image, one may also have to adjust the width of 
-%  the associated minipage. 
-%  
-% \pagebreak
+%  Since using  left and/or  right sidebars (e.g.,~\cmd{\DrawRubikLayerSide})
+%   in conjunction with  a \cmd{\DrawRubikCube} command, will increase 
+%  the width of the image, one may also have to adjust the width of 
+%  the associated minipage.  Note that the width of a 2D oblique view of the cube 
+% is 4~units (= width of 4~cubies). With the default sidebar width and sep settings 
+% (see above)  one sidebar increases the  2D cube image width by 0.6\,units (= 0.3 + 0.3). 
+% Sidebars on both sides increase the width by 1.2\,units. Note also that setting 
+% both the sidebar width and separation to 0.25\,units has the convenience that 
+% the 2D width of a cube face $+$ left and right sidebars (e.g.,~using \cmd{\DrawFaceUpSide})
+%  is then exactly 5\,units. 
+%
+%
+%
+%
+%   \section[ShowSequence command]{\cmd{\ShowSequence} command}
+%   \label{sec:showsequence}
+%
+% \DescribeMacro{\ShowSequence}
+% \DescribeMacro{\ShowSequenceF}
+% \DescribeMacro{\ShowSequencef}
+% The  \cmd{\ShowSequence}\marg{separator}\marg{font-code}\marg{sequence}  command 
+% typesets a comma-separated sequence of rotation  
+% codes---for code see Section~\ref{sec:codeshowsequence}.
+% Appending an `F' to the command-name (\cmd{\ShowSequenceF}) results in an fbox about
+% the whole output (cf.~the \cmd{\ShowCubeF} command). 
+% Appending an `f' to the command-name (\cmd{\ShowSequencef}) results in an fbox about
+% each element in the output (these two forms can be helpful when checking white space). 
+%
+% The \cmd{\ShowSequence} command takes three mandatory arguments: 
+% the first is the separator  (\verb!#1!), 
+% the second is  the font or style code (\verb!#2!), 
+% and third is a comma-separated  sequence of Rubik  rotation codes (|#3|).
+%
+% The separator (e.g.,~comma) used for typesetting the sequence can be specified 
+% (or just omitted---i.e.,~an empty bracket);
+% the sequence can be either a named sequence (i.e.,~encoded as a macro) or just a 
+% comma separated sequence of  rotation codes.
 % 
-%  \subsection{Flat commands}
-%  \label{sec:flatcommands}
+% \noindent\textsc{usage}:
+% The following command  displays the rotation sequence  F, R, U, Rp, Up, using 
+% the \verb!\rr! encoding and  comma \& space separated.
 %
-%  \DescribeMacro{\DrawFlatUp}
-%  \DescribeMacro{\DrawFlatDown}
-%  \DescribeMacro{\DrawFlatLeft}
-%  \DescribeMacro{\DrawFlatRight}
-%  \DescribeMacro{\DrawFlatFront}
-%  \DescribeMacro{\DrawFlatBack}
-%  These commands  \cmd{\DrawFlat..}\marg{x}\marg{y}  draw a `flat' (square) 
-%  representation of a  specified face such that its bottom left corner 
-%  is positioned at ($x$, $y$). 
-%  They are designed to supplement the \cmd{\DrawRubikCube...} commands and 
-%  allow hidden faces to be represented. 
-%  Each command (except \cmd{\DrawFlatFront}) takes two arguments, 
-%  namely the  X-coordinate  and Y-coordinate of the bottom left 
-%  corner of the  face.  This ($x$,$y$) pair allows the user to position
-%  the face. 
+% \medskip
 %
-%  Note that the Y-argument set for the \cmd{\DrawFlatLeft} 
-%  and \cmd{\DrawFlatRight} commands is not currently actioned 
-% (see Section~\ref{sec:drawflatxcommands}),
-%  since both the \textsc{left} and \textsc{right} faces as used by the 
-% \cmd{\DrawRubikCubeFlat} command---since this shows the RU view---requires only Y=0
-%  (this (x,y) facility will  be fully extended to  the left and right forms in a 
-%  later version).
-%  Note also that the \cmd{\DrawFlatFront} command currently takes no arguments,
-%  since by definition the bottom left corner of this face is always at (0,0), 
-%  and there seems to be no reason (just now) for this face to have the 
-%  (x,y) facility.
+% \verb!\ShowSequence{,\ }{\rr}{F,R,U,Rp,Up}! \ \ $\rightarrow$ \ \ \ShowSequence{,\ }{\rr}{F,R,U,Rp,Up}
 %
-%  In the following example we use the command \verb!\DrawFlatBack{4}{1}! to
-%  append the \textsc{back} face to the side of a 3D  cube. Note that since 
-%  the coordinates of the bottom/back/right corner of the cube rendered by the 
-%  command \cmd{\DrawRubikCubeRU} is (4,1) 
-%  (see Section~\ref{sec:coordinates}), we can position the 
-%  lower/left corner of the \textsc{back} face at this point using the command
-%  \verb!\DrawFlatBack{4}{1}! as follows: 
+% \medskip
 %
-%  \bigskip
-%  
-%  \begin{minipage}{0.4\textwidth}
-%  \centering
-%  \RubikCubeSolved
-%  \begin{tikzpicture}[scale=0.4]
-%  \DrawRubikCubeRU
-%  \DrawFlatBack{4}{1}
-%  \end{tikzpicture}%
-%  \end{minipage}
-%  \begin{minipage}{5cm}
-%\begin{verbatim}
-%  \RubikCubeSolved
-%  \ShowCube{3cm}{0.4}{%
-%     \DrawRubikCubeRU
-%     \DrawFlatBack{4}{1}
-%  }
-%\end{verbatim}
-%  \end{minipage}
-%  
-%  \bigskip
+% Remember that if you want a  very long  sequence to break automatically 
+% at the line-ends, then you need to include at least one space between 
+% the sequence elements, either with or without a comma; for this the 
+% separator argument needs to include a space, i.e.,~something like 
+% \verb!{,\ }! or \verb!{\ }!  or just \verb!{ }! perhaps.
 %
 %
-%  \DescribeMacro{\DrawFlatUpSide}
-%  \DescribeMacro{\DrawFlatDownSide}
-%  \DescribeMacro{\DrawFlatLeftSide}
-%  \DescribeMacro{\DrawFlatRightSide}
-%  \DescribeMacro{\DrawFlatFrontSide}
-%  \DescribeMacro{\DrawFlatBackSide}
-% These commands draw a face and all the associated side facelets. 
-% In the following example we use the \cmd{\DrawFlatUpSide} command to
-%  draw the \textsc{up} face and all its side-bars of a cube  having 
-% a `solved' configuration.
+% For~example, the following commands typeset the comma-separated 
+% rotation sequence U,D,Lp,R  using different separators and fonts. 
+% For convenience, we start by encoding  the sequence as the macro \verb!\myseq!.
 %
 %
-%  \bigskip
-%  
-%  \begin{minipage}{0.4\textwidth}
-%  \centering
-%  \RubikCubeSolved
-%  \begin{tikzpicture}[scale=0.4]
-%  \DrawFlatUpSide
-%  \end{tikzpicture}%
-%  \end{minipage}
-%  \begin{minipage}{5cm}
-%\begin{verbatim}
-%  \RubikCubeSolved
-%  \ShowCube{1.6cm}{0.4}{%
-%     \DrawFlatUpSide
-%  }
-%\end{verbatim}
-%  \end{minipage}
-%  
-%  \bigskip
+% \newcommand{\myseq}{U,D,Lp,R}
 %
-%  \DescribeMacro{\DrawRubikFlat}
-%  This command  draws the completely flat format of the cube, as  shown in the following example.
-%  
-%  \bigskip
-%  
-%  \begin{minipage}{0.4\textwidth}
-%  \centering
-%  \begin{tikzpicture}[scale=0.4]
-%  \RubikCubeSolved
-%  \DrawRubikFlat
-%  \node (U) at (1.5, 4.5)   [black]{\small\textsf{U}};
-%  \node (D) at (1.5, -1.5)  [black]{\small\textsf{D}};
-%  \node (L) at (-1.5, 1.5)  [black]{\small\textsf{L}};
-%  \node (R) at (4.5, 1.5)   [black]{\small\textsf{R}};
-%  \node (F) at (1.5, 1.5)   [black]{\small\textsf{F}};
-%  \node (B) at (7.5, 1.5)   [black]{\small\textsf{B}};
-%  \end{tikzpicture}%
-%  \noindent\strut\hspace{5mm}\texttt{$\backslash$DrawRubikFlat}
-%  \end{minipage}
-%  \begin{minipage}{5cm}
+% \medskip\noindent\verb!\newcommand{\myseq}{U,D,Lp,R}!
+%
+% \medskip\noindent\verb!\ShowSequence{,}{\texttt}{\myseq}! \ $\longrightarrow$ \  \ShowSequence{,}{\texttt}{\myseq}
+%
+% \medskip\noindent\verb!\ShowSequence{,}{\rr}{\myseq}! \ $\longrightarrow$ \  \rr{U},\rr{D},\rr{Lp},\rr{R} 
+%
+% \medskip\noindent\verb!\ShowSequence{}{\rrh}{\myseq}! \ $\longrightarrow$ \  \rrh{U}\rrh{D}\rrh{Lp}\rrh{R}
+%
+% \medskip\noindent\verb!\ShowSequence{\ }{\rrh}{\myseq}! \ $\longrightarrow$ \  \rrh{U}\ \rrh{D}\ \rrh{Lp}\ \rrh{R}
+% 
+% \medskip\noindent\verb!\ShowSequence{,\ }{\textRubik}{\myseq}! \ $\longrightarrow$ \  \textRubik{U},\ \textRubik{D},\
+% \textRubik{Lp},\ \textRubik{R}
+% 
+% 
+% \subsection*{Trailing digits}
+%
+%  Note that the fonts denoted by \verb!\rr!, \verb!\rrh!, \verb!\Rubik! 
+%  and \verb!\textRubik!  will fail for  rotation codes which 
+%  have a trailing digit, e.g.,~R2, Dp3 (so-called `short' codes), since the 
+%  \verb!\ShowSequence! macro currently only reads the whole string  between pairs of 
+%  commas (i.e.,~it does not interpret each string). However, the typewriter font \verb!\texttt! 
+%  does work correctly in this case, as you would expect. 
+% 
+%  An effective `work-around' for this limitation  is provided by the \verb!\RubikRotation{}! 
+%  command\,\footnote{Using the \texttt{--shell-escape} command-line option
+%  with the \LaTeX\ engine---see Section~\ref{sec:rubikrotation}.} 
+%  (part of the \textsc{rubikrotation} package), since this returns  (via the Perl program  
+%  \texttt{rubikrotation.pl}) an extended (`long') form of a given sequence in which 
+%  any `short' rotation codes are converted into their separate (atomic) long-form rotation codes; 
+%  the associated string  is  \verb!\SequenceLong!. 
+%  In fact  three different forms of the sequence are returned, as shown below.
+% 
+%  For~example, consider the following short-form sequence  L,R,D2,L3, and denote 
+%  it as `seqA' as follows: \verb!\newcommand{\seqA}{[seqA],L,R,D2,L3,<test>}!.
+%  In this case  D2,L3, and the name `seqA'  fail to be typeset when using 
+%  the \verb!\rr! font  with the \verb!\ShowSequence! command as follows:
+% 
+%  \newcommand{\seqA}{[seqA],L,R,D2,L3,<test>}
+% 
+%  \medskip\noindent\verb!\newcommand{\seqA}{[seqA],L,R,D2,L3,<test>}!
+%
+% \medskip\noindent\verb!\ShowSequence{,}{\texttt}{\seqA}! \ $\longrightarrow$ \  \ShowSequence{,}{\texttt}{\seqA}
+%
+% \medskip\noindent\verb!\ShowSequence{,}{\rr}{\seqA}! \ $\longrightarrow$ \  \ShowSequence{,}{\rr}{\seqA}
+% 
+% \medskip
+% 
+% However, if we now run the command \verb!\RubikRotation{\seqA}! we shall then have 
+% at our disposal the following four  strings:
+%
+% \medskip
+%
+% \verb!\SequenceInfo   = ! test
+%
+% \verb!\SequenceName   = ! seqA
+% 
+% \verb!\SequenceShort  = ! L,R,D2,L3
+% 
+% \verb!\SequenceLong   = ! L,R,D,D,L,L,L
+%
+% \medskip
+% 
+% {\noindent}and therefore have full control over  typesetting    rotation sequences.
+% This approach therefore  offers sufficient flexibility for most purposes.
+% For~example, if  we now write the command \verb!\ShowSequence{,}{\rr}{\SequenceLong}!
+% we obtain
+% 
+% \medskip\noindent\verb!\ShowSequence{,}{\rr}{\SequenceLong}! \ $\longrightarrow$ \ 
+% \ShowSequence{,}{\rr}{L,R,D,D,L,L,L}
+%
+% \medskip
+%
+% In practice, any trailing digit is converted (modulo~4) and expanded accordingly, the details being
+% copied to the log-file. For~example, if one writes the command
+% \cmd{\RubikRotation\{[test],R,D28978\}}, then since $28978 \equiv 2$\,(modulo~4) then \cmd{\SequenceLong} 
+% will be returned containing the string |R,D,D|. The associated entries in the log-file  are
+% as  follows:
 %\begin{verbatim}
-%  \RubikCubeSolved
-%  \ShowCube{5cm}{0.4}{\DrawRubikFlat}
+%...rotation R OK
+%...Expanding D28978 (28978 = 2 mod 4) ...
+%...rotation D OK (= Dp3)
+%...rotation D OK (= Dp3)
+%...writing new Rubik state to file rubikstateNEW.dat
+%...SequenceName = test
+%...SequenceShort = R,D28978
+%...SequenceLong = R,D,D
 %\end{verbatim}
-%  \end{minipage}
-%  
-%  \bigskip
-%  
-%  The addition of  text (numbers or letters) in the faces is 
-%  straightforward---the origin of the 1-unit grid is located at the 
-%  bottom left corner of the front face (orange here). 
-%  The letters were placed using the following TikZ code inside the 
-%  TikZ picture environment.
-%  
-%\begin{verbatim}
-%  \RubikCubeSolved
-%  \ShowCube{5cm}{0.4}{%
-%    \DrawRubikFlat
-%    \node (U) at (1.5, 4.5)   [black]{\small\textsf{U}};
-%    \node (D) at (1.5, -1.5)  [black]{\small\textsf{D}};
-%    \node (L) at (-1.5, 1.5)  [black]{\small\textsf{L}};
-%    \node (R) at (4.5, 1.5)   [black]{\small\textsf{R}};
-%    \node (F) at (1.5, 1.5)   [black]{\small\textsf{F}};
-%    \node (B) at (7.5, 1.5)   [black]{\small\textsf{B}};
-%  }
-%\end{verbatim}
-%  
-%  \DescribeMacro{\DrawRubikCubeFlat}
-%  {\noindent}A useful `semi-flat' alternative format, which uses 
-%  the standard RU  view of the cube  and  appends the three hidden 
-%  sides (see Rokicki \textit{etal.}, 2013),  is generated by the 
-%  command \cmd{\DrawRubikCubeFlat} as follows.
-%  
-%  \bigskip
 %
-%  \begin{minipage}{5cm}
-%  \begin{tikzpicture}[scale=0.5]
-%  \RubikCubeSolved
-%  \DrawRubikCubeFlat
-%  \node (B) at (5.5, 2.5)   [white]{\small\textsf{B}};
-%  \end{tikzpicture}%
-%  \end{minipage}
-%  \begin{minipage}{5cm}
-%\begin{verbatim}
-%  \RubikCubeSolved
-%  \ShowCube{5cm}{0.5}{%
-%     \DrawRubikCubeFlat
-%     \node (B) at (5.5, 2.5)  
-%              [white]{\small\textsf{B}};
-%  }
-%\end{verbatim}
-%  \end{minipage}
-%  
+%
+%
+%  \section{SequenceBrace commands}
+%  \label{sec:sequencebrace}
+%
+%  \DescribeMacro{\SequenceBraceA} 
+%  \DescribeMacro{\SequenceBraceB} 
+%  \DescribeMacro{\SequenceBraceAF} 
+%  \DescribeMacro{\SequenceBraceBF} 
+% The  \cmd{\SequenceBraceX}\marg{name}\marg{sequence}  command 
+% is a tool for displaying a named sequence using a brace. The trailing~A 
+% denotes that the brace is placed Above the sequence; the trailing~B denotes 
+% the brace is Below the sequence.
+% Appending an `F' to the command-name (e.g.,~\cmd{\SequenceBraceAF}) results 
+% in a surrounding  fbox (cf.~the \cmd{\ShowCubeF} command). 
+% For the code see Section~\ref{sec:sequencebracecode}.
+%
+% {\noindent}Thus \verb!\SequenceBraceB{myseq}{U,D,L,R}! generates 
+% \ \SequenceBraceB{myseq}{U,D,L,R}. 
+%
+% {\noindent}A typical example of its use might be:
+%
 % \bigskip
 %
-% Note that even in this configuration it is straight-forward to
-% write text on the graphic, since the width (on the page) of 
-% the green  \textsc{right} face is exactly 1-unit, and the 
-% bottom right-hand corner of the green face is raised exactly 1-unit
-% (see Figure~\ref{fig:cubesquaregraph}).
-% Consequently, since the origin of the grid is at the bottom left 
-% corner of the front face, the  coordinates of the center of the 
-% red \textsc{back} face is (5.5, 2.5). 
-%  
-%      \section[NCube]{NCube (NxNxN)}
-%      \label{sec:NCube}
-% 
-%  \DescribeMacro{\DrawNCubeAll} 
-%  An `NCube' is  a solved NxNxN cube drawn from the RU direction; 
-%  (i.e.,~only shows faces \textsc{up}, \textsc{front}, \textsc{right}). 
-%  The cubie colours of each face are All the same.
-%  \begin{quote}
-%    \cmd{\DrawNCubeAll\{N\}\{Xcolour\}\{Ycolour\}\{Zcolour\}}.
-%  \end{quote}
-%  This command takes four ordered parameters (N, X, Y, Z)---the number 
-%  (integer; $N>0$) of cubies along an edge, followed by three face 
-%  colours in XYZ order.
-%  Since the viewpoint is only from the RU direction, the  three colour 
-%  parameters are: X(Right), Y(Up), Z(Front).
-%  
-%  \bigskip
-%  
-%  \begin{minipage}{0.3\textwidth}
-%  \begin{tikzpicture}[scale=0.5]
-%     \DrawNCubeAll{5}{O}{Y}{G}
-%  \end{tikzpicture}%
-%  \end{minipage}
-%  \begin{minipage}{0.5\textwidth}
+%\noindent%
+%\RubikCubeSolved%
+%\ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU}%
+%\quad\SequenceBraceA{fourspot}{\ShowSequence{}{\Rubik}{F,F,B,B,U,Dp,R,R,L,L,U,Dp}}%
+%\quad$\longrightarrow$\quad%
+%\RubikFaceFront{R}{R}{R}%
+%               {R}{O}{R}%
+%               {R}{R}{R}%
+%\RubikFaceRight{B}{B}{B}%
+%               {B}{G}{B}%
+%               {B}{B}{B}%
+%\ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU}%
+%
+%
+% \bigskip
+%
+% {\noindent}which was generated by the following code, showing that the \cmd{\ShowSequence}
+% command can be used as an argument for the \cmd{\SequenceBraceA} command:
 %\begin{verbatim}
-% \ShowCube{3.5cm}{0.5}{\DrawNCubeAll{5}{O}{Y}{G}}
+%\newcommand{\fourspot}{[fourspot],F2,B2,U,Dp,R2,L2,U,Dp}%
+%\noindent%
+%\RubikCubeSolved%
+%\ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU}%
+%\RubikRotation{\fourspot}%
+%\quad\SequenceBraceA{\SequenceName}{%
+%                     \ShowSequence{}{\Rubik}{\SequenceLong}}%
+%\quad$\longrightarrow$\quad%
+%\ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU}%
 %\end{verbatim}
-%  \end{minipage}
+% Note (1)~that the `fourspot' listing is included in the \textsc{rubikpatterns} package, and 
+% (2)~the \cmd{\RubikRotation} command requires using the \texttt{--shell-escape} command-line 
+% option  with the \LaTeX\ engine---see Section~\ref{sec:rubikrotation} for details.
 %
-% \medskip
 %
-%       \subsubsection[Draw.. error message]{\cmd{\draw} error message}
 %
-% See also section~\ref{sec:drawerrormessage} regarding the error message associated with 
-% using a \cmd{\Draw...} command  \textit{outside}  a TikZ picture environment.
-%  
-%
-%
 %        \section{Arrows}
 %        \label{sec:arrows}
 %  
 %  The \rubikcube\ package does not offer any special commands for drawing 
 %  arrows since it is straightforward just to include the appropriate TikZ
-%  `draw' commands in the \texttt{tikzpicture} environment. 
+%  `draw' commands in the \texttt{tikzpicture} environment (i.e.,~in our 
+%   own \cmd{\ShowCube} environment).
 %  
-%  In order to facilitate using the standard TikZ `draw' commands both 
-%  the  RubikCubeFaceFront  and LayerFace commands have the coordinate origin 
-%  at the bottom left corner, and draw `faces' consisting of 9~unit-squares 
-%  in a  3x3 grid, as shown in  Figure~\ref{fig:facegraph}.
+%  In order to facilitate using the standard TikZ `draw' commands
+%  the  graphic grid origin of  Rubik cube images  is located at the bottom left corner 
+%  of the \textsc{front} face (see also Section~\ref{sec:coordinates} for details of the 
+%  cube's coordinate  system). Similarly,  single face images  (e.g.,~drawn using the 
+%  \cmd{\DrawFlatUp} or \cmd{\DrawFlatUpSide}  and LayerFace commands etc.)  have 
+%  their  grid origin at the bottom left corner of the face.
 %  Consequently the start and finish coordinates for any arrow or line are 
-%  easy to determine.
+%  easy to determine.  
 %  
 %  \begin{figure}[hbt]
 %     \centering
 %  \ifpdf
-%     \includegraphics[height=3cm]{Rubik-doc-figE.pdf}
+%     \includegraphics[height=3cm]{rubik-doc-figE.pdf}
 %  \else
-%  \includegraphics[height=3cm]{Rubik-doc-figE.eps}
+%  \includegraphics[height=3cm]{rubik-doc-figE.eps}
 %  \fi
-%  \vspace{-5mm}\caption{\label{fig:facegraph}RubikCubeFaceFront and RubikLayerFace coordinates} 
+%
+%  \parbox{9cm}{%
+%    \caption{\label{fig:facegraph}Grid showing the positive coordinates 
+%   associated with \textsc{front} face of a cube image, or of a face-only image.} 
+%   }%
 %  \end{figure}
 %  
-%  For example, in Figure~\ref{fig:facegraph}  we have drawn a green
-%   arrow  from the centre of cubie LB $(0.5, 0.5)$  to the centre of 
+% \medskip
+%
+%  For~example, Figure~\ref{fig:facegraph}  shows  a green
+%   arrow drawn from the centre of cubie LB $(0.5, 0.5)$  to the centre of 
 %  cubie MM\,\footnote{The code MM stands for x=Middle, y=Middle; 
 %  see also Figure~\ref{fig:facenotation} on Rubik face-notation} $(1.5, 1.5)$.
-%  To do this  we  just include  the following TikZ  command in the 
-%  \texttt{tikzpicture} environment.
+%  To do this  we  just include  the following TikZ  command, remembering that  TikZ 
+%  commands require a terminal semicolon.
 %  \begin{quote}
 %\begin{verbatim}
 %  \draw[->,color=green] (0.5,0.5) -- (1.5, 1.5);
@@ -2316,7 +3158,7 @@
 %    \draw[->,thick,color=magenta] (1.3, 2.3) -- (1.3, 0.5);
 %    \draw[<->,thick,color=magenta] (0.5,2.6) -- (2.5, 2.6);
 %    \draw[<->,thick,color=magenta] (0.5,0.3) -- (2.5, 0.3);
-%   }
+%    }
 %\end{verbatim}
 %  \end{minipage}
 %  
@@ -2357,7 +3199,7 @@
 %                          {Y}   {O}
 %     \DrawRubikLayerSideB {O}{G}{G}
 %     \draw[->,ultra thick,color=green] (0.5,5) -- (0.5, 4);
-%   }
+%     }
 %\end{verbatim}
 %  \end{minipage}
 %  
@@ -2408,29 +3250,67 @@
 %    \DrawRubikCubeRD
 %    \draw[ultra thick,->,color=blue] 
 %                (1.5,0.5) -- (2.5, 1.5);  
-%  }
+%    }
 %\end{verbatim}
 %  \end{minipage}
-%  
 %
+% \bigskip
 %
+% In the following example we use a blue circle to highlight the cubie
+% to be rotated into the top layer.
+%
+% \bigskip
+%
+% \noindent%
+% \RubikCubeGrey
+% \RubikFaceUp{X}{W}{X}%
+%             {W}{W}{W}%
+%             {W}{W}{X}%
+% \RubikSliceBottomR{X}{X}{W}{G}{X}{X}%
+% \ShowCube{2.5cm}{0.5}{%
+%   \DrawRubikCubeRU
+%   \DrawRubikLayerSideRBy{O}
+%   \draw[ultra thick,->,color=blue] (2.5,0.5) -- (2.5, 2.5);
+%   \draw [color=blue, thick] (2.7, 0.3)  circle (1.3);
+% }%
+%    \hspace{3mm}
+% \begin{minipage}{0.6\textwidth}
+%\begin{verbatim}
+% \noindent%
+% \RubikCubeGrey
+% \RubikFaceUp{X}{W}{X}
+%             {W}{W}{W}
+%             {W}{W}{X}
+% \RubikSliceBottomR{X}{X}{W}{G}{X}{X}
+% \ShowCube{2.5cm}{0.5}{%
+%   \DrawRubikCubeRU
+%   \DrawRubikLayerSideRBy{O}
+%   \draw[ultra thick,->,color=blue] 
+%                              (2.5,0.5) -- (2.5, 2.5);
+%   \draw [color=blue, thick] (2.7, 0.3)  circle (1.3);
+%   }%
+%\end{verbatim}
+% \end{minipage}
+%
+%
 % \section{Final example}
 %
 % We now present, as a final example, the code used to draw the  front page 
-% figure\,\footnote{This is a sequence of order 6 used to generate the `cross' 
-% configuration when solving the cube. Doing it on  a `solved' cube allows you  
-% to see how the three edge cubies  move, and either flip (magenta arrows) or do 
-% not flip (black arrow).}. 
-% This code uses both the \rubikcube\ and  \textsc{rubikrotation} packages,
-% and therefore needs to be run using the \LaTeX\   \verb!--shell-escape! command-line switch,
-% as described in the \textsc{rubikrotation} package.
+% figure\,\footnote{This is a well-known sequence of order 6 used to  cycle three
+% edge cubies; it is used to generate the `cross' configuration  in the final layer
+% when solving the cube. Here we are performing the sequence on  a `solved' cube, 
+% since this allows you  to see how the three edge cubies  move, and either 
+% flip (magenta arrows) or do not flip (black arrow).}. 
+% This code uses  the \cmd{\RubikRotation} command (from the \textsc{rubikrotation}
+%  package), and therefore the \LaTeX\ engine needs to be run using the 
+% \verb!--shell-escape!  command-line switch (see  Section~\ref{sec:rubikrotation} for details).
 %
+% \bigskip
 %
-% \bigskip
-% \hfil
-% \RubikCubeSolved
-% \ShowCube{2cm}{0.4}{\DrawRubikCubeRU}
-% \ShowCube{2cm}{0.4}{%
+% \noindent\hfil%
+% \RubikCubeSolved%
+% \ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU}%
+% \quad\ShowCube{1.6cm}{0.4}{%
 %    \DrawFlatUpSide
 %    \draw[thick,->,color=magenta] (1.5,0.5) -- (2.4, 1.4);
 %    \draw[thick,->] (2.5,1.5) -- (1.6, 2.4);
@@ -2437,10 +3317,10 @@
 %    \draw[thick,->,color=magenta] (1.3, 2.3) -- (1.3, 0.5);
 %    \draw[thick,<->,  color=blue] (0.5,2.6) -- (2.5, 2.6);
 %    \draw[thick,<->,  color=blue] (0.5,0.3) -- (2.5, 0.3);
-% }
-% \Rubik{F}\Rubik{R}\Rubik{U}\Rubik{Rp}\Rubik{Up}\Rubik{Fp}%
-% \ \ \ $\longrightarrow$
-% \ShowCube{2cm}{0.4}{%
+%   }%
+% \quad\Rubik{F}\Rubik{R}\Rubik{U}\Rubik{Rp}\Rubik{Up}\Rubik{Fp}%
+%  \quad$\longrightarrow$%
+%  \quad\ShowCube{1.6cm}{0.4}{%
 %     \DrawRubikLayerFace{W}{W}{B}
 %                        {W}{W}{O}
 %                        {W}{R}{B}
@@ -2451,31 +3331,30 @@
 %     \DrawRubikLayerSideB {G}{W}{O}
 % }
 % \hfil
+%
 % \bigskip
 %
-%
 %\begin{verbatim}
-% \hfil
-% \RubikCubeSolved
-% \ShowCube{2cm}{0.4}{\DrawRubikCubeRU}
-% \ShowCube{2cm}{0.4}{%
-%    \DrawFlatUpSide
+% \noindent\hfil%
+% \RubikCubeSolved%
+% \ShowCube{1.6cm}{0.4}{\DrawRubikCubeRU}%
+% \quad\ShowCube{1.6cm}{0.4}{%
+%    \DrawFlatUpSide%
 %    \draw[thick,->,color=magenta] (1.5,0.5) -- (2.4, 1.4);
 %    \draw[thick,->] (2.5,1.5) -- (1.6, 2.4);
 %    \draw[thick,->,color=magenta] (1.3, 2.3) -- (1.3, 0.5);
 %    \draw[thick,<->,  color=blue] (0.5,2.6) -- (2.5, 2.6);
 %    \draw[thick,<->,  color=blue] (0.5,0.3) -- (2.5, 0.3);
-% }
-% \Rubik{F}\Rubik{R}\Rubik{U}\Rubik{Rp}\Rubik{Up}\Rubik{Fp}%
-% \ \ \ $\longrightarrow$
-% \RubikRotation{F,R,U,Rp,Up,Fp}
-% \ShowCubeF{2cm}{0.4}{\DrawFlatUpSide}
+%    }%
+% \RubikRotation{F,R,U,Rp,Up,Fp}%
+% \quad\ShowSequence{}{\Rubik}{\SequenceLong}\quad$\longrightarrow$%
+% \ShowCube{1.6cm}{0.4}{\DrawFlatUpSide}%
 % \hfil
 %\end{verbatim}
 %
 %
 %
-%     \subsection[Without using {\textbackslash}RubikRotation]{Without using \cmd{\RubikRotation..}}
+%     \subsection[Without using {\textbackslash}RubikRotation]{Without using \cmd{\RubikRotation}}
 %
 % If you really need to draw the above figure \textit{without}  using 
 % the \textsc{rubikrotation}  package (as we had to in order to write 
@@ -2483,11 +3362,14 @@
 % commands
 %\begin{verbatim}
 % \RubikRotation{F,R,U,Rp,Up,Fp}
-% \ShowCubeF{2cm}{0.4}{\DrawFlatUpSide}
+% \ShowSequence{,}{\Rubik}{\SequenceLong} \ \ \ $\longrightarrow$
+% \ShowCube{2cm}{0.4}{\DrawFlatUpSide}
 %\end{verbatim}
-% with the following set of \cmd{\DrawRubikLayer...} commands.
+% with the following commands:
 %
 %\begin{verbatim}
+% \Rubik{F}\Rubik{R}\Rubik{U}\Rubik{Rp}\Rubik{Up}\Rubik{Fp}
+% \ \ \ $\longrightarrow$
 % \ShowCube{2cm}{0.4}{%
 %     \DrawRubikLayerFace{W}{W}{B}
 %                        {W}{W}{O}
@@ -2497,7 +3379,7 @@
 %                          {B}   {W}
 %                          {O}   {W}
 %     \DrawRubikLayerSideB {G}{W}{O}
-% }
+%     }
 %\end{verbatim}
 %
 %
@@ -2504,64 +3386,122 @@
 %
 %
 %
-%  \section{Known issues \& shortcomings}
+%  \section{Known limitations}
 %
-% Please contact the authors regarding any ideas, errors or shortcomings etc. 
+% Please contact the authors regarding any ideas for improvement, errors, 
+% problems or shortcomings etc. 
 %
 % \begin{itemize} 
 %  
-%  \item  The rotation hieroglyphs are optimised for a 10pt font, and  do 
-%    not  scale  with document  font size.  However, they do 
-%   seem to  work reasonably well with both 11pt and 12pt fonts.
-%  Any suggestions are welcome.
+%  \item  Note that  the rotation hieroglyphs are optimised for a 10pt font
+%  and  do  not  scale  with document  font size. However, they do work well  in 
+%  conjunction with the standard 11pt and 12pt document fonts sizes. Nevertheless, 
+%  the font size can of course be changed by renewing the font command 
+%  (see Section~\ref{sec:rubikfont} for details).
 %
-%  \item The sidebars cannot be arbitrarily positioned.
+%  \item The sidebars cannot be arbitrarily positioned (note: hidden 
+%  faces can be arbitrarily positioned).
 % 
 % \end{itemize}
 %
 %
-%  \section{Acknowledgements}
+%   \section{Future packages}
 %  
-%  We would like to thank Peter Bartal and  Peter Grill for useful ideas and  
-%  suggestions.   We have built on some of their ideas and have acknowledged
-%  these instances in the documentation. 
-%  We would also like to  thank Christian Tellechea for the  \cmd{\@join\{\}\{\}} command.
-%  
-%
-%
-%   \section{Future supporting packages}
-%  
 %  Since  Rubik-type cubes currently exist in  a variety of sizes (from 2x2x2 to 11x11x11)
-%  it is possible that similar packages dealing with cubes of other sizes may be made in 
-%  the future.  Supporting tools  may also be  made
+%  other authors may well create  similar packages dealing with 
+%  cubes of other sizes the future.  Supporting tools  may also be  made
 %  using various programming languages, e.g.,~Lua etc. Consequently  the naming of such 
 %  packages and tools, and even the associated CTAN directories, needs to be given 
 %  some thought in order to prevent possible confusion.
 %
-%  In the event of new  packages being made, we suggest that a CTAN directory structure 
+%  In the event of new  packages being made, may we suggest that a CTAN directory structure 
 %  along the following lines might be  appropriate.
 %  
 %  $$
-%  \textsc{rubik}  \left\{
-%    \begin{array}{l} 
-%    \mbox{rubiktools}\\
-%    \mbox{rubik2x}\\
-%    \mbox{rubik3x}\\
-%    \ldots\\
-%    \mbox{rubik11x}\\
-%    \end{array}
-%         \right.\\
+%  \textsc{rubik}  
+%    \left\{
+%      \begin{array}{l} 
+%      \mbox{rubiktools}\\
+%      \mbox{rubik2x}\\
+%      \mbox{rubik3x}\\
+%      \ldots\\
+%      \mbox{rubik11x}\\
+%      \end{array}
+%    \right.\\
 %  $$
 %
 %
 % 
-%     \section{History}
+%     \section{Change history}
 %
 % \begin{itemize}
-
+%
+% \item Version 4.0 (March 2017)
+%
+%  ---Improved documentation.
+%
+%  ---Improved inter-hieroglyph spacing and vertical position. The Computer Moderm sans bold font
+%     (10/12pt) is used for the hieroglyphs and rotation codes (see Section~\ref{sec:coderubikfont}
+%     for details).
+%
+%  ---Improved the \cmd{\ShowCube} and \cmd{\ShowCubeF} macros (see Sections~\ref{sec:showcube}
+%   and \ref{sec:showcubecode}).
+%
+%  ---Additional notation for middle slice rotations (`m' notation), e.g.,~\rr{Rm}, \rr{Rmp} etc 
+%  (see Sections~\ref{sec:mnotation} and \ref{sec:codeJaap}).
+% 
+%  ---Additional notation for whole cube rotations (`c' notation),  e.g.,~\rr{Rc}, \rr{Rcp} etc 
+%  (see Sections~\ref{sec:cnotation} and \ref{sec:codeJaap}).
+%
+%  ---Added Randelshofer notation  (the `CMST' rotations),  e.g.,~\rr{CR}, \rr{MR} etc 
+%  (see Sections~\ref{sec:listofRandelshofercommands} and \ref{sec:codeRandelshofer}).
+%
+%  
+%  ---Two new (more-intuitive) \cmd{\Draw..} commands replace earlier (now deprecated) 
+% ambiguous versions; these new versions are now consistent with 
+%  the other  \cmd{\DrawRubikCubeXX} commands (see Section~\ref{sec:flatcommands}).
+% \begin{quote}
+% \cmd{\DrawRubikCubeF} (F = flat) ---replaces  \cmd{\DrawRubikFlat}. 
+% \newline\cmd{\DrawRubikCubeSF} (SF = semi-flat) ---replaces \cmd{\DrawRubikCubeFlat}.
+% \end{quote}
+%
+%
+%  ---Six new commands for showing  and annotating rotation sequences; the versions with a 
+% terminal `F' also surround the object with an fbox to allow users to see the extent
+% of any associated white space 
+% (see Sections~\ref{sec:showsequence} \&  \ref{sec:sequencebrace}):
+% \begin{quote}
+% \cmd{\ShowSequence}
+% \newline\cmd{\ShowSequenceF}
+% \newline\cmd{\ShowSequencef}
+% \newline\cmd{\SequenceBraceA}
+% \newline\cmd{\SequenceBraceAF}
+% \newline\cmd{\SequenceBraceB}
+% \newline\cmd{\SequenceBraceBF}
+%
+% \end{quote}
+%
+%  ---A new command for setting up  or allocating a `solved'  colour configuration.
+%  (see Section~\ref{sec:solvedconfig}):
+% \begin{quote}
+% \cmd{\SolvedConfig}
+% \end{quote}
+%
+%  ---A new command for setting up a `starter cube' for which the \textit{whole} cube  
+% is allocated the default `grey' colour  (see Section~\ref{sec:rubikcubegrey}):
+% \begin{quote}
+% \cmd{\RubikCubeGreyAll}
+% \end{quote}
+%
+%  ---A new supporting \textsc{rubikpatterns} package has been added to
+%   the  Rubik bundle. It is a small macro database of well-known  named  Rubik patterns 
+%   and associated sequences (see Section~\ref{sec:patterns}).
+%
+%
+%
 % \item Version 3.0 (September 2015)
 %
-%  ---All rotation commands can now use the rotation-code as an argument; for example, 
+%  ---All rotation commands can now use the rotation-code as an argument; for~example, 
 % the rotation \rr{D} can now be typeset using the command \cmd{\rr\{D\}} etc 
 %  (see Section~\ref{sec:RubikCommands}).
 % The new rotation commands are:
@@ -2605,13 +3545,13 @@
 %
 % ---Changed `Equator' $\rightarrow$ `Middle' in  all \cmd{\DrawLayer..} 
 % commands (for consistency). Hence `E' $\rightarrow$ `M' in all Flat 
-% commands and Slice commands. Note although former  use of `Equator' is
+% commands and Slice commands. Note that although the former  use of `Equator' is
 % retained for backward compatibility (for the moment) it is now deprecated. 
 %
 % ---Fixed a conflict with the \TeX\ \cmd{\sb} command as used by the  \textbf{url} 
 % package which resulted in  reference chaos when the \textbf{url} package was used with 
-% the \Rubikcube\ package (internalised \cmd{\sb} to \cmd{\@sb}). Also  internalised for 
-%  convenience  \cmd{\sd} to \cmd{\@sd}; \cmd{\sh} to \cmd{\@sh}; \cmd{\sc} to \cmd{\@sc};
+% the \Rubikcube\ package (internalised \cmd{\sb} to \cmd{\@sb}). Also  internalised, for 
+%  convenience,  \cmd{\sd} to \cmd{\@sd}; \cmd{\sh} to \cmd{\@sh}; \cmd{\sc} to \cmd{\@sc};
 % \cmd{\sq} to \cmd{\@sq}.
 % 
 %
@@ -2623,13 +3563,25 @@
 %
 %
 %
+%  \section{Acknowledgements}
+%  
+%  We would like to thank Peter Bartal and  Peter Grill for useful ideas and  
+%  suggestions.   We have built on some of their ideas and have acknowledged
+%  these instances in the documentation. 
+%  Finally, we would like to  thank Christian Tellechea for the  \cmd{\@join\{\}\{\}} 
+%  command  (see Section~\ref{sec:usefulinternalcommands}), 
+%  Christian Schr\"{o}ppel for help regarding the \textsf{forarray} package 
+%  (see Section~\ref{sec:codeshowsequence}), and  Herbert Kociemba for helpful comments.
+%  
+%
+%
+%
 %    \section{References}
 %  
 %  \begin{itemize}
 %  
 %  
-%  \item  Bartal P (2011)
-%  
+%  \item  Bartal P (2011). \ 
 %  \url{http://tex.stackexchange.com/questions/34482/}
 %  
 %  \item Chen JJ (2004). Group theory and the Rubik's cube.
@@ -2638,7 +3590,7 @@
 %
 % \item Davis T (2006). Group theory via Rubik's cube. 
 %  \url{http://www.geometer.org/rubik/group.pdf}
-  
+%  
 %  \item Demaine ED, Demaine ML, Eisenstat S, Lubiw A and Winslow A (2011).
 %  Algorithms for solving Rubik's cubes.
 %  \url{http://www.arxiv.org/abs/1106.5736/}
@@ -2658,14 +3610,16 @@
 %  \newline\url{http://duvoid.fr/rubik/rubik-friddrich-couleurs.pdf}
 %  \newline\url{http://duvoid.fr/rubik/sources/rubik-friddrich-couleurs.tex}
 %
-% \item Feuers\"{a}nger (2015). Manual for package \textsc{pgfplots} 
-% (\texttt{pgfplots.pdf}).  v\,1.12.1 (2015/05/02),  \S\,3.2.3, page~20.
-%  \url{http://www.ctan.org/pkg/pgfplots}.
+% \item Feuers\"{a}nger (2016). Manual for package \textsc{pgfplots}. 
+% v\,1.13 (2016/01/06),  \S\,3.2.3, page~21. (\texttt{pgfplots.pdf})
+%  \url{http://www.ctan.org/pkg/pgfplots}. [re: preventing extra white space]
 %  
-%  \item Fridrich J. \ \  \url{http://www.ws.binghamton.edu/fridrich/}.  
+%  \item Fridrich website (Fridrich J.) \ \  \url{http://www.ws.binghamton.edu/fridrich/}.  
 %  See the useful `notation' section  on the `Pretty patterns' webpage at 
 %  \url{http://www.ws.binghamton.edu/fridrich/ptrns.html}.
 %
+%  \item Frey AH and Singmaster D (1982). \textit{Handbook of cubik math}, 
+%  (Enslow Publishers, Inc.) (republished: 2010, Lutterworth Press, UK)
 %
 %  \item Golomb SW (1981). Rubik's cube and a model of quark confinement.
 %  \textit{Am.\ J.\ Phys.}; vol~49, pp~1030--1031. 
@@ -2678,12 +3632,13 @@
 %  \item Gymrek M (2009). The mathematics of the Rubik's cube.
 %  \newline\url{http://web.mit.edu/sp.268/www/rubik.pdf}
 %  
+%  \item Heise website (Heise R). Rubik's cube theory. \url{http://www.ryanheise.com/cube/theory.html}
+%
 %  \item Hofstadter D (1981). Rubik cube. \textit{Scientific American}; March issue.
 %  
 %  \item Hutchings M (2011). The mathematics of Rubik's cube (slide presentation). 
 %        \url{http://math.berkeley.edu/~hutching/rubik.pdf}
 %
-%
 % \item Jelinek website (Jelinek J). Rubik's cube solution methods.
 %  \url{http://www.rubikscube.info/}    
 %  
@@ -2691,18 +3646,29 @@
 %       Rubik's cube, Merlin's machine and other mathematical toys}; pp~322.
 %  \url{http://www.mike.verdone.ca/media/rubiks.pdf}
 %  
-%  \item Kociemba  website (Kociemba H). \url{http://www.kociemba.org/cube.htm}
-%  
+% 
+% \item  Kociemba website (Kociemba H).  \url{http://www.kociemba.org/cube.htm}
+% {\newline}---for superflip see: \url{http://www.kociemba.org/math/oh.htm}
+%
+%
 %  \item Kriz I and Siegel P (2008). Rubik's cube-inspired puzzles demonstrate math's 
 % simple groups.  \textit{Scientific American};  July 2008 
 %  
+%  \item Longridge website (Longridge M).  The cube pattern archive. \url{http://www.cubeman.org}
 %
 %  \item Randelshofer website (Randelshofer W).  Pretty patterns. 
 %  \url{http://www.randelshofer.ch/rubik/patterns/}
 %
-%   \item Reid website (Reid M) \ \  \url{http://www.cflmath.com/Rubik/}, 
+%   \item Reid website (Reid M) \ \  \url{http://www.cflmath.com/Rubik}, 
 %       for patterns see \url{http://www.cflmath.com/Rubik/patterns.html}
 %
+% \item Reid M. (1995). Superflip requires 20 face turns. (January 1995) 
+%   \url{http://www.math.ucf.edu/~reid/Rubik/CubeLovers/}  
+% {\newline}[cited from Rokicki \textit{et~al.}, 2013]. 
+% {\newline}(Note: easier to use is the following html indexed version of the 
+% archive of the Cube-Lovers usenet group (1982--1997)  
+% \url{http://www.math.rwth-aachen.de/~Martin.Schoenert/Cube-Lovers/})
+%
 %  
 %  \item Rokicki T, Kociemba H, Davidson M and Dethridge J (2013). The diameter of the 
 %       Rubik's cube is twenty.  \textit{SIAM.\ J.\ Discrete Math.}, \underline{27}, 1082--1105.
@@ -2711,7 +3677,15 @@
 %  \item Rubik's cube. See Section on notation. 
 %  \newline\url{http://en.wikipedia.org/wiki/Rubik's_Cube}
 %  
-%  \item Speedsolving website. \url{www.speedsolving.com/}
+%  \item RuWix website (Ferenec D) \ \ \url{http://www.ruwix.com}.
+%  See the online Rubik's cube solver  \url{http://www.ruwix.com/online-rubiks-cube-solver-program}.
+%
+%  \item Scherphius  website (Scherphius J).  Jaap Puzzles website 
+%       \url{http://www.jaapsch.net/puzzles/symmetr1.htm} 
+%
+% \item Singmaster D (1981). \textit{Notes on Rubik's magic cube} (Harmondsworth, Eng., Penguin Books)
+%
+%  \item Speedsolving website. \url{http://www.speedsolving.com/}
 %  
 %  \item Tran R (2005). A mathematical approach to solving Rubik's cube.
 %  \url{http://www.math.ubc.ca/~cass/courses/m308/projects/rtran/rtran.pdf}
@@ -2722,9 +3696,9 @@
 %    [cited from \textit{Wikipedia} (Rubik's cube)]
 %
 %  
-%  \item Vandenbergh L. \ \ \textsc{cubezone} \url{http://www.cubezone.be}
+%  \item Vandenbergh website (Vandenbergh L.) \ \ \textsc{cubezone} \url{http://www.cubezone.be}
 %  
-%  \item WCA (2015). World Cube Association Regulations. See Section~12 for notation.
+%  \item WCA (2016). World Cube Association Regulations. See \S\,12 for notation.
 %   \url{http://www.worldcubeassociation.org/regulations.htm}
 %  
 %  
@@ -2742,17 +3716,17 @@
 %  The conventions  we adopt regarding  capital letters and the 
 %  XYZ argument ordering are detailed in  Section~\ref{sec:conventions}.
 %
-% Note that it is  important in a graphics package to use a trailing \% on 
-% the end of lines which  break  before the terminal curley bracket of a newcommand.
+% Note that it is  important when using a graphics package to use a trailing \% on 
+% the end of lines which  break  before the terminal curly bracket of a \cmd{\newcommand}.
 % This is to prevent accumulating spurious spaces which may otherwise appear in 
-% figures and diagrams as a strange or unexpected horizontal shift or whitespace.
+% figures and diagrams as a strange or unexpected horizontal shift or white-space.
 %
 %   \subsection{\hspace{3mm}Package heading}
 %
 %    \begin{macrocode}
 %<*rubikcube>
-\def\RCfileversion{3.0}%
-\def\RCfiledate{2015/09/25}%
+\def\RCfileversion{4.0}%
+\def\RCfiledate{2017/03/03}%
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{rubikcube}[\RCfiledate\space (v\RCfileversion)]
 %    \end{macrocode}
@@ -2763,6 +3737,24 @@
   \RequirePackage{tikz}}%
 %    \end{macrocode}
 %
+%  The package requires the Forarray package (see Section~\ref{sec:codeshowsequence})---so 
+%  we load it if not already loaded.
+%    \begin{macrocode}
+\@ifpackageloaded{forarray}{}{%
+  \typeout{---rubikcube requires the Forarray package.}%
+  \RequirePackage{forarray}}%
+%    \end{macrocode}
+%
+%  The package requires the IfThen package (see Section~\ref{sec:codeshowsequence})---so 
+%  we load it if not already loaded.
+%    \begin{macrocode}
+\@ifpackageloaded{ifthen}{}{%
+  \typeout{---rubikcube requires the IfThen package.}%
+  \RequirePackage{ifthen}}%
+%    \end{macrocode}
+%
+%
+%
 %    \begin{macro}{\rubikcube}
 %  First we create a suitable logo
 %    \begin{macrocode}
@@ -2772,91 +3764,11 @@
 %    \end{macro}
 %
 %
-%   \subsection{\hspace{3mm}Some useful internal commands}
-%  \label{sec:usefulinternalcommands}
-%
-%  \begin{macro}{\@rr} 
-%  \begin{macro}{\@rrp}
-%  \begin{macro}{\@rrw} 
-%  \begin{macro}{\@rrwp} 
-%  \begin{macro}{\@rrs} 
-%  \begin{macro}{\@rrsp}
-%  \begin{macro}{\@rra} 
-%  \begin{macro}{\@rrap} 
-%  \begin{macro}{\@xyzh} 
-%  \begin{macro}{\@xyzhp} 
-%  \begin{macro}{\@xyzRubik} 
-%  \begin{macro}{\@xyzRubikp} 
-%  \begin{macro}{\@SquareLetter} 
-%  \begin{macro}{\@hRubik} 
-% Internal commands. These  are used to generate the
-% prime, w, w-prime, s, s-prime, a, a-prime   
-% rotation commands. The \cmd{\@xyz..} commands are used to generate the 
-% x,y,z,u,d,l,r,f,b, and their prime rotation commands.
-% The \cmd{\@SquareLetter} command is used to form the separate square hieroglyph  form
-% used for rotations with no visible representation from the front 
-% (eg~B.., Fs, Fsp, Fa, Fap, S, Sp, Sf, Sfp, Sb, Sbp).
-% The \cmd{\@hRubik} is the vertical shift  used  to raise the box carying the rotation 
-% rotation-code in \cmd{\Rubik..} commands not visible from the front.
-%
-%  The idea is that by using these internal
-% tools we will be able to more easily standardise the  size and position 
-% of all the various glyphs. However, these internal tools are currently 
-% only partially implemented (= work in progress).
-% \begin{macrocode}
-\newcommand{\@rr}[1]{\textbf{\textsf{#1}}}
-\newcommand{\@rrp}[1]{\textbf{\textsf{#1}$^\prime$}}
-\newcommand{\@rrw}[1]{\textbf{\textsf{#1\footnotesize{w}}}}
-\newcommand{\@rrwp}[1]{\textbf{\textsf{#1\footnotesize{w}}$^\prime$}}
-\newcommand{\@rrs}[1]{\textbf{\textsf{#1\footnotesize{s}}}}
-\newcommand{\@rrsp}[1]{\textbf{\textsf{#1\footnotesize{s}}$^\prime$}}
-\newcommand{\@rra}[1]{\textbf{\textsf{#1\footnotesize{a}}}}
-\newcommand{\@rrap}[1]{\textbf{\textsf{#1\footnotesize{a}}$^\prime$}}
-\newcommand{\@xyzh}[1]{\textbf{[\textsf{#1}]}\,}
-\newcommand{\@xyzhp}[1]{\textbf{[\textsf{#1}$^\prime$]}\,}
-\newcommand{\@xyzRubik}[1]{\raisebox{3.45pt}{\textbf{[\textsf{#1}]}}}
-\newcommand{\@xyzRubikp}[1]{\raisebox{3.45pt}{\textbf{[\textsf{#1}$^\prime$]}}}
-\newcommand{\@SquareLetter}[1]{\setlength\fboxsep{2.5pt}\fboxrule=0.8pt%
-   \fbox{\rule[-1pt]{0pt}{8.5pt}\raisebox{-0.5pt}{#1}}}
-\newlength\@hRubik%
-\setlength{\@hRubik}{0.185cm}%
-%    \end{macrocode}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%  \end{macro}
-%
-%
-%  \begin{macro}{\@join} 
-%  We also require a macro for joining two strings  so we can convert
-%  a rotation-code, say U,  into a macro which typesets it in some form, say \cmd{\rrhU}.
-%  The following \cmd{\@join\{\}\{\}} command is by Christian Tellechea.
-%  {\newline}Usage: \cmd{\@join\marg{command-stem}\marg{rotation-code}}. For example, 
-%  to create the command \cmd{\rrhU} we would write |\@join{\rrh}{U}|, and hence 
-%  the command |\rrh{U}| is equivalent to \cmd{\rrhU} (see Section~\ref{sec:cmdsusingjoin}).
-%  {\newline}Since this macro is also useful for processing rotation-codes in a  list, 
-%  which may also include macros, it is important that |#2| is not detokenized.
-% \begin{macrocode}
-\newcommand*\@join[2]{%
-    \csname\expandafter\@gobble\string#1#2\endcsname}
-%    \end{macrocode}
-%  \end{macro}
-%
-%
 %   \subsection{\hspace{3mm}Colours}
 %  \label{sec:codecolours}
 %
-%  These colour allocations were initially defined by Peter Bartal (2011).
+%   We have adopted the following colour allocations; these  were initially 
+%  defined by Peter Bartal (2011) ---see Section~\ref{sec:colours}.
 %  We have modified only the colour grey, which is now defined as {black!30}.
 %
 %    \begin{macrocode}
@@ -2871,6 +3783,37 @@
 %
 %
 %
+%   \subsection{\hspace{3mm}The rubikfont}
+%  \label{sec:coderubikfont}
+%
+%  \begin{macro}{\@rubikfont} 
+%  \begin{macro}{\@rubikfontFNS}
+%  \begin{macro}{\@rubikprime}
+% We define two  fonts for text associated with the Rubik glyphs 
+% (both the `arrow' glyphs and the `letter' glyphs), 
+% namely, (1)~Computer Modern Sans (cmss), bold extended (bx), normal shape (n) 
+% at 10/12pt, and  (2)~a footnotesize (FNS) version (8pt) for the lower-case letters  
+% [for cmss see Latex Companion (2004), p.\,417 \& p.\,354\,\footnote{Note the typo in Table~7.5 (p.\,354): 
+% the  font-series code for the Sans semi-bold condensed  form is `sbx' (not sbc).}]. 
+% This has the effect of  keeping the size
+% of Rubik glyphs constant in the face of any changes in the document fonts.
+% We make the baseline-skip values the same, since the `arrow' glyphs generated by 
+% the  \cmd{\Rubik} commands involve  a single baseline-skip (for example, as with 
+% \verb!\Rubik{D}!; see Section~\ref{sec:coderotationD}). 
+% We  use the cmss font  apostrophe as the  `prime' symbol (the user has 
+% the opportunity to use the maths \cmd{\prime} 
+% instead---see Section~\ref{sec:rubikprime}). 
+%\begin{macrocode}
+\newcommand{\@rubikfont}{\fontsize{10}{12pt}\usefont{T1}{cmss}{bx}{n}} 
+\newcommand{\@rubikfontFNS}{\fontsize{8}{12pt}\usefont{T1}{cmss}{bx}{n}} 
+\newcommand{\@rubikprime}{'}
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%
+%
+%
 %  \subsection{\hspace{3mm}ShowCube command}
 %  \label{sec:showcubecode}
 %
@@ -2880,25 +3823,43 @@
 %  displays the cube inside a minipage, so that we can easily tailor the minipage 
 %  width (|#1|) and also the  TikZ scale factor (|#2|). The \cmd{\ShowCubeF} command
 %  places an fbox around the minipage so users can see the extent of any white space.
-% {\newline}\textsc{usage}: |\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}|
+%  {\newline}\textsc{usage}: |\ShowCube{2cm}{0.5}{\DrawRubikCubeRU}|
+%
+% February 2017 (RWDN): \ We first require a new length variable (which will become the minipage-width),
+% so we can add the length 1.6pt to it (this is the width of the TikZ ultra-thick line
+% which is used to draw the Rubik cubes). 
+% In order for a width of an image made up of $x$~units to be equal 
+% to $x \times (\mbox{scale-factor})$ we need to add an extra line-width 
+% (i.e.,~to include the right-hand edge). 
 %    \begin{macrocode}
+\newlength{\@showcubewidth}% 
+%    \end{macrocode}
+% We can now build the two macros. We set the \cmd{\fboxsep} value to zero.
+%    \begin{macrocode}
 \newcommand{\ShowCube}[3]{%
-  \begin{minipage}{#1}%
+  \setlength{\fboxsep}{0cm}% 
+  \setlength{\@showcubewidth}{#1}%
+  \advance\@showcubewidth by 1.6pt\relax% 
+  \begin{minipage}{\the\@showcubewidth}%
   \centering%
   \begin{tikzpicture}[scale=#2]%
   #3%
   \end{tikzpicture}%
   \end{minipage}%
-}
+}%
 \newcommand{\ShowCubeF}[3]{%
-  \fbox{%
-  \begin{minipage}{#1}%
+  \setlength{\fboxsep}{0cm}% 
+  \setlength{\fboxrule}{0.4pt}% 
+  \setlength{\@showcubewidth}{#1}%
+  \advance\@showcubewidth by 1.6pt\relax% 
+  \framebox{%
+  \begin{minipage}{\the\@showcubewidth}%
   \centering%
   \begin{tikzpicture}[scale=#2]%
   #3%
   \end{tikzpicture}%
   \end{minipage}%
-}}
+}}%
 %    \end{macrocode}
 %  \end{macro}
 %  \end{macro}
@@ -2905,17 +3866,138 @@
 %
 %
 %
+%
+%  \subsection{\hspace{3mm}ShowSequence command}
+%  \label{sec:codeshowsequence}
+%
+%  \begin{macro}{\ShowSequence} 
+%  \begin{macro}{\ShowSequenceF} 
+%  \begin{macro}{\ShowSequencef} 
+% The  \cmd{\ShowSequence}\marg{separator}\marg{font-code}\marg{sequence}  command 
+% typesets a comma separated sequence of rotation commands. 
+% (See Section~\ref{sec:showsequence}).
+% This command takes three mandatory arguments: the first is the separator  (\verb!#1!), 
+% the second is  the font or style code (\verb!#2!), and third is a comma-separated 
+% sequence of Rubik  rotation commands (|#3|).
+%
+%  This command requires the \texttt{forarray} 
+%  package---by Christian Schr\"{o}ppel---(for the \cmd{\ForEachX} command)
+%  and the \texttt{ifthen} package---by David Carlisle---(for the \cmd{\ifthenelse} command).
+%  These two packages are loaded at startup if not already loaded.
+%  We first need to define two variables  for use by the command; these are
+%  derived from the \texttt{forarray} package.
+%
+%    \begin{macrocode}
+\newcommand{\x}{\thislevelitem}
+\newcommand{\xcount}{\thislevelcount}
+%    \end{macrocode}
+%
+%  The \cmd{\ShowSequence} command typesets a sequence of elements, and places 
+%  an optional separator (|#1|) between them.
+%  For each element of |#3| this command  forms the construction |#2{element of #3}|.
+%  For~example, if |#2 = \rr|,  and an element of |#3| is D, then it forms |\rr{D}| etc.
+%
+%  Note that in order to avoid placing a trailing comma after the final element,
+%  we identify the first element (using |\xcount|) and then place a  comma in front 
+%  all the remaining elements. This is because it is easy to identify the first element
+%  of a sequence, but very difficult to identify the final element.
+%
+%  We also create two fbox forms: the `F' form places an fbox about the whole output; 
+% the `f' form places an fbox about each element in the output (these forms can be 
+% helpful when checking white space.
+%
+%  \noindent\textsc{usage}:  |\ShowSequence{,}{\rr}{R,L,Up,Dp.....}|
+%
+%    \begin{macrocode}
+\newcommand{\ShowSequence}[3]{%
+   \ForEachX{,}{%
+    \ifthenelse{\xcount=1}{#2{\x}}{#1#2{\x}}%
+    }{#3}%
+}%
+\newcommand{\ShowSequenceF}[3]{%
+\fbox{%
+   \ForEachX{,}{%
+    \ifthenelse{\xcount=1}{#2{\x}}{#1#2{\x}}%
+    }{#3}%
+}}%
+\newcommand{\ShowSequencef}[3]{%
+   \ForEachX{,}{%
+    \ifthenelse{\xcount=1}{\fbox{#2{\x}}}{#1{\fbox{#2{\x}}}}%
+    }{#3}%
+}%
+%    \end{macrocode}
+%  \begin{macro}{\SequenceInfo} 
+%  \begin{macro}{\SequenceName} 
+%  \begin{macro}{\SequenceShort} 
+%  \begin{macro}{\SequenceLong} 
+%  \noindent\textsc{Sequence holders}:  providing none of the Rubik rotation-codes  has  a trailing
+%   integer (e.g.,~R3) then  the Rubik macros (|\rr|, |\rrh|, |\Rubik|, |\textRubik|) will work 
+%   as expected when used as the second argument in the \cmd{\ShowSequence} command
+%   (described above). However, a problem arises when trying to process in this way any Rubik
+%   rotation-codes having a terminal integer (for example, short-codes e.g.,~R2, D3,...), since the 
+%  \cmd{\ShowSequence} macro cannot expand  short-codes into  their long-code 
+%  elements (e.g.,~~R,R,D,D,D,...). 
+%
+%   Accommodating such codes  when using the \cmd{\ShowSequence} command is currently 
+%   solved by using separate  `holders' for  four derived strings, namely: \cmd{\SequenceInfo},
+%   \cmd{\SequenceName},\cmd{\SequenceShort} and \cmd{\SequenceLong} 
+%   (for details see Section~\ref{sec:showsequence}).
+%   These  are generated automatically by  the Perl  \textsc{rubikrotation} program, which returns
+%   a so-called `long' version of the `short' string (the argument of the \cmd{\RubikRotation}
+%   command).  For~example, the Perl program converts 
+%   any short codes  (e.g.,~R2, D3,... ) $\rightarrow$ long form, e.g.,~R,R,D,D,D,... 
+%   (see the \textsc{rubikrotation} documentation for details).
+%   In order for the four `holders' of these  derived strings generated by the Perl program
+%   (written to the file \texttt{rubikstateNEW.dat}) to be accessible to  the user they need to
+%   defined  here so that they can then be `redefined' (by the Perl program) in the file
+%    \texttt{rubikstateNEW.dat}: 
+%    \begin{macrocode}
+\newcommand{\SequenceInfo}{{}}%   %% INFO only
+\newcommand{\SequenceName}{{}}%   %% NAME only
+\newcommand{\SequenceShort}{{}}%  %% original SHORT seq but with NO NAME   
+\newcommand{\SequenceLong}{{}}%   %% just the LONG string \& no name 
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%
+%
+%
+%  \subsection{\hspace{3mm}SequenceBrace commands}
+%  \label{sec:sequencebracecode}
+%
+%  \begin{macro}{\SequenceBraceA} 
+%  \begin{macro}{\SequenceBraceB} 
+% The  \cmd{\SequenceBraceX}\marg{name}\marg{sequence}  command 
+% is a tool for displaying a named sequence using a brace. The trailing~A 
+% denotes that the brace is placed Above the sequence; B~denotes the brace is Below the sequence.
+% For usage see Section~\ref{sec:sequencebrace}.
+%
+%    \begin{macrocode}
+\newcommand{\SequenceBraceA}[2]{$\overbrace{\mbox{#2}}^{\mbox{#1}}$}%
+\newcommand{\SequenceBraceB}[2]{$\underbrace{\mbox{#2}}_{\mbox{#1}}$}%
+\newcommand{\SequenceBraceAF}[2]{\fbox{$\overbrace{\mbox{#2}}^{\mbox{#1}}$}}%
+\newcommand{\SequenceBraceBF}[2]{\fbox{$\underbrace{\mbox{#2}}_{\mbox{#1}}$}}%
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%
+%
 %  \subsection{\hspace{3mm}Face commands}
 %
-% Cube face notation = U, D, L, R, F, B (Singmaster)
-% {\newline}Cubie-square notation = t, m, b, l, m, r = top, middle, 
+% Cube face notation: U, D, L, R, F, B (Singmaster)
+% {\newline}Cubie-square notation:  t, m, b, l, m, r = top, middle, 
 % bottom, left, middle, right.
-% We  use t,b for cubie-squares (facelets) to avoid confusion with cube Face notation.
+% We  use the t, b notation for cubie-squares (facelets) to avoid confusion with cube Face notation.
 % We number the cubie-squares on a face 1--9 reading from left-to-right, 
 % starting top-left, ending bottom-right, as follows 
 % (see also Figure~\ref{fig:facenotation}): 
 % {\newline}\strut\hspace{1cm}top row \ \ \ \ \ (1,2,3) = tl, tm, tr
-% {\newline}\strut\hspace{1cm}middle row (4,5,6) = ml, mm, mr
+% {\newline}\strut\hspace{1cm}middle row\, (4,5,6) = ml, mm, mr
 % {\newline}\strut\hspace{1cm}bottom row (7,8,9) = bl, bm, br
 %
 %  \begin{macro}{\RubikFaceUp} 
@@ -2936,12 +4018,12 @@
 % Each letter is an initial letter of the words Up, Down, Left, Right, Front, Back, 
 % left, middle, right, top, middle, bottom. 
 %
-% For example, in the command \cmd{\Urt\{\#1\}} 
+% For~example, in the command \cmd{\Urt\{\#1\}} 
 % the U stands for the Up face of the cube, while the \texttt{rt} stands 
 % for the ``right-top'' facelet on this face. Note that the order 
-% of the two lowercase letters (in this case \texttt{rt}) are always written 
-% in the $x,y$ order; i.e.,~the first of the two lowercase letters relates to the $x$ 
-% direction (either left, middle, or right), while the second  lowercase letter 
+% of the two lower-case letters (in this case \texttt{rt}) are always written 
+% in the $x,y$ order; i.e.,~the first of the two lower-case letters relates to the $x$ 
+% direction (either left, middle, or right), while the second  lower-case letter 
 % relates to the $y$  direction (either top, middle, or bottom)---this rule makes it
 % easy to remember the order.
 %  \end{macro}
@@ -2989,9 +4071,11 @@
 %  \begin{macro}{\RubikFaceRightAll} 
 %  \begin{macro}{\RubikFaceFrontAll}  
 %  \begin{macro}{\RubikFaceBackAll}  
-% These 5 commands allocate the same colour to all 9 cubiesquares in the specified face (Up, Down, Left, Right, Front).  Each command therefore  takes only  1 argument (one of the colour codes).
+% These 5 commands allocate the same colour to all 9 cubie-squares 
+% in the specified face (Up, Down, Left, Right, Front).  
+% Each command therefore  takes only  1~argument (one of the colour codes).
 %
-% {\noindent}For example, \cmd{\RubikFaceUpAll\{R\}}
+% {\noindent}For~example, \cmd{\RubikFaceUpAll\{R\}}
 %  \end{macro}
 %  \end{macro}
 %  \end{macro}
@@ -3031,7 +4115,8 @@
 }
 %    \end{macrocode}
 %
-% {\noindent}We now use these commands to initialise all visible faces to  default colour grey (X)
+% {\noindent}Finally, we now use these commands to initialise all 
+% visible faces to the default colour grey~(X)
 %
 % \begin{macrocode}
 \RubikFaceUpAll{X}%
@@ -3051,7 +4136,9 @@
 %    \begin{macro}{\RubikCubeGrey}
 % This command sets the face/colour configuration (state) of a 3x3x3 
 % Rubik cube with no colours allocated except for the central cubie of each face.
-% These central colours match those defined for the RubikCubeSolved command. 
+% The colour configuration of the central cubies matches those defined for 
+% the RubikCubeSolved command (i.e.,~white opposite yellow etc). 
+% We also implement an equivalent `gray' version (to be consistent with TikZ).
 %    \begin{macrocode}
 \newcommand{\RubikCubeGrey}{%
 \RubikFaceUp   {X}{X}{X}{X}{W}{X}{X}{X}{X}%
@@ -3061,23 +4148,28 @@
 \RubikFaceFront{X}{X}{X}{X}{O}{X}{X}{X}{X}%
 \RubikFaceBack {X}{X}{X}{X}{R}{X}{X}{X}{X}%
 }
+\newcommand{\RubikCubeGray}{\RubikCubeGrey}
 %    \end{macrocode}
 %    \end{macro}
 %
 %
-%   \subsection{\hspace{3mm}RubikCubeSolved command}
 %
-%    \begin{macro}{\RubikCubeSolved}
+%
+%   \subsection{\hspace{3mm}SolvedConfig command}
+%
+%    \begin{macro}{\SolvedConfig}
 % This command sets the face/colour configuration (state) of a  typical 
-% solved Rubik cube. 
+% solved Rubik cube. Note that the order is Right, Left, Up, Down, Front, Back 
+% (i.e.,~X$+$, X$-$, Y$+$, Y$-$, Z$+$, Z$-$, order). 
+%  We shall use this command to define solved cube configurations.
 %    \begin{macrocode}
-\newcommand{\RubikCubeSolved}{%
-  \RubikFaceUpAll{W}%
-  \RubikFaceDownAll{Y}%
-  \RubikFaceLeftAll{B}%
-  \RubikFaceRightAll{G}%
-  \RubikFaceFrontAll{O}%
-  \RubikFaceBackAll{R}%
+\newcommand{\SolvedConfig}[6]{%
+  \RubikFaceRightAll{#1}%
+  \RubikFaceLeftAll{#2}%
+  \RubikFaceUpAll{#3}%
+  \RubikFaceDownAll{#4}%
+  \RubikFaceFrontAll{#5}%
+  \RubikFaceBackAll{#6}%
 }
 %    \end{macrocode}
 %    \end{macro}
@@ -3084,6 +4176,45 @@
 %
 %
 %
+%
+%   \subsection{\hspace{3mm}RubikCubeGreyAll command}
+%    \label{sec:codegreyall}
+%
+%    \begin{macro}{\RubikCubeGreyAll}
+% This command sets the face/colour configuration (state) of a 3x3x3 
+% Rubik cube  with no colours allocated.
+% This colour configuration is the same as the startup default state---all cubies will
+% appear grey. We implement it using the \cmd{\SolvedConfig} command (above).
+% We also implement an equivalent `gray' version (to be consistent with TikZ).
+%    \begin{macrocode}
+\newcommand{\RubikCubeGreyAll}{\SolvedConfig{X}{X}{X}{X}{X}{X}}%
+\newcommand{\RubikCubeGrayAll}{\RubikCubeGreyAll}
+%    \end{macrocode}
+%    \end{macro}
+%
+%
+%   \subsection{\hspace{3mm}RubikCubeSolved command}
+%     \label{sec:codesolvedconfig}
+%
+%    \begin{macro}{\RubikCubeSolved}
+%    \begin{macro}{\RubikCubeSolvedWY}
+%    \begin{macro}{\RubikCubeSolvedWB}
+% The first (default) command sets the face/colour configuration (state) one of the standard 
+% commercially available solved Rubik cube (white opposite yellow). The argument order
+% follows the XYZ notation. For convenience we make a copy named \cmd{\RubikCubeSolvedWY} 
+% (denoting  the White opposite Yellow configuration), and also a different version named 
+% \cmd{\RubikCubeSolvedWB} (denoting the White opposite Blue configuration).
+% These represent the two standard versions of the Rubik Cube.
+%    \begin{macrocode}
+\newcommand{\RubikCubeSolved}{\SolvedConfig{G}{B}{W}{Y}{O}{R}}%
+\newcommand{\RubikCubeSolvedWY}{\RubikCubeSolved}%
+\newcommand{\RubikCubeSolvedWB}{\SolvedConfig{R}{O}{W}{B}{G}{Y}}%
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
 %         \subsection{\hspace{3mm}Slice commands}
 %
 % \begin{macro}{\RubikSliceTopR} 
@@ -3148,7 +4279,7 @@
 % and \TeX\ has only 9 macro  parameters available, we are forced to draw 
 % Rubik cubes  by first specifying the colours on each of the three faces, 
 % and then  using a `DrawRubikCubeXY' command, where the trailing XY code
-%  defines the  view direction (X = either R, L; Y = either U, D). 
+%  defines the  viewing  direction (X = either R or L; Y = either U or D). 
 % The order of the XY code is important: X~first, Y~second (so it is easy to remember).
 %
 % On each face the facelets are drawn in the following order: Top row 
@@ -3158,7 +4289,7 @@
 % through the  four corners of the facelet in the following order: 
 % lb $\rightarrow$ lt $\rightarrow$ rt $\rightarrow$ rb;  the code being 
 % lb (LeftBottom), lt (LeftTop), rt (RightTop), rb (RightBottom)
-% (only need four coords); the grid origin is at the bottom-left corner of the 
+% (only need four coords); the (x,y) grid origin is at the bottom-left corner of the 
 % \textsc{front} face.
 %
 %  \begin{macro}{\DrawRubikCubeFrontFace}
@@ -3197,7 +4328,7 @@
 %      \subsubsection{\hspace{3mm}Viewing direction}
 %
 %  The command  `DrawRubikCubeXY' command uses the trailing XY code
-%  to specify  the  view direction (X = either R, L; Y = either U, D). 
+%  to specify  the  view direction (X = either R or L; Y = either U or D). 
 %  The order of the XY code is important: X~first, Y~second (so it is easy
 %  to remember).
 %
@@ -3209,7 +4340,8 @@
 % The colours are allocated  to particular facelets using  the   \cmd{\RubikFaceUp},
 %  \cmd{\RubikFaceRight} and  \cmd{\RubikFaceFront} commands. 
 %
-% The (x,y) grid origin is at the bottom-left corner of the \textsc{front} face.
+% The (x,y) grid origin is at the bottom-left corner of the \textsc{front} face 
+% (see Section~\ref{sec:coordinates}).
 % The perspective is designed so that the  2D~graphic image of the  side face 
 % (\textsc{right} in this particular case) has its `horizontal' lines running 
 % at 45~degrees. This has the useful advantage that the 2D~width of the side is 
@@ -3450,9 +4582,10 @@
 %   These two LayerFace commands each draw and paint a single  
 %  face of 9~facelets. The first command takes 9 ordered colour parameters,
 %  (ordered in layers from top left to bottom right, so \texttt{\#1} 
-%  is the placeholder for the colour of the TopLeft facelet etc.)
-%  The second takes only one colour parameter (since \texttt{All} the 
+%  is the place-holder for the colour of the TopLeft facelet etc.)
+%  The second command takes only one colour parameter (since \texttt{All} the 
 %  colours are the same).
+%
 %  The drawing origin (0,0) = bottom left corner. The facelets are drawn
 %  from left to right.
 %  NOTE: this macro is SAME as the  internal command 
@@ -3517,8 +4650,12 @@
 %
 % [\textsc{note}: These new commands (version 3.0) were modified from the 
 %  earlier \cmd{\FlatUp}, \cmd{\FlatDown} etc., commands; i.e.,~they were 
-%  reformulated as  a set of \cmd{\Draw...} commands to make them consistent 
-%  with all the  other \cmd{\Draw..} commands].
+%  reformulated as  a set of \cmd{\Draw...} commands so as to make this 
+%  notation consistent  with the  other \cmd{\Draw..} commands. 
+%  Note also that, for user convenience, all of these commands have 
+%  been copied (in version~4.0) to equivalent \cmd{\DrawFace..} 
+%  versions associated with their two coordinate arguments 
+%  set to  $x=0$, $y=0$---see Section~\ref{sec:drawfacecode}]
 %
 %  \begin{macro}{\DrawFlatUp}
 %  \begin{macro}{\DrawFlatDown}
@@ -3526,11 +4663,13 @@
 %  \begin{macro}{\DrawFlatRight}
 %  \begin{macro}{\DrawFlatFront}
 %  \begin{macro}{\DrawFlatBack}
-%  Each of these  commands draws a separate (flat) face (9~facelets).
+%  Each of these  commands draws a separate (flat) face (9~facelets)
+%  (see Section~\ref{sec:flatcommands}).
 %  Each command (except \cmd{\DrawFlatFront}) takes two arguments, 
 %  namely the  X-coordinate  and Y-coordinate of the bottom-left 
 %  corner of the  face.  This (X,Y) pair of coordinates therefore allows 
-%  the user to position the face. These commands were motivated by a need to 
+%  the user to position the face in relation to the cube itself. 
+%  These commands were motivated by a need to 
 %  be able to show hidden faces under certain circumstances.
 %
 %  Note  that the Y-argument currently only works fully
@@ -3553,9 +4692,9 @@
 %  of a Rubik cube.
 %
 % The (x,y) variables are here encoded as (\cmd{\ux}, \cmd{\uy})  where the 
-% `u' stands for Up etc. However, since we are unable to use `dx, dy' with the 
-%  \cmd{\DrawFlatDown} command (since dx and dy are already used in the 
-% \cmd{\cube at dxdydz...} command) we encode these instead as (\cmd{\ddx}, \cmd{\ddy}). 
+% `u' stands for Up etc. However, since we are unable to use a `dx, dy' notation
+%  with the   \cmd{\DrawFlatDown} command (since dx and dy are already used by the 
+% \cmd{\cube at dxdydz...} command), we encode these instead as (\cmd{\ddx}, \cmd{\ddy}). 
 %
 % \end{macro}
 % \end{macro}
@@ -3689,7 +4828,7 @@
 }
 %%-----------------------
 \newcommand{\DrawFlatFront}{%
-%% This command is used /only/ by  the \cmd{\DrawRubikFlat} command.
+%% This command is used /only/ by  the \cmd{\DrawRubikCubeF} command.
 %% NOTE: x, y variables not implemented as not required here
 %%---top row
 \draw[line join=round,line cap=round,ultra thick,fill=\Flt]%
@@ -3756,12 +4895,12 @@
 }
 %    \end{macrocode}
 %
-%  \begin{macro}{\DrawRubikFlat}
-%  Draws a standard flat representation of the Rubik
-%  cube (colours only). Note that \cmd{\DrawFlatFront} does not 
-%  take any arguments (x,y) arguments.
+%  \begin{macro}{\DrawRubikCubeF}
+%  Draws a standard flat (F) representation of the Rubik
+%  cube (colours only). Note that \cmd{\DrawFlatFront} (below)
+%  does not take any arguments (x,y). 
 %    \begin{macrocode}
-\newcommand{\DrawRubikFlat}{%
+\newcommand{\DrawRubikCubeF}{%
   \DrawFlatUp{0}{3}%
   \DrawFlatDown{0}{-3}%
   \DrawFlatLeft{-3}{0}%
@@ -3772,12 +4911,13 @@
 %    \end{macrocode}
 %  \end{macro}
 %
-%  \begin{macro}{\DrawRubikCubeFlat}
+%
+%  \begin{macro}{\DrawRubikCubeSF}
 %  Draws a Rubik  cube together with the three hidden faces
-%   (colours only) in a semi-flat representation. The (x,y) 
-%  arguments are for the bottom-left  corner of the face.
+%   (colours only) in a semi-flat (SF) representation. The (x,y) 
+%  arguments (below) are for the bottom-left  corner of the face. 
 %    \begin{macrocode}
-\newcommand{\DrawRubikCubeFlat}{%
+\newcommand{\DrawRubikCubeSF}{%
   \DrawRubikCube%
   \DrawFlatDown{0}{-3}%
   \DrawFlatLeft{-3}{0}%
@@ -3789,6 +4929,7 @@
 %
 %
 % \subsubsection{DrawFlatXSide commands}
+%  \label{sec:drawflatxsidecode}
 %
 %  These six commands draw  a face together with  all four sidebars
 %  (colours only). We use the \cmd{\DrawFlatX} commands to draw the face.
@@ -3798,7 +4939,10 @@
 %  Top (T) and Bottom (B) = left to right;
 %  Left (L) and Right (R) = top to bottom;
 % (see the \cmd{\DrawRubikLayerSideX} command for details of the arguments).
-%  
+% 
+% Note that for user convenience, we we have copied many of these commands 
+% to a \cmd{\DrawFace..} version (see Section~\ref{sec:drawfacecode}).
+% 
 %
 %  \begin{macro}{\DrawFlatUpSide}
 %  Draws the \textsc{up} face together with  all four sidebars
@@ -3891,6 +5035,31 @@
 %
 %
 %
+%   \subsection{\hspace{3mm}DrawFace commands}
+%  \label{sec:drawfacecode}
+%
+% We now copy the above \cmd{\DrawFlat..} commands
+% as \cmd{\DrawFace..} commands  for the purpose of user
+% convenience, since most of the time the user  wants just to
+% draw a particular face with or without the associated side bars.
+% In a future version we may well, therefore, deprecate some of the above 
+% `Flat'  command names.
+%    \begin{macrocode}
+\newcommand{\DrawFaceUp}{\DrawFlatUp{0}{0}}
+\newcommand{\DrawFaceDown}{\DrawFlatDown{0}{0}}
+\newcommand{\DrawFaceLeft}{\DrawFlatLeft{0}{0}}
+\newcommand{\DrawFaceRight}{\DrawFlatRight{0}{0}}
+\newcommand{\DrawFaceFront}{\DrawFlatFront{0}{0}}
+\newcommand{\DrawFaceBack}{\DrawFlatBack{0}{0}}
+\newcommand{\DrawFaceUpSide}{\DrawFlatUpSide}
+\newcommand{\DrawFaceDownSide}{\DrawFlatDownSide}
+\newcommand{\DrawFaceLeftSide}{\DrawFlatLeftSide}
+\newcommand{\DrawFaceRightSide}{\DrawFlatRightSide}
+\newcommand{\DrawFaceFrontSide}{\DrawFlatFrontSide}
+\newcommand{\DrawFaceBackSide}{\DrawFlatBackSide}
+%    \end{macrocode}
+%
+%
 %   \subsection{\hspace{3mm}SideBar commands}
 %
 %  SideBar commands draw narrow bars of colour indicating  the 
@@ -3949,7 +5118,7 @@
 % Note that the TikZ \cmd{\pgfmathsetmacro} commands (which do the maths)
 %  must be inside  the TeX sidebar command in order to work.
 % The start point of the TikZ \cmd{\draw} command for  each bar rectangle 
-%    is botton Left corner of the bar =(\cmd{\dx},\cmd{\dy})
+%    is bottom Left corner of the bar =(\cmd{\dx},\cmd{\dy})
 % \end{macro}
 % \end{macro}
 % \end{macro}
@@ -3999,15 +5168,15 @@
 % Right, Top, Middle, Bottom, x, y, as follows:
 % \begin{quote}
 %  X$_1$  is an $x$ parameter: either $\langle L\mid M \mid  R\rangle$
-%  {\newline}X$_2$  is an $y$ parameter: either $\langle T\mid M \mid  B\rangle$
+%  {\newline}X$_2$  is a \, $y$ parameter: either $\langle T\mid M \mid  B\rangle$
 %  {\newline}X$_3$  is an extra parameter: either $\langle x\mid y \rangle$,
 %  required by corner sidebars to indicate whether the sidebar was either 
 %  above or below $\langle y \rangle$, or to the left or 
 %  right $\langle x \rangle$ of the associated  cubie.
 % An $X_3$ parameter is not required for the sidebar of an edge cubie, since 
-% only one location is posible in these cases.
+% only one location is possible in these cases.
 % \end{quote}
-% For example, the following command
+% For~example, the following command
 % \begin{quote}
 %   \cmd{\DrawRubikLayerSideLTy\{G\}}
 % \end{quote}
@@ -4038,7 +5207,7 @@
 %    \end{macrocode}
 %
 %
-%  \subsubsection{\hspace{3mm}Drawing multiple cubie  sidebars}
+%  \subsubsection{\hspace{3mm}Drawing multiple cubie sidebars}
 %
 %    \begin{macro}{\DrawRubikLayerSideT}
 %    \begin{macro}{\DrawRubikLayerSideB}
@@ -4107,7 +5276,66 @@
 %  \end{macro}
 %
 %
+% \subsection{\hspace{3mm}RubikSide commands}
+% \label{sec:rubiksidecode}
 %
+%  \begin{macro}{\RubikSideLeft} 
+%  \begin{macro}{\RubikSideRight} 
+%  \begin{macro}{\RubikSideFront}  
+%  \begin{macro}{\RubikSideBack}  
+%  RubikSide commands allocate colours to the side facelets of the 
+%  UP~face---see Section~\ref{sec:rubikside}.
+%  These facelets are the top three facelets of each side Front, Back, Left, Right.
+%    \begin{macrocode}
+\newcommand{\RubikSideFront}[3]{%
+\def\Flt{#1}\def\Fmt{#2}\def\Frt{#3}% 
+}
+\newcommand{\RubikSideRight}[3]{%
+\def\Rlt{#1}\def\Rmt{#2}\def\Rrt{#3}% 
+}
+\newcommand{\RubikSideLeft}[3]{%
+\def\Llt{#1}\def\Lmt{#2}\def\Lrt{#3}% 
+}
+\newcommand{\RubikSideBack}[3]{%
+\def\Blt{#1}\def\Bmt{#2}\def\Brt{#3}% 
+}
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro} 
+%  \end{macro}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\RubikSideLeftAll} 
+%  \begin{macro}{\RubikSideRightAll} 
+%  \begin{macro}{\RubikSideFrontAll}  
+%  \begin{macro}{\RubikSideBackAll}  
+% These 4 commands allocate the same colour to all 3 cubiesquares in the specified face 
+% (Left, Right, Front, Back).  Each command therefore  takes only  1 argument 
+% (one of the colour codes).
+%
+% {\noindent}For~example, \cmd{\RubikSideUpAll\{R\}}
+%    \begin{macrocode}
+\newcommand{\RubikSideFrontAll}[1]{%
+\def\Flt{#1}\def\Fmt{#1}\def\Frt{#1}% 
+}
+\newcommand{\RubikSideRightAll}[1]{%
+\def\Rlt{#1}\def\Rmt{#1}\def\Rrt{#1}% 
+}
+\newcommand{\RubikSideLeftAll}[1]{%
+\def\Llt{#1}\def\Lmt{#1}\def\Lrt{#1}% 
+}
+\newcommand{\RubikSideBackAll}[1]{%
+\def\Blt{#1}\def\Bmt{#1}\def\Brt{#1}% 
+}
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro} 
+%  \end{macro}
+%  \end{macro}
+%
+%
+%
 %    \subsection{\hspace{3mm}NCube command}
 %
 %  \textsc{history}: The essence of this command was originally developed by Peter Bartal 
@@ -4123,7 +5351,7 @@
 % The command takes four ordered  arguments, as follows:
 % \begin{quote}
 %   \#1 = number of cubies ($n>0$) along each side,
-%   {\newline}\#2, \#3, \#4 = colors of the visible faces (in X,Y,Z order);
+%   {\newline}\#2, \#3, \#4 = colours of the visible faces (in X,Y,Z order);
 %             X=Right face  colour, Y=Up face colour, Z=Front face colour.
 % \end{quote}
 % We use the  \cmd{\pgfmathsetmacro}\marg{variable-name}\marg{numeric value or maths}
@@ -4144,10 +5372,11 @@
 %    \end{macro}
 %
 %   \begin{macro}{\cube at dxdydz}
-% This internal command is  used only by the \cmd{\DrawNCubeAll} command.
-% The original version of this command was developed  by Peter Bartal (see Bartal, 2011).
-% It was modified (2012) by RWD Nickalls (to implement  a more 
-% intuitive X, Y, Z ordering of parameters).
+% This internal command is  used only by the \cmd{\DrawNCubeAll} command 
+% (see above).  The original version of this command was developed  
+% by Peter Bartal (see Bartal, 2011).
+% It was later modified (2012) by RWD Nickalls (to implement  a more 
+% intuitive X, Y, Z ordering of the face colour parameters).
 %
 %  The cube need not be in the origin, the distances of 
 % the \textsc{down}-behind [L] corner from 
@@ -4175,7 +5404,7 @@
 % options to  each of the TikZ  \cmd{\draw} commands, in order to improve 
 % the line joining (first two options); (2) adjusted  the \cmd{\cube at dxdydz} macro 
 % to adopt the ordered  XYZ face colour notation
-% (by reassigning \#2, \#3, \#4).
+% (by reassigning \#2, \#3, \#4  to the X, Y, Z face colours, as shown above).
 %
 %    \begin{macrocode}
 \newcommand{\cube at dxdydz}[7]{%
@@ -4192,7 +5421,7 @@
     \draw[line join=round,line cap=round,ultra thick,fill=#4]%
  (#5,#6,\dz) -- (\dx,#6,\dz) -- (\dx,\dy,\dz) -- (#5,\dy,\dz) -- cycle;
 %% The 'rectangle' command does not work with 3D coordinates, 
-%% so this is the way to draw the squres with space coordinates
+%% so this is the way to draw the squares with space coordinates
 %% Draw UP face (using the Y colour = #3)
    \draw[line join=round,line cap=round,ultra thick,fill=#3]%
  (#5,\dy,\dz) -- (\dx,\dy,\dz) -- (\dx,\dy,#7) -- (#5,\dy,#7) -- cycle;
@@ -4214,10 +5443,10 @@
 %  (adjust \texttt{cy}) and horizontal viewpoint  (adjust \texttt{cx})
 %  of a single cubie (described in more detail in the \rubikcube\ 
 %   package  documentation).
-%  Note that we cannot use the names \texttt{dx}, \texttt{dy} for variables since 
-%  these have been  allocated already (see above). However, we do use 
-%  \texttt{dx}, \texttt{dy} in the  command names  as these will be more 
-%  readily understood by the user.
+%  Note that we cannot use the names \texttt{dx}, \texttt{dy} for the 
+%  variables here since  these names have been  allocated already 
+%  (see above). However, we can  use  \texttt{dx}, \texttt{dy} in the  
+%  command names  as these will be more  readily understood by the user.
 %    \begin{macrocode}
 \newcommand{\Cubiedx}[1]{\pgfmathsetmacro{\cx}{#1}}
 \newcommand{\Cubiedy}[1]{\pgfmathsetmacro{\cy}{#1}}
@@ -4307,8 +5536,8 @@
 %
 %  As before, the viewpoint is specified using an appended 
 % two-letter XY ordered viewpoint code: either RU, RD, LU, LD.
-% These commands take three arguments, namely three different XYZ 
-% ordered colour codes (R,O,Y,G,B,W,X).
+% These commands take three arguments (since just three faces are visible with this 
+% cube format), namely three different XYZ  ordered colour codes (R,O,Y,G,B,W,X).
 % \newline\textsc{format}: \cmd{\textCubieRU}\marg{Xcolour}\marg{Ycolour}\marg{Zcolour}
 % \newline\textsc{usage}: |\textCubieRU{G}{B}{W}|
 %    \end{macro}
@@ -4361,27 +5590,50 @@
 %
 %  \subsubsection{\hspace{3mm}Introduction}
 %
-%  We use a special prefix notation to denote each of four different repreresentations 
-% of the  various  Rubik cube rotations as follows: the name of the rotation (rr), its 
+%  We use a special prefix notation to denote each of four different representations 
+% of the  various  Rubik cube rotations as follows: the name of the Rubik rotation (rr), its 
 % associated hieroglyph (rrh), and combinations of name and hieroglyph both vertical (Rubik)
 % and horizontal (textRubik). A rotation command is a combination of a rotation-code appended 
 % to one of the four prefixes.
 %
-%  For example, the command \cmd{\rrhD}  generates the hieroglyph (rrh) associated with 
+%  For~example, the command \cmd{\rrhD}  generates the hieroglyph (rrh) associated with 
 % the rotation-code D. In this form it is used internally, but it is also available for the user.
-% However, it is also made available to the user in the more  intuitive form
-% |\rrh{D}| by the use of the internal macro |\@join| (see Sections~\ref{sec:cmdsusingjoin} 
-% and \ref{sec:usefulinternalcommands}).
+%
+% In version~3.0, however, all the rotation commands were also made available to the user 
+% in the much more  intuitive form  stem\{argument\} form, for~example,  
+% |\rrh{D}|. In practice, this `argument' form actually generates the original non-argument 
+% form by the use of the internal macro |\@join|. 
+% For example, \verb!\rrh{D}! $\rightarrow$ join(\verb!\rrh! + \verb!D!) $\rightarrow$ \verb!\rrhD! 
+% (see Sections~\ref{sec:cmdsusingjoin} for details).
 % 
-% The square hieroglyphs are built up in stages. We first create an internal 
-% command  for drawing the square (\cmd{\DrawNotationBox}), and then draw the 
-% contents (lines, arrows, arcs of circles, and sometimes just text).
-% (for the TikZ  ARC command see  TikZ pgfmanual (2012)  page~146 (\S 14.8)).
+% The hieroglyphs are of two types: `arrow' glyphs (all exactly square),
+%  and `letter' glyphs  (mostly square, but many are rectangular); however both 
+% types are  made to have the same  height so they sit nicely when arranged side-by-side. 
+% A lot of special macros for handling and generating these glyphs are described below
+%  in Section~\ref{sec:usefulinternalcommands} (and also in Section~\ref{sec:codedrawnotationbox}).
 %
+% The `arrow'  hieroglyphs are built up in stages using TikZ. We first create a 
+% command  for drawing the square (\cmd{\DrawNotationBox}; 
+% see Section~\ref{sec:codedrawnotationbox}) and then draw the 
+% contents (lines, arrows, arcs of circles). For an example, 
+% see the D~form \rrh{D}\ constructed in  Section~\ref{sec:coderotationD}.
+%
+% The `letter' hieroglyphs (glyphs for which the rotations cannot be seen from the front, 
+% and  hence cannot have arrows) just give a letter representation of the rotation 
+% (say, Bw for `back wide'). These glyphs are therefore made using  an fbox (for convenience),
+%  and therefore these are sometimes not square. Some vertical fine-tuning using  
+% the \verb!\raisebox!  command is often required to force these  `letter' glyphs to
+% have the same vertical position as their  `arrow' cousins. For an example, 
+% see the form \rrh{Bw}\ constructed Section~\ref{sec:coderotationBw}).
+%
 %  The presence of small overfilled \cmd{\hbox}es associated with these squares
 % were originally checked using the \texttt{ltugboat.cls}, and all fixed mainly
 % by setting the associated  minipages $\rightarrow$ width = 0.6cm, 
 %  and using TikZ scale=0.5.
+%
+%
+%   \subsubsection{\hspace{3mm}DrawNotationBox}
+%  \label{sec:codedrawnotationbox}
 % 
 %
 %   \begin{macro}{\DrawNotationBox}
@@ -4389,7 +5641,7 @@
 % Note that we start at (0,0) and draw to the final point 
 % in order to make a nice corner join.
 %
-% TODO: ? make this a proper internal command 
+% todo: ? make this a proper internal command 
 % using \verb!@! sometime.
 %
 %   \begin{macrocode}
@@ -4403,10 +5655,11 @@
 % (e.g.,~\cmd{\@sd}, \cmd{\@sh} \ldots\ etc.) which will be required
 % for use in drawing the various lines and arrows.
 % Some hieroglyphs contain either one circular arc, or two concentric arcs, 
-% and these arcs require both a center and a start point. 
+% and these arcs require both a centre and a start point. 
 % Note that the final argument does not use any units.
+% For the TikZ  ARC command see  TikZ pgfmanual (2012)  page~146 (\S 14.8).
 %
-% TODO: make a small  diagram to illustrate the position of these 
+% todo: make a small  diagram to illustrate the position of these 
 % parameters and make things a  bit clearer sometime.
 % 
 %\begin{macrocode}
@@ -4422,12 +5675,137 @@
 \pgfmathsetmacro{\@sqcy}{\@scy+0.25} %% SQuare CenterY cpprd
 %    \end{macrocode}
 %
-%  All the \verb!@! internal commands used in the following  commands 
-% and macros are described in Section~\ref{sec:usefulinternalcommands}.
 %
 %
 %
-%  \subsubsection{\hspace{3mm}Using {\textbackslash}\texttt{join}}
+%   \subsubsection{\hspace{3mm}Some useful internal commands}
+%  \label{sec:usefulinternalcommands}
+%
+%  \begin{macro}{\@rr} 
+%  \begin{macro}{\@rrp}
+%  \begin{macro}{\@rrw} 
+%  \begin{macro}{\@rrwp} 
+%  \begin{macro}{\@rrs} 
+%  \begin{macro}{\@rrsp}
+%  \begin{macro}{\@rra} 
+%  \begin{macro}{\@rrap} 
+%  \begin{macro}{\@xyzh} 
+%  \begin{macro}{\@xyzhp} 
+%  \begin{macro}{\@xyzRubik} 
+%  \begin{macro}{\@xyzRubikp} 
+%  \begin{macro}{\@SquareLetter} 
+%  \begin{macro}{\@hRubik} 
+%  These internal commands are used to generate the
+% prime, w, w-prime, s, s-prime, a, a-prime   
+% rotation commands. The \cmd{\@xyz..} commands are used to generate the 
+% x, y, z, u, d, l, r, f, b commands and their associated prime rotation commands.
+% The \cmd{\@SquareLetter} command is used to form the separate square hieroglyph  form
+% used for rotations with no visible representation from the front 
+% (e.g.,~B.., Fs, Fsp, Fa, Fap, S, Sp, Sf, Sfp, Sb, Sbp).
+% The \cmd{\@hRubik} is the vertical shift  used  to raise the box carrying the rotation 
+% rotation-code in \cmd{\Rubik..} commands not visible from the front.
+%
+% The commands \verb!\@xyzhbdfl! and  \verb!\@xyzbdflRubik! relate to the 
+% axis rotations denoted as  b, d, f, l; since these four letters have long upstrokes
+% they require special fine-tuning for vertical position.
+%  
+%  The idea is that by using these internal
+% tools taking parameters we are able to more easily standardise the size 
+% and position of all the various glyphs. For details of the 
+% rubikfont and rubikprime see Section~\ref{sec:coderubikfont}).
+%
+% Note that the TikZ `thick' line code = 0.8pt (used in \cmd{\@SquareLetter}).
+%
+% \begin{macrocode}
+\newcommand{\@rr}[1]{{\@rubikfont #1}}
+\newcommand{\@rrp}[1]{{\@rubikfont #1\@rubikprime}}
+\newcommand{\@rrw}[1]{{\@rubikfont #1{\@rubikfontFNS w}}}
+\newcommand{\@rrwp}[1]{{\@rubikfont #1{\@rubikfontFNS w}\@rubikprime}}
+\newcommand{\@rrs}[1]{{\@rubikfont #1{\@rubikfontFNS s}}}
+\newcommand{\@rrsp}[1]{{\@rubikfont #1{\@rubikfontFNS s}\@rubikprime}}
+\newcommand{\@rra}[1]{{\@rubikfont #1{\@rubikfontFNS a}}}
+\newcommand{\@rrap}[1]{{\@rubikfont #1{\@rubikfontFNS a}\@rubikprime}}
+\newcommand{\@rru}[1]{{\@rubikfont #1{\@rubikfontFNS u}}}
+\newcommand{\@rrup}[1]{{\@rubikfont #1{\@rubikfontFNS u}\@rubikprime}}
+\newcommand{\@rrd}[1]{{\@rubikfont #1{\@rubikfontFNS d}}}
+\newcommand{\@rrdp}[1]{{\@rubikfont #1{\@rubikfontFNS d}\@rubikprime}}
+\newcommand{\@rrl}[1]{{\@rubikfont #1{\@rubikfontFNS l}}}
+\newcommand{\@rrlp}[1]{{\@rubikfont #1{\@rubikfontFNS l}\@rubikprime}}
+\newcommand{\@rrr}[1]{{\@rubikfont #1{\@rubikfontFNS r}}}
+\newcommand{\@rrrp}[1]{{\@rubikfont #1{\@rubikfontFNS r}\@rubikprime}}
+\newcommand{\@rrf}[1]{{\@rubikfont #1{\@rubikfontFNS f}}}
+\newcommand{\@rrfp}[1]{{\@rubikfont #1{\@rubikfontFNS f}\@rubikprime}}
+\newcommand{\@rrb}[1]{{\@rubikfont #1{\@rubikfontFNS b}}}
+\newcommand{\@rrbp}[1]{{\@rubikfont #1{\@rubikfontFNS b}\@rubikprime}}
+\newcommand{\@rrc}[1]{{\@rubikfont #1{\@rubikfontFNS c}}}
+\newcommand{\@rrcp}[1]{{\@rubikfont #1{\@rubikfontFNS c}\@rubikprime}}
+\newcommand{\@rrm}[1]{{\@rubikfont #1{\@rubikfontFNS m}}}
+\newcommand{\@rrmp}[1]{{\@rubikfont #1{\@rubikfontFNS m}\@rubikprime}}
+\newcommand{\@xyzh}[1]{[{\@rubikfont #1}]}    
+\newcommand{\@xyzhp}[1]{[{\@rubikfont #1\@rubikprime}]}
+\newcommand{\@xyzRubik}[1]{\raisebox{3.45pt}{[{\@rubikfont #1}]}}   
+\newcommand{\@xyzRubikp}[1]{\raisebox{3.45pt}{[{\@rubikfont #1\@rubikprime}]}} 
+\newcommand{\@xyzhbdfl}[1]{[\raisebox{-0.6pt}{{\@rubikfont #1}}]}
+\newcommand{\@xyzbdflRubik}[1]{\raisebox{3.45pt}{[\raisebox{-0.6pt}{{\@rubikfont #1}}]}}
+\newcommand{\@SquareLetter}[1]{\setlength{\fboxsep}{2.5pt}%
+  \setlength{\fboxrule}{0.8pt}%
+  \fbox{\rule[-1pt]{0pt}{8.5pt}\raisebox{-0.5pt}{#1}}}
+\newlength\@hRubik%
+\setlength{\@hRubik}{0.185cm}%
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
+%
+%
+%
+%   \begin{macro}{\@tlen}
+% Feb 2017 (RWDN): \ We also  need to define a small length for fine-tuning the default
+%  horizontal space between  a pair of `letter' hieroglyphs, eg~B (i.e.,~when no 
+% additional space has been added by the user), so that this matches that between a pair of 
+% `arrow' hieroglyphs. This length is inserted on both sides of the square frame. 
+%  This length is used in two settings: (a)~in `letter' hieroglyphs (for an example, 
+% see the definition of the macro \cmd{\SquareB} in Section~\ref{sec:coderotationB}), 
+% and in (b)~in `arrow' hieroglyphs (for an example, 
+% see the definition of the macro \cmd{\rrhD} in Section~\ref{sec:coderotationD}).
+%
+%\begin{macrocode}
+\newcommand{\@tlen}{\hspace{1pt}}%
+%    \end{macrocode}
+%    \end{macro}
+%
+%
+%
+%  \begin{macro}{\@join} 
+%  We also require a macro for joining two strings  so we can convert
+%  a rotation-code, say U,  into a macro which typesets it in some form, say \cmd{\rrhU}.
+%  The following \cmd{\@join\{\}\{\}} command is by Christian Tellechea (many thanks\,!).
+%  {\newline}\textsc{usage}: \cmd{\@join\marg{command-stem}\marg{rotation-code}}. For~example, 
+%  to create the command \cmd{\rrhU} we would write |\@join{\rrh}{U}|, and hence 
+%  the command |\rrh{U}| is equivalent to \cmd{\rrhU} (see Section~\ref{sec:cmdsusingjoin}).
+%  {\newline}Since this macro is also useful for processing rotation-codes in a  list, 
+%  which may also include macros, it is important that |#2| is not detokenized.
+% \begin{macrocode}
+\newcommand*\@join[2]{%
+    \csname\expandafter\@gobble\string#1#2\endcsname}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%  \subsubsection{\hspace{3mm}Using {\textbackslash}\texttt{@join}}
 %  \label{sec:cmdsusingjoin}
 %
 %   \begin{macro}{\textRubik}
@@ -4434,11 +5812,11 @@
 %   \begin{macro}{\Rubik}
 %   \begin{macro}{\rr}
 %   \begin{macro}{\rrh}
-%  The following four commands typeset a single rotation, where the rotation-code (eg~U) is 
+%  The following four commands typeset a single rotation, where the rotation-code (e.g.,~U) is 
 % the argument (see Section~\ref{sec:overview}). As an example, the format for 
 %  the \cmd{\rrh\{\}} command is
 % \cmd{\rrh}\marg{rotation-code}. In practice, these four commands are really a 
-% sort of front-end for all the commands which follow this section. For example, the 
+% sort of front-end for all the commands which follow this section. For~example, the 
 % command \cmd{\rrh\{U\}} generates the command \cmd{\rrhU} which itself typesets the 
 % rotation hieroglyph for the rotation~U, etc. 
 %
@@ -4461,6 +5839,7 @@
 %
 %
 %  \subsubsection{\hspace{3mm}Rotation B}
+%    \label{sec:coderotationB}
 %
 %  \begin{macro}{\rrB}
 %  \begin{macro}{\SquareB}
@@ -4469,12 +5848,20 @@
 %  \begin{macro}{\textRubikB}
 %  These commands  all draw forms which denote the B (\textsc{back}-face) rotation.
 %  Not visible from the front.
+%
+%  Feb 2017 (RWDN): added the \cmd{\@tlen} length (= 1pt; defined above) to the 
+%  \cmd{\SquareB} command, and removed  the terminal \cmd{\,} space 
+%  from the rrhB, RubikB, textRubikB commands, and copied
+%  this action with all the subsequent Letter hieroglyphs (e.g.,~B, Bw,..).
+%  These minor changes were to improve the spacing between two Letter hieroglyphs, 
+%  and make it match that between two square  `arrow' hieroglyphs.
+%  The same changes were made to all the `letter' hieroglyphs.
 % \begin{macrocode}
 \newcommand{\rrB}{\@rr{B}}
-\newcommand{\SquareB}{\@SquareLetter{\rrB}}
-\newcommand{\rrhB}{\raisebox{-0.25mm}{\SquareB}\,}
-\newcommand{\RubikB}{\raisebox{\@hRubik}{\SquareB}\,}
-\newcommand{\textRubikB}{\rrhB\,}
+\newcommand{\SquareB}{\@tlen\@SquareLetter{\rrB}\@tlen}
+\newcommand{\rrhB}{\raisebox{-0.25mm}{\SquareB}}
+\newcommand{\RubikB}{\raisebox{\@hRubik}{\SquareB}}
+\newcommand{\textRubikB}{\rrhB}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -4494,10 +5881,10 @@
 %  Not visible from the front.
 % \begin{macrocode}
 \newcommand{\rrBp}{\@rrp{B}}
-\newcommand{\SquareBp}{\@SquareLetter{\rrBp}}
-\newcommand{\rrhBp}{\raisebox{-0.25mm}{\SquareBp}\,}
-\newcommand{\RubikBp}{\raisebox{\@hRubik}{\SquareBp}\,}
-\newcommand{\textRubikBp}{\rrhBp\,}
+\newcommand{\SquareBp}{\@tlen\@SquareLetter{\rrBp}\@tlen}
+\newcommand{\rrhBp}{\raisebox{-0.25mm}{\SquareBp}}
+\newcommand{\RubikBp}{\raisebox{\@hRubik}{\SquareBp}}
+\newcommand{\textRubikBp}{\rrhBp}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -4507,6 +5894,7 @@
 %
 %
 %  \subsubsection{\hspace{3mm}Rotation Bw}
+%  \label{sec:coderotationBw}
 %
 %  \begin{macro}{\rrBw}
 %  \begin{macro}{\SquareBw}
@@ -4516,12 +5904,11 @@
 %  These commands  all draw forms which denote the Bw rotation.
 %  Not visible from the front.
 % \begin{macrocode}
-%\newcommand{\rrBw}{\textbf{\textsf{Bw}}}
 \newcommand{\rrBw}{\@rrw{B}}
-\newcommand{\SquareBw}{\@SquareLetter{\rrBw}}
-\newcommand{\rrhBw}{\raisebox{-0.25mm}{\SquareBw}\,}
-\newcommand{\RubikBw}{\raisebox{\@hRubik}{\SquareBw}\,}
-\newcommand{\textRubikBw}{\rrhBw\,}
+\newcommand{\SquareBw}{\@tlen\@SquareLetter{\rrBw}\@tlen}
+\newcommand{\rrhBw}{\raisebox{-0.25mm}{\SquareBw}}
+\newcommand{\RubikBw}{\raisebox{\@hRubik}{\SquareBw}}
+\newcommand{\textRubikBw}{\rrhBw}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -4540,12 +5927,11 @@
 %  These commands  all draw forms which denote the Bwp rotation.
 % Not visible from the front.
 % \begin{macrocode}
-%\newcommand{\rrBwp}{\textbf{\textsf{Bwp}}}
 \newcommand{\rrBwp}{\@rrwp{B}}
-\newcommand{\SquareBwp}{\@SquareLetter{\rrBwp}}
-\newcommand{\rrhBwp}{\raisebox{-0.25mm}{\SquareBwp}\,}
-\newcommand{\RubikBwp}{\raisebox{\@hRubik}{\SquareBwp}\,}
-\newcommand{\textRubikBwp}{\rrhBwp\,}
+\newcommand{\SquareBwp}{\@tlen\@SquareLetter{\rrBwp}\@tlen}
+\newcommand{\rrhBwp}{\raisebox{-0.25mm}{\SquareBwp}}
+\newcommand{\RubikBwp}{\raisebox{\@hRubik}{\SquareBwp}}
+\newcommand{\textRubikBwp}{\rrhBwp}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -4564,12 +5950,11 @@
 %  These commands  all draw forms which denote the Bs rotation.
 %  Not visible from the front.
 % \begin{macrocode}
-%\newcommand{\rrBs}{\textbf{\textsf{Bs}}}
 \newcommand{\rrBs}{\@rrs{B}}
-\newcommand{\SquareBs}{\@SquareLetter{\rrBs}}
-\newcommand{\rrhBs}{\raisebox{-0.25mm}{\SquareBs}\,}
-\newcommand{\RubikBs}{\raisebox{\@hRubik}{\SquareBs}\,}
-\newcommand{\textRubikBs}{\rrhBs\,}
+\newcommand{\SquareBs}{\@tlen\@SquareLetter{\rrBs}\@tlen}
+\newcommand{\rrhBs}{\raisebox{-0.25mm}{\SquareBs}}
+\newcommand{\RubikBs}{\raisebox{\@hRubik}{\SquareBs}}
+\newcommand{\textRubikBs}{\rrhBs}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -4588,12 +5973,11 @@
 %  These commands  all draw forms which denote the Bsp rotation.
 %  Not visible from the front.
 % \begin{macrocode}
-%\newcommand{\rrBsp}{\textbf{\textsf{Bsp}}}
 \newcommand{\rrBsp}{\@rrsp{B}}
-\newcommand{\SquareBsp}{\@SquareLetter{\rrBsp}}
-\newcommand{\rrhBsp}{\raisebox{-0.25mm}{\SquareBsp}\,}
-\newcommand{\RubikBsp}{\raisebox{\@hRubik}{\SquareBsp}\,}
-\newcommand{\textRubikBsp}{\rrhBsp\,}
+\newcommand{\SquareBsp}{\@tlen\@SquareLetter{\rrBsp}\@tlen}
+\newcommand{\rrhBsp}{\raisebox{-0.25mm}{\SquareBsp}}
+\newcommand{\RubikBsp}{\raisebox{\@hRubik}{\SquareBsp}}
+\newcommand{\textRubikBsp}{\rrhBsp}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -4612,12 +5996,11 @@
 %  These commands  all draw forms which denote the Ba rotation.
 % Not visible from the front.
 % \begin{macrocode}
-%\newcommand{\rrBa}{\textbf{\textsf{Ba}}}
 \newcommand{\rrBa}{\@rra{B}}
-\newcommand{\SquareBa}{\@SquareLetter{\rrBa}}
-\newcommand{\rrhBa}{\raisebox{-0.25mm}{\SquareBa}\,}
-\newcommand{\RubikBa}{\raisebox{\@hRubik}{\SquareBa}\,}
-\newcommand{\textRubikBa}{\rrhBa\,}
+\newcommand{\SquareBa}{\@tlen\@SquareLetter{\rrBa}\@tlen}
+\newcommand{\rrhBa}{\raisebox{-0.25mm}{\SquareBa}}
+\newcommand{\RubikBa}{\raisebox{\@hRubik}{\SquareBa}}
+\newcommand{\textRubikBa}{\rrhBa}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -4636,12 +6019,11 @@
 %  These commands  all draw forms which denote the Bap rotation.
 % Not visible from the front.
 % \begin{macrocode}
-%\newcommand{\rrBap}{\textbf{\textsf{Bap}}}
 \newcommand{\rrBap}{\@rrap{B}}
-\newcommand{\SquareBap}{\@SquareLetter{\rrBap}}
-\newcommand{\rrhBap}{\raisebox{-0.25mm}{\SquareBap}\,}
-\newcommand{\RubikBap}{\raisebox{\@hRubik}{\SquareBap}\,}
-\newcommand{\textRubikBap}{\rrhBap\,}
+\newcommand{\SquareBap}{\@tlen\@SquareLetter{\rrBap}\@tlen}
+\newcommand{\rrhBap}{\raisebox{-0.25mm}{\SquareBap}}
+\newcommand{\RubikBap}{\raisebox{\@hRubik}{\SquareBap}}
+\newcommand{\textRubikBap}{\rrhBap}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -4651,6 +6033,7 @@
 %
 %
 %  \subsubsection{\hspace{3mm}Rotation D}
+%   \label{sec:coderotationD}
 %
 %  \begin{macro}{\rrD}
 %  \begin{macro}{\SquareD}
@@ -4658,8 +6041,12 @@
 %  \begin{macro}{\RubikD}
 %  \begin{macro}{\textRubikD}
 %  These commands  all draw forms which denote the D rotation.
+%
+%  Feb 2017 (RWDN): \ added the  \cmd{\@tlen} length to the \cmd{\rrhD} command to improve the 
+%  spacing between two `arrow' square hieroglyphs; and also removed the terminal \cmd{\,}
+%  space. The same changes were made to all the `arrow' hieroglyphs.
 % \begin{macrocode}
-\newcommand{\rrD}{\textbf{\textsf{D}}}
+\newcommand{\rrD}{\@rr{D}}
 %%
 \newcommand{\SquareD}{%
 \begin{tikzpicture}[scale=0.5]
@@ -4669,15 +6056,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhD}{\raisebox{-0.333\height}{\SquareD}\,}
+\newcommand{\rrhD}{\raisebox{-0.333\height}{\@tlen\SquareD\@tlen}}
 %%
 \newcommand{\RubikD}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareD\\
-\rrD
+\rrD%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikD}{\rrD\,\rrhD}
 %    \end{macrocode}
 %    \end{macro}
@@ -4696,7 +6084,7 @@
 %  \begin{macro}{\textRubikDp}
 %  These commands  all draw forms which denote the Dp rotation.
 % \begin{macrocode}
-\newcommand{\rrDp}{\textbf{\textsf{D}$^\prime$}}
+\newcommand{\rrDp}{\@rrp{D}}
 %%
 \newcommand{\SquareDp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -4706,15 +6094,16 @@
 \draw [thick, <-] (\@sb,\@sd)   -- (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDp}{\raisebox{-0.333\height}{\SquareDp}\,}
+\newcommand{\rrhDp}{\raisebox{-0.333\height}{\@tlen\SquareDp\@tlen}}
 %%
 \newcommand{\RubikDp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDp\\
-\rrDp
+\rrDp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDp}{\rrDp\,\rrhDp}
 %    \end{macrocode}
 %    \end{macro}
@@ -4733,7 +6122,7 @@
 %  \begin{macro}{\textRubikDw}
 %  These commands  all draw forms which denote the Dw rotation.
 % \begin{macrocode}
-\newcommand{\rrDw}{\textbf{\textsf{D\footnotesize{w}}}}
+\newcommand{\rrDw}{\@rrw{D}}
 %%
 \newcommand{\SquareDw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -4743,15 +6132,16 @@
 \draw [thick, ->] (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDw}{\raisebox{-0.333\height}{\SquareDw}\,}
+\newcommand{\rrhDw}{\raisebox{-0.333\height}{\@tlen\SquareDw\@tlen}}
 %%
 \newcommand{\RubikDw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDw\\
-\rrDw
+\rrDw%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDw}{\rrDw\,\rrhDw}
 %    \end{macrocode}
 %    \end{macro}
@@ -4770,7 +6160,7 @@
 %  \begin{macro}{\textRubikDwp}
 %  These commands  all draw forms which denote the Dwp rotation.
 % \begin{macrocode}
-\newcommand{\rrDwp}{\textbf{\textsf{D\footnotesize{w}}$^\prime$}}
+\newcommand{\rrDwp}{\@rrwp{D}}
 %%
 \newcommand{\SquareDwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -4780,15 +6170,16 @@
 \draw [thick, <-] (\@sb,\@sd)   -- (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDwp}{\raisebox{-0.333\height}{\SquareDwp}\,}
+\newcommand{\rrhDwp}{\raisebox{-0.333\height}{\@tlen\SquareDwp\@tlen}}
 %%
 \newcommand{\RubikDwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDwp\\
-\rrDwp
+\rrDwp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDwp}{\rrDwp\,\rrhDwp}
 %    \end{macrocode}
 %    \end{macro}
@@ -4817,15 +6208,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDs}{\raisebox{-0.333\height}{\SquareDs}\,}
+\newcommand{\rrhDs}{\raisebox{-0.333\height}{\@tlen\SquareDs\@tlen}}
 %%
 \newcommand{\RubikDs}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDs\\
-\rrDs
+\rrDs%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDs}{\rrDs\,\rrhDs}
 %    \end{macrocode}
 %    \end{macro}
@@ -4854,15 +6246,16 @@
 \draw [thick, <-]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDsp}{\raisebox{-0.333\height}{\SquareDsp}\,}
+\newcommand{\rrhDsp}{\raisebox{-0.333\height}{\@tlen\SquareDsp\@tlen}}
 %%
 \newcommand{\RubikDsp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDsp\\
-\rrDsp
+\rrDsp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDsp}{\rrDsp\,\rrhDsp}
 %    \end{macrocode}
 %    \end{macro}
@@ -4891,15 +6284,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDa}{\raisebox{-0.333\height}{\SquareDa}\,}
+\newcommand{\rrhDa}{\raisebox{-0.333\height}{\@tlen\SquareDa\@tlen}}
 %%
 \newcommand{\RubikDa}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDa\\
-\rrDa
+\rrDa%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDa}{\rrDa\,\rrhDa}
 %    \end{macrocode}
 %    \end{macro}
@@ -4928,15 +6322,16 @@
 \draw [thick, <-]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDap}{\raisebox{-0.333\height}{\SquareDap}\,}
+\newcommand{\rrhDap}{\raisebox{-0.333\height}{\@tlen\SquareDap\@tlen}}
 %%
 \newcommand{\RubikDap}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDap\\
-\rrDap
+\rrDap%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDap}{\rrDap\,\rrhDap}
 %    \end{macrocode}
 %    \end{macro}
@@ -4955,7 +6350,7 @@
 %  \begin{macro}{\textRubikE}
 %  These commands  all draw forms which denote the E rotation.
 % \begin{macrocode}
-\newcommand{\rrE}{\textbf{\textsf{E}}}
+\newcommand{\rrE}{\@rr{E}}
 %%
 \newcommand{\SquareE}{%
 \begin{tikzpicture}[scale=0.5]
@@ -4965,15 +6360,16 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhE}{\raisebox{-0.333\height}{\SquareE}\,}
+\newcommand{\rrhE}{\raisebox{-0.333\height}{\@tlen\SquareE\@tlen}}
 %%
 \newcommand{\RubikE}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareE\\
-\rrE
+\rrE%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikE}{\rrE\,\rrhE}
 %    \end{macrocode}
 %    \end{macro}
@@ -4992,7 +6388,7 @@
 %  \begin{macro}{\textRubikEp}
 %  These commands  all draw forms which denote the Ep rotation.
 % \begin{macrocode}
-\newcommand{\rrEp}{\textbf{\textsf{E}$^\prime$}}
+\newcommand{\rrEp}{\@rrp{E}}
 %%
 \newcommand{\SquareEp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5002,15 +6398,16 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhEp}{\raisebox{-0.333\height}{\SquareEp}\,}
+\newcommand{\rrhEp}{\raisebox{-0.333\height}{\@tlen\SquareEp\@tlen}}
 %%
 \newcommand{\RubikEp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareEp\\
-\rrEp
+\rrEp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikEp}{\rrEp\,\rrhEp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5029,7 +6426,7 @@
 %  \begin{macro}{\textRubikF}
 %  These commands  all draw forms which denote the F rotation.
 %  \begin{macrocode}
-\newcommand{\rrF}{\textbf{\textsf{F}}}
+\newcommand{\rrF}{\@rr{F}}
 %%
 \newcommand{\SquareF}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5037,15 +6434,16 @@
 \draw [thick, <-] (\@scx, \@scy) arc[radius=0.35, start angle=-60, delta angle=290];
 \end{tikzpicture}%
 }
-\newcommand{\rrhF}{\raisebox{-0.333\height}{\SquareF}\,}
+\newcommand{\rrhF}{\raisebox{-0.333\height}{\@tlen\SquareF\@tlen}}
 %%
 \newcommand{\RubikF}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareF\\
-\rrF
+\rrF%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikF}{\rrF\,\rrhF}
 %    \end{macrocode}
 %    \end{macro}
@@ -5064,7 +6462,7 @@
 %  \begin{macro}{\textRubikFp}
 %  These commands  all draw forms which denote the Fp rotation.
 % \begin{macrocode}
-\newcommand{\rrFp}{\textbf{\textsf{F}$^\prime$}}
+\newcommand{\rrFp}{\@rrp{F}}
 %%
 \newcommand{\SquareFp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5072,15 +6470,16 @@
 \draw [thick, ->] (\@scx, \@scy) arc[radius=0.35, start angle=-60, delta angle=290];
 \end{tikzpicture}%
 }
-\newcommand{\rrhFp}{\raisebox{-0.333\height}{\SquareFp}\,}
+\newcommand{\rrhFp}{\raisebox{-0.333\height}{\@tlen\SquareFp\@tlen}}
 %%
 \newcommand{\RubikFp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareFp\\
-\rrFp
+\rrFp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikFp}{\rrFp\,\rrhFp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5099,7 +6498,7 @@
 %  \begin{macro}{\textRubikFw}
 %  These commands  all draw forms which denote the Fw rotation.
 % \begin{macrocode}
-\newcommand{\rrFw}{\textbf{\textsf{F\footnotesize{w}}}}
+\newcommand{\rrFw}{\@rrw{F}}
 %%
 \newcommand{\SquareFw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5109,15 +6508,16 @@
 %\node (squareLab) at (0.5,0.5)  {$o$};
 \end{tikzpicture}%
 }
-\newcommand{\rrhFw}{\raisebox{-0.333\height}{\SquareFw}\,}
+\newcommand{\rrhFw}{\raisebox{-0.333\height}{\@tlen\SquareFw\@tlen}}
 %%
 \newcommand{\RubikFw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareFw\\
-\rrFw
+\rrFw%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikFw}{\rrFw\,\rrhFw}
 %    \end{macrocode}
 %    \end{macro}
@@ -5136,7 +6536,7 @@
 %  \begin{macro}{\textRubikFwp}
 %  These commands  all draw forms which denote the Fwp rotation.
 % \begin{macrocode}
-\newcommand{\rrFwp}{\textbf{\textsf{F\footnotesize{w}}$^\prime$}}
+\newcommand{\rrFwp}{\@rrwp{F}}
 %%
 \newcommand{\SquareFwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5145,15 +6545,16 @@
 \draw [thick] (\@sqcx,\@sqcy) arc[radius=0.1, start angle=-60, delta angle=360];
 \end{tikzpicture}%
 }
-\newcommand{\rrhFwp}{\raisebox{-0.333\height}{\SquareFwp}\,}
+\newcommand{\rrhFwp}{\raisebox{-0.333\height}{\@tlen\SquareFwp\@tlen}}
 %%
 \newcommand{\RubikFwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareFwp\\
-\rrFwp
+\rrFwp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikFwp}{\rrFwp\,\rrhFwp}
 %%
 %    \end{macrocode}
@@ -5179,10 +6580,10 @@
 %  Not visible from the front.
 % \begin{macrocode}
 \newcommand{\rrFs}{\@rrs{F}}
-\newcommand{\SquareFs}{\@SquareLetter{\rrFs}} 
-\newcommand{\rrhFs}{\raisebox{-0.25mm}{\SquareFs}\,}
-\newcommand{\RubikFs}{\raisebox{\@hRubik}{\SquareFs}\,}
-\newcommand{\textRubikFs}{\rrhFs\,}
+\newcommand{\SquareFs}{\@tlen\@SquareLetter{\rrFs}\@tlen} 
+\newcommand{\rrhFs}{\raisebox{-0.25mm}{\SquareFs}}
+\newcommand{\RubikFs}{\raisebox{\@hRubik}{\SquareFs}}
+\newcommand{\textRubikFs}{\rrhFs}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -5205,10 +6606,10 @@
 %  Not visible from the front.
 % \begin{macrocode}
 \newcommand{\rrFsp}{\@rrsp{F}}
-\newcommand{\SquareFsp}{\@SquareLetter{\rrFsp}}
-\newcommand{\rrhFsp}{\raisebox{-0.25mm}{\SquareFsp}\,}
-\newcommand{\RubikFsp}{\raisebox{\@hRubik}{\SquareFsp}\,}
-\newcommand{\textRubikFsp}{\rrhFsp\,}
+\newcommand{\SquareFsp}{\@tlen\@SquareLetter{\rrFsp}\@tlen}
+\newcommand{\rrhFsp}{\raisebox{-0.25mm}{\SquareFsp}}
+\newcommand{\RubikFsp}{\raisebox{\@hRubik}{\SquareFsp}}
+\newcommand{\textRubikFsp}{\rrhFsp}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -5231,10 +6632,10 @@
 %  Not visible from the front.
 % \begin{macrocode}
 \newcommand{\rrFa}{\@rra{F}}
-\newcommand{\SquareFa}{\@SquareLetter{\rrFa}}
-\newcommand{\rrhFa}{\raisebox{-0.25mm}{\SquareFa}\,}
-\newcommand{\RubikFa}{\raisebox{\@hRubik}{\SquareFa}\,}
-\newcommand{\textRubikFa}{\rrhFa\,}
+\newcommand{\SquareFa}{\@tlen\@SquareLetter{\rrFa}\@tlen}
+\newcommand{\rrhFa}{\raisebox{-0.25mm}{\SquareFa}}
+\newcommand{\RubikFa}{\raisebox{\@hRubik}{\SquareFa}}
+\newcommand{\textRubikFa}{\rrhFa}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -5257,10 +6658,10 @@
 %  Not visible from the front.
 % \begin{macrocode}
 \newcommand{\rrFap}{\@rrap{F}}
-\newcommand{\SquareFap}{\@SquareLetter{\rrFap}}
-\newcommand{\rrhFap}{\raisebox{-0.25mm}{\SquareFap}\,}
-\newcommand{\RubikFap}{\raisebox{\@hRubik}{\SquareFap}\,}
-\newcommand{\textRubikFap}{\rrhFap\,}
+\newcommand{\SquareFap}{\@tlen\@SquareLetter{\rrFap}\@tlen}
+\newcommand{\rrhFap}{\raisebox{-0.25mm}{\SquareFap}}
+\newcommand{\RubikFap}{\raisebox{\@hRubik}{\SquareFap}}
+\newcommand{\textRubikFap}{\rrhFap}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -5277,7 +6678,7 @@
 %  \begin{macro}{\textRubikL}
 %  These commands  all draw forms which denote the L rotation.
 % \begin{macrocode}
-\newcommand{\rrL}{\textbf{\textsf{L}}}
+\newcommand{\rrL}{\@rr{L}}
 %%
 \newcommand{\SquareL}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5287,15 +6688,16 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhL}{\raisebox{-0.333\height}{\SquareL}\,}
+\newcommand{\rrhL}{\raisebox{-0.333\height}{\@tlen\SquareL\@tlen}}
 %%
 \newcommand{\RubikL}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareL\\
-\rrL
+\rrL%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikL}{\rrL\,\rrhL}
 %    \end{macrocode}
 %    \end{macro}
@@ -5314,7 +6716,7 @@
 %  \begin{macro}{\textRubikLp}
 %  These commands  all draw forms which denote the Lp rotation.
 % \begin{macrocode}
-\newcommand{\rrLp}{\textbf{\textsf{L}$^\prime$}}
+\newcommand{\rrLp}{\@rrp{L}}
 %%
 \newcommand{\SquareLp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5324,15 +6726,16 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLp}{\raisebox{-0.333\height}{\SquareLp}\,}
+\newcommand{\rrhLp}{\raisebox{-0.333\height}{\@tlen\SquareLp\@tlen}}
 %%
 \newcommand{\RubikLp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLp\\
-\rrLp
+\rrLp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLp}{\rrLp\,\rrhLp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5351,7 +6754,7 @@
 %  \begin{macro}{\textRubikLw}
 %  These commands  all draw forms which denote the Lw rotation.
 % \begin{macrocode}
-\newcommand{\rrLw}{\textbf{\textsf{L\footnotesize{w}}}}
+\newcommand{\rrLw}{\@rrw{L}}
 %%
 \newcommand{\SquareLw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5361,15 +6764,16 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLw}{\raisebox{-0.333\height}{\SquareLw}\,}
+\newcommand{\rrhLw}{\raisebox{-0.333\height}{\@tlen\SquareLw\@tlen}}
 %%
 \newcommand{\RubikLw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLw\\
-\rrLw
+\rrLw%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLw}{\rrLw\,\rrhLw}
 %    \end{macrocode}
 %    \end{macro}
@@ -5388,7 +6792,7 @@
 %  \begin{macro}{\textRubikLwp}
 %  These commands  all draw forms which denote the Lwp rotation.
 % \begin{macrocode}
-\newcommand{\rrLwp}{\textbf{\textsf{L\footnotesize{w}}$^\prime$}}
+\newcommand{\rrLwp}{\@rrwp{L}}
 %%
 \newcommand{\SquareLwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5398,15 +6802,16 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLwp}{\raisebox{-0.333\height}{\SquareLwp}\,}
+\newcommand{\rrhLwp}{\raisebox{-0.333\height}{\@tlen\SquareLwp\@tlen}}
 %%
 \newcommand{\RubikLwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLwp\\
-\rrLwp
+\rrLwp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLwp}{\rrLwp\,\rrhLwp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5435,15 +6840,16 @@
 \draw [thick, <-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLs}{\raisebox{-0.333\height}{\SquareLs}\,}
+\newcommand{\rrhLs}{\raisebox{-0.333\height}{\@tlen\SquareLs\@tlen}}
 %%
 \newcommand{\RubikLs}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLs\\
-\rrLs
+\rrLs%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLs}{\rrLs\,\rrhLs}
 %    \end{macrocode}
 %    \end{macro}
@@ -5472,15 +6878,16 @@
 \draw [thick, ->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLsp}{\raisebox{-0.333\height}{\SquareLsp}\,}
+\newcommand{\rrhLsp}{\raisebox{-0.333\height}{\@tlen\SquareLsp\@tlen}}
 %%
 \newcommand{\RubikLsp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLsp\\
-\rrLsp
+\rrLsp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLsp}{\rrLsp\,\rrhLsp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5509,15 +6916,16 @@
 \draw [thick, ->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLa}{\raisebox{-0.333\height}{\SquareLa}\,}
+\newcommand{\rrhLa}{\raisebox{-0.333\height}{\@tlen\SquareLa\@tlen}}
 %%
 \newcommand{\RubikLa}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLa\\
-\rrLa
+\rrLa%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLa}{\rrLa\,\rrhLa}
 %    \end{macrocode}
 %    \end{macro}
@@ -5546,15 +6954,16 @@
 \draw [thick, <-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLap}{\raisebox{-0.333\height}{\SquareLap}\,}
+\newcommand{\rrhLap}{\raisebox{-0.333\height}{\@tlen\SquareLap\@tlen}}
 %%
 \newcommand{\RubikLap}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLap\\
-\rrLap
+\rrLap%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLap}{\rrLap\,\rrhLap}
 %    \end{macrocode}
 %    \end{macro}
@@ -5573,7 +6982,7 @@
 %  \begin{macro}{\textRubikM}
 %  These commands  all draw forms which denote the M rotation.
 % \begin{macrocode}
-\newcommand{\rrM}{\textbf{\textsf{M}}}
+\newcommand{\rrM}{\@rr{M}}
 %%
 \newcommand{\SquareM}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5583,15 +6992,16 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhM}{\raisebox{-0.333\height}{\SquareM}\,}
+\newcommand{\rrhM}{\raisebox{-0.333\height}{\@tlen\SquareM\@tlen}}
 %%
 \newcommand{\RubikM}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareM\\
-\rrM
+\rrM%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikM}{\rrM\,\rrhM}
 %    \end{macrocode}
 %    \end{macro}
@@ -5610,7 +7020,7 @@
 %  \begin{macro}{\textRubikMp}
 %  These commands  all draw forms which denote the Mp rotation.
 % \begin{macrocode}
-\newcommand{\rrMp}{\textbf{\textsf{M}$^\prime$}}
+\newcommand{\rrMp}{\@rrp{M}}
 %%
 \newcommand{\SquareMp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5620,15 +7030,16 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhMp}{\raisebox{-0.333\height}{\SquareMp}\,}
+\newcommand{\rrhMp}{\raisebox{-0.333\height}{\@tlen\SquareMp\@tlen}}
 %%
 \newcommand{\RubikMp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareMp\\
-\rrMp
+\rrMp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikMp}{\rrMp\,\rrhMp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5647,7 +7058,7 @@
 %  \begin{macro}{\textRubikR}
 %  These commands  all draw forms which denote the R rotation.
 % \begin{macrocode}
-\newcommand{\rrR}{\textbf{\textsf{R}}}
+\newcommand{\rrR}{\@rr{R}}
 %%
 \newcommand{\SquareR}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5658,15 +7069,16 @@
 \draw [thick, ->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhR}{\raisebox{-0.333\height}{\SquareR}\,}
+\newcommand{\rrhR}{\raisebox{-0.333\height}{\@tlen\SquareR\@tlen}}
 %%
 \newcommand{\RubikR}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareR\\
-\rrR
+\rrR%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikR}{\rrR\,\rrhR}
 %    \end{macrocode}
 %    \end{macro}
@@ -5685,7 +7097,7 @@
 %  \begin{macro}{\textRubikRp}
 %  These commands  all draw forms which denote the Rp rotation.
 % \begin{macrocode}
-\newcommand{\rrRp}{\textbf{\textsf{R}$^\prime$}}
+\newcommand{\rrRp}{\@rrp{R}}
 %%
 \newcommand{\SquareRp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5695,15 +7107,16 @@
 \draw [thick, <-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRp}{\raisebox{-0.333\height}{\SquareRp}\,}
+\newcommand{\rrhRp}{\raisebox{-0.333\height}{\@tlen\SquareRp\@tlen}}
 %%
 \newcommand{\RubikRp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRp\\
-\rrRp
+\rrRp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRp}{\rrRp\,\rrhRp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5722,7 +7135,7 @@
 %  \begin{macro}{\textRubikRw}
 %  These commands  all draw forms which denote the Rw rotation.
 % \begin{macrocode}
-\newcommand{\rrRw}{\textbf{\textsf{R\footnotesize{w}}}}
+\newcommand{\rrRw}{\@rrw{R}}
 %%
 \newcommand{\SquareRw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5732,15 +7145,16 @@
 \draw [thick, ->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRw}{\raisebox{-0.333\height}{\SquareRw}\,}
+\newcommand{\rrhRw}{\raisebox{-0.333\height}{\@tlen\SquareRw\@tlen}}
 %%
 \newcommand{\RubikRw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRw\\
-\rrRw
+\rrRw%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRw}{\rrRw\,\rrhRw}
 %    \end{macrocode}
 %    \end{macro}
@@ -5759,7 +7173,7 @@
 %  \begin{macro}{\textRubikRwp}
 %  These commands  all draw forms which denote the Rwp rotation.
 % \begin{macrocode}
-\newcommand{\rrRwp}{\textbf{\textsf{R\footnotesize{w}}$^\prime$}}
+\newcommand{\rrRwp}{\@rrwp{R}}
 %%
 \newcommand{\SquareRwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -5769,15 +7183,16 @@
 \draw [thick, <-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRwp}{\raisebox{-0.333\height}{\SquareRwp}\,}
+\newcommand{\rrhRwp}{\raisebox{-0.333\height}{\@tlen\SquareRwp\@tlen}}
 %%
 \newcommand{\RubikRwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRwp\\
-\rrRwp
+\rrRwp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRwp}{\rrRwp\,\rrhRwp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5806,15 +7221,16 @@
 \draw [thick,->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRs}{\raisebox{-0.333\height}{\SquareRs}\,}
+\newcommand{\rrhRs}{\raisebox{-0.333\height}{\@tlen\SquareRs\@tlen}}
 %%
 \newcommand{\RubikRs}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRs\\
-\rrRs
+\rrRs%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRs}{\rrRs\,\rrhRs}
 %    \end{macrocode}
 %    \end{macro}
@@ -5843,15 +7259,16 @@
 \draw [thick,<-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRsp}{\raisebox{-0.333\height}{\SquareRsp}\,}
+\newcommand{\rrhRsp}{\raisebox{-0.333\height}{\@tlen\SquareRsp\@tlen}}
 %%
 \newcommand{\RubikRsp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRsp\\
-\rrRsp
+\rrRsp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRsp}{\rrRsp\,\rrhRsp}
 %    \end{macrocode}
 %    \end{macro}
@@ -5880,15 +7297,16 @@
 \draw [thick,->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRa}{\raisebox{-0.333\height}{\SquareRa}\,}
+\newcommand{\rrhRa}{\raisebox{-0.333\height}{\@tlen\SquareRa\@tlen}}
 %%
 \newcommand{\RubikRa}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRa\\
-\rrRa
+\rrRa%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRa}{\rrRa\,\rrhRa}
 %    \end{macrocode}
 %    \end{macro}
@@ -5917,15 +7335,16 @@
 \draw [thick,<-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRap}{\raisebox{-0.333\height}{\SquareRap}\,}
+\newcommand{\rrhRap}{\raisebox{-0.333\height}{\@tlen\SquareRap\@tlen}}
 %%
 \newcommand{\RubikRap}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRap\\
-\rrRap
+\rrRap%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRap}{\rrRap\,\rrhRap}
 %    \end{macrocode}
 %    \end{macro}
@@ -5946,10 +7365,10 @@
 % Not visible from the front.
 % \begin{macrocode}
 \newcommand{\rrS}{\@rr{S}}
-\newcommand{\SquareS}{\@SquareLetter{\rrS}}
-\newcommand{\rrhS}{\raisebox{-0.25mm}{\SquareS}\,}
-\newcommand{\RubikS}{\raisebox{\@hRubik}{\SquareS}\,}
-\newcommand{\textRubikS}{\rrhS\,}
+\newcommand{\SquareS}{\@tlen\@SquareLetter{\rrS}\@tlen}
+\newcommand{\rrhS}{\raisebox{-0.25mm}{\SquareS}}
+\newcommand{\RubikS}{\raisebox{\@hRubik}{\SquareS}}
+\newcommand{\textRubikS}{\rrhS}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -5969,10 +7388,10 @@
 % Not visible from the front.
 % \begin{macrocode}
 \newcommand{\rrSp}{\@rrp{S}}
-\newcommand{\SquareSp}{\@SquareLetter{\rrSp}}
-\newcommand{\rrhSp}{\raisebox{-0.25mm}{\SquareSp}\,}
-\newcommand{\RubikSp}{\raisebox{\@hRubik}{\SquareSp}\,}
-\newcommand{\textRubikSp}{\rrhSp\,}
+\newcommand{\SquareSp}{\@tlen\@SquareLetter{\rrSp}\@tlen}
+\newcommand{\rrhSp}{\raisebox{-0.25mm}{\SquareSp}}
+\newcommand{\RubikSp}{\raisebox{\@hRubik}{\SquareSp}}
+\newcommand{\textRubikSp}{\rrhSp}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -5988,18 +7407,19 @@
 %  \begin{macro}{\RubikSu}
 %  \begin{macro}{\textRubikSu}
 %  These commands  draw forms of the Singmaster Su slice rotation.
-%  We also need to finetune the spacing 
+%  We also need to fine-tune the spacing 
 %  between these `slice' hieroglyphs (especially Fs  and Bs).
 % \begin{macrocode}
-\newcommand{\rrSu}{\textbf{\textsf{S\footnotesize{u}}}}
+\newcommand{\rrSu}{\@rru{S}}
 \newcommand{\rrhSu}{\rrhEp}%
 \newcommand{\RubikSu}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareEp\\
-\rrSu
+\rrSu%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSu}{\rrSu\,\rrhEp}
 %    \end{macrocode}
 %    \end{macro}
@@ -6015,18 +7435,19 @@
 %  \begin{macro}{\RubikSup}
 %  \begin{macro}{\textRubikSup}
 %  These commands  draw forms of the Singmaster Sup slice rotation.
-%  We also need to finetune the spacing 
+%  We also need to fine-tune the spacing 
 %  between these `slice' hieroglyphs (especially Fs  and Bs).
 % \begin{macrocode}
-\newcommand{\rrSup}{\textbf{\textsf{S\footnotesize{u}}$^\prime$}}
+\newcommand{\rrSup}{\@rrup{S}}
 \newcommand{\rrhSup}{\rrhE}%
 \newcommand{\RubikSup}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareE\\
-\rrSup
+\rrSup%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSup}{\rrSup\,\rrhE}
 %    \end{macrocode}
 %    \end{macro}
@@ -6043,15 +7464,16 @@
 %  \begin{macro}{\textRubikSd}
 %  These commands  draw forms of the Singmaster Sd slice rotation.
 % \begin{macrocode}
-\newcommand{\rrSd}{\textbf{\textsf{S\footnotesize{d}}}}
+\newcommand{\rrSd}{\@rrd{S}}
 \newcommand{\rrhSd}{\rrhE}%
 \newcommand{\RubikSd}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareE\\
-\rrSd
+\rrSd%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSd}{\rrSd\,\rrhE}
 %    \end{macrocode}
 %    \end{macro}
@@ -6068,15 +7490,16 @@
 %  \begin{macro}{\textRubikSdp}
 %  These commands  draw forms of the Singmaster Sdp slice rotation.
 % \begin{macrocode}
-\newcommand{\rrSdp}{\textbf{\textsf{S\footnotesize{d}}$^\prime$}}
+\newcommand{\rrSdp}{\@rrdp{S}}
 \newcommand{\rrhSdp}{\rrhEp}%
 \newcommand{\RubikSdp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareEp\\
-\rrSdp
+\rrSdp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSdp}{\rrSdp\,\rrhEp}
 %    \end{macrocode}
 %    \end{macro}
@@ -6093,15 +7516,16 @@
 %  \begin{macro}{\textRubikSl}
 %  These commands  draw forms of the Singmaster Sl slice rotation.
 % \begin{macrocode}
-\newcommand{\rrSl}{\textbf{\textsf{S\footnotesize{l}}}}
+\newcommand{\rrSl}{\@rrl{S}}
 \newcommand{\rrhSl}{\rrhM}%
 \newcommand{\RubikSl}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareM\\
-\rrSl
+\rrSl%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSl}{\rrSl\,\rrhM}
 %    \end{macrocode}
 %    \end{macro}
@@ -6118,15 +7542,16 @@
 %  \begin{macro}{\textRubikSlp}
 %  These commands  draw forms of the Singmaster Slp slice rotation.
 % \begin{macrocode}
-\newcommand{\rrSlp}{\textbf{\textsf{S\footnotesize{l}}$^\prime$}}
+\newcommand{\rrSlp}{\@rrlp{S}}
 \newcommand{\rrhSlp}{\rrhMp}%
 \newcommand{\RubikSlp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareMp\\
-\rrSlp
+\rrSlp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSlp}{\rrSlp\,\rrhMp}
 %    \end{macrocode}
 %    \end{macro}
@@ -6143,15 +7568,16 @@
 %  \begin{macro}{\textRubikSr}
 %  These commands  draw forms of the Singmaster Sr slice rotation.
 % \begin{macrocode}
-\newcommand{\rrSr}{\textbf{\textsf{S\footnotesize{r}}}}
+\newcommand{\rrSr}{\@rrr{S}}
 \newcommand{\rrhSr}{\rrhMp}%
 \newcommand{\RubikSr}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareMp\\
-\rrSr
+\rrSr%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSr}{\rrSr\,\rrhMp}
 %    \end{macrocode}
 %    \end{macro}
@@ -6168,15 +7594,16 @@
 %  \begin{macro}{\textRubikSrp}
 %  These commands  draw forms of the Singmaster Srp slice rotation.
 % \begin{macrocode}
-\newcommand{\rrSrp}{\textbf{\textsf{S\footnotesize{r}}$^\prime$}}
+\newcommand{\rrSrp}{\@rrrp{S}}
 \newcommand{\rrhSrp}{\rrhM}%
 \newcommand{\RubikSrp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareM\\
-\rrSrp
+\rrSrp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSrp}{\rrSrp\,\rrhM}
 %    \end{macrocode}
 %    \end{macro}
@@ -6199,11 +7626,11 @@
 %  bounded by \{\} so no need to reset to defaults.
 % Not visible from the front.
 % \begin{macrocode}
-\newcommand{\rrSf}{\textbf{\textsf{S\footnotesize{f}}}}
-\newcommand{\SquareSf}{\@SquareLetter{\rrSf}}
-\newcommand{\rrhSf}{\raisebox{-0.25mm}{\SquareSf}\,}
-\newcommand{\RubikSf}{\raisebox{\@hRubik}{\SquareSf}\,}
-\newcommand{\textRubikSf}{\rrhSf\,}
+\newcommand{\rrSf}{\@rrf{S}}
+\newcommand{\SquareSf}{\@tlen\@SquareLetter{\rrSf}\@tlen}
+\newcommand{\rrhSf}{\raisebox{-0.25mm}{\SquareSf}}
+\newcommand{\RubikSf}{\raisebox{\@hRubik}{\SquareSf}}
+\newcommand{\textRubikSf}{\rrhSf}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -6225,11 +7652,11 @@
 %  bounded by \{\} so no need to reset to defaults.
 % Not visible from the front.
 % \begin{macrocode}
-\newcommand{\rrSfp}{\textbf{\textsf{S\footnotesize{f}}$^\prime$}}
-\newcommand{\SquareSfp}{\@SquareLetter{\rrSfp}}
-\newcommand{\rrhSfp}{\raisebox{-0.25mm}{\SquareSfp}\,}
-\newcommand{\RubikSfp}{\raisebox{\@hRubik}{\SquareSfp}\,}
-\newcommand{\textRubikSfp}{\rrhSfp\,}
+\newcommand{\rrSfp}{\@rrfp{S}}
+\newcommand{\SquareSfp}{\@tlen\@SquareLetter{\rrSfp}\@tlen}
+\newcommand{\rrhSfp}{\raisebox{-0.25mm}{\SquareSfp}}
+\newcommand{\RubikSfp}{\raisebox{\@hRubik}{\SquareSfp}}
+\newcommand{\textRubikSfp}{\rrhSfp}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -6251,11 +7678,11 @@
 %  bounded by \{\} so no need to reset to defaults.
 % Not visible from the front.
 % \begin{macrocode}
-\newcommand{\rrSb}{\textbf{\textsf{S\footnotesize{b}}}}
-\newcommand{\SquareSb}{\@SquareLetter{\rrSb}}
-\newcommand{\rrhSb}{\raisebox{-0.25mm}{\SquareSb}\,}
-\newcommand{\RubikSb}{\raisebox{\@hRubik}{\SquareSb}\,}
-\newcommand{\textRubikSb}{\rrhSb\,}
+\newcommand{\rrSb}{\@rrb{S}}
+\newcommand{\SquareSb}{\@tlen\@SquareLetter{\rrSb}\@tlen}
+\newcommand{\rrhSb}{\raisebox{-0.25mm}{\SquareSb}}
+\newcommand{\RubikSb}{\raisebox{\@hRubik}{\SquareSb}}
+\newcommand{\textRubikSb}{\rrhSb}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -6277,11 +7704,11 @@
 %  bounded by \{\} so no need to reset to defaults.
 % Not visible from th front.
 % \begin{macrocode}
-\newcommand{\rrSbp}{\textbf{\textsf{S\footnotesize{b}}$^\prime$}}
-\newcommand{\SquareSbp}{\@SquareLetter{\rrSbp}}
-\newcommand{\rrhSbp}{\raisebox{-0.25mm}{\SquareSbp}\,}
-\newcommand{\RubikSbp}{\raisebox{\@hRubik}{\SquareSbp}\,}
-\newcommand{\textRubikSbp}{\rrhSbp\,}
+\newcommand{\rrSbp}{\@rrbp{S}}
+\newcommand{\SquareSbp}{\@tlen\@SquareLetter{\rrSbp}\@tlen}
+\newcommand{\rrhSbp}{\raisebox{-0.25mm}{\SquareSbp}}
+\newcommand{\RubikSbp}{\raisebox{\@hRubik}{\SquareSbp}}
+\newcommand{\textRubikSbp}{\rrhSbp}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -6298,7 +7725,7 @@
 %  \begin{macro}{\textRubikU}
 %  These commands  all draw forms which denote the U rotation.
 % \begin{macrocode}
-\newcommand{\rrU}{\textbf{\textsf{U}}}
+\newcommand{\rrU}{\@rr{U}}
 %%
 \newcommand{\SquareU}{%
 \begin{tikzpicture}[scale=0.5]
@@ -6308,15 +7735,16 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhU}{\raisebox{-0.333\height}{\SquareU}\,}
+\newcommand{\rrhU}{\raisebox{-0.333\height}{\@tlen\SquareU\@tlen}}
 %%
 \newcommand{\RubikU}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareU\\
-\rrU
+\rrU%
 \end{minipage}%%
-}
+}}
 \newcommand{\textRubikU}{\rrU\,\rrhU}
 %    \end{macrocode}
 %    \end{macro}
@@ -6335,7 +7763,7 @@
 %  \begin{macro}{\textRubikUw}
 %  These commands  all draw forms which denote the Uw rotation.
 % \begin{macrocode}
-\newcommand{\rrUw}{\textbf{\textsf{U\footnotesize{w}}}}
+\newcommand{\rrUw}{\@rrw{U}}
 %%
 \newcommand{\SquareUw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -6346,15 +7774,16 @@
 \end{tikzpicture}%
 }
 %
-\newcommand{\rrhUw}{\raisebox{-0.333\height}{\SquareUw}\,}
+\newcommand{\rrhUw}{\raisebox{-0.333\height}{\@tlen\SquareUw\@tlen}}
 %%
 \newcommand{\RubikUw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUw\\
-\rrUw
+\rrUw%
 \end{minipage}%%
-}
+}}
 %%
 \newcommand{\textRubikUw}{\rrUw\,\rrhUw}
 %    \end{macrocode}
@@ -6374,7 +7803,7 @@
 %  \begin{macro}{\textRubikUp}
 %  These commands  all draw forms which denote the Up rotation.
 % \begin{macrocode}
-\newcommand{\rrUp}{\textbf{\textsf{U}$^\prime$}}
+\newcommand{\rrUp}{\@rrp{U}}
 %%
 \newcommand{\SquareUp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -6384,15 +7813,16 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUp}{\raisebox{-0.333\height}{\SquareUp}\,}
+\newcommand{\rrhUp}{\raisebox{-0.333\height}{\@tlen\SquareUp\@tlen}}
 %%
 \newcommand{\RubikUp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUp\\
-\rrUp
+\rrUp%
 \end{minipage}%%
-}
+}}
 \newcommand{\textRubikUp}{\rrUp\,\rrhUp}
 %    \end{macrocode}
 %    \end{macro}
@@ -6411,7 +7841,7 @@
 %  \begin{macro}{\textRubikUwp}
 %  These commands  all draw forms which denote the Uwp rotation.
 % \begin{macrocode}
-\newcommand{\rrUwp}{\textbf{\textsf{U\footnotesize{w}}$^\prime$}}
+\newcommand{\rrUwp}{\@rrwp{U}}
 %%
 \newcommand{\SquareUwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -6421,15 +7851,16 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUwp}{\raisebox{-0.333\height}{\SquareUwp}\,}
+\newcommand{\rrhUwp}{\raisebox{-0.333\height}{\@tlen\SquareUwp\@tlen}}
 %%
 \newcommand{\RubikUwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUwp\\
-\rrUwp
+\rrUwp%
 \end{minipage}%%
-}
+}}
 \newcommand{\textRubikUwp}{\rrUwp\,\rrhUwp}
 %    \end{macrocode}
 %    \end{macro}
@@ -6458,15 +7889,16 @@
 \draw [thick, <-]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUs}{\raisebox{-0.333\height}{\SquareUs}\,}
+\newcommand{\rrhUs}{\raisebox{-0.333\height}{\@tlen\SquareUs\@tlen}}
 %%
 \newcommand{\RubikUs}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUs\\
-\rrUs
+\rrUs%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikUs}{\rrUs\,\rrhUs}
 %    \end{macrocode}
 %    \end{macro}
@@ -6495,15 +7927,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUsp}{\raisebox{-0.333\height}{\SquareUsp}\,}
+\newcommand{\rrhUsp}{\raisebox{-0.333\height}{\@tlen\SquareUsp\@tlen}}
 %%
 \newcommand{\RubikUsp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUsp\\
-\rrUsp
+\rrUsp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikUsp}{\rrUsp\,\rrhUsp}
 %    \end{macrocode}
 %    \end{macro}
@@ -6532,15 +7965,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUa}{\raisebox{-0.333\height}{\SquareUa}\,}
+\newcommand{\rrhUa}{\raisebox{-0.333\height}{\@tlen\SquareUa\@tlen}}
 %%
 \newcommand{\RubikUa}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUa\\
-\rrUa
+\rrUa%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikUa}{\rrUa\,\rrhUa}
 %    \end{macrocode}
 %    \end{macro}
@@ -6569,15 +8003,16 @@
 \draw [thick, <-]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUap}{\raisebox{-0.333\height}{\SquareUap}\,}
+\newcommand{\rrhUap}{\raisebox{-0.333\height}{\@tlen\SquareUap\@tlen}}
 %%
 \newcommand{\RubikUap}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUap\\
-\rrUap
+\rrUap%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikUap}{\rrUap\,\rrhUap}
 %    \end{macrocode}
 %    \end{macro}
@@ -6595,7 +8030,7 @@
 %  \begin{macro}{\Rubikx}
 %  These commands  all draw forms which denote the x rotation.
 % \begin{macrocode}
-\newcommand{\rrx}{\textbf{\textsf{x}}}
+\newcommand{\rrx}{\@rr{x}}
 \newcommand{\Rubikx}{\@xyzRubik{x}}
 \newcommand{\rrhx}{\@xyzh{x}}
 %    \end{macrocode}
@@ -6607,7 +8042,7 @@
 %  \begin{macro}{\Rubikxp}
 %  These commands  all draw forms which denote the xp rotation.
 % \begin{macrocode}
-\newcommand{\rrxp}{\textbf{\textsf{x}$^\prime$}}
+\newcommand{\rrxp}{\@rrp{x}}
 \newcommand{\Rubikxp}{\@xyzRubikp{x}}
 \newcommand{\rrhxp}{\@xyzhp{x}}
 %    \end{macrocode}
@@ -6623,7 +8058,7 @@
 %  \begin{macro}{\Rubiky}
 %  These commands  all draw forms which denote the y rotation.
 % \begin{macrocode}
-\newcommand{\rry}{\textbf{\textsf{y}}}
+\newcommand{\rry}{\@rr{y}}
 \newcommand{\Rubiky}{\@xyzRubik{y}}
 \newcommand{\rrhy}{\@xyzh{y}}
 %    \end{macrocode}
@@ -6635,7 +8070,7 @@
 %  \begin{macro}{\Rubikyp}
 %  These commands  all draw forms which denote the yp rotation.
 % \begin{macrocode}
-\newcommand{\rryp}{\textbf{\textsf{y}$^\prime$}}
+\newcommand{\rryp}{\@rrp{y}}
 \newcommand{\Rubikyp}{\@xyzRubikp{y}}
 \newcommand{\rrhyp}{\@xyzhp{y}}
 %    \end{macrocode}
@@ -6651,7 +8086,7 @@
 %  \begin{macro}{\Rubikz}
 %  These commands  all draw forms which denote the z rotation.
 % \begin{macrocode}
-\newcommand{\rrz}{\textbf{\textsf{z}}}
+\newcommand{\rrz}{\@rr{z}}
 \newcommand{\Rubikz}{\@xyzRubik{z}}
 \newcommand{\rrhz}{\@xyzh{z}}
 %    \end{macrocode}
@@ -6663,7 +8098,7 @@
 %  \begin{macro}{\Rubikzp}
 %  These commands  all draw forms which denote the zp rotation.
 % \begin{macrocode}
-\newcommand{\rrzp}{\textbf{\textsf{z}$^\prime$}}
+\newcommand{\rrzp}{\@rrp{z}}
 \newcommand{\Rubikzp}{\@xyzRubikp{z}}
 \newcommand{\rrhzp}{\@xyzhp{z}}
 %    \end{macrocode}
@@ -6679,7 +8114,7 @@
 %  \begin{macro}{\Rubiku}
 %  These commands  all draw forms which denote the u rotation.
 % \begin{macrocode}
-\newcommand{\rru}{\textbf{\textsf{u}}}
+\newcommand{\rru}{\@rr{u}}
 \newcommand{\Rubiku}{\@xyzRubik{u}}
 \newcommand{\rrhu}{\@xyzh{u}}
 %    \end{macrocode}
@@ -6691,9 +8126,9 @@
 %  \begin{macro}{\Rubikd}
 %  These commands  all draw forms which denote the d rotation.
 % \begin{macrocode}
-\newcommand{\rrd}{\textbf{\textsf{d}}}
-\newcommand{\Rubikd}{\@xyzRubik{d}}
-\newcommand{\rrhd}{\@xyzh{d}}
+\newcommand{\rrd}{\@rr{d}}
+\newcommand{\rrhd}{\@xyzhbdfl{d}}
+\newcommand{\Rubikd}{\@xyzbdflRubik{d}}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -6707,9 +8142,9 @@
 %  \begin{macro}{\Rubikl}
 %  These commands  all draw forms which denote the l rotation.
 % \begin{macrocode}
-\newcommand{\rrl}{\textbf{\textsf{l}}}
-\newcommand{\Rubikl}{\@xyzRubik{l}}
-\newcommand{\rrhl}{\@xyzh{l}}
+\newcommand{\rrl}{\@rr{l}}
+\newcommand{\rrhl}{\@xyzhbdfl{l}}
+\newcommand{\Rubikl}{\@xyzbdflRubik{l}}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -6719,7 +8154,7 @@
 %  \begin{macro}{\Rubikr}
 %  These commands  all draw forms which denote the r rotation.
 % \begin{macrocode}
-\newcommand{\rrr}{\textbf{\textsf{r}}}
+\newcommand{\rrr}{\@rr{r}}
 \newcommand{\Rubikr}{\@xyzRubik{r}}
 \newcommand{\rrhr}{\@xyzh{r}}
 %    \end{macrocode}
@@ -6735,9 +8170,9 @@
 %  \begin{macro}{\Rubikf}
 %  These commands  all draw forms which denote the f rotation.
 % \begin{macrocode}
-\newcommand{\rrf}{\textbf{\textsf{f}}}
-\newcommand{\Rubikf}{\@xyzRubik{f}}
-\newcommand{\rrhf}{\@xyzh{f}}
+\newcommand{\rrf}{\@rr{f}}
+\newcommand{\rrhf}{\@xyzhbdfl{f}}
+\newcommand{\Rubikf}{\@xyzbdflRubik{f}}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -6747,9 +8182,9 @@
 %  \begin{macro}{\Rubikb}
 %  These commands  all draw forms which denote the b rotation.
 % \begin{macrocode}
-\newcommand{\rrb}{\textbf{\textsf{b}}}
-\newcommand{\Rubikb}{\@xyzRubik{b}}
-\newcommand{\rrhb}{\@xyzh{b}}
+\newcommand{\rrb}{\@rr{b}}
+\newcommand{\rrhb}{\@xyzhbdfl{b}}
+\newcommand{\Rubikb}{\@xyzbdflRubik{b}}
 %    \end{macrocode}
 %    \end{macro}
 %    \end{macro}
@@ -6756,6 +8191,1694 @@
 %    \end{macro}
 %
 %
+%    \subsection{\hspace{3mm}Face(c) and Face(m) rotations}
+%      \label{sec:codeJaap}
+%
+% This subsection (added Nov 2016) is to accommodate some additional notation,
+% much used on the Jaap Puzzles website (Scherphius J), which, although quite 
+% convenient, is technically `non-standard'. This additional notation
+% makes available the (middle slice) rotations  of the form Rm, Rmp, Lm, Lmp, ... and 
+% also the  (whole cube) rotations Rc, Lc, ...   (referenced to a face) as  used on the 
+%  Cube Lovers usenet group (1981--1997). This notation was probably  invented by Singmaster
+% (see Scherphius J).
+%
+%  \begin{macro}{\@xyzhc}
+%  \begin{macro}{\@xyzhcp}
+%  \begin{macro}{\@xyzRubikc}
+%  \begin{macro}{\@xyzRubikcp}
+% First we have some useful facilitating commands we shall make use of in 
+% conjunction with the Face(c) and Face(cp) notation.
+% \begin{macrocode}
+\newcommand{\@xyzhc}[1]{[\raisebox{-1.2pt}%
+   {{\@rubikfont #1\@rubikfontFNS c}}]} 
+\newcommand{\@xyzhcp}[1]{[\raisebox{-1.2pt}%
+   {{\@rubikfont #1{\@rubikfontFNS c}\@rubikprime}}]}
+\newcommand{\@xyzRubikc}[1]{\raisebox{3.45pt}%
+   {[\raisebox{-1.2pt}{{\@rubikfont #1\@rubikfontFNS c}}]}}
+\newcommand{\@xyzRubikcp}[1]{\raisebox{3.45pt}%
+   {[\raisebox{-1.2pt}{{\@rubikfont #1{\@rubikfontFNS c}\@rubikprime}}]}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+% 
+%
+%  \subsubsection{\hspace{3mm}Rotations Rc and Rcp}
+%
+% Whole cube rotations  Rc = x, Rcp = xp.
+%
+%  \begin{macro}{\rrRc}
+%  \begin{macro}{\rrhRc}
+%  \begin{macro}{\RubikRc}
+%  These commands  all draw forms which denote the Rc rotation.
+% \begin{macrocode}
+\newcommand{\rrRc}{\@rrc{R}}
+\newcommand{\RubikRc}{\@xyzRubikc{R}}
+\newcommand{\rrhRc}{\@xyzhc{R}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrRcp}
+%  \begin{macro}{\rrhRcp}
+%  \begin{macro}{\RubikRcp}
+%  These commands  all draw forms which denote the Rcp rotation.
+% \begin{macrocode}
+\newcommand{\rrRcp}{\@rrcp{R}}
+\newcommand{\RubikRcp}{\@xyzRubikcp{R}}
+\newcommand{\rrhRcp}{\@xyzhcp{R}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%   \subsubsection{\hspace{3mm}Rotations Lc and Lcp}
+%
+% Whole cube rotations Lc = xp, Lcp = x.
+%
+%  \begin{macro}{\rrLc}
+%  \begin{macro}{\rrhLc}
+%  \begin{macro}{\RubikLc}
+%  These commands  all draw forms which denote the Lc rotation.
+% \begin{macrocode}
+\newcommand{\rrLc}{\@rrc{L}}
+\newcommand{\RubikLc}{\@xyzRubikc{L}}
+\newcommand{\rrhLc}{\@xyzhc{L}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrLcp}
+%  \begin{macro}{\rrhLcp}
+%  \begin{macro}{\RubikLcp}
+%  These commands  all draw forms which denote the Lcp rotation.
+% \begin{macrocode}
+\newcommand{\rrLcp}{\@rrcp{L}}
+\newcommand{\RubikLcp}{\@xyzRubikcp{L}}
+\newcommand{\rrhLcp}{\@xyzhcp{L}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%     \subsubsection{\hspace{3mm}Rotations Uc and Ucp}
+%
+% Whole cube rotation Uc = y, Ucp=yp.
+%
+%  \begin{macro}{\rrUc}
+%  \begin{macro}{\rrhUc}
+%  \begin{macro}{\RubikUc}
+%  These commands  all draw forms which denote the Uc rotation.
+% \begin{macrocode}
+\newcommand{\rrUc}{\@rrc{U}}
+\newcommand{\RubikUc}{\@xyzRubikc{U}}
+\newcommand{\rrhUc}{\@xyzhc{U}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrUcp}
+%  \begin{macro}{\rrhUcp}
+%  \begin{macro}{\RubikUcp}
+%  These commands  all draw forms which denote the Ucp rotation.
+% \begin{macrocode}
+\newcommand{\rrUcp}{\@rrcp{U}}
+\newcommand{\RubikUcp}{\@xyzRubikcp{U}}
+\newcommand{\rrhUcp}{\@xyzhcp{U}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+% 
+%  \subsubsection{\hspace{3mm}Rotations Dc and Dcp}
+%
+%  Whole cube rotations Dc = yp, Dcp = y.
+%
+%  \begin{macro}{\rrDc}
+%  \begin{macro}{\rrhDc}
+%  \begin{macro}{\RubikDc}
+%  These commands  all draw forms which denote the Dc rotation.
+% \begin{macrocode}
+\newcommand{\rrDc}{\@rrc{D}}
+\newcommand{\RubikDc}{\@xyzRubikc{D}}
+\newcommand{\rrhDc}{\@xyzhc{D}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrDcp}
+%  \begin{macro}{\rrhDcp}
+%  \begin{macro}{\RubikDcp}
+%  These commands  all draw forms which denote the Dcp rotation.
+% \begin{macrocode}
+\newcommand{\rrDcp}{\@rrcp{D}}
+\newcommand{\RubikDcp}{\@xyzRubikcp{D}}
+\newcommand{\rrhDcp}{\@xyzhcp{D}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%    \subsubsection{\hspace{3mm}Rotations Fc and Fcp}
+%
+%  Whole cube rotations Fc = z, Fcp = zp.
+%
+%  \begin{macro}{\rrFc}
+%  \begin{macro}{\rrhFc}
+%  \begin{macro}{\RubikFc}
+%  These commands  all draw forms which denote the Fc rotation.
+% \begin{macrocode}
+\newcommand{\rrFc}{\@rrc{F}}
+\newcommand{\RubikFc}{\@xyzRubikc{F}}
+\newcommand{\rrhFc}{\@xyzhc{F}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrFcp}
+%  \begin{macro}{\rrhFcp}
+%  \begin{macro}{\RubikFcp}
+%  These commands  all draw forms which denote the Fcp rotation.
+% \begin{macrocode}
+\newcommand{\rrFcp}{\@rrcp{F}}
+\newcommand{\RubikFcp}{\@xyzRubikcp{F}}
+\newcommand{\rrhFcp}{\@xyzhcp{F}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%   \subsubsection{\hspace{3mm}Rotations Bc and Bcp}
+%
+%   Whole cube rotation Bc = zp, Bcp = z.
+%
+%  \begin{macro}{\rrBc}
+%  \begin{macro}{\rrhBc}
+%  \begin{macro}{\RubikBc}
+%  These commands  all draw forms which denote the Bc rotation.
+% \begin{macrocode}
+\newcommand{\rrBc}{\@rrc{B}}
+\newcommand{\RubikBc}{\@xyzRubikc{B}}
+\newcommand{\rrhBc}{\@xyzhc{B}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrBcp}
+%  \begin{macro}{\rrhBcp}
+%  \begin{macro}{\RubikBcp}
+%  These commands  all draw forms which denote the Bcp rotation.
+% \begin{macrocode}
+\newcommand{\rrBcp}{\@rrcp{B}}
+\newcommand{\RubikBcp}{\@xyzRubikcp{B}}
+\newcommand{\rrhBcp}{\@xyzhcp{B}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%    \subsubsection{\hspace{3mm}Rotations Rm and Rmp}
+%
+% Rm = Mp= Sr  (M follows Left). We  use Sr and Srp as the templates.
+%
+%  \begin{macro}{\rrRm}
+%  \begin{macro}{\rrhRm}
+%  \begin{macro}{\RubikRm}
+%  \begin{macro}{\textRubikRm}
+%  These commands  draw forms of the Rm slice rotation.
+% \begin{macrocode}
+\newcommand{\rrRm}{\@rrm{R}}
+\newcommand{\rrhRm}{\rrhMp}%
+\newcommand{\RubikRm}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareMp\\
+\rrRm%
+\end{minipage}%
+}}
+\newcommand{\textRubikRm}{\rrRm\,\rrhMp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrRmp}
+%  \begin{macro}{\rrhRmp}
+%  \begin{macro}{\RubikRmp}
+%  \begin{macro}{\textRubikRmp}
+%  These commands  draw forms of the Rmp slice rotation.
+% \begin{macrocode}
+\newcommand{\rrRmp}{\@rrmp{R}}
+\newcommand{\rrhRmp}{\rrhM}%
+\newcommand{\RubikRmp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareM\\
+\rrRmp%
+\end{minipage}%
+}}
+\newcommand{\textRubikRmp}{\rrRmp\,\rrhM}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations Lm and Lmp}
+%
+% Lm = M = Sl  (M follows Left). We  use Sl and Slp as the templates.
+%
+%  \begin{macro}{\rrLm}
+%  \begin{macro}{\rrhLm}
+%  \begin{macro}{\RubikLm}
+%  \begin{macro}{\textRubikLm}
+%  These commands  draw forms of the Lm slice rotation.
+% \begin{macrocode}
+\newcommand{\rrLm}{\@rrm{L}}
+\newcommand{\rrhLm}{\rrhM}%
+\newcommand{\RubikLm}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareM\\
+\rrLm%
+\end{minipage}%
+}}
+\newcommand{\textRubikLm}{\rrLm\,\rrhM}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrLmp}
+%  \begin{macro}{\rrhLmp}
+%  \begin{macro}{\RubikLmp}
+%  \begin{macro}{\textRubikLmp}
+%  These commands  draw forms of the Lmp slice rotation.
+% \begin{macrocode}
+\newcommand{\rrLmp}{\@rrmp{L}}
+\newcommand{\rrhLmp}{\rrhMp}%
+\newcommand{\RubikLmp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareMp\\
+\rrLmp%
+\end{minipage}%
+}}
+\newcommand{\textRubikLmp}{\rrLmp\,\rrhMp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations Um and Ump}
+%
+%  Um = Ep = Su (E follows Down). We use  Su and Sup as the templates.
+%
+%  \begin{macro}{\rrUm}
+%  \begin{macro}{\rrhUm}
+%  \begin{macro}{\RubikUm}
+%  \begin{macro}{\textRubikUm}
+%  These commands  draw forms of the  Um slice rotation.
+%  We also need to fine-tune the spacing 
+%  between these `slice' hieroglyphs (especially Fs  and Bs).
+% \begin{macrocode}
+\newcommand{\rrUm}{\@rrm{U}}
+\newcommand{\rrhUm}{\rrhEp}%
+\newcommand{\RubikUm}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareEp\\
+\rrUm%
+\end{minipage}%
+}}
+\newcommand{\textRubikUm}{\rrUm\,\rrhEp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrUmp}
+%  \begin{macro}{\rrhUmp}
+%  \begin{macro}{\RubikUmp}
+%  \begin{macro}{\textRubikUmp}
+%  These commands  draw forms of the  Ump slice rotation.
+%  We also need to fine-tune the spacing 
+%  between these `slice' hieroglyphs (especially Fs  and Bs).
+% \begin{macrocode}
+\newcommand{\rrUmp}{\@rrmp{U}}
+\newcommand{\rrhUmp}{\rrhE}%
+\newcommand{\RubikUmp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareE\\
+\rrUmp%
+\end{minipage}%
+}}
+\newcommand{\textRubikUmp}{\rrUmp\,\rrhE}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations Dm and Dmp}
+%
+%   Dm = E = Sd  (E follows Down). We use Sd and Sdp as the templates.
+%
+%  \begin{macro}{\rrDm}
+%  \begin{macro}{\rrhDm}
+%  \begin{macro}{\RubikDm}
+%  \begin{macro}{\textRubikDm}
+%  These commands  draw forms of the Singmaster Dm slice rotation.
+% \begin{macrocode}
+\newcommand{\rrDm}{\@rrm{D}}
+\newcommand{\rrhDm}{\rrhE}%
+\newcommand{\RubikDm}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareE\\
+\rrDm%
+\end{minipage}%
+}}
+\newcommand{\textRubikDm}{\rrDm\,\rrhE}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrDmp}
+%  \begin{macro}{\rrhDmp}
+%  \begin{macro}{\RubikDmp}
+%  \begin{macro}{\textRubikDmp}
+%  These commands  draw forms of the Singmaster Dmp slice rotation.
+% \begin{macrocode}
+\newcommand{\rrDmp}{\@rrmp{D}}
+\newcommand{\rrhDmp}{\rrhEp}%
+\newcommand{\RubikDmp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareEp\\
+\rrDmp%
+\end{minipage}%
+}}
+\newcommand{\textRubikDmp}{\rrDmp\,\rrhEp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations Fm and Fmp}
+% 
+% Fm = S =  Sf  (S follows Front).
+% S is not visible from the front, so is represented in a square box.
+% We use Sf and Sfp as the templates.
+%
+%  \begin{macro}{\rrFm}
+%  \begin{macro}{\rrhFm}
+%  \begin{macro}{\RubikFm}
+%  \begin{macro}{\textRubikFm}
+%  These commands  draw forms of the  Fm slice rotation.
+%  We need to just make square with Fm in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrFm}{\@rrm{F}}
+\newcommand{\SquareFm}{\@tlen\@SquareLetter{\rrFm}\@tlen}
+\newcommand{\rrhFm}{\raisebox{-0.25mm}{\SquareFm}}
+\newcommand{\RubikFm}{\raisebox{\@hRubik}{\SquareFm}}
+\newcommand{\textRubikFm}{\rrhFm}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrFmp}
+%  \begin{macro}{\rrhFmp}
+%  \begin{macro}{\RubikFmp}
+%  \begin{macro}{\textRubikFmp}
+%  These commands  draw forms of the  Fmp slice rotation.
+%  We need to just make square with Fmp in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrFmp}{\@rrmp{F}}
+\newcommand{\SquareFmp}{\@tlen\@SquareLetter{\rrFmp}\@tlen}
+\newcommand{\rrhFmp}{\raisebox{-0.25mm}{\SquareFmp}}
+\newcommand{\RubikFmp}{\raisebox{\@hRubik}{\SquareFmp}}
+\newcommand{\textRubikFmp}{\rrhFmp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations Bm and Bmp}
+%
+%   Bm = Sp =  Sb. We use Sb and Sbp as the templates.   
+%
+%  \begin{macro}{\rrBm}
+%  \begin{macro}{\rrhBm}
+%  \begin{macro}{\RubikBm}
+%  \begin{macro}{\textRubikBm}
+%  These commands  draw forms of the  Bm slice rotation.
+%  We need to just make square with Bm in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrBm}{\@rrm{B}}
+\newcommand{\SquareBm}{\@tlen\@SquareLetter{\rrBm}\@tlen}
+\newcommand{\rrhBm}{\raisebox{-0.25mm}{\SquareBm}}
+\newcommand{\RubikBm}{\raisebox{\@hRubik}{\SquareBm}}
+\newcommand{\textRubikBm}{\rrhBm}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrBmp}
+%  \begin{macro}{\rrhBmp}
+%  \begin{macro}{\RubikBmp}
+%  \begin{macro}{\textRubikBmp}
+%  These commands  draw forms of the Bmp slice rotation.
+%  We need to just make square with Bmp in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrBmp}{\@rrmp{B}}
+\newcommand{\SquareBmp}{\@tlen\@SquareLetter{\rrBmp}\@tlen}
+\newcommand{\rrhBmp}{\raisebox{-0.25mm}{\SquareBmp}}
+\newcommand{\RubikBmp}{\raisebox{\@hRubik}{\SquareBmp}}
+\newcommand{\textRubikBmp}{\rrhBmp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%
+%
+%    \subsection{\hspace{3mm}Randelshofer superset ENG rotations (CMST)}
+%      \label{sec:codeRandelshofer}
+%
+% (see webpage: \verb!Randelshofer.ch/rubik/patterns/doc/supersetENG_3x3.html!)
+% 
+% This section relates to the recent Rubik  notation developed 
+% by Randelshofer (see URL above),  known as the ``superset ENG rotations''
+% (see Sections~\ref{sec:RubikCommands} and \ref{sec:listofRandelshofercommands}
+% for details).
+%
+% I denote this  notation as ``CMST'' (i.e.,~his C, M, S and T notation).
+% Although this notation replicates previously existing World Cube Association notation, 
+% we include it here for completeness. Fortunately the Randelshofer notation does 
+% not conflict with existing notation.
+%
+% Briefly, the CMST letters  denote whole Cube, Middle, outer-Slice and wide (T)
+% rotations associated with named faces. For example, the rotation-code  MR
+% indicates a rotation of the  middle slice parallel to the \textsc{right} face, 
+% and in the same  sense (direction) as \rr{R}\ (see Section~\ref{sec:RubikCommands}  for details).
+%
+% 
+% First we make some useful facilitating commands for the CX1 and CX1p forms
+% as these are handled with raised  square brackets.
+% We model these four macros on the equivalent 
+% \verb!\@xyzh!, \verb!\@xyzhp!,\verb!\@xyzRubik!,\verb!\@xyzRubikp! macros defined above.
+% \begin{macrocode}
+\newcommand{\@randhc}[1]{[\raisebox{-1.2pt}{{\@rubikfont C#1}}]}
+\newcommand{\@randhcp}[1]{[\raisebox{-1.2pt}{{\@rubikfont C#1\@rubikprime}}]}
+\newcommand{\@randRubikc}[1]%
+   {\raisebox{3.45pt}{[\raisebox{-1.2pt}{{\@rubikfont C#1}}]}}
+\newcommand{\@randRubikcp}[1]%
+   {\raisebox{3.45pt}{[\raisebox{-1.2pt}{{\@rubikfont C#1\@rubikprime}}]}}
+%    \end{macrocode}
+%
+%
+% In the following we create the base form of a rotation code, eg \rrhCR\ and then
+% the user typesets this rotation using CR as the argument for \verb!\rrh{}!. 
+% This works because the macro \verb!\@join{}{}! is used to join \cmd{\rrh} 
+% and CR $\rightarrow$ \cmd{\rrhCR} etc.
+%
+% The = signs at the beginning of each new section indicate the equivalence
+% between the Randelshofer notation and the current (World Cube Association)
+% notation. 
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations CR and CRp}
+%
+% Whole cube rotations CR = Rc = x, CRp = Rcp = xp.
+%
+%  \begin{macro}{\rrCR}
+%  \begin{macro}{\rrhCR}
+%  \begin{macro}{\RubikCR}
+%  These commands  all draw forms which denote the CR = Rc rotation.
+% \begin{macrocode}
+\newcommand{\rrCR}{\@rr{CR}}
+\newcommand{\RubikCR}{\@randRubikc{R}}
+\newcommand{\rrhCR}{\@randhc{R}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrCRp}
+%  \begin{macro}{\rrhCRp}
+%  \begin{macro}{\RubikCRp}
+%  These commands  all draw forms which denote the CRp =  Rcp rotation.
+% \begin{macrocode}
+\newcommand{\rrCRp}{\@rrp{CR}}
+\newcommand{\RubikCRp}{\@randRubikcp{R}}
+\newcommand{\rrhCRp}{\@randhcp{R}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%   \subsubsection{\hspace{3mm}Rotations CL and CLp}
+%
+% Whole cube rotations  CL = Lc = xp, CLp = Lcp = x.
+%
+%  \begin{macro}{\rrCL}
+%  \begin{macro}{\rrhCL}
+%  \begin{macro}{\RubikCL}
+%  These commands  all draw forms which denote the CL rotation.
+% \begin{macrocode}
+\newcommand{\rrCL}{\@rr{CL}}
+\newcommand{\RubikCL}{\@randRubikc{L}}
+\newcommand{\rrhCL}{\@randhc{L}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrCLp}
+%  \begin{macro}{\rrhCLp}
+%  \begin{macro}{\RubikCLp}
+%  These commands  all draw forms which denote the CLp rotation.
+% \begin{macrocode}
+\newcommand{\rrCLp}{\@rrp{CL}}
+\newcommand{\RubikCLp}{\@randRubikcp{L}}
+\newcommand{\rrhCLp}{\@randhcp{L}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%     \subsubsection{\hspace{3mm}Rotations CU and CUp}
+%
+% Whole cube rotation CU = Uc = y, CUp = Ucp=yp.
+%
+%  \begin{macro}{\rrCU}
+%  \begin{macro}{\rrhCU}
+%  \begin{macro}{\RubikCU}
+%  These commands  all draw forms which denote the CU rotation.
+% \begin{macrocode}
+\newcommand{\rrCU}{\@rr{CU}}
+\newcommand{\RubikCU}{\@randRubikc{U}}
+\newcommand{\rrhCU}{\@randhc{U}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrCUp}
+%  \begin{macro}{\rrhCUp}
+%  \begin{macro}{\RubikCUp}
+%  These commands  all draw forms which denote the CUp rotation.
+% \begin{macrocode}
+\newcommand{\rrCUp}{\@rrp{CU}}
+\newcommand{\RubikCUp}{\@randRubikcp{U}}
+\newcommand{\rrhCUp}{\@randhcp{U}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+% 
+%  \subsubsection{\hspace{3mm}Rotations CD and CDp}
+%
+%  Whole cube rotations CD = Dc = yp, CDp = Dcp = y.
+%
+%  \begin{macro}{\rrCD}
+%  \begin{macro}{\rrhCD}
+%  \begin{macro}{\RubikCD}
+%  These commands  all draw forms which denote the CD rotation.
+% \begin{macrocode}
+\newcommand{\rrCD}{\@rr{CD}}
+\newcommand{\RubikCD}{\@randRubikc{D}}
+\newcommand{\rrhCD}{\@randhc{D}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrCDp}
+%  \begin{macro}{\rrhCDp}
+%  \begin{macro}{\RubikCDp}
+%  These commands  all draw forms which denote the CDp rotation.
+% \begin{macrocode}
+\newcommand{\rrCDp}{\@rrp{CD}}
+\newcommand{\RubikCDp}{\@randRubikcp{D}}
+\newcommand{\rrhCDp}{\@randhcp{D}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%    \subsubsection{\hspace{3mm}Rotations CF and CFp}
+%
+%  Whole cube rotations CF = Fc = z, CFp = Fcp = zp.
+%
+%  \begin{macro}{\rrCF}
+%  \begin{macro}{\rrhCF}
+%  \begin{macro}{\RubikCF}
+%  These commands  all draw forms which denote the CF rotation.
+% \begin{macrocode}
+\newcommand{\rrCF}{\@rr{CF}}
+\newcommand{\RubikCF}{\@randRubikc{F}}
+\newcommand{\rrhCF}{\@randhc{F}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrCFp}
+%  \begin{macro}{\rrhCFp}
+%  \begin{macro}{\RubikCFp}
+%  These commands  all draw forms which denote the CFp rotation.
+% \begin{macrocode}
+\newcommand{\rrCFp}{\@rrp{CF}}
+\newcommand{\RubikCFp}{\@randRubikcp{F}}
+\newcommand{\rrhCFp}{\@randhcp{F}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%   \subsubsection{\hspace{3mm}Rotations CB and CBp}
+%
+%   Whole cube rotation CB = Bc = zp, CBp = Bcp = z.
+%
+%  \begin{macro}{\rrCB}
+%  \begin{macro}{\rrhCB}
+%  \begin{macro}{\RubikCB}
+%  These commands  all draw forms which denote the CB rotation.
+% \begin{macrocode}
+\newcommand{\rrCB}{\@rr{CB}}
+\newcommand{\RubikCB}{\@randRubikc{B}}
+\newcommand{\rrhCB}{\@randhc{B}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%  \begin{macro}{\rrCBp}
+%  \begin{macro}{\rrhCBp}
+%  \begin{macro}{\RubikCBp}
+%  These commands  all draw forms which denote the CBp rotation.
+% \begin{macrocode}
+\newcommand{\rrCBp}{\@rrp{CB}}
+\newcommand{\RubikCBp}{\@randRubikcp{B}}
+\newcommand{\rrhCBp}{\@randhcp{B}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%
+%    \subsubsection{\hspace{3mm}Rotations MR and MRp}
+%
+% MR = Rm = Mp= Sr  (M follows Left). We  use Sr and Srp as the templates.
+%
+%  \begin{macro}{\rrMR}
+%  \begin{macro}{\rrhMR}
+%  \begin{macro}{\RubikMR}
+%  \begin{macro}{\textRubikMR}
+%  These commands  draw forms of the MR middle slice rotation.
+% \begin{macrocode}
+\newcommand{\rrMR}{\@rr{MR}}
+\newcommand{\rrhMR}{\rrhMp}%
+\newcommand{\RubikMR}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareMp\\
+\rrMR%
+\end{minipage}%
+}}
+\newcommand{\textRubikMR}{\rrMR\,\rrhMp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrMRp}
+%  \begin{macro}{\rrhMRp}
+%  \begin{macro}{\RubikMRp}
+%  \begin{macro}{\textRubikMRp}
+%  These commands  draw forms of the MRp slice rotation.
+% \begin{macrocode}
+\newcommand{\rrMRp}{\@rrp{MR}}
+\newcommand{\rrhMRp}{\rrhM}%
+\newcommand{\RubikMRp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareM\\
+\rrMRp%
+\end{minipage}%
+}}
+\newcommand{\textRubikMRp}{\rrMRp\,\rrhM}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations ML and MLp}
+%
+% ML =  Lm = M = Sl  (M follows Left). We  use Sl and Slp as the templates.
+%
+%  \begin{macro}{\rrML}
+%  \begin{macro}{\rrhML}
+%  \begin{macro}{\RubikML}
+%  \begin{macro}{\textRubikML}
+%  These commands  draw forms of the ML slice rotation.
+% \begin{macrocode}
+\newcommand{\rrML}{\@rr{ML}}
+\newcommand{\rrhML}{\rrhM}%
+\newcommand{\RubikML}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareM\\
+\rrML%
+\end{minipage}%
+}}
+\newcommand{\textRubikML}{\rrML\,\rrhM}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrMLp}
+%  \begin{macro}{\rrhMLp}
+%  \begin{macro}{\RubikMLp}
+%  \begin{macro}{\textRubikMLp}
+%  These commands  draw forms of the MLp slice rotation.
+% \begin{macrocode}
+\newcommand{\rrMLp}{\@rrp{ML}}
+\newcommand{\rrhMLp}{\rrhMp}%
+\newcommand{\RubikMLp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareMp\\
+\rrMLp%
+\end{minipage}%
+}}
+\newcommand{\textRubikMLp}{\rrMLp\,\rrhMp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations MU and MUp}
+%
+%  MU =  Um = Ep = Su (E follows Down). We use  Su and Sup as the templates.
+%
+%  \begin{macro}{\rrMU}
+%  \begin{macro}{\rrhMU}
+%  \begin{macro}{\RubikMU}
+%  \begin{macro}{\textRubikMU}
+%  These commands  draw forms of the  MU slice rotation.
+% \begin{macrocode}
+\newcommand{\rrMU}{\@rr{MU}}
+\newcommand{\rrhMU}{\rrhEp}%
+\newcommand{\RubikMU}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareEp\\
+\rrMU%
+\end{minipage}%
+}}
+\newcommand{\textRubikMU}{\rrMU\,\rrhEp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrMUp}
+%  \begin{macro}{\rrhMUp}
+%  \begin{macro}{\RubikMUp}
+%  \begin{macro}{\textRubikMUp}
+%  These commands  draw forms of the  MUp slice rotation.
+% \begin{macrocode}
+\newcommand{\rrMUp}{\@rrp{MU}}
+\newcommand{\rrhMUp}{\rrhE}%
+\newcommand{\RubikMUp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareE\\
+\rrMUp%
+\end{minipage}%
+}}
+\newcommand{\textRubikMUp}{\rrMUp\,\rrhE}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations MD and MDp}
+%
+% MD =  Dm = E = Sd  (E follows Down). We use Sd and Sdp as the templates.
+%
+%  \begin{macro}{\rrMD}
+%  \begin{macro}{\rrhMD}
+%  \begin{macro}{\RubikMD}
+%  \begin{macro}{\textRubikMD}
+%  These commands  draw forms of the Randelshofer MD slice rotation.
+% \begin{macrocode}
+\newcommand{\rrMD}{\@rr{MD}}
+\newcommand{\rrhMD}{\rrhE}%
+\newcommand{\RubikMD}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareE\\
+\rrMD%
+\end{minipage}%
+}}
+\newcommand{\textRubikMD}{\rrMD\,\rrhE}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrMDp}
+%  \begin{macro}{\rrhMDp}
+%  \begin{macro}{\RubikMDp}
+%  \begin{macro}{\textRubikMDp}
+%  These commands  draw forms of the Randelshofer MDp slice rotation.
+% \begin{macrocode}
+\newcommand{\rrMDp}{\@rrp{MD}}
+\newcommand{\rrhMDp}{\rrhEp}%
+\newcommand{\RubikMDp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareEp\\
+\rrMDp%
+\end{minipage}%
+}}
+\newcommand{\textRubikMDp}{\rrMDp\,\rrhEp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations MF and MFp}
+% 
+% MF = Fm = S = Sf  (S follows Front).
+% MF = S is not visible from the front, so is represented in a square box.
+% We use Sf and Sfp as the templates.
+%
+%  \begin{macro}{\rrMF}
+%  \begin{macro}{\rrhMF}
+%  \begin{macro}{\RubikMF}
+%  \begin{macro}{\textRubikMF}
+%  These commands  draw forms of the  MF slice rotation.
+%  We need to just make square with MF in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrMF}{\@rr{MF}}
+\newcommand{\SquareMF}{\@tlen\@SquareLetter{\rrMF}\@tlen}
+\newcommand{\rrhMF}{\raisebox{-0.25mm}{\SquareMF}}
+\newcommand{\RubikMF}{\raisebox{\@hRubik}{\SquareMF}}
+\newcommand{\textRubikMF}{\rrhMF}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrMFp}
+%  \begin{macro}{\rrhMFp}
+%  \begin{macro}{\RubikMFp}
+%  \begin{macro}{\textRubikMFp}
+%  These commands  draw forms of the  MFp slice rotation.
+%  We need to just make square with MFp in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrMFp}{\@rrp{MF}}
+\newcommand{\SquareMFp}{\@tlen\@SquareLetter{\rrMFp}\@tlen}
+\newcommand{\rrhMFp}{\raisebox{-0.25mm}{\SquareMFp}}
+\newcommand{\RubikMFp}{\raisebox{\@hRubik}{\SquareMFp}}
+\newcommand{\textRubikMFp}{\rrhMFp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations MB and MBp}
+%
+%  MB = Bm = Sp =  Sb. We use Sb and Sbp as the templates.   
+%
+%  \begin{macro}{\rrMB}
+%  \begin{macro}{\rrhMB}
+%  \begin{macro}{\RubikMB}
+%  \begin{macro}{\textRubikMB}
+%  These commands  draw forms of the  MB slice rotation.
+%  We need to just make square with MB in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrMB}{\@rr{MB}}
+\newcommand{\SquareMB}{\@tlen\@SquareLetter{\rrMB}\@tlen}
+\newcommand{\rrhMB}{\raisebox{-0.25mm}{\SquareMB}}
+\newcommand{\RubikMB}{\raisebox{\@hRubik}{\SquareMB}}
+\newcommand{\textRubikMB}{\rrhMB}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrMBp}
+%  \begin{macro}{\rrhMBp}
+%  \begin{macro}{\RubikMBp}
+%  \begin{macro}{\textRubikMBp}
+%  These commands  draw forms of the MBp slice rotation.
+%  We need to just make square with MBp in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrMBp}{\@rrp{MB}}
+\newcommand{\SquareMBp}{\@tlen\@SquareLetter{\rrMBp}\@tlen}
+\newcommand{\rrhMBp}{\raisebox{-0.25mm}{\SquareMBp}}
+\newcommand{\RubikMBp}{\raisebox{\@hRubik}{\SquareMBp}}
+\newcommand{\textRubikMBp}{\rrhMBp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations T (wide)}
+% 
+% TR = Rw \ \ (We use Rw and Rwp as the templates).
+%
+% {\noindent}We first set up some useful T and Tp macros for use with (L,R,U,D,F,B)
+% slightly more general than before. As before the  rubikfont command needs to be 
+% delimited using two curly brackets to contain the font expression.
+% \begin{macrocode}
+\newcommand{\@rrT}[1]{{\@rubikfont T#1}}
+\newcommand{\@rrhT}[1]{\@join{\rrh#1}{w}}%
+\newcommand{\@textRubikT}[1]{\@rrT{#1}\,\@join{\rrh#1}{w}}
+%
+\newcommand{\@RubikT}[1]{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%%
+\@join{\Square#1}{w}\\%
+\@rrT{#1}%%
+\end{minipage}%
+}}
+%%
+\newcommand{\@rrTp}[1]{{\@rubikfont T#1\@rubikprime}}
+\newcommand{\@rrhTp}[1]{\@join{\rrh#1}{wp}}%
+\newcommand{\@textRubikTp}[1]{\@rrTp{#1}\,\@join{\rrh#1}{wp}}
+%%
+\newcommand{\@RubikTp}[1]{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%%
+\@join{\Square#1}{wp}\\%
+\@rrTp{#1}%%
+\end{minipage}%
+}}
+%    \end{macrocode}
+%
+%
+%
+%  \begin{macro}{\rrTL}
+%  \begin{macro}{\rrhTL}
+%  \begin{macro}{\RubikTL}
+%  \begin{macro}{\textRubikTL}
+%  These commands  draw forms of the TL = Lw wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTL}{\@rrT{L}}% = rrLw
+\newcommand{\rrhTL}{\@rrhT{L}}
+\newcommand{\textRubikTL}{\@textRubikT{L}}
+\newcommand{\RubikTL}{\@RubikT{L}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%  \begin{macro}{\rrTLp}
+%  \begin{macro}{\rrhTLp}
+%  \begin{macro}{\RubikTLp}
+%  \begin{macro}{\textRubikTLp}
+%  These commands  draw forms of the TLp = Lwp wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTLp}{\@rrTp{L}}
+\newcommand{\rrhTLp}{\@rrhTp{L}}
+\newcommand{\textRubikTLp}{\@textRubikTp{L}}
+\newcommand{\RubikTLp}{\@RubikTp{L}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%
+%  \begin{macro}{\rrTR}
+%  \begin{macro}{\rrhTR}
+%  \begin{macro}{\RubikTR}
+%  \begin{macro}{\textRubikTR}
+%  These commands  draw forms of the TR = Rw wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTR}{\@rrT{R}}
+\newcommand{\rrhTR}{\@rrhT{R}}
+\newcommand{\textRubikTR}{\@textRubikT{R}}
+\newcommand{\RubikTR}{\@RubikT{R}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%  \begin{macro}{\rrTRp}
+%  \begin{macro}{\rrhTRp}
+%  \begin{macro}{\RubikTRp}
+%  \begin{macro}{\textRubikTRp}
+%  These commands  draw forms of the TRp = Rmp wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTRp}{\@rrTp{R}}
+\newcommand{\rrhTRp}{\@rrhTp{R}}
+\newcommand{\textRubikTRp}{\@textRubikTp{R}}
+\newcommand{\RubikTRp}{\@RubikTp{R}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%
+%  \begin{macro}{\rrTU}
+%  \begin{macro}{\rrhTU}
+%  \begin{macro}{\RubikTU}
+%  \begin{macro}{\textRubikTU}
+%  These commands  draw forms of the TU = Uw wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTU}{\@rrT{U}}
+\newcommand{\rrhTU}{\@rrhT{U}}
+\newcommand{\textRubikTU}{\@textRubikT{U}}
+\newcommand{\RubikTU}{\@RubikT{U}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%  \begin{macro}{\rrTUp}
+%  \begin{macro}{\rrhTUp}
+%  \begin{macro}{\RubikTUp}
+%  \begin{macro}{\textRubikTUp}
+%  These commands  draw forms of the TUp = Uwp wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTUp}{\@rrTp{U}}
+\newcommand{\rrhTUp}{\@rrhTp{U}}
+\newcommand{\textRubikTUp}{\@textRubikTp{U}}
+\newcommand{\RubikTUp}{\@RubikTp{U}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+% 
+%
+%  \begin{macro}{\rrTD}
+%  \begin{macro}{\rrhTD}
+%  \begin{macro}{\RubikTD}
+%  \begin{macro}{\textRubikTD}
+%  These commands  draw forms of the TD = Dw wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTD}{\@rrT{D}}
+\newcommand{\rrhTD}{\@rrhT{D}}
+\newcommand{\textRubikTD}{\@textRubikT{D}}
+\newcommand{\RubikTD}{\@RubikT{D}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%  \begin{macro}{\rrTDp}
+%  \begin{macro}{\rrhTDp}
+%  \begin{macro}{\RubikTDp}
+%  \begin{macro}{\textRubikTDp}
+%  These commands  draw forms of the TDp = Dwp wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTDp}{\@rrTp{D}}
+\newcommand{\rrhTDp}{\@rrhTp{D}}
+\newcommand{\textRubikTDp}{\@textRubikTp{D}}
+\newcommand{\RubikTDp}{\@RubikTp{D}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+% 
+%  \begin{macro}{\rrTF}
+%  \begin{macro}{\rrhTF}
+%  \begin{macro}{\RubikTF}
+%  \begin{macro}{\textRubikTF}
+%  These commands  draw forms of the TF = Fw wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTF}{\@rrT{F}}
+\newcommand{\rrhTF}{\@rrhT{F}}
+\newcommand{\textRubikTF}{\@textRubikT{F}}
+\newcommand{\RubikTF}{\@RubikT{F}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%  \begin{macro}{\rrTFp}
+%  \begin{macro}{\rrhTFp}
+%  \begin{macro}{\RubikTFp}
+%  \begin{macro}{\textRubikTFp}
+%  These commands  draw forms of the TFp = Fwp wide slice rotation.
+% \begin{macrocode}
+\newcommand{\rrTFp}{\@rrTp{F}}
+\newcommand{\rrhTFp}{\@rrhTp{F}}
+\newcommand{\textRubikTFp}{\@textRubikTp{F}}
+\newcommand{\RubikTFp}{\@RubikTp{F}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+% 
+%
+%  \begin{macro}{\rrTB}
+%  \begin{macro}{\rrhTB}
+%  \begin{macro}{\RubikTB}
+%  \begin{macro}{\textRubikTB}
+%  These commands  draw forms of the TB = Bw wide slice rotation.
+%  NOTE we just use the letters TB in a square
+% \begin{macrocode}
+\newcommand{\rrTB}{\@rrT{B}}
+\newcommand{\SquareTB}{\@tlen\@SquareLetter{\rrTB}\@tlen}
+\newcommand{\rrhTB}{\raisebox{-0.25mm}{\SquareTB}}
+\newcommand{\textRubikTB}{\rrhTB}
+\newcommand{\RubikTB}{\raisebox{\@hRubik}{\SquareTB}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%  \begin{macro}{\rrTBp}
+%  \begin{macro}{\rrhTBp}
+%  \begin{macro}{\RubikTBp}
+%  \begin{macro}{\textRubikTBp}
+%  These commands  draw forms of the TBp = Bwp wide slice rotation.
+%  NOTE we just use the letters TB' in a square
+% \begin{macrocode}
+\newcommand{\rrTBp}{\@rrTp{B}}
+\newcommand{\SquareTBp}{\@tlen\@SquareLetter{\rrTBp}\@tlen}
+\newcommand{\rrhTBp}{\raisebox{-0.25mm}{\SquareTBp}}
+\newcommand{\textRubikTBp}{\rrhTBp}
+\newcommand{\RubikTBp}{\raisebox{\@hRubik}{\SquareTBp}}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations SR and SRp  (opposite slices)}
+%
+%  opposite slices in same direction
+% SR = Rs (both rotating in R direction)
+%
+%  \begin{macro}{\rrSR}
+%  \begin{macro}{\rrhSR}
+%  \begin{macro}{\RubikSR}
+%  \begin{macro}{\textRubikSR}
+%  These commands  draw forms of the SR opposite slice rotation.
+% \begin{macrocode}
+\newcommand{\rrSR}{\@rr{SR}}
+\newcommand{\rrhSR}{\rrhRs}% 
+\newcommand{\RubikSR}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareRs\\
+\rrSR%
+\end{minipage}%
+}}
+\newcommand{\textRubikSR}{\rrSR\,\rrhRs}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrSRp}
+%  \begin{macro}{\rrhSRp}
+%  \begin{macro}{\RubikSRp}
+%  \begin{macro}{\textRubikSRp}
+%  These commands  draw forms of the SRp opposite slice rotation.
+% \begin{macrocode}
+\newcommand{\rrSRp}{\@rrp{SR}}
+\newcommand{\rrhSRp}{\rrhRsp}%
+\newcommand{\RubikSRp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareRsp\\
+\rrSRp%
+\end{minipage}%
+}}
+\newcommand{\textRubikSRp}{\rrSRp\,\rrhRsp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations SL and SLp}
+%
+% SL = Ls (both rotating in L direction)
+%
+%  \begin{macro}{\rrSL}
+%  \begin{macro}{\rrhSL}
+%  \begin{macro}{\RubikSL}
+%  \begin{macro}{\textRubikSL}
+%  These commands  draw forms of the SL opposite slice rotation.
+% \begin{macrocode}
+\newcommand{\rrSL}{\@rr{SL}}
+\newcommand{\rrhSL}{\rrhLs}% 
+\newcommand{\RubikSL}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareLs\\
+\rrSL%
+\end{minipage}%
+}}
+\newcommand{\textRubikSL}{\rrSL\,\rrhLs}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrSLp}
+%  \begin{macro}{\rrhSLp}
+%  \begin{macro}{\RubikSLp}
+%  \begin{macro}{\textRubikSLp}
+%  These commands  draw forms of the SLp opposite slice rotation.
+% \begin{macrocode}
+\newcommand{\rrSLp}{\@rrp{SL}}
+\newcommand{\rrhSLp}{\rrhLsp}%
+\newcommand{\RubikSLp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareLsp\\
+\rrSLp%
+\end{minipage}%
+}}
+\newcommand{\textRubikSLp}{\rrSLp\,\rrhLsp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations SU and SUp}
+%
+% SU = Us (both rotating in U direction)
+%
+%  \begin{macro}{\rrSU}
+%  \begin{macro}{\rrhSU}
+%  \begin{macro}{\RubikSU}
+%  \begin{macro}{\textRubikSU}
+%  These commands  draw forms of the SU opposite slice rotation.
+% \begin{macrocode}
+\newcommand{\rrSU}{\@rr{SU}}
+\newcommand{\rrhSU}{\rrhUs}% 
+\newcommand{\RubikSU}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareUs\\
+\rrSU%
+\end{minipage}%
+}}
+\newcommand{\textRubikSU}{\rrSU\,\rrhUs}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrSUp}
+%  \begin{macro}{\rrhSUp}
+%  \begin{macro}{\RubikSUp}
+%  \begin{macro}{\textRubikSUp}
+%  These commands  draw forms of the SUp opposite slice rotation.
+% \begin{macrocode}
+\newcommand{\rrSUp}{\@rrp{SU}}
+\newcommand{\rrhSUp}{\rrhUsp}%
+\newcommand{\RubikSUp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareUsp\\
+\rrSUp%
+\end{minipage}%
+}}
+\newcommand{\textRubikSUp}{\rrSUp\,\rrhUsp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations SD and SDp}
+%
+% SD = Ds (both rotating in D direction)
+%
+%  \begin{macro}{\rrSD}
+%  \begin{macro}{\rrhSD}
+%  \begin{macro}{\RubikSD}
+%  \begin{macro}{\textRubikSD}
+%  These commands  draw forms of the SD opposite slice rotation.
+% \begin{macrocode}
+\newcommand{\rrSD}{\@rr{SD}}
+\newcommand{\rrhSD}{\rrhDs}% 
+\newcommand{\RubikSD}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareDs\\
+\rrSD%
+\end{minipage}%
+}}
+\newcommand{\textRubikSD}{\rrSD\,\rrhDs}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrSDp}
+%  \begin{macro}{\rrhSDp}
+%  \begin{macro}{\RubikSDp}
+%  \begin{macro}{\textRubikSDp}
+%  These commands  draw forms of the SDp opposite slice rotation.
+% \begin{macrocode}
+\newcommand{\rrSDp}{\@rrp{SD}}
+\newcommand{\rrhSDp}{\rrhDsp}%
+\newcommand{\RubikSDp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareDsp\\
+\rrSDp%
+\end{minipage}%
+}}
+\newcommand{\textRubikSDp}{\rrSDp\,\rrhDsp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \subsubsection{\hspace{3mm}Rotations SF and SFp}
+% 
+% SF = Fs is not visible from the front, so is represented in a square box.
+% Both rotating in the F direction
+% We use Fs and Fsp as the templates.
+%
+%  \begin{macro}{\rrSF}
+%  \begin{macro}{\rrhSF}
+%  \begin{macro}{\RubikSF}
+%  \begin{macro}{\textRubikSF}
+%  These commands  draw forms of the  SF opposite slice rotation.
+%  We need to just make square with SF in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrSF}{\@rr{SF}}
+\newcommand{\SquareSF}{\@tlen\@SquareLetter{\rrSF}\@tlen}
+\newcommand{\rrhSF}{\raisebox{-0.25mm}{\SquareSF}}
+\newcommand{\RubikSF}{\raisebox{\@hRubik}{\SquareSF}}
+\newcommand{\textRubikSF}{\rrhSF}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrSFp}
+%  \begin{macro}{\rrhSFp}
+%  \begin{macro}{\RubikSFp}
+%  \begin{macro}{\textRubikSFp}
+%  These commands  draw forms of the  SFp opposite slice rotation.
+%  We need to just make square with SFp in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrSFp}{\@rrp{SF}}
+\newcommand{\SquareSFp}{\@tlen\@SquareLetter{\rrSFp}\@tlen}
+\newcommand{\rrhSFp}{\raisebox{-0.25mm}{\SquareSFp}}
+\newcommand{\RubikSFp}{\raisebox{\@hRubik}{\SquareSFp}}
+\newcommand{\textRubikSFp}{\rrhSFp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+% 
+%
+%  \subsubsection{\hspace{3mm}Rotations SB and SBp}
+%   
+% SB = Bs is not visible from the front, so is represented in a square box.
+% Both rotating in the B direction
+% We use Bs and Bsp as the templates.
+%
+%  \begin{macro}{\rrSB}
+%  \begin{macro}{\rrhSB}
+%  \begin{macro}{\RubikSB}
+%  \begin{macro}{\textRubikSB}
+%  These commands  draw forms of the  SB opposite slice rotation.
+%  We need to just make square with SB in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrSB}{\@rr{SB}}
+\newcommand{\SquareSB}{\@tlen\@SquareLetter{\rrSB}\@tlen}
+\newcommand{\rrhSB}{\raisebox{-0.25mm}{\SquareSB}}
+\newcommand{\RubikSB}{\raisebox{\@hRubik}{\SquareSB}}
+\newcommand{\textRubikSB}{\rrhSB}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%  \begin{macro}{\rrSBp}
+%  \begin{macro}{\rrhSBp}
+%  \begin{macro}{\RubikSBp}
+%  \begin{macro}{\textRubikSBp}
+%  These commands  draw forms of the  SBp opposite slice rotation.
+%  We need to just make square with SBp in square; 
+%  adjust box height using a \cmd{\rule};
+%  adjust \cmd{\fboxsep} (default=3pt);
+%  adjust \cmd{\fboxrule} (default=0.4pt);
+%  bounded by \{\} so no need to reset to defaults.
+% Not visible from the front.
+% \begin{macrocode}
+\newcommand{\rrSBp}{\@rrp{SB}}
+\newcommand{\SquareSBp}{\@tlen\@SquareLetter{\rrSBp}\@tlen}
+\newcommand{\rrhSBp}{\raisebox{-0.25mm}{\SquareSBp}}
+\newcommand{\RubikSBp}{\raisebox{\@hRubik}{\SquareSBp}}
+\newcommand{\textRubikSBp}{\rrhSBp}
+%    \end{macrocode}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%    \end{macro}
+%
+%
+%
+%    \subsection{\hspace{3mm}Axis rotations (textRubik versions)}
+%     \label{sec:codetextrubikaxisversions}
+%
+%  For completeness we include a \cmd{\textRubik} version of all the 
+% axis rotation codes (making them equal to their hieroglyphic \cmd{\rrh} version).
+% Obviously this list must go at the end of this file. While these commands are perhaps 
+% strictly unnecessary, the motivation is to allow users to include them in
+% a \cmd{\ShowSequence} command when using the \cmd{\textRubik} font argument.  
+%
+% \begin{macrocode}
+\newcommand{\textRubikx}{\rrhx}
+\newcommand{\textRubikxp}{\rrhxp}
+\newcommand{\textRubiky}{\rrhy}
+\newcommand{\textRubikyp}{\rrhyp}
+\newcommand{\textRubikz}{\rrhz}
+\newcommand{\textRubikzp}{\rrhzp}
+\newcommand{\textRubikl}{\rrhl}
+\newcommand{\textRubikr}{\rrhr}
+\newcommand{\textRubiku}{\rrhu}
+\newcommand{\textRubikd}{\rrhd}
+\newcommand{\textRubikf}{\rrhf}
+\newcommand{\textRubikb}{\rrhb}
+\newcommand{\textRubikLc}{\rrhLc}
+\newcommand{\textRubikLcp}{\rrhLcp}
+\newcommand{\textRubikRc}{\rrhRc}
+\newcommand{\textRubikRcp}{\rrhRcp}
+\newcommand{\textRubikUc}{\rrhUc}
+\newcommand{\textRubikUcp}{\rrhUcp}
+\newcommand{\textRubikDc}{\rrhDc}
+\newcommand{\textRubikDcp}{\rrhDcp}
+\newcommand{\textRubikFc}{\rrhFc}
+\newcommand{\textRubikFcp}{\rrhFcp}
+\newcommand{\textRubikBc}{\rrhBc}
+\newcommand{\textRubikBcp}{\rrhBcp}
+\newcommand{\textRubikCL}{\rrhCL}
+\newcommand{\textRubikCLp}{\rrhCLp}
+\newcommand{\textRubikCR}{\rrhCR}
+\newcommand{\textRubikCRp}{\rrhCRp}
+\newcommand{\textRubikCU}{\rrhCU}
+\newcommand{\textRubikCUp}{\rrhCUp}
+\newcommand{\textRubikCD}{\rrhCD}
+\newcommand{\textRubikCDp}{\rrhCDp}
+\newcommand{\textRubikCF}{\rrhCF}
+\newcommand{\textRubikCFp}{\rrhCFp}
+\newcommand{\textRubikCB}{\rrhCB}
+\newcommand{\textRubikCBp}{\rrhCBp}
+%    \end{macrocode}
+%
+%
+%
 % --------------------------
 %    End of this package
 % --------------------------

Modified: trunk/Master/texmf-dist/source/latex/rubik/rubikcube.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/rubikcube.ins	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/source/latex/rubik/rubikcube.ins	2017-03-06 21:58:50 UTC (rev 43415)
@@ -5,21 +5,7 @@
 %%  Authors: RWD Nickalls (dick at nickalls.org) 
 %%          and Apostolos Syropoulos (asyropoulos at yahoo.com)
 %%
-%%  VERSION 3.0  September 25, 2015
-%%  Copyright 2015  RWD Nickalls + A Syropoulos
-%% 
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either
-%% version 1.3c of this license or (at your option) any 
-%% later version: <http://www.latex-project.org/lppl.txt>
-%%
-%% This work consists of the files listed in the README file.
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this work when run through
-%% LaTeX.
-%%
+%%  
 %% --------------- start of docstrip commands ------------------
 %%
 \def\batchfile{rubikcube.ins}
@@ -31,8 +17,9 @@
   Authors: RWD Nickalls (dick at nickalls.org) 
           and Apostolos Syropoulos (asyropoulos at yahoo.com)
 
-  Copyright 2015  RWD Nickalls and A Syropoulos
+  Copyright  03 March 2017  RWD Nickalls and A Syropoulos
 
+  VERSION 4.0
 
   This work may be distributed and/or modified under the
   conditions of the LaTeX Project Public License, either

Added: trunk/Master/texmf-dist/source/latex/rubik/rubikexamples.bat
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/rubikexamples.bat	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/rubik/rubikexamples.bat	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,3 @@
+ pdflatex  --shell-escape  rubikexamples.tex
+
+

Added: trunk/Master/texmf-dist/source/latex/rubik/rubikpatterns.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/rubikpatterns.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/rubik/rubikpatterns.dtx	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,540 @@
+% \iffalse meta-comment
+%
+% rubikpatterns.dtx
+%
+% version 4.0
+%
+% Authors: RWD Nickalls (dick at nickalls.org) 
+%        and Apostolos Syropoulos (asyropoulos at yahoo.com)
+%
+% Copyright   03 March 2017  RWD Nickalls + A Syropoulos
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3c of this license or (at your option) any
+% later version. The latest version of this licence is in 
+%
+%       http://www.latex-project.org/lppl.txt
+%
+%<*readme>
+%
+% The rubikpatterns package provides a collection of LaTeX commands and macros 
+% for the typesetting of Rubik cube configurations and rotation 
+% sequences using the TikZ graphic language.
+%
+% Please report errors or suggestions for improvement to
+%
+%         Dick Nickalls or Apostolos Syropoulos
+%
+% This package requires the basic TikZ package to be loaded already
+%</readme>
+%
+%<*driver>
+\listfiles
+\documentclass{ltxdoc}
+\IfFileExists{rubikpatterns.sty}{\usepackage{rubikpatterns}}{%
+    \GenericWarning{rubikpatterns.dtx}{Package file rubikpatterns.sty not found.
+    Documentation will be messed up!^^J
+    (Generate rubikpatterns.sty by (La)TeXing rubikpatterns.ins, and then^^J
+    process rubikpatterns.dtx again)^^J}\stop
+}%
+%
+\usepackage{ifpdf}
+\usepackage{url,path}  %% for references and paths
+\usepackage{graphicx}  %% for the two pdf figs
+\usepackage{hypdoc}    %% for pdf bookmarks + hyperref documenting of packages
+%%\OnlyDescription
+\EnableCrossrefs
+\PageIndex
+\CodelineIndex
+\CodelineNumbered
+\RecordChanges
+\setcounter{StandardModuleDepth}{1}
+\begin{document}
+  \DocInput{rubikpatterns.dtx}
+  \PrintChanges
+  \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+%
+% 
+%%% \CheckSum{187}
+%
+%%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+%
+%
+%
+% \title{%
+%       \ifpdf\pdfbookmark[1]{Title}{Title}\else\fi%
+%       The \textsc{rubikpatterns} package}
+%
+% \author{
+%      RWD Nickalls (dick at nickalls.org) \\
+%     A Syropoulos (asyropoulos at yahoo.com)
+%       }
+%  \date{This file describes version \RPfileversion\ (\RPfiledate)\\
+%  \texttt{www.ctan.org/pkg/rubik}}
+%  \maketitle
+%
+%  \begin{abstract}
+%  The \rubikpatterns\ package is a small data-base of well-known named 
+%  Rubik patterns and associated rotation sequences, for use  in conjunction 
+%  with the \textsc{rubikcube} and \textsc{rubikrotation} packages. It is part 
+%  of the Rubik `bundle'.
+%  \end{abstract}
+%
+%
+%  \tableofcontents
+%
+% \pagebreak
+%
+% \section{Introduction}
+%
+% The \textsc{rubikpatterns}  package is a small a data-base of well-known  Rubik 
+%  rotation sequences  for use  in  conjunction with the \textsc{rubikcube} 
+%  and \textsc{rubikrotation} packages. 
+% These sequences, which are well-known and  widely available, were  sourced from the Rubik-related
+%  websites  of Reid M and Kociemba H (see References for URLs). 
+%
+%
+%
+%   \subsection{Installation}
+%
+%  Place the file \texttt{rubikpatterns.zip} into a temporary directory, and unzip it. 
+% This will generate the following files:
+%\begin{quote}
+% \begin{verbatim}
+% rubikpatterns.ins
+% rubikpatterns.dtx
+% rubikpatterns.pdf     --this document
+% rubikpatternsLIST.tex
+% rubikpatternsLIST.pdf
+%\end{verbatim}
+%\end{quote}
+% The package documentation is the file \texttt{rubikpatterns.pdf}.
+%  The  style option \texttt{rubikpatterns.sty} is generated  by  running (pdf)\LaTeX\ on  
+% the file \texttt{rubikpatterns.ins}  as follows:
+%\begin{quote}
+%\begin{verbatim}
+%   pdflatex  rubikpatterns.ins 
+%\end{verbatim}
+%\end{quote}
+% The documentation file (\texttt{rubikpatterns.pdf}) is then generated using the following 
+% sequence of steps\,\footnote{Since the documentation includes a complicated indexing 
+% system as well a \textsc{pdf} index and hyperef links (the package \texttt{hypdoc}
+%  is used), then a lot of pdflatex runs are required. Prior to the first run it is
+% a good idea to delete any relevant \texttt{.toc}, \texttt{.aux}, \texttt{.out} files.}:
+%\begin{quote}
+% \begin{verbatim}
+%  pdflatex    rubikpatterns.dtx
+%  pdflatex    rubikpatterns.dtx
+%  makeindex -s gind.ist  rubikpatterns
+%  makeindex -s gglo.ist -o rubikpatterns.gls  rubikpatterns.glo
+%  pdflatex    rubikpatterns.dtx
+%  pdflatex    rubikpatterns.dtx
+%\end{verbatim}
+%\end{quote}
+%
+%
+% 
+%  \subsubsection{Placing the files}
+% \label{sec:placingfiles}
+%
+% Place the files either in a working directory, or where your system 
+% will find them, e.g.,~in your \texttt{/texmf-local/} directory tree. 
+% For example, on a Linux platform with a standard \TeX\ Directory Structure (TDS), then:
+%
+%\medskip
+%{\noindent}*.sty  $\rightarrow$  \texttt{/usr/local/texlive/texmf-local/tex/latex/rubik/}
+%{\newline}*.pdf  $\rightarrow$  \texttt{/usr/local/texlive/texmf-local/doc/rubik/}
+%
+%\medskip
+%
+%\medskip
+%{\noindent}\textsc{file database}:\ \ Finally, (depending on your system) update the 
+% \TeX\ file database. 
+% For example, on a Linux platform  this is achieved using the \texttt{texhash} command.
+%
+%
+%
+%       \subsection{Usage}
+% \label{sec:usage}
+% Load the  packages \textsc{rubikcube}, 
+%  \textsc{rubikrotation} and \textsc{rubikpatterns} in the \TeX\ file preamble  \textit{after} loading 
+% the TikZ package; for example, as follows: 
+%\begin{quote}
+% \begin{verbatim}
+% \usepackage{tikz}
+% \usepackage{rubikcube,rubikrotation,rubikpatterns}
+%\end{verbatim}
+%\end{quote}
+% Since the sequence macros made available  by this package are accessed using commands 
+% provided by the \textsc{rubikcube} and \textsc{rubikrotation} packages, please read the 
+% documentation of these  packages.
+%
+%
+% 
+%   \section{Rubik patterns}
+%
+% A Rubik pattern  is the configuration generated by a sequence of rotations 
+% (or `moves') from some initial starting configuration (typically a `solved' 
+% configuration). For example, `sixspot' is a well known pattern  generated  
+% from a solved Rubik cube by the  rotation sequence  
+% \texttt{U,Dp,R,Lp,F,Bp,U,Dp}, as follows:
+%
+% \bigskip
+%
+% \noindent\begin{minipage}{\textwidth}
+% \centering
+% \ifpdf
+%   \includegraphics[height=3cm]{rubikpatterns-doc-figA.pdf}
+% \else
+% \fi
+% \end{minipage}
+%
+% \bigskip
+%
+% {\noindent}The code for the above image is as follows:
+%
+%\begin{verbatim}
+% \noindent\hfil%
+% \RubikCubeSolvedWB% 
+% \ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}%
+% \RubikRotation{\SixSpot}%
+% \quad\SequenceBraceA{sixspot}{\ShowSequence{}{\Rubik}{\SequenceLong}}\quad%
+% \ShowCube{2.4cm}{0.6}{\DrawRubikCubeRU}%
+% \hfil%
+%\end{verbatim}
+%
+% \bigskip
+%
+% Note that the  appearance of a pattern generated by  a given 
+% rotation sequence is, of course, sensitive  to (a)~the particular colour 
+% configuration of the solved cube used, and (b)~the initial  orientation of 
+% the Rubik cube.
+% 
+% 
+% Consequently the appearance generated  by a given sequence
+% may appear  slightly different from 
+% that on some websites, although the  colour configuration (pattern's \textit{geometry})   
+% will, of course, be the same  (isomorphic). You may therefore need 
+% to adjust the pre- (and possibly the post-)  x,y,z rotations in 
+% order to obtain  a particular configuration as displayed elsewhere.
+%
+%
+%  \subsection{Sequence macros}
+%
+% Each of the  rotation sequences of `patterns'  made available by the 
+% \textsc{rubikpatterns} package is defined in  the file \texttt{rubikpatterns.sty}  
+% in the following  compact macro form.
+% For~example, the rotation sequence associated with the pattern known 
+% as `SixSpot' (shown in the figure above) is defined as follows:
+%\begin{verbatim}
+%\newcommand{\SixSpot}{[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp,<(8q*, 8f*)>}
+%\newcommand{\sixspot}{\SixSpot}
+%\end{verbatim}
+% The macro name is \verb!\SixSpot! (the lower-case version \verb!\sixspot! can also be used). 
+% Note that the second argument which 
+% includes the  rotation sequence, also includes the pattern name in 
+% square brackets \verb![SixSpot]!  as the first element in the sequence.
+% Additional metadata (held by the macro \verb!\SequenceInfo!) is appended 
+% in angle brackets (separated by a comma) as follows: \verb!<(8q*, 8f*)>!.
+% For  details see  the \textsc{rubikrotation} package documentation.
+%
+%
+%
+%   \subsection{List of macros}
+%
+% The following is a list of the macro names of all the Rubik patterrns supplied by
+% the \textsc{rubikpatterns} package.  Note that for convenience each macro-name listed
+% has an equivalent lower-case version. See the companion file \texttt{rubikpatternsLIST.pdf}
+% for a detailed list  showing  each pattern  and its associated 
+% sequence\,\footnote{We show all these images in a separate
+% file (\texttt{rubikpatternsLIST.pdf}) purely because  generating them requires 
+% using the \LaTeX\ command-line  option \texttt{--shell-escape} in conjunction 
+% with the \textsc{rubikrotation} package.}. 
+%
+%  All the pattern names encoded here (as macros) are  well-known and widely available. 
+% However, some pattern names have been slightly modified
+% in order to avoid spaces and to keep them as similar to the original as possible.
+% On finding different sequences which generate the same pattern, then the  
+% shortest  sequence has been selected   (they can be readily distinguished by their metadata).
+% 
+% Finally, we note that there is a serious need for a standardised one-word nomenclature 
+% in order to  avoid confusion, and to facilitate computerisation and an electronic database.
+% Such a notation also needs to accommodate  those sequence variations which generate the same pattern.
+% We welcome suggestions and/or help for improvement.
+
+%
+%\begin{verbatim}
+%  \PonsAsinorum
+%  \CheckerboardsThree
+%  \CheckerboardsSix
+%  \Stripes
+%  \CubeInCube
+%  \CubeInCubeInCube
+%  \ChristmasCross
+%  \PlummersCross
+%  \Anaconda
+%  \Python
+%  \BlackMamba
+%  \GreenMamba
+%  \FemaleRattlesnake
+%  \MaleRattlesnake
+%  \FemaleBoa
+%  \MaleBoa
+%  \FourSpot
+%  \SixSpot
+%  \OrthogonalBars
+%  \SixTs
+%  \SixTwoOne
+%  \ExchangedPeaks
+%  \TwoTwistedPeaks
+%  \FourTwistedPeaks
+%  \ExchangedChickenFeet
+%  \TwistedChickenFeet
+%  \ExchangedRings
+%  \TwistedRings
+%  \EdgeHexagonTwo
+%  \EdgeHexagonThree
+%  \TomParksPattern
+%  \RonsCubeInCube
+%  \TwistedDuckFeet
+%  \ExchangedDuckFeet
+%  \Superflip
+%\end{verbatim}
+%
+% Note that  the particular  superflip sequence made available by this package 
+% (shown in \texttt{rubikpatternsLIST.pdf}) is due to  Reid (1995), and is detailed 
+% on the Kociemba webpage  \texttt{http://www.kociemba.org/math/oh.htm}. Indeed, this was the 
+% first sequence to define the `20-move' (HTM) upper boundary for solving a Rubik cube 
+% (see  Rokicki \textit{et~al.}, 2013). 
+%
+% The superflip configuration is also significant  since it is its own inverse. 
+% For example, the following two \verb!\RubikRotation! commands will generate the same 
+% configuration (starting from a solved cube):
+%\begin{verbatim}
+% \RubikRotation{\superflip}
+% \RubikRotation{\superflip,<inverse>}
+%\end{verbatim}
+% This property  is shown as  one of the examples in the Rubik bundle  file \texttt{rubikexamples.pdf}.
+%
+%
+%
+%     \section{Change history}
+%
+% \begin{itemize}
+%
+% \item Version 4.0 (March 2017)
+%
+% --- First release of this package.
+%
+% \end{itemize}
+%
+%
+%
+%   \section{References}
+%     \label{sec:references}
+%
+%\begin{itemize}
+%
+% \item Fridrich website (Fridrich J). 
+% See the `Pretty patterns'  webpage \url{http://www.ws.binghamton.edu/fridrich/ptrns.html}
+%
+% \item  Kociemba website (Kociemba H).  \url{http://www.kociemba.org/cube.htm}
+% {\newline}---for superflip see: \url{http://www.kociemba.org/math/oh.htm}
+%
+% \item Randelshofer website (Randelshofer W).  Pretty patterns. 
+% \url{http://www.randelshofer.ch/rubik/patterns/U080.01.html}
+%
+% \item Reid M. \  Patterns.  \url{http://www.cflmath.com/Rubik/patterns.html}
+%
+% \item Reid M. (1995). Superflip requires 20 face turns. (January 1995) 
+%   \url{http://www.math.ucf.edu/~reid/Rubik/CubeLovers/} 
+%  (see Section~\ref{sec:superflip})  
+% {\newline}[cited from Rokicki \textit{et~al.}, 2013]. 
+% {\newline}(Note: easier to use is the following html indexed version of the 
+% archive of the Cube-Lovers usenet group (1982--1997)  
+% \url{http://www.math.rwth-aachen.de/~Martin.Schoenert/Cube-Lovers/})
+%
+%  \item Rokicki T, Kociemba H, Davidson M and Dethridge J (2013). The diameter of the Rubik's 
+%  cube is twenty.  \textit{SIAM.\ J.\ Discrete Math.}, \textbf{27}, 1082--1105. 
+%   \url{http://tomas.rokicki.com/rubik20.pdf}
+%
+%\end{itemize}
+% 
+%
+%
+%
+% ^^A ==================================================
+% \StopEventually{\PrintIndex}
+%
+%
+%
+%        \section[The code]{The code (\texttt{rubikpatterns.sty})} 
+%
+% 
+%   \subsection{Package heading}
+%   \label{sec:CodePackageHeading}
+%
+%    \begin{macrocode}
+%<*rubikpatterns>
+\def\RPfileversion{4.0}%
+\def\RPfiledate{2017/03/03}%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{rubikpatterns}[\RPfiledate\space (v\RPfileversion)]
+%    \end{macrocode}
+%
+%
+%    \begin{macro}{\rubikpatterns}
+% First we create a suitable logo
+%    \begin{macrocode}
+\newcommand{\rubikpatterns}{\textsc{rubikpatterns}}
+%    \end{macrocode}
+%    \end{macro}
+%
+%   \subsection{Patterns}
+%   \label{sec:patternscode}
+%
+%
+%
+%
+%  \subsubsection{Superflip}
+%   \label{sec:superflip}
+%
+% This particular superflip sequence is from the Kociemba website (his Oh webpage). 
+% It is due to  Reid (1995).
+%  \begin{macrocode}
+\newcommand{\Superflip}{[Superflip],Dp,R2,Fp,D2,F2,U2,Lp,R,Dp,R2,B,F,Rp,%
+U2,Lp,F2,Rp,U2,Rp,Up,<(20f*)>}%
+\newcommand{\superflip}{\Superflip}
+%    \end{macrocode}
+%
+%
+%  \subsubsection{Reid data}
+%
+% These named sequences are derived from the Reid website. 
+%  \begin{macrocode}
+\newcommand{\PonsAsinorum}{[PonsAsinorum],F2,B2,R2,L2,U2,D2,<(12q*, 6f*)>}%
+\newcommand{\ponsasinorum}{\PonsAsinorum}%
+\newcommand{\CheckerboardsThree}%
+{[CheckerboardsThree],F,B2,Rp,D2,B,R,U,Dp,R,Lp,Dp,Fp,R2,D,F2,Bp,<(20q*, 16f*), order 3>}%  
+\newcommand{\checkerboardsthree}{\CheckerboardsThree}%
+\newcommand{\CheckerboardsSix}%
+{[CheckerboardsSix],R2,L2,U,B,L2,Dp,F,B2,R,Lp,Fp,B,R,D,F2,Lp,Up,<(17f*, 22q), order 6>}%  
+\newcommand{\checkerboardssix}{\CheckerboardsSix}%
+\newcommand{\Stripes}{[Stripes],F,U,F,R,L2,B,Dp,R,D2,L,Dp,B,R2,L,F,U,F,<(20q*, 17f*)>}%  
+\newcommand{\stripes}{\Stripes}%
+\newcommand{\CubeInCube}{[CubeInCube],F,L,F,Up,R,U,F2,L2,Up,Lp,B,Dp,Bp,L2,U,<(18q*, 15f*)>}%  
+\newcommand{\cubeincube}{\CubeInCube}%
+\newcommand{\CubeInCubeInCube}%
+{[CubeInCubeInCube],Fp,U,Bp,Rp,U,F2,U2,Fp,Up,F,U2,D,Bp,Dp,R2,B2,Up,<(17f*, 22q)>}%  
+\newcommand{\cubeincubeincube}{\CubeInCubeInCube}%
+\newcommand{\ChristmasCross}{[ChristmansCross],U,F,Bp,L2,U2,L2,Fp,B,U2,L2,U,<(16q*, 11f*)>}%  
+\newcommand{\christmascross}{\ChristmansCross}%
+\newcommand{\PlummersCross}%
+{[PlummersCross],R2,Lp,D,F2,Rp,Dp,Rp,L,Up,D,R,D,B2,Rp,U,D2,<(20q*, 16f*)>}%  
+\newcommand{\plummerscross}{\PlummersCross}%
+\newcommand{\Anaconda}{[Anaconda],L,U,Bp,Up,R,Lp,B,Rp,F,Bp,D,R,Dp,Fp,<(14q*, 14f*)>}%  
+\newcommand{\anaconda}{\Anaconda}%
+\newcommand{\Python}{[Python],F2,Rp,Bp,U,Rp,L,Fp,L,Fp,B,Dp,R,B,L2,<(16q*, 14f*)>}%  
+\newcommand{\python}{\Python}%
+\newcommand{\BlackMamba}{[BlackMamba],R,D,L,Fp,R,Lp,D,Rp,U,Dp,B,Up,Rp,Dp,<(14q*, 14f*)>}%  
+\newcommand{\blackmamba}{\BlackMamba}%
+\newcommand{\GreenMamba}{[GreenMamba],R,D,R,F,Rp,Fp,B,D,Rp,Up,Bp,U,D2,<(14q*, 13f*)>}%    
+\newcommand{\greenmamba}{\GreenMamba}%
+\newcommand{\FemaleRattlesnake}%
+{[FemaleRattlesnake],U2,Dp,L2,D,B,U,Bp,Rp,L2,U2,F,Up,F,R,<(18q*, 14f*)>}%  
+\newcommand{\femalerattlesnake}{\FemaleRattlesnake}%
+\newcommand{\MaleRattlesnake}%
+{[MaleRattlesnake],Rp,Fp,U,Fp,U2,R,L2,B,Up,Bp,Dp,L2,U2,D,<(18q*, 14f*)>}%  
+\newcommand{\malerattlesnake}{\MaleRattlesnake}%
+\newcommand{\FemaleBoa}{[FemaleBoa],R,Up,R2,U2,F,D2,R2,Up,Dp,R,Dp,Fp,<(16q*, 12f*)>}%  
+\newcommand{\femaleboa}{\FemaleBoa}%
+\newcommand{\MaleBoa}{[MaleBoa],F,D,Rp,U,D,R2,D2,Fp,U2,R2,U,Rp,<(16q*, 12f*)>}%  
+\newcommand{\maleboa}{\MaleBoa}%
+\newcommand{\FourSpot}{[FourSpot],F2,B2,U,Dp,R2,L2,U,Dp,<(12q*, 8f*)>}%  
+\newcommand{\fourspot}{\FourSpot}%
+\newcommand{\SixSpot}{[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp,<(8q*, 8f*)>}%  
+\newcommand{\sixspot}{\SixSpot}%
+\newcommand{\OrthogonalBars}%
+{[OrthogonalBars],F,Rp,U,L,Fp,Lp,F,Up,R,U,Lp,Up,L,Fp,<(14q*, 14f*)>}%  
+\newcommand{\orthogonalbars}{\OrthogonalBars}%
+\newcommand{\SixTs}{[SixTs],F2,R2,U2,Fp,B,D2,L2,F,B,<(14q*, 9f*)>}% 
+\newcommand{\sixts}{\SixTs}%
+\newcommand{\SixTwoOne}{[SixTwoOne],U,B2,D2,L,Bp,Lp,Up,Lp,B,D2,B2,<(15q*, 11f*)>}%  
+\newcommand{\sixtwoone}{\SixTwoOne}%
+\newcommand{\ExchangedPeaks}%
+{[ExchangedPeaks],F2,R2,D,R2,U,D,F2,Dp,Rp,Dp,F,L2,Fp,D,R,Up,<(16f*, 21q)>}%  
+\newcommand{\exchangedpeaks}{\ExchangedPeaks}%
+\newcommand{\TwoTwistedPeaks}%
+{[TwoTwistedPeaks],F,D2,B,R,Bp,Lp,F,Dp,L2,F2,R,Fp,Rp,F2,Lp,Fp,<(16f*, 20q)>}%
+\newcommand{\twotwistedpeaks}{\TwoTwistedPeaks}%
+\newcommand{\FourTwistedPeaks}%
+{[FourTwistedPeaks],Up,D,B,Rp,F,R,Bp,Lp,Fp,B,L,F,Rp,Bp,R,Fp,Up,D,<(18q*, 18f*)>}%
+\newcommand{\fourtwistedpeaks}{\FourTwistedPeaks}%
+\newcommand{\ExchangedChickenFeet}%
+{[ExchangedChickenFeet],F,Lp,Dp,Bp,L,F,U,Fp,Dp,F,L2,Bp,Rp,U,L2,Dp,F,<(19q*, 17f*)>}%
+\newcommand{\exchangedchickenfeet}{\ExchangedChickenFeet}%
+\newcommand{\TwistedChickenFeet}%
+{[TwistedChickenFeet],F,Lp,D,Fp,Up,B,U,F,Up,F,Rp,F2,L,Up,Rp,D2,<(18q*, 16f*)>}%
+\newcommand{\twistedchickenfeet}{\TwistedChickenFeet}%
+\newcommand{\ExchangedRings}%
+{[ExchangedRings],F,U,Dp,Lp,B2,L,Up,D,F,U,R2,L2,Up,L2,F2,<(15f*, 20q)>}%
+\newcommand{\exchangedrings}{\ExchangedRings}%
+\newcommand{\TwistedRings}%
+{[TwistedRings],F,D,Fp,D2,Lp,Bp,U,L,D,R,U,Lp,Fp,U,L,U2,<(18q*, 16f*)>}%
+\newcommand{\twistedrings}{\TwistedRings}%
+\newcommand{\EdgeHexagonTwo}%
+{[EdgeHexagonTwo],U,B2,Up,Fp,Up,D,Lp,D2,L,U,Dp,F,Dp,L2,B2,Dp,<(20q*, 16f*) order2>}% 
+\newcommand{\edgehexagontwo}{\EdgeHexagonTwo}%
+\newcommand{\EdgeHexagonThree}%
+{[EdgeHexagonThree],F,L,B,U,L,F2,B2,Rp,F2,B2,Up,Bp,Lp,Fp,<(14f*, 18q) order 3>}%
+\newcommand{\edgehexagonthree}{\EdgeHexagonThree}%
+\newcommand{\TomParksPattern}%
+{[TomParksPattern],L,U,F2,R,Lp,U2,Bp,U,D,B2,L,F,Bp,Rp,L,Fp,R,<(20q*, 17f*)>}%
+\newcommand{\tomparkspattern}{\TomParksPattern}%
+\newcommand{\RonsCubeInCube}%
+{[RonsCubeInCube],L2,D2,Lp,D2,B2,L2,B2,Lp,D2,L2,B2,Lp,B2,<(13f*, 23q)>}%
+\newcommand{\ronscubeincube}{\RonsCubeInCube}%
+\newcommand{\TwistedDuckFeet}%
+{[TwistedDuckFeet],F,Rp,B,R,U,Fp,Lp,Fp,U2,Lp,Up,D2,B,Dp,F,Bp,U2,<(20q*, 17f*)>}%
+\newcommand{\twistedduckfeet}{\TwistedDuckFeet}%
+\newcommand{\ExchangedDuckFeet}%
+{[ExchangedDuckFeet],U,F,R2,Fp,Dp,R,U,B2,U2,Fp,R2,F,D,B2,R,Bp,<(21q*, 16f*)>}%
+\newcommand{\exchangedduckfeet}{\ExchangedDuckFeet}%
+%    \end{macrocode}
+% --------------------------
+%    End of this package
+% --------------------------
+%    \begin{macrocode}
+%</rubikpatterns>
+%    \end{macrocode}
+%
+%
+%
+%
+% \Finale
+%
+\endinput
+
+
+
+
+

Added: trunk/Master/texmf-dist/source/latex/rubik/rubikpatterns.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/rubikpatterns.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/rubik/rubikpatterns.ins	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,65 @@
+%% rubikpatterns.ins 
+%%
+%% version 4.0
+%%
+%% --- automatic overwriting of .sty is disabled-------
+%%  =========================================================
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\batchfile{rubikpatterns.ins}
+\input docstrip.tex
+
+\preamble
+
+----------------------------------------------------------------- 
+  Authors: RWD Nickalls (dick at nickalls.org) 
+          and Apostolos Syropoulos (asyropoulos at yahoo.com)
+
+  Copyright  March 03, 2017     RWD Nickalls and A Syropoulos
+
+  VERSION 4.0
+
+  This work may be distributed and/or modified under the
+  conditions of the LaTeX Project Public License, either
+  version 1.3c of this license or (at your option) any 
+  later version: <http://www.latex-project.org/lppl.txt>
+
+  This work consists of the files listed in the README file.
+----------------------------------------------------------------- 
+
+  This is a LaTeX/TikZ package for drawing Rubik cubes
+  Please report errors or suggestions for improvement to
+
+         RWD Nickalls  (dick at nickalls.org)
+         Apostolos Syropoulos (asyropoulos at yahoo.com)
+
+ This package requires the basic TikZ package to be loaded already
+------------------------------------------------------------------
+\endpreamble
+
+\keepsilent  %%disables most of the screen output
+%% \askforoverwritefalse  %%enables automatic overwriting of .sty 
+\generate{\file{rubikpatterns.sty}{\from{rubikpatterns.dtx}{rubikpatterns}}}
+
+%%now write a screen message for the user
+\obeyspaces
+\Msg{*******************************************************}
+\Msg{*                                                     *}
+\Msg{* To finish the installation you have to move the     *}
+\Msg{* following file into a directory searched by TeX:    *}
+\Msg{*                                                     *}
+\Msg{*       rubikpatterns.sty                             *}
+\Msg{*                                                     *}
+\Msg{* To produce the documentation run the file           *}
+\Msg{* rubikpatterns.dtx through LaTeX.                    *}
+\Msg{* For an index, process any filename.idx  file by     *}
+\Msg{*      makeindex -s gind.ist filename                 *}
+\Msg{* For list of changes, process any filename.glo file  *}
+\Msg{* makeindex -s gglo.ist -o filename.gls filename.glo  *}
+\Msg{*                                                     *}
+\Msg{* Happy TeXing!                                       *}
+\Msg{*******************************************************}
+
+\endbatchfile
+%%------------EOF---------------

Added: trunk/Master/texmf-dist/source/latex/rubik/rubikpatternsLIST.bat
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/rubikpatternsLIST.bat	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/rubik/rubikpatternsLIST.bat	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,3 @@
+ pdflatex  --shell-escape  rubikpatternsLIST.tex
+
+

Modified: trunk/Master/texmf-dist/source/latex/rubik/rubikrotation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/rubikrotation.dtx	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/source/latex/rubik/rubikrotation.dtx	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,12 +1,12 @@
 % \iffalse meta-comment
 % rubikrotation.dtx
 %
-% version 3.0
+% version 4.0
 %
-% Authors: RWD Nickalls (dick at nickalls.org) 
+% Authors:   RWD Nickalls (dick at nickalls.org) 
 %        and Apostolos Syropoulos (asyropoulos at yahoo.com)
 
-% Copyright  25 September 2015  RWD Nickalls + A Syropoulos
+% Copyright   03 March 2017  RWD Nickalls + A Syropoulos
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either
@@ -58,7 +58,7 @@
 %
 %
 % 
-% \CheckSum{310}
+%%% \CheckSum{322}
 %
 %%% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -78,7 +78,9 @@
 %
 %
 %
-% \title{The \rubikrotation\ package}
+% \title{%
+%       \ifpdf\pdfbookmark[1]{Title}{Title}\else\fi%
+%       The \rubikrotation\ package}
 %
 % \author{
 %      RWD Nickalls (dick at nickalls.org) \\
@@ -91,49 +93,49 @@
 %  \begin{abstract}
 %  The \rubikrotation\ package is a dynamic extension for  the 
 %  \textsc{rubikcube} package (both are part of the Rubik `bundle'). 
-%  The package provides  the \cmd{\RubikRotation} command which 
+%  This package provides  the \cmd{\RubikRotation} command which 
 %  processes a sequence of Rubik rotation moves on-the-fly (using the Perl script
 %  \texttt{rubikrotation.pl}), and returns the new Rubik cube  state (configuration).  
-%  The \rubikrotation\ package  also provides a command for implementing some basic 
-%  checking of the Rubik cube state (\cmd{\CheckRubikState}), and one 
-%  for  displaying any errors (\cmd{\ShowRubikErrors}).
-%
-%   The \rubikrotation\  package requires access to the \TeX\ \texttt{write18} 
-%  facility, which is enabled by using the \texttt{--shell-escape} command-line switch.
-%  The~\rubikrotation\ package has been road-tested  on a Microsoft 
-%  platform (with MiKTeX and Strawberry Perl),  on a Linux platform 
-%  (Mandriva using {\TeX}Live), and on  a Solaris platform (OpenIndiana).
+%  The \rubikrotation\ package  also provides  commands for saving the cube state 
+%  to a file (\cmd{\SaveRubikState}), and for displaying any 
+%  errors (\cmd{\ShowRubikErrors}).
 %  \end{abstract}
-%
+% 
+% 
 % \begin{minipage}{11cm}
 % \centering
 % \ifpdf
-%  \includegraphics[width=10cm]{Rubikrot-doc-figD.pdf}
+%  \strut\hspace{6mm}\includegraphics[width=10cm]{rubikrot-doc-figD.pdf}
 % \else
 % \fi
 % \end{minipage}
+% 
 %
 % \vspace{-1\baselineskip}
 %
 %  \tableofcontents
 %
+% \pagebreak
+%
 % \section{Introduction}
 %
 % The \rubikrotation\ package is a dynamic extension to the \textsc{rubikcube} package.
 % It consists of a style option (\texttt{rubikrotation.sty}), a 
-%  Perl script  (\texttt{rubikrotation.pl}) and some examples.
+%  Perl script  (\texttt{rubikrotation.pl}).
 % 
 % The primary role of the \rubikrotation\ package is to  implement  a sequence of 
-%  Rubik rotation moves on-the-fly using the \cmd{\RubikRotation} command.  Consequently, this 
-% package requires  the use of the \texttt{--shell-escape} switch to allow 
-% command-line control of  the  Perl script, which is really the `engine' of this package.
+%  Rubik rotation moves on-the-fly using the \cmd{\RubikRotation} command.  
+%  Consequently the \rubikrotation\  package requires access to the \TeX\ \texttt{write18} 
+%  facility, which is enabled by using the \texttt{--shell-escape} command-line switch.
+%  This allows command-line control of  the  Perl script, which is really the `engine' of 
+%  this package.
 %
 %  The \rubikrotation\ package has been road-tested  on a Microsoft 
-%  platform (with MiKTeX and Strawberry Perl\,\footnote{`Strawberry Perl' 
+%  platform (MiKTeX and Strawberry Perl\,\footnote{`Strawberry Perl' 
 %  (\texttt{http://strawberryperl.com}) is a free Perl 
 %  environment for MS Windows, designed to be as close as possible to the Perl 
-%  environment of Unix/Linux systems.}), on a Linux platform (Mandriva using 
-%  {\TeX}Live), and on  a Solaris platform (OpenIndiana).
+%  environment of Unix/Linux systems.}), on a Linux platform (Debian v8.2.0,  
+%  {\TeX}Live 2016, and Perl v5.20.2), and on  a Solaris platform (OpenIndiana).
 %
 % The following  commands are made available  by  \texttt{rubikrotation.sty}:
 % \begin{quote}
@@ -142,6 +144,10 @@
 %    \SaveRubikState
 %    \CheckRubikState
 %    \ShowRubikErrors
+%    \SequenceName
+%    \SequenceInfo
+%    \SequenceShort
+%    \SequenceLong
 %\end{verbatim}
 % \end{quote}
 %
@@ -164,21 +170,15 @@
 % rubikrotation.pdf     --this document
 % rubikrotation.pl      --Perl script
 % rubikrotationPL.pdf   --documentation of rubikrotation.pl
-% rubikrotation.1       --the man file
-% Rubikrot-doc-figA.pdf
-% Rubikrot-doc-figB.pdf
-% Rubikrot-doc-figC.pdf
-% Rubikrot-doc-figD.pdf
-% examples.tex
-% examples.pdf
-% examples.sh
-% examples.bat
+% rubikrotation.1       --manual file for rubikrotation.pl (`man' file)
+% rubikrot-doc-figA.pdf
+% rubikrot-doc-figB.pdf
+% rubikrot-doc-figC.pdf
+% rubikrot-doc-figD.pdf
 %\end{verbatim}
 %\end{quote}
-% Note that the package includes an  `examples' file (\texttt{examples.tex})
-% as well as associated  \texttt{.sh} (Linux) and \texttt{.bat} (Microsoft) batch 
-% files which can be used to facilitate processing  the file. 
 % The main package documentation is the file \texttt{rubikrotation.pdf}.
+% The documentation of the Perl program \texttt{rubikrotation.pl} is the file \texttt{rubikrotationPL.pdf} 
 %
 %  The  style option \texttt{rubikrotation.sty} is generated  by  running (pdf)\LaTeX\ on  
 % the file \texttt{rubikrotation.ins}  as follows:
@@ -189,7 +189,7 @@
 %\end{quote}
 % The documentation file (\texttt{rubikrotation.pdf}) is then generated using the following 
 % sequence of steps\,\footnote{Since the documentation includes a complicated indexing 
-% system as well a \textsc{pdf} index and hyperef links (the package \texttt{hypdoc}
+% system as well as an index and hyperef links (the package \texttt{hypdoc}
 %  is used), then a lot of pdflatex runs are required. Prior to the first run it is
 % a good idea to delete any relevant \texttt{.toc}, \texttt{.aux}, \texttt{.out} files.}:
 %\begin{quote}
@@ -232,7 +232,7 @@
 % file is named \texttt{rubikrotation.cfg}.
 %
 %\medskip
-%{\noindent}\textsc{the `man' file}:\ \ On a Linux platform   this file 
+%{\noindent}\textsc{the `man' file}:\ \ On a Linux platform this manual file 
 % (\texttt{rubikrotation.1}) would be  typically  located in the 
 % directory \verb!/usr/share/man/man1!.
 %
@@ -251,7 +251,7 @@
 %\end{quote}
 % which should generate something like the following:
 % \begin{verbatim}
-% This is rubikrotation version 3.0
+% This is rubikrotation version 4.0
 %       Usage: rubikrotation [-h] -i <input file> [-o <out file>]
 %       where,
 %       [-h]    gives this help listing
@@ -264,27 +264,31 @@
 %
 %       \section{Usage}
 % \label{sec:usage}
-% Load the  packages \texttt{rubikcube.sty} 
-% and \texttt{rubikrotation.sty} in the \TeX\ file preamble  \textit{after} loading 
-% the TikZ package (both Rubik packages require the TikZ package), for example, as follows: 
+% Load the  packages \texttt{rubikcube.sty}, 
+%  \texttt{rubikrotation.sty} and \texttt{rubikpatterns.sty} in the \TeX\ file 
+%  preamble  \textit{after} loading the TikZ package (all the  Rubik packages 
+%  require the TikZ package); for example, as follows: 
 %\begin{quote}
 % \begin{verbatim}
 % \usepackage{tikz}
-% \usepackage{rubikcube,rubikrotation}
+% \usepackage{rubikcube,rubikrotation,rubikpatterns}
 %\end{verbatim}
 %\end{quote}
-% and run (pdf)\LaTeX\ using the \texttt{--shell-escape} command-line switch 
+% and run (pdf)\LaTeX\ using the \texttt{--shell-escape} command-line option 
 % (see the following section).
 %
 %
+%
 %   \subsection{Enabling the \TeX\ `shell' facility}
+%   \label{sec:shellescape}
 %
-%  In order to enable the  \TeX\  `write18' facility (so it can run the Perl script) 
-% it is necessary to invoke (pdf)\LaTeX\ using the \texttt{--shell-escape} switch 
-%  as follows:
+%  In order to access the  \TeX\  \cmd{\write18} syntax (so we can access system commands, 
+%  and hence run the Perl script), 
+% it is necessary to invoke  the \LaTeX\ engine (e.g.,~(pdf)\LaTeX\  or Lua\LaTeX) 
+% using the \texttt{--shell-escape} command-line option; for example: 
 %\begin{quote}
 % \begin{verbatim}
-% pdflatex  --shell-escape   filename.tex
+% pdflatex  --shell-escape  filename.tex
 %\end{verbatim}
 %\end{quote}
 % In practice, it is probably most convenient to  run this command via a 
@@ -298,34 +302,18 @@
 % acroread filename.pdf &
 %\end{verbatim}
 %\end{quote}
-%
-%
-%   \subsection{Test file}
-%
-% An example  tex file (which demonstrates the use of some of the package commands) 
-% is   included in the package, namely:
+%  If the \LaTeX\ engine is  Lua\LaTeX, e.g.,
 %\begin{quote}
 % \begin{verbatim}
-% example-rot.tex   (shows 8 worked examples)
+% lualatex  --shell-escape  filename.tex
 %\end{verbatim}
 %\end{quote}
-% This file  needs to be run using  \texttt{--shell-escape} switch; for example:
-%\begin{quote}
-% \begin{verbatim}
-% pdflatex  --shell-escape  example-rot.tex
-%\end{verbatim}
-%\end{quote}
-% Batch files (\texttt{.sh} for Linux, and \texttt{.bat} for Microsoft) are also provided 
-% to facilitate running the `example' file.
-% For example, on a Linux platform one would run a \texttt{bash} file as follows:
-%\begin{quote}
-% \begin{verbatim}
-% bash  example-rot.sh
-%\end{verbatim}
-%\end{quote}
-% If processing this  file gives unexpected results (e.g.,~the cubes appear not to 
-% have experienced any rotations) check-out the  associated log file to see if 
-%  the operating system  had any difficulties finding files etc.
+%then  \texttt{rubikrotation.sty} will automatically load 
+%  the recently developed  \textsf{shellesc} package in order to facilitate system access to  Perl 
+%  (see Section~\ref{sec:CodePackageHeading}). See \textit{\LaTeX\ News}, issue~24, 
+%  Feb~2016 for further details of the \textsf{shellesc} package.
+%  Consequently, if you intend to use Lua\LaTeX\ then you will need to ensure your system
+%  has access to the \textsf{shellesc} package (it can always be downloaded from CTAN directly).
 %
 %
 %   \subsection{Configuration-file}
@@ -350,9 +338,9 @@
 % The configuration-file is essentially a convenient software vehicle for feeding  
 % additional  \LaTeX\ code  to the  style option \texttt{rubikrotation.sty}, and hence 
 % allows the contents of some commands to be easily adjusted and/or fine-tuned.
-% For~the \rubikrotation\ package there are two particular commands we may wish to adjust.
-% The~first is that  defining the filename of the Perl script, namely  
-% \cmd{\rubikperlname}. The second is that defining the command-line call, 
+% For~the \rubikrotation\ package there are two particular macros we may wish to adjust.
+% The~first is that  holding the filename of the Perl script, namely  
+% \cmd{\rubikperlname}. The second is that holding the command-line call, 
 % namely  \cmd{\rubikperlcmd}.
 % The~default definitions in \texttt{rubikrotation.sty}  (which assume the Perl 
 % script is executable), are as follows:  (they are detailed in 
@@ -364,8 +352,8 @@
 %                     -i rubikstate.dat -o rubikstateNEW.dat}
 %\end{verbatim}
 %\end{quote}
-% Note the need here to use the \cmd{\space} command  on the end of the backslash 
-% command  (\cmd{\rubikperlname}) in  order to force a following 
+% Note the need here (in the second macro) to use  \cmd{\space} on the end of 
+%   (\cmd{\rubikperlname}) in  order to force a following 
 % space---i.e.,~before the  first command-line argument. The following examples 
 % illustrate how the configuration-file may be used.
 %
@@ -374,7 +362,8 @@
 % a slightly modified  Perl script  
 % with the  working (executable) name \texttt{rubikrotationR77}. In this case we 
 % simply  create, in the local working  directory, a plain-text configuration-file 
-% (called \texttt{rubikrotation.cfg})  which contains just the following line:
+% (it \textit{must} be named exactly \texttt{rubikrotation.cfg})  and contains just 
+% the following line:
 %\begin{quote}
 %\begin{verbatim}
 %\renewcommand{\rubikperlname}{rubikrotationR77}
@@ -387,7 +376,8 @@
 % Now, in this particular case  we  will need to run the script using a 
 % slightly different  command, namely,
 % {\linebreak}\texttt{perl  rubikrotationR55.pl ...}, and consequently we 
-% need to  implement both these  changes in the configuration-file, as follows:
+% need to  implement \textit{both} these  changes (of name and  command) in 
+% the configuration-file,  as follows:
 %\begin{quote}
 %\begin{verbatim}
 %\renewcommand{\rubikperlname}{rubikrotationR55.pl}
@@ -395,8 +385,11 @@
 %                     -i rubikstate.dat   -o rubikstateNEW.dat}
 %\end{verbatim}
 %\end{quote}
-%{\noindent}\textsc{placing the configuration-file}:\ \ The simplest arrangement is
-% just to include the \texttt{.cfg} file in the working `test' directory.
+%{\noindent}Remember to make sure the PATH associated with the command is also correct.
+%
+%
+%{\noindent\textsc{placing the configuration-file}:\ \ The simplest arrangement is
+% just to include the \texttt{.cfg} file in the working  directory.
 % Alternatively, the \texttt{.cfg} file could be placed in the \texttt{/texmf-local/}
 % directory tree (say, in \path!/usr/local/texlive/texmf-local/tex/latex/rubik/!), 
 % but in this case one would then have to be careful to specify the 
@@ -422,7 +415,7 @@
 % \texttt{minipage} or \texttt{figure} environments
 %  generally  offers maximum  flexibility, since the effects of such commands when 
 % used inside these environments remain `local' to  the  environment, and are not 
-%  therefore accessable  outside that \textit{particular} environment 
+%  therefore accessible  outside that \textit{particular} environment 
 % (see also Section~4.1 in the \textsc{rubikcube} documentation).
 %
 %  Conversely, the only \rubikrotation\  command which should \textit{not}
@@ -430,72 +423,257 @@
 %  (see the notes on this command below). 
 % 
 %
-%   \subsection[RubikRotation command]{\cmd{\RubikRotation} command}
-% \label{sec:rubikrotationcmd}
 %
+%
+%   \subsection[RubikRotation]{\cmd{\RubikRotation} command}
+%       \label{sec:rubikrotationcmd}
+%
 %  \DescribeMacro{\RubikRotation}
-% The  \cmd{\RubikRotation}\oarg{integer}\marg{comma separated sequence}  
-% command processes  a comma separated sequence of rotations, and returns 
-% the final state.  The optional \oarg{integer} argument specifies the number
-% of times the command should be repeated.
+% The  \cmd{\RubikRotation}\oarg{integer}\marg{comma-separated sequence}  
+% command processes  a sequence of rotation codes, and returns 
+% the final state. The inverse sequence can also be 
+% implemented (see  \textbf{Inverse} below).
 %
-% For example, if we wanted to see the effect of  the rotations 
-% \textbf{R, R, L, U, D} on a solved Rubik cube, we  could use the 
-% following commands. 
+%
+% The first (optional) argument \oarg{integer}  of the \cmd{\RubikRotation} command  is the number
+% of times the whole command itself should be repeated; for example
+% as follows: \verb!\RubikRotation[2]{...}!.
+%
+% The second (mandatory) argument consists of a comma-separated sequence
+% of  rotation codes, e.g.,~\texttt{U, D2}, which may be encoded as a macro. In addition, there 
+% may be additional comma-separated macros and optional \verb![name]!,  
+%  `repeat blocks' and `info blocks' (see below).  
+% The general structure of the second argument is as follows:
+% \verb!\RubikRotation{[name],...,\macro,...,(repeat)n,...,<info>}!.  
+% These elements are now described in detail.
+% 
+%
+%
+% \textbf{Square brackets}: \ This is an optional `sequence name' facility. 
+% The contents of square  brackets are not processed 
+% as rotations, and can  therefore be used  as a `name' of the sequence, e.g.,~\verb![CrossSeq]!,
+% or as a tag, to be visible in the log file. The contents must \textit{not} include commas, but 
+% can have other  separators, e.g.,~spaces, semicolons etc. Importantly, the contents of the 
+% first square bracket  will be designated the sequence name and will be held as the 
+% macro \cmd{\SequenceName}. Square brackets can also be used in repeat blocks (see below). 
+%  Square brackets must be separated by a comma from adjacent codes.
+%
+%
+% \textbf{Repeat block}: \  This is an optional comma-separated sequence of rotation
+% codes which is to be repeated a specified number of times. It must be delimited 
+% by balanced curved brackets, and an optional terminal integer $n$ (repeat number) 
+% can be used.   For example, \verb!(F,B3)2,! where the `2' indicates that the rotation 
+% sequence \verb!F,B3!  is to be processed twice. If the repeat number is omitted 
+% then $n=1$ is assumed. Repeat blocks must be separated by a comma from adjacent codes, 
+% and can include balanced square brackets (see below).
+%
+%
+% \textbf{Info block}: \ 
+% This  is an optional  block of meta information, and must be
+% delimited by  balanced  angle-brackets \verb!<..>!. An info-block  typically carries
+% information  regarding the sequence itself; typically,  something 
+% like \verb!<(20f*) //C2(a)>!. If an infoblock includes the keyword `inverse' then
+% the program will implement the inverse sequence of rotations (see below).
+% An info-block must be separated by a comma from the adjacent codes.
+% The contents of all info blocks will be held collectively as the macro \cmd{\SequenceInfo}.
+%
+%
+% \textbf{Inverse sequence}: \
+% The (mathematically) inverse sequence  of the given sequence can be implemented by including 
+% the keyword `inverse' (or INVERSE) in an infoblock, 
+% as follows \verb!\RubikRotation{<inverse>, ... }!. The keyword can be either in its 
+% own separate infoblock, or inside a larger infoblock. The program simply checks for the 
+% string `inverse',  which can be either lower-case or upper-case. The implemented sequence
+% can be checked by looking  at (or printing) the contents of the macro 
+% \cmd{\SequenceLong} (see  section on \textit{Sequence strings} below). Note that the macro 
+% \cmd{\SequenceLong} is also shown (expanded) in the log file. 
+%
+%
+% \subsubsection{Examples}
+% 
+% Some examples of the use of the \cmd{\RubikRotation} command are as follows; the commas are important and brackets must
+% be balanced and not nested:
 %\begin{quote}
 % \begin{verbatim}
-% \RubikCubeSolved   % sets up the colours for a solved cube state
-% \RubikRotation{R2,L,U,D}
-% \begin{tikzpicture}[scale=0.7]
-%    \DrawRubikCubeRU
-% \end{tikzpicture}%
+% \RubikRotation[2]{x,R2,U}   
+% \RubikRotation{\sixspot}
+% \RubikRotation{<inverse>,[myseqB],U,D,L,R2,(M,U)3,D2}  
+% \RubikRotation{[K32466],U,F,U2,F,L2,B,U2,F,Lp,Rp,F2,D,R2,U2,L2,B,Fp,
+%  L,F2,D,<(20f*) //Oh{I}>} 
 %\end{verbatim}
 %\end{quote}
-%  The \cmd{\RubikRotation} command results in \LaTeX\  first writing 
+%
+% \noindent\textbf{Inverse sequence}
+%
+% Inverting a sequence involves (a)~reversing the order, and (b)~inverting each element.
+% Thus, the inverse of the sequence  \verb!(Up,D,L2,Rp)! is  \verb!(R,Lp,Lp,Dp,U)!. 
+% But~\verb!(Lp,Lp)! $\equiv$  \verb!L2!, and so the inverse 
+% of \verb!(Up,D,L2,Rp)! would generally be expressed as  \verb!(R,L2,Dp,U)!.
+% However, since the macro \cmd{\SequenceLong} records the individual elements as they are processed,
+% when a sequence is inverted notational compressions such as \verb!Lp,Lp! $\rightarrow$ \verb!L2! 
+% are not  made. 
+% For example, processing the command \verb!\RubikRotation{<inverse>,Up,D,L2,Rp}! results in the  macro 
+% \cmd{\SequenceLong}  being displayed in the subsequent  \texttt{rubikstateNEW.dat} file as
+%\begin{quote}
+% \begin{verbatim}
+% \renewcommand\SequenceLong{R,Lp,Lp,Dp,U}%
+%\end{verbatim}
+%\end{quote}
+% A more extensive example is given at the end of Section~\ref{sec:sequencestrings}.
+%
+%
+% \medskip\noindent\textbf{Repetitions}
+%
+% Repetitions can be achieved in various ways. First, all the rotations  in the second argument 
+% can be repeated  multiple times, say $n$ times, by 
+% using the optional \verb![n]! argument of the \cmd{\RubikRotation[]\{\}} command; 
+% i.e.,~the whole of the mandatory argument of the \cmd{\RubikRotation} command is then 
+% executed $n$ times.  
+%
+% Second, a sub-sequence of rotations  can be repeated within the main 
+%  argument  multiple times,  by delimiting such groups with curved brackets 
+% and a trailing integer (i.e.,~in a repeat-block), as described above.
+% If no integer is given, then $n=1$ is assumed, and hence curved brackets can also be used
+% simply to highlight particular sequences. 
+%  For example, the following five commands are equivalent:
+%\begin{quote}
+% \begin{verbatim}
+% \RubikRotation[3]{x,R2,U}
+% \RubikRotation{(x,R2,U)3}   
+% \RubikRotation{(x,R2,U)2,x,R2,U}
+% \RubikRotation{x,R2,U,x,R2,U,x,R2,U}
+% \RubikRotation{(x,R2,U),(x,R2,U),(x,R2,U)}
+%\end{verbatim}
+%\end{quote}
+%
+%
+% \medskip\noindent\textbf{Macros}
+%
+% Note also that macros representing a rotation sequence can also appear  as part of the main argument.
+% So, extending the previous example, if we were to define  \verb!\newcommand{\ShortSeq}{x,R2,U}!, then 
+% the following three commands would also be equivalent to the five previous ones:
+%\begin{quote}
+% \begin{verbatim}
+% \RubikRotation[3]{\ShortSeq}
+% \RubikRotation{(\ShortSeq)3}
+% \RubikRotation{(x,R2,U),\ShortSeq,\ShortSeq}
+%\end{verbatim}
+%\end{quote}
+%
+%
+% \medskip\noindent\textbf{Process overview}
+%
+% The \cmd{\RubikRotation} command results in \LaTeX\  first writing 
 % the current Rubik state to a text file (\texttt{rubikstate.dat}), 
 % and then calling the Perl script \texttt{rubikrotation.pl}. The Perl 
 % script then reads the current Rubik state from the (\texttt{rubikstate.dat}) 
-% file, performs all the rotations, and then writes the new Rubik state 
-% (and any error messages) to the file \texttt{rubikstateNEW.dat}, 
-% which is then input on-the-fly by the \LaTeX\ file. This new Rubik state 
-% can then either used as the input for another \cmd{\RubikRotation}, or used
-% to generate a graphic image of the cube. 
+% file, performs all the rotations, and then writes the new Rubik state,
+% and the four \cmd{\Sequence...} macros (see below), and any error messages, all to the 
+% file \texttt{rubikstateNEW.dat}, 
+% which is then input on-the-fly by the \texttt{.tex} file. This new Rubik state 
+% can then be  used either as the input for another \cmd{\RubikRotation} command, or used
+% to generate a graphic image of the cube. The \cmd{\Sequence...} macros  can then
+%  be used for typesetting the sequence of rotations in various formats.
 %
-% A given rotation sequence can be repeated multiple times, say $n$ times, by 
-% using the optional \verb![n]!. For example, the following two commands are equivalent:
+%
+%  \subsubsection{Sequence strings}
+%    \label{sec:sequencestrings}
+%
+%  \DescribeMacro{\SequenceName}
+%  \DescribeMacro{\SequenceInfo}
+%  \DescribeMacro{\SequenceShort}
+%  \DescribeMacro{\SequenceLong}
+%  The sequence of rotation codes  used as the main argument for the \cmd{\RubikRotation}
+% command is also returned in the form of four macros, namely \cmd{\SequenceName} (contains the 
+% `name' of the sequence if a \texttt{[name]} exists), \cmd{\SequenceInfo} (contains any sequence 
+%  meta data  in `info-blocks'),   \cmd{\SequenceShort} (contains the original 
+% sequence of rotation codes), and \cmd{\SequenceLong} (contains the expanded or `Long' form of the 
+% original sequence---i.e.,~in which any `short'  rotation codes (e.g.,~\texttt{R2, L3}) in the original 
+% sequence have been expanded into their separate codes---e.g.,~\texttt{R, R, L, L, L} etc.).
+%
+% For example, if we wanted to see the effect of  the sequence associated with the `SixTs'
+% cube configuration  
+% \verb![SixTs],F2,R2,U2,Fp,B,D2,L2,F,B,<(14q*,14f*)>! 
+% on a solved Rubik cube  (where `SixTs' is the `name' of the sequence),
+%  we  could use the  following commands: 
 %\begin{quote}
 % \begin{verbatim}
-% \RubikRotation[3]{x,R,U}   
-% \RubikRotation{x,R,U,x,R,U,x,R,U}
+% \RubikCubeSolved   % sets up the colours for a solved cube state
+% \RubikRotation{[SixTs],F2,R2,U2,Fp,B,D2,L2,F,B,<(14q*,14f*)>}
+% \ShowCube{2.8cm}{0.7}{\DrawRubikCubeRU}
 %\end{verbatim}
 %\end{quote}
+% Note (a)~contents of a square bracket [..] are not processed as rotations, (b)~the contents
+% of the first square bracket in a sequence is taken to be the `name' of the sequence
+%  (see Section~\ref{sec:prefixedargument}  for more details).
+% In this example the four \cmd{\Sequence..} macros described above would now hold 
+% the following strings:
+%\begin{quote}
+% \cmd{\SequenceName}  = SixTs
+%{\newline} \cmd{\SequenceInfo}  = (14q*,14f*)
+%{\newline} \cmd{\SequenceShort} = [SixTs],F2,R2,U2,Fp,B,D2,L2,F,B
+%{\newline} \cmd{\SequenceLong}  = F,F,R,R,U,U,Fp,B,D,D,L,L,F,B
+%\end{quote}
 %
-
+% As another example, we now show how to  implement  the inverse of the  above \verb!SixTs! 
+% sequence,  by including  the key word `inverse' in an infoblock, and, more conveniently, 
+% using the macro \verb!\sixts! from  the  \textsc{rubikpatterns} package, as follows:
+%\begin{quote}
+% \begin{verbatim}
+% \RubikRotation{<inverse>,\sixts}
+%\end{verbatim}
+%\end{quote}
+% In this case, the log file would then show the associated \cmd{\Sequence..} macros as follows:
+%\begin{quote}
+% \begin{verbatim}
+%...SequenceName = SixTs
+%...SequenceInfo = inverse; (14q*; 9f*)
+%...SequenceShort = [SixTs],F2,R2,U2,Fp,B,D2,L2,F,B
+%...SequenceLong = Bp,Fp,Lp,Lp,Dp,Dp,Bp,F,Up,Up,Rp,Rp,Fp,Fp
+%\end{verbatim}
+%\end{quote}
+% showing that the macro \cmd{\SequenceShort}  holds the \verb!\sixts! sequence, while
+%  the macro \cmd{\SequenceLong}  holds the inverse sequence which was actually implemented.
+%
+% For further details  regarding the use of these \cmd{\Sequence..} macros  for typesetting
+% the various components of a sequence, and why the \cmd{\SequenceLong} command is 
+% particularly useful, see Section~10 in the \textsc{rubikcube} documentation
+% (the \cmd{\ShowSequence} command).
+%
+%
+%
 %  \subsubsection{Sequences as macros}
-%   \label{sec:seq-as-macros}
+%    \label{sec:seq-as-macros}
 %
 % Macros which are arguments of the \TeX\ \cmd{\write} command are  expanded
 % on writing (Eijkhout 1992, \S\,30.2.3, p.\,238)[\,see refs Section~\ref{sec:references}\,].
 % Consequently we  are able to  use  a sequence-defining  macro as an argument for 
 % the \cmd{\RubikRotation} command. In fact this is very convenient, since it allows 
-% one to store lots of different rotation sequences by name alone.
+% one to store lots of different rotation sequences by name alone. Note that 
+% \texttt{rubikpatterns.sty} (part of the Rubik bundle)  is a collection/database 
+% of many such well-known named sequences. 
 %
-% For example, we can use the name `sixspot' for a macro denoting the rotation sequence 
+% For example, by installing the \textsc{rubikpatterns} package we  are able to use the 
+% name `sixspot' for a macro denoting the rotation sequence 
 % which generates the well known `sixspot' configuration (see the `patterns' page on the 
-%   Reid website)[\,see refs Section~\ref{sec:references}\,], as follows:
+%   Reid website)[\,see refs Section~\ref{sec:references}\,]. The `sixspot' sequence is 
+% defined as follows:
 %\begin{quote}
 % \begin{verbatim}
-% \newcommand{\sixspot}{U,Dp,R,Lp,F,Bp,U,Dp}
+% \newcommand{\sixspot}{U,Dp,R,Lp,F,Bp,U,Dp,<(8q*, 8f*)>}
 %\end{verbatim}
 %\end{quote}
-% With this new \cmd{\sixspot} command we are now able to generate the graphic (sixspot cube) 
+% Armed with the \cmd{\sixspot} macro we are now able to generate the graphic (sixspot cube) 
 % very easily using the following code---this time we demonstrate the use of the more convenient
 %  \cmd{\ShowCube} command (which includes the \texttt{tikzpicture} environment):
 %
 % \medskip
 %
-% \begin{minipage}{6cm}
+% \begin{minipage}{7cm}
 % \begin{verbatim}
+% \usepackage{rubikcube,rubikrotation}
+% \usepackage{rubikpatterns}
+% ...
 % \RubikCubeSolved
 % \RubikRotation{\sixspot}
 % \ShowCube{3cm}{0.7}{\DrawRubikCubeRU}
@@ -504,7 +682,7 @@
 % \begin{minipage}{3.4cm}
 % \centering
 % \ifpdf
-%   \includegraphics[height=3cm]{Rubikrot-doc-figA.pdf}
+%   \includegraphics[height=3cm]{rubikrot-doc-figA.pdf}
 % \else
 % \fi
 % \end{minipage}
@@ -515,87 +693,75 @@
 % and macros;  for example, \verb!\RubikRotation{x,y,\sixspot,x}!.
 %
 %
-%  \subsubsection{Arguments prefixed with *, [, ]}
+%  \subsubsection{Arguments  in square brackets }
 %    \label{sec:prefixedargument}
 %
-%  If any of the comma separated arguments  is prefixed with either *, [ or ] they are  
-% interpreted as an inactive `string', and not as a rotation. This feature therefore 
-% allows a string argument to be used as a label, which can be very useful.
+%  The contents of a square bracket  are not processed as rotations, but are simply  
+% interpreted as an inactive `string'. This feature therefore 
+% allows  the contents to be used as a label, which can be very useful.
+% Note the contents of square brackets must not include commas, but spaces  and semicolons 
+% are allowed.
 %
-%  For example, we can use this facility to label the   `sixspot' configuration mentioned above,
+%  For example, we can use this facility to `name' the   `SixSpot' configuration mentioned above,
 % as follows:
 %\begin{quote}
 % \begin{verbatim}
-% \RubikRotation{[sixspot],U,Dp,R,Lp,F,Bp,U,Dp}
+% \RubikRotation{[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp}
 %\end{verbatim}
 %\end{quote}
 % In practice, it is quite useful to go one step further and  include 
-% the [\,] label feature  in the \cmd{\sixspot} command, as follows,
+% the [\,]  label-name feature  in the \cmd{\sixspot} command, as follows,
 %\begin{quote}
 % \begin{verbatim}
-% \newcommand{\sixspot}{[sixspot],U,Dp,R,Lp,F,Bp,U,Dp}
+% \newcommand{\sixspot}{[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp}
 %\end{verbatim}
 %\end{quote}
-% since this has the great  advantage of making the label-name visible in the log file.
-% For example, the following command, which uses the rotations \textbf{x}, \textbf{x}  
-% and \textbf{y} to  initially rotate the `solved' cube before applying 
-% the `sixspot' sequence  of rotations,
+% Note that using the \texttt{[name]} facility has the great advantage of making the 
+% label-name visible in the log-file.
+% For example, the following command, which uses the rotations \textbf{x2},
+% and \textbf{y} to   rotate the Rubik cube after applying 
+% the `sixspot' sequence  of rotations:
 %\begin{quote}
 % \begin{verbatim}
-% \RubikRotation{x2,y,\sixspot}
+% \RubikRotation{\sixspot,x2,y}
 %\end{verbatim}
 %\end{quote}
 % will then be represented in the log file as 
 %\begin{quote}
 % \begin{verbatim}
-% ...command=rotation,x2,y,[sixspot],U,Dp,R,Lp,F,Bp,U,Dp
-% ...arguments passed to `rotation' sub = x2 y [sixspot] U Dp R Lp F ...
-% ...rotation x OK (= rrR + rrSr + rrLp)
-% ...rotation x OK (= rrR + rrSr + rrLp)
-% ...rotation y OK (= rrU + rrSu + rrDp)
-% ...[sixspot] is a label OK
-% ...rotation U OK
-% ...rotation Dp OK 
-% ...rotation R OK
-% ...rotation Lp OK
-% ...rotation F OK
-% ...rotation Bp OK
-% ...rotation U OK
-% ...rotation Dp OK 
+% ...dataline = rotation,[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp,<(8q*; 8f*)>,x2,y
+% ...[SixSpot] is a label OK
+% ...rotation U, OK
+% ...rotation Dp, OK 
+% ...rotation R, OK
+% ...rotation Lp, OK
+% ...rotation F, OK
+% ...rotation Bp, OK
+% ...rotation U, OK
+% ...rotation Dp, OK 
+% ...Expanding x2 ...
+% ...rotation x, OK (= x = R + Sr + Lp)
+% ...rotation x, OK (= x = R + Sr + Lp)
+% ...rotation y, OK (= y = U + Su + Dp)
+% ...writing new Rubik state to file rubikstateNEW.dat
+% ...SequenceName = SixSpot
+% ...SequenceInfo = (8q*; 8f*)
+% ...SequenceShort = [SixSpot],U,Dp,R,Lp,F,Bp,U,Dp,x2,y
+% ...SequenceLong = U,Dp,R,Lp,F,Bp,U,Dp,x,x,y
 %\end{verbatim}
 %\end{quote}
-% In this way, several named rotation sequences can be easily distinguished
-% in the log file from  adjacent  rotation sequences.
+% Note that the \verb!\sixspot! macro, as held in the \textsc{rubikpatterns} package, includes  a terminal 
+% infoblock holding the  `SequenceInfo' as indicated in the  above example.
+%
+% Also, note that the square bracket feature allows for several named rotation sequences 
+% to be  easily distinguished in the log file from  adjacent  rotation sequences.
 % This feature is also useful when typesetting a sequence of rotation codes, since the first
 % element will then appear in the form \verb![name]!, obviating the need to typeset the 
 % name of the sequence separately. 
 %
-% To this end, the  
-% \verb!ForEachX! macro---from the \verb!forarray!  package---can be very useful.
-% For example, this macro is central to the following example macro for typesetting
-%  a  rotation  sequence using the Rubik \cmd{\rr} command:
-%\begin{quote}
-%\begin{verbatim}
-%\def\x{\thislevelitem}
-%\def\xcount{\thislevelcount}
+% See also the \cmd{\ShowSequence} command (in the \textsc{rubikcube} package)
+% for a convenient way of displaying a sequence of rotations in various formats.
 %
-%\newcommand{\showseq}[1]{%
-%  \ForEachX{,}{%
-%    \ifthenelse{\xcount=1}{\texttt{\x}}{,\ \rr{\x}}%
-%    }{#1}.
-%}
-%\end{verbatim}
-%\end{quote}
-% Now, for a  sequence defined as |\newcommand{\myseq}{[myseq],U,D,Lwp,R}|, then
-%  the command |\showseq{\myseq}| will result in the following output:
-%\begin{quote}
-% \texttt{[myseq]},\ \textbf{U},\ \textbf{D},\ \textbf{Lwp},\ \textbf{R}.
-%\end{quote}
-% Note that we are able to  typeset the name \texttt{[myseq]} differently from the 
-% remaining sequence  since the counter \verb!\xcount! allows us to locate the first item.
-% However, this macro as it stands needs further development in order to handle 
-% sequence elements with a terminal digit (e.g.,~\texttt{R2})---the macro will need 
-% to first  expand this to \texttt{R, R} if  the Rubik commands are to be used.
 %
 %   \subsubsection{Groups}
 %
@@ -604,7 +770,8 @@
 % of groups and subgroups.
 %  For~example, using the \rubikrotation\ package it is easy to 
 % show that three cycles of the `sixspot' sequence return the Rubik cube to its 
-% original state. More formally this is equivalent to  $($\cmd{\sixspot}$)3 \equiv 0$,
+% original state. More formally this is equivalent to
+%  $($\cmd{\sixspot}$)3 \equiv e$\,\footnote{$e$ is the `identity' element},
 %  and can  be nicely  illustrated  by implementing the following pseudocode:
 %\begin{verbatim}
 % \RubikCubeSolved . \RubikRotation[3]{\sixspot} = \RubikCubeSolved   
@@ -613,7 +780,7 @@
 % \begin{minipage}{11cm}
 % \centering
 % \ifpdf
-%  \includegraphics[width=10cm]{Rubikrot-doc-figC.pdf}
+%  \includegraphics[width=10cm]{rubikrot-doc-figC.pdf}
 % \else
 % \fi
 % \end{minipage}
@@ -623,15 +790,16 @@
 %
 %  The \cmd{\RubikRotation} command  can also be used to  scramble the 
 % cube using a random sequence of rotations. If  the first argument 
-% is the lowercase word `random' \textsc{and} the second argument 
+% is the lower-case word `random' \textsc{and} the second argument 
 % is an integer $n$, ($1\leq n \leq 200$), then a random sequence 
 % of $n$ rotations will be performed; otherwise  a default value 
 % of 50 is used (for example, if the second argument is not an integer). 
 % If $n > 200$ then  the currently set maximum value $n=200$ will be used.
 %
-% As a safety feature the  maximum $n$ can be changed only by editing  the 
-% set value of  the Perl variable \verb!$maxn! in the Perl script 
-% \texttt{rubikrotation.pl},  where (see line~583)  we  currently have
+%  As a safety feature the  maximum $n$ can be changed only by editing  the 
+%  set value of  the Perl variable \verb!$maxn! in the Perl script 
+%  \texttt{rubikrotation.pl},  where we  currently have
+%  (see  the `random' subroutine in the document \texttt{rubikrotationPL.pdf})
 %\begin{quote}
 %\begin{verbatim}
 % my $maxn=200;
@@ -638,15 +806,15 @@
 %\end{verbatim}
 %\end{quote}
 %
-% For example, the following commands will scramble a solved cube using a 
+% For example, the following commands scramble a solved cube using a 
 % sequence of 120 random rotations, and display the state in the form of 
-%  a  semi-flat cube. 
+%  a  semi-flat (SF) cube. 
 %
 
 % \begin{minipage}{3.4cm}
 % \centering
 % \ifpdf
-%   \includegraphics[height=4cm]{Rubikrot-doc-figB.pdf}
+%   \includegraphics[height=4cm]{rubikrot-doc-figB.pdf}
 % \else
 % \fi
 % \end{minipage}
@@ -655,7 +823,7 @@
 %\begin{verbatim}
 % \RubikCubeSolved%
 % \RubikRotation{random,120}%
-% \ShowCube{5.5cm}{0.5}{\DrawRubikCubeFlat}
+% \ShowCube{5.5cm}{0.5}{\DrawRubikCubeSF}
 %\end{verbatim}
 % \end{minipage}
 %
@@ -691,7 +859,7 @@
 %\begin{quote}
 %\begin{verbatim}
 % \RubikCubeSolved%
-% \RubikRotation{*sixspot,U,Dp,R,Lp,F,Bp,U,Dp}%
+% \RubikRotation{U,Dp,R,Lp,F,Bp,U,Dp}%
 % \SaveRubikState{sixspot.tex}%
 %\end{verbatim}
 %\end{quote}
@@ -709,12 +877,12 @@
 % \RubikFaceBack{B}{B}{B}{B}{R}{B}{B}{B}{B}%
 %\end{verbatim}
 %\end{quote}
-% We can therefore access and draw this configuration later, when required, 
-% simply by inputting  the file as follows:
+% We can therefore access and draw this configuration in a Semi-Flat  format 
+% later, when required,  simply by inputting  the file as follows:
 %\begin{quote}
 %\begin{verbatim}
 %\input{sixspot.tex} 
-%\ShowCube{7cm}{0.7}{\DrawRubikCubeFlat}
+%\ShowCube{7cm}{0.7}{\DrawRubikCubeSF}
 %\end{verbatim}
 %\end{quote}
 %
@@ -724,7 +892,7 @@
 %  \DescribeMacro{\CheckRubikState}
 %  Since it is easy to inadvertently define an invalid Rubik cube 
 % (e.g.,~enter an invalid number of, say, yellow facelets), this command 
-%  checks the current colour state of all the cubies
+%  simply checks the current colour state of all the cubies
 % of a 3x3x3 Rubik cube, and  shows the number of facelets  of each colour.  
 % An ERROR: code is issued if the number of facelets having a given colour exceeds~6.
 % The results are written to the the \texttt{.log} file, and displayed under 
@@ -736,7 +904,9 @@
 % \CheckRubikState%
 %\end{verbatim}
 %\end{quote}
-% Note that  such a check is implemented automatically with each \cmd{\RubikRotation} command.
+% Note (1)~that  such a check is implemented automatically with each \cmd{\RubikRotation} 
+% command, and (2)~this is actually only a very superficial check---simply counting the number 
+% of cubies of each colour.
 %
 %
 %
@@ -758,6 +928,7 @@
 % Once the document is free of errors this command can be removed or just commented out. 
 % Run the test file \texttt{example-rot.tex} to see an example of the use of this command. 
 %
+%
 %    \section{Files generated}
 %
 % 
@@ -780,21 +951,22 @@
 %
 % 
 %     \section{General overview}
-% \label{generaloverview}
-% When \LaTeX\  processes  \texttt{rubikrotation.sty}  the following steps
-% are implemented.
+%   \label{generaloverview}
+%
+%  When \LaTeX\  processes  \texttt{rubikrotation.sty}  the following steps
+%  are implemented.
 % \begin{itemize}
-%
 % 
 % \item[1.]  A check is made to see if  \texttt{fancyvrb.sty} is loaded: if not 
-% then this package  is loaded if it is available (this package is required  
-% for inputting the  file  \texttt{rubikstateERRORS.dat}).
+% then this package  is loaded  (this package supplies the command \cmd{\VerbatimInput} which 
+% is required for inputting the  file  \texttt{rubikstateERRORS.dat} in verbatim form).
 % 
 % \item[2.]  A check is made to see if a configuration-file (\texttt{rubikrotation.cfg})
 %  exists:  if so then  this file is input.
 %
-% \item[3.] The text file \texttt{rubikstateNEW.dat} is overwritten (if it exists): 
-% otherwise the file is created (this prevents an `old' file being used by \LaTeX).
+% \item[3.] The text file \texttt{rubikstateNEW.dat} is overwritten (if it exists), 
+%  otherwise the file is created (this prevents an `old' version of the file being 
+%  used by \LaTeX).
 %
 % \item[4.]  The plain-text file \texttt{rubikstateERRORS.dat} is created. 
 % This file collects error  messages generated by the Perl script.
@@ -804,7 +976,7 @@
 %
 % When a \cmd{\RubikRotation} command is processed it first  writes the current 
 % colour configuration of each face (the `rubik state') to the temporary file 
-% \texttt{rubikstate.dat} (to be read by the Perl script \texttt{rubikrotation.pl}). 
+% \texttt{rubikstate.dat} (this will be read by the Perl script \texttt{rubikrotation.pl}). 
 % The \cmd{\RubikRotation} command also appends the keyword `\texttt{checkrubik}' 
 %  as well as  a copy of the  string of Rubik rotations. 
 % It~then calls the Perl script  \texttt{rubikrotation.pl}. 
@@ -811,7 +983,7 @@
 %
 % For example, if we use the command \cmd{\RubikCubeSolved}
 % followed by the command \verb!\RubikRotation[2]{U,D,L,R}!, then the associated 
-%  \texttt{rubikstate.dat} file  would be as follows:
+%  \texttt{rubikstate.dat} file  will be written as follows:
 %\begin{quote}
 % \begin{verbatim}
 % % filename: rubikstate.dat
@@ -826,12 +998,12 @@
 % rotation,U,D,L,R
 %\end{verbatim}
 %\end{quote}
-% Note that the \cmd{\RubikRotation} option \texttt{[2]} results in the line \texttt{rotation,U,D,L,R} 
+% Note that the \cmd{\RubikRotation} option \texttt{[2]} results in the string ``\texttt{rotation,U,D,L,R}'' 
 % being written twice to the \texttt{rubikstate.dat} file, as shown above.
 %
 % Alternatively, if we used the command 
 % \verb!\RubikRotation{random, 45}! then the last line  written to the file 
-% would be the string  `\texttt{rotation,random,45}', as follows:
+% would be the string  ``\texttt{rotation,random,45}'', as follows:
 %\begin{quote}
 % \begin{verbatim}
 % % filename: rubikstate.dat
@@ -846,29 +1018,31 @@
 %\end{verbatim}
 %\end{quote}
 % A  \cmd{\CheckRubikState} command   triggers the same sequence of events except
-% no `rotation' line is written.
+% that no ``\texttt{rotation,....}'' line is written.
 %
 % The action of the Perl script  \texttt{rubikrotation.pl} is controlled by 
 % the keywords (first argument of
 % each line)  associated with each line of the file \texttt{rubikstate.dat}. 
 % When control passes to  Perl,  the script \texttt{rubikrotation.pl} starts 
-% by loading the current rubikstate (prompted by the keywords \texttt{up}, \texttt{down}, 
-% \texttt{left}, \texttt{right}, \texttt{front}, \texttt{back}, in the file 
-% \texttt{rubikstate.dat}).  Next the Perl script 
-% performs  some basic checks (prompted by the key word \texttt{checkstate}), and 
-% then it processes  the sequence of Rubik rotations (prompted by the keyword 
-% \texttt{rotation}).  If, instead, the second argument  of the `rotation' string 
-% is the keyword `random', and  provided this is followed by a valid integer, say $n$, 
+% by loading the current rubikstate (prompted by the keywords `\texttt{up}', `\texttt{down}', 
+% `\texttt{left}', `\texttt{right}', `\texttt{front}', `\texttt{back}'), and performing
+% a syntax check---significant syntax errors at this stage 
+%  will cause the program to  issue appropriate error messages and then terminate cleanly.
+% Next, the Perl script  performs  some basic cube checks 
+% (prompted by the key word `\texttt{checkstate}'), and then the program processes  
+% the sequence of Rubik rotations (prompted by the keyword 
+% `\texttt{rotation}').  If, instead, the second argument  of the `\texttt{rotation,...}' string 
+% is the keyword `\texttt{random}', and  provided this is followed by a valid integer, say $n$, 
 % then the Perl script performs  a sequence of $n$ random rotations.
-% Finally, the Perl script writes the final `rubikstate' to the text file 
+% Finally, the Perl script writes the final rubikstate to the text file 
 % \texttt{rubikstateNEW.dat}. All error messages are written to the 
-% text file \texttt{rubikstateERRORS.dat} and  also to the \LaTeX\  log file. 
+% text file \texttt{rubikstateERRORS.dat} and  also to the \LaTeX\  log-file. 
 %
 % Control then reverts to  \LaTeX\  which then inputs the file
 % \texttt{rubikstateNEW.dat}. If there are more \cmd{\RubikRotation} commands
-% then this cycle  repeats accordingly.  Eventually a \cmd{\Draw...} command 
-% of some form is  reached and the final rubikstate is drawn in a TikZ picture 
-% environment.
+% (in the \texttt{.tex} file) then this cycle  repeats accordingly.  
+% Eventually a \cmd{\Draw...} command is  reached (in the \texttt{.tex} file) and 
+% the final rubikstate is drawn in a TikZ picture  environment.
 %
 % If the TikZ picture environment is followed by a \cmd{\ShowRubikErrors} command,
 % then a `verbatim' copy of the \texttt{rubikstateERRORS.dat} file is displayed
@@ -911,13 +1085,22 @@
 % \newline\url{http://pgfplots.sourceforge.net/TeX-programming-notes.pdf}
 % {\newline}[\,re:~loop macros in Section~\ref{sec:feuersanger}\,]
 %
+%  \item Kociemba  website (Kociemba H). \url{http://www.kociemba.org/cube.htm}
 %
-% \item Nickalls RWD and Syropoulos A (2015).  The \textsc{rubikcube} package. 
+% \item Nickalls RWD and Syropoulos A (2015).  The \textsc{rubikcube} package, v3.0.
 % \newline\url{http://www.ctan.org/pkg/rubik}, 
 %
-% \item Reid M. \  Patterns.  \url{http://www.cflmath.com/Rubik/patterns.html}
-% {\newline}[\,re:~sequences as macros; in Section~\ref{sec:seq-as-macros}\,]
 %
+% \item Randelshofer website (Randelshofer W).  \url{http://www.randelshofer.ch/rubik/}
+%  \ [\,re:~sequences  and  supersetENG notation\,]
+%
+%
+% \item Reid website (Reid M). \  Patterns.  \url{http://www.cflmath.com/Rubik/patterns.html}
+% \ [\,re:~sequences as macros; in Section~\ref{sec:seq-as-macros}\,]
+%
+%
+% \item Tellechea C and Segletes SB (2016).  The  \textsf{listofitems} package, v1.2
+% \newline\url{http://www.ctan.org/pkg/listofitems}
 %\end{itemize}
 % 
 %
@@ -925,6 +1108,27 @@
 %     \section{Change history}
 %
 % \begin{itemize}
+%
+% \item Version 4.0 (March  2017)
+%
+% --- The \cmd{\RubikRotation} command has been enhanced to allow its argument to include
+%  so-called repeat-blocks (rotation-sequences which can be repeated multiple times), and 
+% info-blocks for holding sequence metadata (see Section~\ref{sec:rubikrotationcmd}).
+% Syntax checking of the \cmd{\RubikRotation} argument is much improved 
+% (see \texttt{rubikrotationPL.pdf} for details of the Perl script).
+%
+% --- Four new macros  which  hold derived data (see Section~\ref{sec:rubikrotationcmd}).
+% \begin{quote}
+%  \cmd{\SequenceName}
+%  \newline\cmd{\SequenceInfo}
+%  \newline\cmd{\SequenceShort}
+%  \newline\cmd{\SequenceLong}
+% \end{quote}
+%
+% --- Better syntax checking of the \cmd{\RubikRotation} argument by the Perl program \texttt{rubikrotation.pl}.
+%
+%
+%
 % \item Version 3.0 (25 September 2015)
 %
 % --- The \cmd{\RubikRotation} command now  actions multiple instances of its  argument 
@@ -932,7 +1136,7 @@
 % \cmd{\RubikRotation[3]\{R,x\}}  is equivalent to the  command \cmd{\RubikRotation\{R,x,R,x,R,x\}}
 % (see Sections~\ref{sec:rubikrotationcmd} and \ref{sec:rubikrotationcode}).
 %
-% --- If a comma separated  element used as an argument for the \cmd{\RubkRotation} 
+% --- If a comma separated  element used as an argument for the \cmd{\RubikRotation} 
 % command is prefixed with either a * or [ or ]  character then it is not actioned 
 % as a rotation (see Section~\ref{sec:prefixedargument}). 
 %
@@ -940,7 +1144,8 @@
 % including \texttt{-h} to show some `help'  and `usage' information 
 % (see Section~\ref{sec:placingfiles}).
 %
-% --- A `man' file  for the Perl script \texttt{rubikrotation.pl} is now included in the package.
+% --- A `man' file (manual file) for the Perl script \texttt{rubikrotation.pl} is now 
+%  included in the package.
 %
 % --- The Perl script \texttt{rubikrotation.pl} now  uses as input and output filenames
 %  those specified  in the command-line of the CALLing program. This now allows the 
@@ -964,7 +1169,7 @@
 %
 %
 %
-%        \section{The code (\texttt{rubikrotation.sty})} 
+%        \section[The code]{The code (\texttt{rubikrotation.sty})} 
 % 
 % {\noindent}In the following, the term `Perl script'  denotes the script
 %  \texttt{rubikrotation.pl}. Useful information regarding the 
@@ -973,11 +1178,12 @@
 %  Abrahams \textit{et.~al} (1990).
 % 
 %   \subsection{Package heading}
+%   \label{sec:CodePackageHeading}
 %
 %    \begin{macrocode}
 %<*rubikrotation>
-\def\RRfileversion{3.0}%
-\def\RRfiledate{2015/09/25}%
+\def\RRfileversion{4.0}%
+\def\RRfiledate{2017/03/03}%
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{rubikrotation}[\RRfiledate\space (v\RRfileversion)]
 %    \end{macrocode}
@@ -994,7 +1200,7 @@
 %
 %
 %
-%  {\noindent}The \rubikrotation\  package requires access to the  fancyvrb package
+%  {\noindent}The \rubikrotation\  package requires access to the  \textsf{fancyvrb} package
 %  for the \cmd{\VerbatimInput\{\}} command  which we use for inputting and displaying
 %  the error file (see Section~\ref{sec:showrubikerrors}).
 %    \begin{macrocode}
@@ -1004,6 +1210,24 @@
    \RequirePackage{fancyvrb}}
 %    \end{macrocode}
 %
+%
+%   {\noindent}For the \cmd{\write18} syntax to work with
+%   Lua\TeX\ (so we can access system commands) we require 
+%   the recent \textsf{shellesc} package, which we load using the 
+%   \textsf{ifluatex} conditional (see Section~\ref{sec:shellescape}).
+%    \begin{macrocode}
+\@ifpackageloaded{ifluatex}{}{%
+   \typeout{---rubikrotation requires the ifluatex package.}%
+   \RequirePackage{ifluatex}}
+\ifluatex%
+   \@ifpackageloaded{shellesc}{}{%
+   \typeout{---rubikrotation requires the shellesc package
+       to run using Lua\LaTeX.}%
+   \RequirePackage{shellesc}}
+\fi%
+%    \end{macrocode}
+%
+%
 %  \medskip
 % 
 %   \subsection{Some useful commands}
@@ -1059,30 +1283,30 @@
 \newcommand{\rubikperlname}{rubikrotation}
 %    \end{macrocode}
 %    \end{macro}
+% Note that here we are assuming that the script is an executable file.
 %
-%
 %    \begin{macro}{\rubikperlcmd}
 %  This holds the command-line  code for calling the Perl script 
-%  (assumed to be an executable file). 
 %  Note that the command-line requires a mandatory  input filename preceded
 %  by the \texttt{-i}~switch. An optional output filename (preceded by the
 %  \texttt{-o}~switch) may be used, otherwise the default output filename of 
 %  \texttt{rubik-OUT.dat} will be used.
 %
-% Note that it is very important that this .sty file actually specifies an
+% Note that it is very important that we do actually specify an
 % output filename (for receiving data from the Perl script). This is because
 % (a)~The Perl script \texttt{rubikrotation.pl} is currently configured to read its 
 % output filename  as an argument from the command-line (so it can be flexibly 
 % used as a stand-alone script for processing a given Rubik state through a 
 % sequence of rotations), and (b)~\texttt{rubikrotation.sty} is currently 
-% configured to read  its input from the file \texttt{rubikstateNEW.dat}.
+% configured to read  its input (i.e.,~data  generated  by  the Perl script)
+%  from the file \texttt{rubikstateNEW.dat}.
 %    \begin{macrocode}
 \newcommand{\rubikperlcmd}{\rubikperlname\space%
                    -i rubikstate.dat   -o rubikstateNEW.dat}
 %    \end{macrocode}
-%  Remember to use the \cmd{\space} command following the \LaTeX\  backslash 
-% command in order to  generate the mandatory space between it and the first 
-% command-line argument).
+%  Remember to use the \cmd{\space} macro following the \cmd{\rubikperlname} macro 
+%  in order to  generate the mandatory space before the first 
+% command-line argument.
 %
 %  A plain-text  configuration-file \verb!rubikrotation.cfg! can be used to 
 %  change the default command-line code  using a renewcommand 
@@ -1094,7 +1318,7 @@
 %
 % If a configuration file exists (\texttt{rubikrotation.cfg}) then input it here,
 % i.e.,~\textit{after} defining the \cmd{\rubikperlname} and \cmd{\rubikperlcmd} 
-% commands and \textit{before} creating the \texttt{rubikstateERRORS.dat} file.
+% macros and \textit{before} creating the \texttt{rubikstateERRORS.dat} file.
 %    \begin{macrocode}
 \typeout{---checking for config file (rubikrotation.cfg)...}
 \IfFileExists{rubikrotation.cfg}{%
@@ -1139,7 +1363,7 @@
 \newwrite\outfile%
 \immediate\openout\outfile=rubikstateERRORS.dat%
 \@print{\@comment rubikstateERRORS.dat}%
-\@print{\@comment ---(RR.sty v\RRfileversion): comments output by Perl script}%
+\@print{\@comment --------------------}%
 \immediate\closeout\outfile%
 %    \end{macrocode}
 %
@@ -1184,7 +1408,7 @@
 % in order to trigger the Perl script to implement its \texttt{checkstate} subroutine.
 %
 % The actual state is simply an ordered sequence of the  faces and the colours 
-% associated with each facelet of that face. The colour associated with a particular facelet
+% associated with each facelet of a face. The colour associated with a particular facelet
 % is held by the variable for that facelet. For example, the top-left facelet associated with
 % the \textsc{front} face is held in the variable \cmd{\Flt} (see Section~\ref{saverubikstate}).
 % Further relevant documentation is in the \textsc{rubikcube} package. 
@@ -1256,10 +1480,12 @@
 % Perl script \texttt{rubikrotation.pl}.  It~also writes comments to the 
 % data file and also to the log file.
 %
-% In order to allow the user to (optionally)  write the main argument multiple
-% times to the output data-file, we require this command to allow an optional
+% The way we allow the user to (optionally) process the main argument multiple
+%  times  is simply by writing the associated output command multiple
+% times to the output data-file. Consequently, we require the \cmd{\RubikRotation} 
+% command to allow a square-bracket optional
 % argument (a non-negative integer) to specify the number of such repeats.
-% In order to implement an optional argument facility we use two macros 
+% In order to implement this optional argument facility we use two macros 
 % (countingloop and loopcounter) detailed by Feuers\"{a}nger (2015) 
 % [\,see refs Section~\ref{sec:references}\,]\label{sec:feuersanger}, 
 % as follows:
@@ -1286,8 +1512,9 @@
 % the command to write the main argument to the output data file.
 %    \begin{macrocode}
 \newcommand{\RubikRotation}[2][1]{%
+   \typeout{---TeX process (rubikrotation.sty)-------}% 
    \typeout{---NEW rotation command------------------}%
-   \typeout{---command = RubikRotation{#1}}%
+   \typeout{---command = RubikRotation[#1]{#2}}%
    \typeout{---writing current Rubik state to file rubikstate.dat}%
    \@openstatefile% open data file
    \@print{\@comment filename: rubikstate.dat}%
@@ -1299,14 +1526,20 @@
    \@countingloop{\ourRRcounter} in 1:{#1}{%
          \immediate\write\outfile{rotation,#2}}%
    \@closestatefile% close data file
-   \typeout{---running Perl script (rubikrotation)}%
+   \typeout{---CALLing Perl script (rubikrotation.pl)}%
    \immediate\write18{\rubikperlcmd}%
-   \typeout{---inputting NEW datafile (written by Perl script)}%
+   \typeout{---inputting NEW datafile (data written by Perl script)}%
    \input{rubikstateNEW.dat}%
    \typeout{-----------------------------------------}%
  }
 %    \end{macrocode}
 %    \end{macro}
+% Note that the new \cmd{\ShellEscape} command implemented by the recent
+% \textsf{shellesc} package is equivalent to \cmd{\immediate}\cmd{\write18} (see above),
+%  and so we  probably ought to use \cmd{\ShellEscape} instead in future (and hence load
+% \textsf{shellesc} automatically). At present, however, we leave the user to make 
+% sure that the \textsf{shellesc} package is actually  available on their system.
+% 
 %
 %
 %   \subsection{ShowRubikErrors command}
@@ -1314,11 +1547,13 @@
 %
 %    \begin{macro}{\ShowRubikErrors}
 % This command inputs the file \texttt{rubikstateERRORS.dat}.
+% Also made a more convenient synonym = \cmd{\ShowErrors}.
 %    \begin{macrocode}
 \newcommand{\ShowRubikErrors}{%
    \typeout{---ShowRubikErrors: inputting file rubikstateERRORS.dat}%
    \VerbatimInput{rubikstateERRORS.dat}%
  }
+\newcommand{\ShowErrors}{\ShowRubikErrors}
 %    \end{macrocode}
 %    \end{macro}
 %
@@ -1340,9 +1575,9 @@
    \@print{\@comment filename: rubikstate.dat}%
    \@printrubikstate% 
    \@closestatefile% close data file
-   \typeout{---running Perl script (rubikrotation)}%
+   \typeout{---running Perl script (rubikrotation.pl)}%
    \immediate\write18{\rubikperlcmd}%
-   \typeout{---inputting NEW datafile (written by Perl script)}%
+   \typeout{---inputting NEW datafile (data written by Perl script)}%
    \input{rubikstateNEW.dat}%
    \typeout{-----------------------------------------}%
  }

Modified: trunk/Master/texmf-dist/source/latex/rubik/rubikrotation.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/rubik/rubikrotation.ins	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/source/latex/rubik/rubikrotation.ins	2017-03-06 21:58:50 UTC (rev 43415)
@@ -1,27 +1,10 @@
 %% rubikrotation.ins 
 %%
-%% version 3.0
+%% version 4.0
 %%
 %% --- automatic overwriting of .sty is disabled-------
 %%  =========================================================
-%%  Authors: RWD Nickalls (dick at nickalls.org) 
-%%               and 
-%%           Apostolos Syropoulos (asyropoulos at yahoo.com)
 %%
-%%  Copyright  25 September 2015    RWD Nickalls + A Syropoulos
-%% 
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either
-%% version 1.3c of this license or (at your option) any 
-%% later version: <http://www.latex-project.org/lppl.txt>
-%%
-%% This work consists of the files listed in the README file.
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this work when run through
-%% LaTeX.
-%%
 %% --------------- start of docstrip commands ------------------
 %%
 \def\batchfile{rubikrotation.ins}
@@ -33,8 +16,9 @@
   Authors: RWD Nickalls (dick at nickalls.org) 
           and Apostolos Syropoulos (asyropoulos at yahoo.com)
 
-  Copyright 25 September 2015     RWD Nickalls and A Syropoulos
+  Copyright 03 March 2017     RWD Nickalls and A Syropoulos
 
+  VERSION 4.0
 
   This work may be distributed and/or modified under the
   conditions of the LaTeX Project Public License, either

Modified: trunk/Master/texmf-dist/tex/latex/rubik/rubikcube.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rubik/rubikcube.sty	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/tex/latex/rubik/rubikcube.sty	2017-03-06 21:58:50 UTC (rev 43415)
@@ -10,8 +10,9 @@
 %%   Authors: RWD Nickalls (dick at nickalls.org)
 %%           and Apostolos Syropoulos (asyropoulos at yahoo.com)
 %% 
-%%   Copyright 2015  RWD Nickalls and A Syropoulos
+%%   Copyright  03 March 2017  RWD Nickalls and A Syropoulos
 %% 
+%%   VERSION 4.0
 %% 
 %%   This work may be distributed and/or modified under the
 %%   conditions of the LaTeX Project Public License, either
@@ -29,6 +30,7 @@
 %% 
 %%   This package requires the basic TikZ package to be loaded already
 %% ------------------------------------------------------------------
+%%% \CheckSum{5683}
 %%% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -46,33 +48,28 @@
 %%   Right brace   \}     Tilde         \~}
 
 
-\def\RCfileversion{3.0}%
-\def\RCfiledate{2015/09/25}%
+%% \textsc{white space}: \
+
+
+%%  \DescribeMacro{\RubikCubeSolvedWB}
+%%set up the UP face
+%%draw the UP face and sides
+
+\def\RCfileversion{4.0}%
+\def\RCfiledate{2017/03/03}%
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{rubikcube}[\RCfiledate\space (v\RCfileversion)]
 \@ifpackageloaded{tikz}{}{%
   \typeout{---rubikcube requires the TikZ package.}%
   \RequirePackage{tikz}}%
+\@ifpackageloaded{forarray}{}{%
+  \typeout{---rubikcube requires the Forarray package.}%
+  \RequirePackage{forarray}}%
+\@ifpackageloaded{ifthen}{}{%
+  \typeout{---rubikcube requires the IfThen package.}%
+  \RequirePackage{ifthen}}%
 \newcommand{\rubikcube}{\textsc{rubikcube}}%
 \newcommand{\Rubikcube}{\textsc{Rubikcube}}%
-\newcommand{\@rr}[1]{\textbf{\textsf{#1}}}
-\newcommand{\@rrp}[1]{\textbf{\textsf{#1}$^\prime$}}
-\newcommand{\@rrw}[1]{\textbf{\textsf{#1\footnotesize{w}}}}
-\newcommand{\@rrwp}[1]{\textbf{\textsf{#1\footnotesize{w}}$^\prime$}}
-\newcommand{\@rrs}[1]{\textbf{\textsf{#1\footnotesize{s}}}}
-\newcommand{\@rrsp}[1]{\textbf{\textsf{#1\footnotesize{s}}$^\prime$}}
-\newcommand{\@rra}[1]{\textbf{\textsf{#1\footnotesize{a}}}}
-\newcommand{\@rrap}[1]{\textbf{\textsf{#1\footnotesize{a}}$^\prime$}}
-\newcommand{\@xyzh}[1]{\textbf{[\textsf{#1}]}\,}
-\newcommand{\@xyzhp}[1]{\textbf{[\textsf{#1}$^\prime$]}\,}
-\newcommand{\@xyzRubik}[1]{\raisebox{3.45pt}{\textbf{[\textsf{#1}]}}}
-\newcommand{\@xyzRubikp}[1]{\raisebox{3.45pt}{\textbf{[\textsf{#1}$^\prime$]}}}
-\newcommand{\@SquareLetter}[1]{\setlength\fboxsep{2.5pt}\fboxrule=0.8pt%
-   \fbox{\rule[-1pt]{0pt}{8.5pt}\raisebox{-0.5pt}{#1}}}
-\newlength\@hRubik%
-\setlength{\@hRubik}{0.185cm}%
-\newcommand*\@join[2]{%
-    \csname\expandafter\@gobble\string#1#2\endcsname}
 \definecolor{R}{HTML}{C41E33}%
 \definecolor{G}{HTML}{00BE38}%
 \definecolor{B}{HTML}{0051BA}%
@@ -80,23 +77,60 @@
 \colorlet{X}{black!30}% grey
 \colorlet{O}{orange}%
 \colorlet{W}{white}%
+\newcommand{\@rubikfont}{\fontsize{10}{12pt}\usefont{T1}{cmss}{bx}{n}}
+\newcommand{\@rubikfontFNS}{\fontsize{8}{12pt}\usefont{T1}{cmss}{bx}{n}}
+\newcommand{\@rubikprime}{'}
+\newlength{\@showcubewidth}%
 \newcommand{\ShowCube}[3]{%
-  \begin{minipage}{#1}%
+  \setlength{\fboxsep}{0cm}%
+  \setlength{\@showcubewidth}{#1}%
+  \advance\@showcubewidth by 1.6pt\relax%
+  \begin{minipage}{\the\@showcubewidth}%
   \centering%
   \begin{tikzpicture}[scale=#2]%
   #3%
   \end{tikzpicture}%
   \end{minipage}%
-}
+}%
 \newcommand{\ShowCubeF}[3]{%
-  \fbox{%
-  \begin{minipage}{#1}%
+  \setlength{\fboxsep}{0cm}%
+  \setlength{\fboxrule}{0.4pt}%
+  \setlength{\@showcubewidth}{#1}%
+  \advance\@showcubewidth by 1.6pt\relax%
+  \framebox{%
+  \begin{minipage}{\the\@showcubewidth}%
   \centering%
   \begin{tikzpicture}[scale=#2]%
   #3%
   \end{tikzpicture}%
   \end{minipage}%
-}}
+}}%
+\newcommand{\x}{\thislevelitem}
+\newcommand{\xcount}{\thislevelcount}
+\newcommand{\ShowSequence}[3]{%
+   \ForEachX{,}{%
+    \ifthenelse{\xcount=1}{#2{\x}}{#1#2{\x}}%
+    }{#3}%
+}%
+\newcommand{\ShowSequenceF}[3]{%
+\fbox{%
+   \ForEachX{,}{%
+    \ifthenelse{\xcount=1}{#2{\x}}{#1#2{\x}}%
+    }{#3}%
+}}%
+\newcommand{\ShowSequencef}[3]{%
+   \ForEachX{,}{%
+    \ifthenelse{\xcount=1}{\fbox{#2{\x}}}{#1{\fbox{#2{\x}}}}%
+    }{#3}%
+}%
+\newcommand{\SequenceInfo}{{}}%   %% INFO only
+\newcommand{\SequenceName}{{}}%   %% NAME only
+\newcommand{\SequenceShort}{{}}%  %% original SHORT seq but with NO NAME
+\newcommand{\SequenceLong}{{}}%   %% just the LONG string \& no name
+\newcommand{\SequenceBraceA}[2]{$\overbrace{\mbox{#2}}^{\mbox{#1}}$}%
+\newcommand{\SequenceBraceB}[2]{$\underbrace{\mbox{#2}}_{\mbox{#1}}$}%
+\newcommand{\SequenceBraceAF}[2]{\fbox{$\overbrace{\mbox{#2}}^{\mbox{#1}}$}}%
+\newcommand{\SequenceBraceBF}[2]{\fbox{$\underbrace{\mbox{#2}}_{\mbox{#1}}$}}%
 \newcommand{\RubikFaceUp}[9]{%
 \def\Ult{#1}\def\Umt{#2}\def\Urt{#3}%
 \def\Ulm{#4}\def\Umm{#5}\def\Urm{#6}%
@@ -172,14 +206,20 @@
 \RubikFaceFront{X}{X}{X}{X}{O}{X}{X}{X}{X}%
 \RubikFaceBack {X}{X}{X}{X}{R}{X}{X}{X}{X}%
 }
-\newcommand{\RubikCubeSolved}{%
-  \RubikFaceUpAll{W}%
-  \RubikFaceDownAll{Y}%
-  \RubikFaceLeftAll{B}%
-  \RubikFaceRightAll{G}%
-  \RubikFaceFrontAll{O}%
-  \RubikFaceBackAll{R}%
+\newcommand{\RubikCubeGray}{\RubikCubeGrey}
+\newcommand{\SolvedConfig}[6]{%
+  \RubikFaceRightAll{#1}%
+  \RubikFaceLeftAll{#2}%
+  \RubikFaceUpAll{#3}%
+  \RubikFaceDownAll{#4}%
+  \RubikFaceFrontAll{#5}%
+  \RubikFaceBackAll{#6}%
 }
+\newcommand{\RubikCubeGreyAll}{\SolvedConfig{X}{X}{X}{X}{X}{X}}%
+\newcommand{\RubikCubeGrayAll}{\RubikCubeGreyAll}
+\newcommand{\RubikCubeSolved}{\SolvedConfig{G}{B}{W}{Y}{O}{R}}%
+\newcommand{\RubikCubeSolvedWY}{\RubikCubeSolved}%
+\newcommand{\RubikCubeSolvedWB}{\SolvedConfig{R}{O}{W}{B}{G}{Y}}%
 \newcommand{\RubikSliceTopR}[6]{%
 \def\Flt{#1}\def\Fmt{#2}\def\Frt{#3}%
 \def\Rlt{#4}\def\Rmt{#5}\def\Rrt{#6}%
@@ -596,7 +636,7 @@
 }
 %%-----------------------
 \newcommand{\DrawFlatFront}{%
-%% This command is used /only/ by  the \cmd{\DrawRubikFlat} command.
+%% This command is used /only/ by  the \cmd{\DrawRubikCubeF} command.
 %% NOTE: x, y variables not implemented as not required here
 %%---top row
 \draw[line join=round,line cap=round,ultra thick,fill=\Flt]%
@@ -661,7 +701,7 @@
 (\bx + 2,\by + 0) -- (\bx + 2,\by + 1) -- (\bx + 3,\by + 1)%
  -- (\bx + 3,\by + 0) -- cycle;
 }
-\newcommand{\DrawRubikFlat}{%
+\newcommand{\DrawRubikCubeF}{%
   \DrawFlatUp{0}{3}%
   \DrawFlatDown{0}{-3}%
   \DrawFlatLeft{-3}{0}%
@@ -669,7 +709,7 @@
   \DrawFlatRight{3}{0}%
   \DrawFlatBack{6}{0}%
 }
-\newcommand{\DrawRubikCubeFlat}{%
+\newcommand{\DrawRubikCubeSF}{%
   \DrawRubikCube%
   \DrawFlatDown{0}{-3}%
   \DrawFlatLeft{-3}{0}%
@@ -717,6 +757,18 @@
 \DrawRubikLayerSideR{\Rlb}{\Rmb}{\Rrb}%
 \DrawRubikLayerSideB{\Brb}{\Bmb}{\Blb}%
 }
+\newcommand{\DrawFaceUp}{\DrawFlatUp{0}{0}}
+\newcommand{\DrawFaceDown}{\DrawFlatDown{0}{0}}
+\newcommand{\DrawFaceLeft}{\DrawFlatLeft{0}{0}}
+\newcommand{\DrawFaceRight}{\DrawFlatRight{0}{0}}
+\newcommand{\DrawFaceFront}{\DrawFlatFront{0}{0}}
+\newcommand{\DrawFaceBack}{\DrawFlatBack{0}{0}}
+\newcommand{\DrawFaceUpSide}{\DrawFlatUpSide}
+\newcommand{\DrawFaceDownSide}{\DrawFlatDownSide}
+\newcommand{\DrawFaceLeftSide}{\DrawFlatLeftSide}
+\newcommand{\DrawFaceRightSide}{\DrawFlatRightSide}
+\newcommand{\DrawFaceFrontSide}{\DrawFlatFrontSide}
+\newcommand{\DrawFaceBackSide}{\DrawFlatBackSide}
 \newcommand{\RubikSideBarWidth}[1]{\pgfmathsetmacro{\bw}{#1}}
 \newcommand{\RubikSideBarLength}[1]{\pgfmathsetmacro{\bl}{#1}}
 \newcommand{\RubikSideBarSep}[1]{\pgfmathsetmacro{\bs}{#1}}
@@ -806,6 +858,30 @@
   \DrawRubikLayerSideLBx{#5}%
   \DrawRubikLayerSideRBx{#6}%
 }
+\newcommand{\RubikSideFront}[3]{%
+\def\Flt{#1}\def\Fmt{#2}\def\Frt{#3}%
+}
+\newcommand{\RubikSideRight}[3]{%
+\def\Rlt{#1}\def\Rmt{#2}\def\Rrt{#3}%
+}
+\newcommand{\RubikSideLeft}[3]{%
+\def\Llt{#1}\def\Lmt{#2}\def\Lrt{#3}%
+}
+\newcommand{\RubikSideBack}[3]{%
+\def\Blt{#1}\def\Bmt{#2}\def\Brt{#3}%
+}
+\newcommand{\RubikSideFrontAll}[1]{%
+\def\Flt{#1}\def\Fmt{#1}\def\Frt{#1}%
+}
+\newcommand{\RubikSideRightAll}[1]{%
+\def\Rlt{#1}\def\Rmt{#1}\def\Rrt{#1}%
+}
+\newcommand{\RubikSideLeftAll}[1]{%
+\def\Llt{#1}\def\Lmt{#1}\def\Lrt{#1}%
+}
+\newcommand{\RubikSideBackAll}[1]{%
+\def\Blt{#1}\def\Bmt{#1}\def\Brt{#1}%
+}
 \newcommand{\DrawNCubeAll}[4]{%
    \pgfmathsetmacro{\ncubes}{#1-1}%
 %% need to subtract 1 from the given number of cubies per side
@@ -829,7 +905,7 @@
     \draw[line join=round,line cap=round,ultra thick,fill=#4]%
  (#5,#6,\dz) -- (\dx,#6,\dz) -- (\dx,\dy,\dz) -- (#5,\dy,\dz) -- cycle;
 %% The 'rectangle' command does not work with 3D coordinates,
-%% so this is the way to draw the squres with space coordinates
+%% so this is the way to draw the squares with space coordinates
 %% Draw UP face (using the Y colour = #3)
    \draw[line join=round,line cap=round,ultra thick,fill=#3]%
  (#5,\dy,\dz) -- (\dx,\dy,\dz) -- (\dx,\dy,#7) -- (#5,\dy,#7) -- cycle;
@@ -934,51 +1010,89 @@
 \pgfmathsetmacro{\@scy}{\@sd*2/3}  % Start of CircleY arc
 \pgfmathsetmacro{\@sqcx}{\@scx-0.13} %% SQuare CenterX coord
 \pgfmathsetmacro{\@sqcy}{\@scy+0.25} %% SQuare CenterY cpprd
+\newcommand{\@rr}[1]{{\@rubikfont #1}}
+\newcommand{\@rrp}[1]{{\@rubikfont #1\@rubikprime}}
+\newcommand{\@rrw}[1]{{\@rubikfont #1{\@rubikfontFNS w}}}
+\newcommand{\@rrwp}[1]{{\@rubikfont #1{\@rubikfontFNS w}\@rubikprime}}
+\newcommand{\@rrs}[1]{{\@rubikfont #1{\@rubikfontFNS s}}}
+\newcommand{\@rrsp}[1]{{\@rubikfont #1{\@rubikfontFNS s}\@rubikprime}}
+\newcommand{\@rra}[1]{{\@rubikfont #1{\@rubikfontFNS a}}}
+\newcommand{\@rrap}[1]{{\@rubikfont #1{\@rubikfontFNS a}\@rubikprime}}
+\newcommand{\@rru}[1]{{\@rubikfont #1{\@rubikfontFNS u}}}
+\newcommand{\@rrup}[1]{{\@rubikfont #1{\@rubikfontFNS u}\@rubikprime}}
+\newcommand{\@rrd}[1]{{\@rubikfont #1{\@rubikfontFNS d}}}
+\newcommand{\@rrdp}[1]{{\@rubikfont #1{\@rubikfontFNS d}\@rubikprime}}
+\newcommand{\@rrl}[1]{{\@rubikfont #1{\@rubikfontFNS l}}}
+\newcommand{\@rrlp}[1]{{\@rubikfont #1{\@rubikfontFNS l}\@rubikprime}}
+\newcommand{\@rrr}[1]{{\@rubikfont #1{\@rubikfontFNS r}}}
+\newcommand{\@rrrp}[1]{{\@rubikfont #1{\@rubikfontFNS r}\@rubikprime}}
+\newcommand{\@rrf}[1]{{\@rubikfont #1{\@rubikfontFNS f}}}
+\newcommand{\@rrfp}[1]{{\@rubikfont #1{\@rubikfontFNS f}\@rubikprime}}
+\newcommand{\@rrb}[1]{{\@rubikfont #1{\@rubikfontFNS b}}}
+\newcommand{\@rrbp}[1]{{\@rubikfont #1{\@rubikfontFNS b}\@rubikprime}}
+\newcommand{\@rrc}[1]{{\@rubikfont #1{\@rubikfontFNS c}}}
+\newcommand{\@rrcp}[1]{{\@rubikfont #1{\@rubikfontFNS c}\@rubikprime}}
+\newcommand{\@rrm}[1]{{\@rubikfont #1{\@rubikfontFNS m}}}
+\newcommand{\@rrmp}[1]{{\@rubikfont #1{\@rubikfontFNS m}\@rubikprime}}
+\newcommand{\@xyzh}[1]{[{\@rubikfont #1}]}
+\newcommand{\@xyzhp}[1]{[{\@rubikfont #1\@rubikprime}]}
+\newcommand{\@xyzRubik}[1]{\raisebox{3.45pt}{[{\@rubikfont #1}]}}
+\newcommand{\@xyzRubikp}[1]{\raisebox{3.45pt}{[{\@rubikfont #1\@rubikprime}]}}
+\newcommand{\@xyzhbdfl}[1]{[\raisebox{-0.6pt}{{\@rubikfont #1}}]}
+\newcommand{\@xyzbdflRubik}[1]{\raisebox{3.45pt}{[\raisebox{-0.6pt}{{\@rubikfont #1}}]}}
+\newcommand{\@SquareLetter}[1]{\setlength{\fboxsep}{2.5pt}%
+  \setlength{\fboxrule}{0.8pt}%
+  \fbox{\rule[-1pt]{0pt}{8.5pt}\raisebox{-0.5pt}{#1}}}
+\newlength\@hRubik%
+\setlength{\@hRubik}{0.185cm}%
+\newcommand{\@tlen}{\hspace{1pt}}%
+\newcommand*\@join[2]{%
+    \csname\expandafter\@gobble\string#1#2\endcsname}
 \newcommand*{\Rubik}[1]{\@join{\Rubik}{#1}}
 \newcommand*{\textRubik}[1]{\@join{\textRubik}{#1}}
 \newcommand*{\rr}[1]{\@join{\rr}{#1}}
 \newcommand*{\rrh}[1]{\@join{\rrh}{#1}}
 \newcommand{\rrB}{\@rr{B}}
-\newcommand{\SquareB}{\@SquareLetter{\rrB}}
-\newcommand{\rrhB}{\raisebox{-0.25mm}{\SquareB}\,}
-\newcommand{\RubikB}{\raisebox{\@hRubik}{\SquareB}\,}
-\newcommand{\textRubikB}{\rrhB\,}
+\newcommand{\SquareB}{\@tlen\@SquareLetter{\rrB}\@tlen}
+\newcommand{\rrhB}{\raisebox{-0.25mm}{\SquareB}}
+\newcommand{\RubikB}{\raisebox{\@hRubik}{\SquareB}}
+\newcommand{\textRubikB}{\rrhB}
 \newcommand{\rrBp}{\@rrp{B}}
-\newcommand{\SquareBp}{\@SquareLetter{\rrBp}}
-\newcommand{\rrhBp}{\raisebox{-0.25mm}{\SquareBp}\,}
-\newcommand{\RubikBp}{\raisebox{\@hRubik}{\SquareBp}\,}
-\newcommand{\textRubikBp}{\rrhBp\,}
+\newcommand{\SquareBp}{\@tlen\@SquareLetter{\rrBp}\@tlen}
+\newcommand{\rrhBp}{\raisebox{-0.25mm}{\SquareBp}}
+\newcommand{\RubikBp}{\raisebox{\@hRubik}{\SquareBp}}
+\newcommand{\textRubikBp}{\rrhBp}
 \newcommand{\rrBw}{\@rrw{B}}
-\newcommand{\SquareBw}{\@SquareLetter{\rrBw}}
-\newcommand{\rrhBw}{\raisebox{-0.25mm}{\SquareBw}\,}
-\newcommand{\RubikBw}{\raisebox{\@hRubik}{\SquareBw}\,}
-\newcommand{\textRubikBw}{\rrhBw\,}
+\newcommand{\SquareBw}{\@tlen\@SquareLetter{\rrBw}\@tlen}
+\newcommand{\rrhBw}{\raisebox{-0.25mm}{\SquareBw}}
+\newcommand{\RubikBw}{\raisebox{\@hRubik}{\SquareBw}}
+\newcommand{\textRubikBw}{\rrhBw}
 \newcommand{\rrBwp}{\@rrwp{B}}
-\newcommand{\SquareBwp}{\@SquareLetter{\rrBwp}}
-\newcommand{\rrhBwp}{\raisebox{-0.25mm}{\SquareBwp}\,}
-\newcommand{\RubikBwp}{\raisebox{\@hRubik}{\SquareBwp}\,}
-\newcommand{\textRubikBwp}{\rrhBwp\,}
+\newcommand{\SquareBwp}{\@tlen\@SquareLetter{\rrBwp}\@tlen}
+\newcommand{\rrhBwp}{\raisebox{-0.25mm}{\SquareBwp}}
+\newcommand{\RubikBwp}{\raisebox{\@hRubik}{\SquareBwp}}
+\newcommand{\textRubikBwp}{\rrhBwp}
 \newcommand{\rrBs}{\@rrs{B}}
-\newcommand{\SquareBs}{\@SquareLetter{\rrBs}}
-\newcommand{\rrhBs}{\raisebox{-0.25mm}{\SquareBs}\,}
-\newcommand{\RubikBs}{\raisebox{\@hRubik}{\SquareBs}\,}
-\newcommand{\textRubikBs}{\rrhBs\,}
+\newcommand{\SquareBs}{\@tlen\@SquareLetter{\rrBs}\@tlen}
+\newcommand{\rrhBs}{\raisebox{-0.25mm}{\SquareBs}}
+\newcommand{\RubikBs}{\raisebox{\@hRubik}{\SquareBs}}
+\newcommand{\textRubikBs}{\rrhBs}
 \newcommand{\rrBsp}{\@rrsp{B}}
-\newcommand{\SquareBsp}{\@SquareLetter{\rrBsp}}
-\newcommand{\rrhBsp}{\raisebox{-0.25mm}{\SquareBsp}\,}
-\newcommand{\RubikBsp}{\raisebox{\@hRubik}{\SquareBsp}\,}
-\newcommand{\textRubikBsp}{\rrhBsp\,}
+\newcommand{\SquareBsp}{\@tlen\@SquareLetter{\rrBsp}\@tlen}
+\newcommand{\rrhBsp}{\raisebox{-0.25mm}{\SquareBsp}}
+\newcommand{\RubikBsp}{\raisebox{\@hRubik}{\SquareBsp}}
+\newcommand{\textRubikBsp}{\rrhBsp}
 \newcommand{\rrBa}{\@rra{B}}
-\newcommand{\SquareBa}{\@SquareLetter{\rrBa}}
-\newcommand{\rrhBa}{\raisebox{-0.25mm}{\SquareBa}\,}
-\newcommand{\RubikBa}{\raisebox{\@hRubik}{\SquareBa}\,}
-\newcommand{\textRubikBa}{\rrhBa\,}
+\newcommand{\SquareBa}{\@tlen\@SquareLetter{\rrBa}\@tlen}
+\newcommand{\rrhBa}{\raisebox{-0.25mm}{\SquareBa}}
+\newcommand{\RubikBa}{\raisebox{\@hRubik}{\SquareBa}}
+\newcommand{\textRubikBa}{\rrhBa}
 \newcommand{\rrBap}{\@rrap{B}}
-\newcommand{\SquareBap}{\@SquareLetter{\rrBap}}
-\newcommand{\rrhBap}{\raisebox{-0.25mm}{\SquareBap}\,}
-\newcommand{\RubikBap}{\raisebox{\@hRubik}{\SquareBap}\,}
-\newcommand{\textRubikBap}{\rrhBap\,}
-\newcommand{\rrD}{\textbf{\textsf{D}}}
+\newcommand{\SquareBap}{\@tlen\@SquareLetter{\rrBap}\@tlen}
+\newcommand{\rrhBap}{\raisebox{-0.25mm}{\SquareBap}}
+\newcommand{\RubikBap}{\raisebox{\@hRubik}{\SquareBap}}
+\newcommand{\textRubikBap}{\rrhBap}
+\newcommand{\rrD}{\@rr{D}}
 %%
 \newcommand{\SquareD}{%
 \begin{tikzpicture}[scale=0.5]
@@ -988,17 +1102,18 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhD}{\raisebox{-0.333\height}{\SquareD}\,}
+\newcommand{\rrhD}{\raisebox{-0.333\height}{\@tlen\SquareD\@tlen}}
 %%
 \newcommand{\RubikD}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareD\\
-\rrD
+\rrD%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikD}{\rrD\,\rrhD}
-\newcommand{\rrDp}{\textbf{\textsf{D}$^\prime$}}
+\newcommand{\rrDp}{\@rrp{D}}
 %%
 \newcommand{\SquareDp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1008,17 +1123,18 @@
 \draw [thick, <-] (\@sb,\@sd)   -- (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDp}{\raisebox{-0.333\height}{\SquareDp}\,}
+\newcommand{\rrhDp}{\raisebox{-0.333\height}{\@tlen\SquareDp\@tlen}}
 %%
 \newcommand{\RubikDp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDp\\
-\rrDp
+\rrDp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDp}{\rrDp\,\rrhDp}
-\newcommand{\rrDw}{\textbf{\textsf{D\footnotesize{w}}}}
+\newcommand{\rrDw}{\@rrw{D}}
 %%
 \newcommand{\SquareDw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1028,17 +1144,18 @@
 \draw [thick, ->] (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDw}{\raisebox{-0.333\height}{\SquareDw}\,}
+\newcommand{\rrhDw}{\raisebox{-0.333\height}{\@tlen\SquareDw\@tlen}}
 %%
 \newcommand{\RubikDw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDw\\
-\rrDw
+\rrDw%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDw}{\rrDw\,\rrhDw}
-\newcommand{\rrDwp}{\textbf{\textsf{D\footnotesize{w}}$^\prime$}}
+\newcommand{\rrDwp}{\@rrwp{D}}
 %%
 \newcommand{\SquareDwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1048,15 +1165,16 @@
 \draw [thick, <-] (\@sb,\@sd)   -- (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDwp}{\raisebox{-0.333\height}{\SquareDwp}\,}
+\newcommand{\rrhDwp}{\raisebox{-0.333\height}{\@tlen\SquareDwp\@tlen}}
 %%
 \newcommand{\RubikDwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDwp\\
-\rrDwp
+\rrDwp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDwp}{\rrDwp\,\rrhDwp}
 \newcommand{\rrDs}{\@rrs{D}}
 %%
@@ -1068,15 +1186,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDs}{\raisebox{-0.333\height}{\SquareDs}\,}
+\newcommand{\rrhDs}{\raisebox{-0.333\height}{\@tlen\SquareDs\@tlen}}
 %%
 \newcommand{\RubikDs}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDs\\
-\rrDs
+\rrDs%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDs}{\rrDs\,\rrhDs}
 \newcommand{\rrDsp}{\@rrsp{D}}
 %%
@@ -1088,15 +1207,16 @@
 \draw [thick, <-]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDsp}{\raisebox{-0.333\height}{\SquareDsp}\,}
+\newcommand{\rrhDsp}{\raisebox{-0.333\height}{\@tlen\SquareDsp\@tlen}}
 %%
 \newcommand{\RubikDsp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDsp\\
-\rrDsp
+\rrDsp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDsp}{\rrDsp\,\rrhDsp}
 \newcommand{\rrDa}{\@rra{D}}
 %%
@@ -1108,15 +1228,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDa}{\raisebox{-0.333\height}{\SquareDa}\,}
+\newcommand{\rrhDa}{\raisebox{-0.333\height}{\@tlen\SquareDa\@tlen}}
 %%
 \newcommand{\RubikDa}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDa\\
-\rrDa
+\rrDa%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDa}{\rrDa\,\rrhDa}
 \newcommand{\rrDap}{\@rrap{D}}
 %%
@@ -1128,17 +1249,18 @@
 \draw [thick, <-]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhDap}{\raisebox{-0.333\height}{\SquareDap}\,}
+\newcommand{\rrhDap}{\raisebox{-0.333\height}{\@tlen\SquareDap\@tlen}}
 %%
 \newcommand{\RubikDap}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareDap\\
-\rrDap
+\rrDap%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikDap}{\rrDap\,\rrhDap}
-\newcommand{\rrE}{\textbf{\textsf{E}}}
+\newcommand{\rrE}{\@rr{E}}
 %%
 \newcommand{\SquareE}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1148,17 +1270,18 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhE}{\raisebox{-0.333\height}{\SquareE}\,}
+\newcommand{\rrhE}{\raisebox{-0.333\height}{\@tlen\SquareE\@tlen}}
 %%
 \newcommand{\RubikE}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareE\\
-\rrE
+\rrE%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikE}{\rrE\,\rrhE}
-\newcommand{\rrEp}{\textbf{\textsf{E}$^\prime$}}
+\newcommand{\rrEp}{\@rrp{E}}
 %%
 \newcommand{\SquareEp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1168,17 +1291,18 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhEp}{\raisebox{-0.333\height}{\SquareEp}\,}
+\newcommand{\rrhEp}{\raisebox{-0.333\height}{\@tlen\SquareEp\@tlen}}
 %%
 \newcommand{\RubikEp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareEp\\
-\rrEp
+\rrEp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikEp}{\rrEp\,\rrhEp}
-\newcommand{\rrF}{\textbf{\textsf{F}}}
+\newcommand{\rrF}{\@rr{F}}
 %%
 \newcommand{\SquareF}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1186,17 +1310,18 @@
 \draw [thick, <-] (\@scx, \@scy) arc[radius=0.35, start angle=-60, delta angle=290];
 \end{tikzpicture}%
 }
-\newcommand{\rrhF}{\raisebox{-0.333\height}{\SquareF}\,}
+\newcommand{\rrhF}{\raisebox{-0.333\height}{\@tlen\SquareF\@tlen}}
 %%
 \newcommand{\RubikF}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareF\\
-\rrF
+\rrF%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikF}{\rrF\,\rrhF}
-\newcommand{\rrFp}{\textbf{\textsf{F}$^\prime$}}
+\newcommand{\rrFp}{\@rrp{F}}
 %%
 \newcommand{\SquareFp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1204,17 +1329,18 @@
 \draw [thick, ->] (\@scx, \@scy) arc[radius=0.35, start angle=-60, delta angle=290];
 \end{tikzpicture}%
 }
-\newcommand{\rrhFp}{\raisebox{-0.333\height}{\SquareFp}\,}
+\newcommand{\rrhFp}{\raisebox{-0.333\height}{\@tlen\SquareFp\@tlen}}
 %%
 \newcommand{\RubikFp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareFp\\
-\rrFp
+\rrFp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikFp}{\rrFp\,\rrhFp}
-\newcommand{\rrFw}{\textbf{\textsf{F\footnotesize{w}}}}
+\newcommand{\rrFw}{\@rrw{F}}
 %%
 \newcommand{\SquareFw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1223,17 +1349,18 @@
 \draw [thick] (\@sqcx,\@sqcy) arc[radius=0.1, start angle=-60, delta angle=360];
 \end{tikzpicture}%
 }
-\newcommand{\rrhFw}{\raisebox{-0.333\height}{\SquareFw}\,}
+\newcommand{\rrhFw}{\raisebox{-0.333\height}{\@tlen\SquareFw\@tlen}}
 %%
 \newcommand{\RubikFw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareFw\\
-\rrFw
+\rrFw%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikFw}{\rrFw\,\rrhFw}
-\newcommand{\rrFwp}{\textbf{\textsf{F\footnotesize{w}}$^\prime$}}
+\newcommand{\rrFwp}{\@rrwp{F}}
 %%
 \newcommand{\SquareFwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1242,38 +1369,39 @@
 \draw [thick] (\@sqcx,\@sqcy) arc[radius=0.1, start angle=-60, delta angle=360];
 \end{tikzpicture}%
 }
-\newcommand{\rrhFwp}{\raisebox{-0.333\height}{\SquareFwp}\,}
+\newcommand{\rrhFwp}{\raisebox{-0.333\height}{\@tlen\SquareFwp\@tlen}}
 %%
 \newcommand{\RubikFwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareFwp\\
-\rrFwp
+\rrFwp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikFwp}{\rrFwp\,\rrhFwp}
 %%
 \newcommand{\rrFs}{\@rrs{F}}
-\newcommand{\SquareFs}{\@SquareLetter{\rrFs}}
-\newcommand{\rrhFs}{\raisebox{-0.25mm}{\SquareFs}\,}
-\newcommand{\RubikFs}{\raisebox{\@hRubik}{\SquareFs}\,}
-\newcommand{\textRubikFs}{\rrhFs\,}
+\newcommand{\SquareFs}{\@tlen\@SquareLetter{\rrFs}\@tlen}
+\newcommand{\rrhFs}{\raisebox{-0.25mm}{\SquareFs}}
+\newcommand{\RubikFs}{\raisebox{\@hRubik}{\SquareFs}}
+\newcommand{\textRubikFs}{\rrhFs}
 \newcommand{\rrFsp}{\@rrsp{F}}
-\newcommand{\SquareFsp}{\@SquareLetter{\rrFsp}}
-\newcommand{\rrhFsp}{\raisebox{-0.25mm}{\SquareFsp}\,}
-\newcommand{\RubikFsp}{\raisebox{\@hRubik}{\SquareFsp}\,}
-\newcommand{\textRubikFsp}{\rrhFsp\,}
+\newcommand{\SquareFsp}{\@tlen\@SquareLetter{\rrFsp}\@tlen}
+\newcommand{\rrhFsp}{\raisebox{-0.25mm}{\SquareFsp}}
+\newcommand{\RubikFsp}{\raisebox{\@hRubik}{\SquareFsp}}
+\newcommand{\textRubikFsp}{\rrhFsp}
 \newcommand{\rrFa}{\@rra{F}}
-\newcommand{\SquareFa}{\@SquareLetter{\rrFa}}
-\newcommand{\rrhFa}{\raisebox{-0.25mm}{\SquareFa}\,}
-\newcommand{\RubikFa}{\raisebox{\@hRubik}{\SquareFa}\,}
-\newcommand{\textRubikFa}{\rrhFa\,}
+\newcommand{\SquareFa}{\@tlen\@SquareLetter{\rrFa}\@tlen}
+\newcommand{\rrhFa}{\raisebox{-0.25mm}{\SquareFa}}
+\newcommand{\RubikFa}{\raisebox{\@hRubik}{\SquareFa}}
+\newcommand{\textRubikFa}{\rrhFa}
 \newcommand{\rrFap}{\@rrap{F}}
-\newcommand{\SquareFap}{\@SquareLetter{\rrFap}}
-\newcommand{\rrhFap}{\raisebox{-0.25mm}{\SquareFap}\,}
-\newcommand{\RubikFap}{\raisebox{\@hRubik}{\SquareFap}\,}
-\newcommand{\textRubikFap}{\rrhFap\,}
-\newcommand{\rrL}{\textbf{\textsf{L}}}
+\newcommand{\SquareFap}{\@tlen\@SquareLetter{\rrFap}\@tlen}
+\newcommand{\rrhFap}{\raisebox{-0.25mm}{\SquareFap}}
+\newcommand{\RubikFap}{\raisebox{\@hRubik}{\SquareFap}}
+\newcommand{\textRubikFap}{\rrhFap}
+\newcommand{\rrL}{\@rr{L}}
 %%
 \newcommand{\SquareL}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1283,17 +1411,18 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhL}{\raisebox{-0.333\height}{\SquareL}\,}
+\newcommand{\rrhL}{\raisebox{-0.333\height}{\@tlen\SquareL\@tlen}}
 %%
 \newcommand{\RubikL}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareL\\
-\rrL
+\rrL%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikL}{\rrL\,\rrhL}
-\newcommand{\rrLp}{\textbf{\textsf{L}$^\prime$}}
+\newcommand{\rrLp}{\@rrp{L}}
 %%
 \newcommand{\SquareLp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1303,17 +1432,18 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLp}{\raisebox{-0.333\height}{\SquareLp}\,}
+\newcommand{\rrhLp}{\raisebox{-0.333\height}{\@tlen\SquareLp\@tlen}}
 %%
 \newcommand{\RubikLp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLp\\
-\rrLp
+\rrLp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLp}{\rrLp\,\rrhLp}
-\newcommand{\rrLw}{\textbf{\textsf{L\footnotesize{w}}}}
+\newcommand{\rrLw}{\@rrw{L}}
 %%
 \newcommand{\SquareLw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1323,17 +1453,18 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLw}{\raisebox{-0.333\height}{\SquareLw}\,}
+\newcommand{\rrhLw}{\raisebox{-0.333\height}{\@tlen\SquareLw\@tlen}}
 %%
 \newcommand{\RubikLw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLw\\
-\rrLw
+\rrLw%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLw}{\rrLw\,\rrhLw}
-\newcommand{\rrLwp}{\textbf{\textsf{L\footnotesize{w}}$^\prime$}}
+\newcommand{\rrLwp}{\@rrwp{L}}
 %%
 \newcommand{\SquareLwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1343,15 +1474,16 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLwp}{\raisebox{-0.333\height}{\SquareLwp}\,}
+\newcommand{\rrhLwp}{\raisebox{-0.333\height}{\@tlen\SquareLwp\@tlen}}
 %%
 \newcommand{\RubikLwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLwp\\
-\rrLwp
+\rrLwp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLwp}{\rrLwp\,\rrhLwp}
 \newcommand{\rrLs}{\@rrs{L}}
 %%
@@ -1363,15 +1495,16 @@
 \draw [thick, <-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLs}{\raisebox{-0.333\height}{\SquareLs}\,}
+\newcommand{\rrhLs}{\raisebox{-0.333\height}{\@tlen\SquareLs\@tlen}}
 %%
 \newcommand{\RubikLs}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLs\\
-\rrLs
+\rrLs%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLs}{\rrLs\,\rrhLs}
 \newcommand{\rrLsp}{\@rrsp{L}}
 %%
@@ -1383,15 +1516,16 @@
 \draw [thick, ->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLsp}{\raisebox{-0.333\height}{\SquareLsp}\,}
+\newcommand{\rrhLsp}{\raisebox{-0.333\height}{\@tlen\SquareLsp\@tlen}}
 %%
 \newcommand{\RubikLsp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLsp\\
-\rrLsp
+\rrLsp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLsp}{\rrLsp\,\rrhLsp}
 \newcommand{\rrLa}{\@rra{L}}
 %%
@@ -1403,15 +1537,16 @@
 \draw [thick, ->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLa}{\raisebox{-0.333\height}{\SquareLa}\,}
+\newcommand{\rrhLa}{\raisebox{-0.333\height}{\@tlen\SquareLa\@tlen}}
 %%
 \newcommand{\RubikLa}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLa\\
-\rrLa
+\rrLa%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLa}{\rrLa\,\rrhLa}
 \newcommand{\rrLap}{\@rrap{L}}
 %%
@@ -1423,17 +1558,18 @@
 \draw [thick, <-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhLap}{\raisebox{-0.333\height}{\SquareLap}\,}
+\newcommand{\rrhLap}{\raisebox{-0.333\height}{\@tlen\SquareLap\@tlen}}
 %%
 \newcommand{\RubikLap}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareLap\\
-\rrLap
+\rrLap%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikLap}{\rrLap\,\rrhLap}
-\newcommand{\rrM}{\textbf{\textsf{M}}}
+\newcommand{\rrM}{\@rr{M}}
 %%
 \newcommand{\SquareM}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1443,17 +1579,18 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhM}{\raisebox{-0.333\height}{\SquareM}\,}
+\newcommand{\rrhM}{\raisebox{-0.333\height}{\@tlen\SquareM\@tlen}}
 %%
 \newcommand{\RubikM}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareM\\
-\rrM
+\rrM%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikM}{\rrM\,\rrhM}
-\newcommand{\rrMp}{\textbf{\textsf{M}$^\prime$}}
+\newcommand{\rrMp}{\@rrp{M}}
 %%
 \newcommand{\SquareMp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1463,17 +1600,18 @@
 \draw [thick] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhMp}{\raisebox{-0.333\height}{\SquareMp}\,}
+\newcommand{\rrhMp}{\raisebox{-0.333\height}{\@tlen\SquareMp\@tlen}}
 %%
 \newcommand{\RubikMp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareMp\\
-\rrMp
+\rrMp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikMp}{\rrMp\,\rrhMp}
-\newcommand{\rrR}{\textbf{\textsf{R}}}
+\newcommand{\rrR}{\@rr{R}}
 %%
 \newcommand{\SquareR}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1484,17 +1622,18 @@
 \draw [thick, ->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhR}{\raisebox{-0.333\height}{\SquareR}\,}
+\newcommand{\rrhR}{\raisebox{-0.333\height}{\@tlen\SquareR\@tlen}}
 %%
 \newcommand{\RubikR}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareR\\
-\rrR
+\rrR%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikR}{\rrR\,\rrhR}
-\newcommand{\rrRp}{\textbf{\textsf{R}$^\prime$}}
+\newcommand{\rrRp}{\@rrp{R}}
 %%
 \newcommand{\SquareRp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1504,17 +1643,18 @@
 \draw [thick, <-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRp}{\raisebox{-0.333\height}{\SquareRp}\,}
+\newcommand{\rrhRp}{\raisebox{-0.333\height}{\@tlen\SquareRp\@tlen}}
 %%
 \newcommand{\RubikRp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRp\\
-\rrRp
+\rrRp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRp}{\rrRp\,\rrhRp}
-\newcommand{\rrRw}{\textbf{\textsf{R\footnotesize{w}}}}
+\newcommand{\rrRw}{\@rrw{R}}
 %%
 \newcommand{\SquareRw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1524,17 +1664,18 @@
 \draw [thick, ->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRw}{\raisebox{-0.333\height}{\SquareRw}\,}
+\newcommand{\rrhRw}{\raisebox{-0.333\height}{\@tlen\SquareRw\@tlen}}
 %%
 \newcommand{\RubikRw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRw\\
-\rrRw
+\rrRw%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRw}{\rrRw\,\rrhRw}
-\newcommand{\rrRwp}{\textbf{\textsf{R\footnotesize{w}}$^\prime$}}
+\newcommand{\rrRwp}{\@rrwp{R}}
 %%
 \newcommand{\SquareRwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1544,15 +1685,16 @@
 \draw [thick, <-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRwp}{\raisebox{-0.333\height}{\SquareRwp}\,}
+\newcommand{\rrhRwp}{\raisebox{-0.333\height}{\@tlen\SquareRwp\@tlen}}
 %%
 \newcommand{\RubikRwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRwp\\
-\rrRwp
+\rrRwp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRwp}{\rrRwp\,\rrhRwp}
 \newcommand{\rrRs}{\@rrs{R}}
 %%
@@ -1564,15 +1706,16 @@
 \draw [thick,->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRs}{\raisebox{-0.333\height}{\SquareRs}\,}
+\newcommand{\rrhRs}{\raisebox{-0.333\height}{\@tlen\SquareRs\@tlen}}
 %%
 \newcommand{\RubikRs}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRs\\
-\rrRs
+\rrRs%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRs}{\rrRs\,\rrhRs}
 \newcommand{\rrRsp}{\@rrsp{R}}
 %%
@@ -1584,15 +1727,16 @@
 \draw [thick,<-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRsp}{\raisebox{-0.333\height}{\SquareRsp}\,}
+\newcommand{\rrhRsp}{\raisebox{-0.333\height}{\@tlen\SquareRsp\@tlen}}
 %%
 \newcommand{\RubikRsp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRsp\\
-\rrRsp
+\rrRsp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRsp}{\rrRsp\,\rrhRsp}
 \newcommand{\rrRa}{\@rra{R}}
 %%
@@ -1604,15 +1748,16 @@
 \draw [thick,->] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRa}{\raisebox{-0.333\height}{\SquareRa}\,}
+\newcommand{\rrhRa}{\raisebox{-0.333\height}{\@tlen\SquareRa\@tlen}}
 %%
 \newcommand{\RubikRa}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRa\\
-\rrRa
+\rrRa%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRa}{\rrRa\,\rrhRa}
 \newcommand{\rrRap}{\@rrap{R}}
 %%
@@ -1624,127 +1769,136 @@
 \draw [thick,<-] (\@sddd, \@sb) -- (\@sddd, \@sbh);
 \end{tikzpicture}%
 }
-\newcommand{\rrhRap}{\raisebox{-0.333\height}{\SquareRap}\,}
+\newcommand{\rrhRap}{\raisebox{-0.333\height}{\@tlen\SquareRap\@tlen}}
 %%
 \newcommand{\RubikRap}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareRap\\
-\rrRap
+\rrRap%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikRap}{\rrRap\,\rrhRap}
 \newcommand{\rrS}{\@rr{S}}
-\newcommand{\SquareS}{\@SquareLetter{\rrS}}
-\newcommand{\rrhS}{\raisebox{-0.25mm}{\SquareS}\,}
-\newcommand{\RubikS}{\raisebox{\@hRubik}{\SquareS}\,}
-\newcommand{\textRubikS}{\rrhS\,}
+\newcommand{\SquareS}{\@tlen\@SquareLetter{\rrS}\@tlen}
+\newcommand{\rrhS}{\raisebox{-0.25mm}{\SquareS}}
+\newcommand{\RubikS}{\raisebox{\@hRubik}{\SquareS}}
+\newcommand{\textRubikS}{\rrhS}
 \newcommand{\rrSp}{\@rrp{S}}
-\newcommand{\SquareSp}{\@SquareLetter{\rrSp}}
-\newcommand{\rrhSp}{\raisebox{-0.25mm}{\SquareSp}\,}
-\newcommand{\RubikSp}{\raisebox{\@hRubik}{\SquareSp}\,}
-\newcommand{\textRubikSp}{\rrhSp\,}
-\newcommand{\rrSu}{\textbf{\textsf{S\footnotesize{u}}}}
+\newcommand{\SquareSp}{\@tlen\@SquareLetter{\rrSp}\@tlen}
+\newcommand{\rrhSp}{\raisebox{-0.25mm}{\SquareSp}}
+\newcommand{\RubikSp}{\raisebox{\@hRubik}{\SquareSp}}
+\newcommand{\textRubikSp}{\rrhSp}
+\newcommand{\rrSu}{\@rru{S}}
 \newcommand{\rrhSu}{\rrhEp}%
 \newcommand{\RubikSu}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareEp\\
-\rrSu
+\rrSu%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSu}{\rrSu\,\rrhEp}
-\newcommand{\rrSup}{\textbf{\textsf{S\footnotesize{u}}$^\prime$}}
+\newcommand{\rrSup}{\@rrup{S}}
 \newcommand{\rrhSup}{\rrhE}%
 \newcommand{\RubikSup}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareE\\
-\rrSup
+\rrSup%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSup}{\rrSup\,\rrhE}
-\newcommand{\rrSd}{\textbf{\textsf{S\footnotesize{d}}}}
+\newcommand{\rrSd}{\@rrd{S}}
 \newcommand{\rrhSd}{\rrhE}%
 \newcommand{\RubikSd}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareE\\
-\rrSd
+\rrSd%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSd}{\rrSd\,\rrhE}
-\newcommand{\rrSdp}{\textbf{\textsf{S\footnotesize{d}}$^\prime$}}
+\newcommand{\rrSdp}{\@rrdp{S}}
 \newcommand{\rrhSdp}{\rrhEp}%
 \newcommand{\RubikSdp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareEp\\
-\rrSdp
+\rrSdp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSdp}{\rrSdp\,\rrhEp}
-\newcommand{\rrSl}{\textbf{\textsf{S\footnotesize{l}}}}
+\newcommand{\rrSl}{\@rrl{S}}
 \newcommand{\rrhSl}{\rrhM}%
 \newcommand{\RubikSl}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareM\\
-\rrSl
+\rrSl%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSl}{\rrSl\,\rrhM}
-\newcommand{\rrSlp}{\textbf{\textsf{S\footnotesize{l}}$^\prime$}}
+\newcommand{\rrSlp}{\@rrlp{S}}
 \newcommand{\rrhSlp}{\rrhMp}%
 \newcommand{\RubikSlp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareMp\\
-\rrSlp
+\rrSlp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSlp}{\rrSlp\,\rrhMp}
-\newcommand{\rrSr}{\textbf{\textsf{S\footnotesize{r}}}}
+\newcommand{\rrSr}{\@rrr{S}}
 \newcommand{\rrhSr}{\rrhMp}%
 \newcommand{\RubikSr}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareMp\\
-\rrSr
+\rrSr%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSr}{\rrSr\,\rrhMp}
-\newcommand{\rrSrp}{\textbf{\textsf{S\footnotesize{r}}$^\prime$}}
+\newcommand{\rrSrp}{\@rrrp{S}}
 \newcommand{\rrhSrp}{\rrhM}%
 \newcommand{\RubikSrp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareM\\
-\rrSrp
+\rrSrp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikSrp}{\rrSrp\,\rrhM}
-\newcommand{\rrSf}{\textbf{\textsf{S\footnotesize{f}}}}
-\newcommand{\SquareSf}{\@SquareLetter{\rrSf}}
-\newcommand{\rrhSf}{\raisebox{-0.25mm}{\SquareSf}\,}
-\newcommand{\RubikSf}{\raisebox{\@hRubik}{\SquareSf}\,}
-\newcommand{\textRubikSf}{\rrhSf\,}
-\newcommand{\rrSfp}{\textbf{\textsf{S\footnotesize{f}}$^\prime$}}
-\newcommand{\SquareSfp}{\@SquareLetter{\rrSfp}}
-\newcommand{\rrhSfp}{\raisebox{-0.25mm}{\SquareSfp}\,}
-\newcommand{\RubikSfp}{\raisebox{\@hRubik}{\SquareSfp}\,}
-\newcommand{\textRubikSfp}{\rrhSfp\,}
-\newcommand{\rrSb}{\textbf{\textsf{S\footnotesize{b}}}}
-\newcommand{\SquareSb}{\@SquareLetter{\rrSb}}
-\newcommand{\rrhSb}{\raisebox{-0.25mm}{\SquareSb}\,}
-\newcommand{\RubikSb}{\raisebox{\@hRubik}{\SquareSb}\,}
-\newcommand{\textRubikSb}{\rrhSb\,}
-\newcommand{\rrSbp}{\textbf{\textsf{S\footnotesize{b}}$^\prime$}}
-\newcommand{\SquareSbp}{\@SquareLetter{\rrSbp}}
-\newcommand{\rrhSbp}{\raisebox{-0.25mm}{\SquareSbp}\,}
-\newcommand{\RubikSbp}{\raisebox{\@hRubik}{\SquareSbp}\,}
-\newcommand{\textRubikSbp}{\rrhSbp\,}
-\newcommand{\rrU}{\textbf{\textsf{U}}}
+\newcommand{\rrSf}{\@rrf{S}}
+\newcommand{\SquareSf}{\@tlen\@SquareLetter{\rrSf}\@tlen}
+\newcommand{\rrhSf}{\raisebox{-0.25mm}{\SquareSf}}
+\newcommand{\RubikSf}{\raisebox{\@hRubik}{\SquareSf}}
+\newcommand{\textRubikSf}{\rrhSf}
+\newcommand{\rrSfp}{\@rrfp{S}}
+\newcommand{\SquareSfp}{\@tlen\@SquareLetter{\rrSfp}\@tlen}
+\newcommand{\rrhSfp}{\raisebox{-0.25mm}{\SquareSfp}}
+\newcommand{\RubikSfp}{\raisebox{\@hRubik}{\SquareSfp}}
+\newcommand{\textRubikSfp}{\rrhSfp}
+\newcommand{\rrSb}{\@rrb{S}}
+\newcommand{\SquareSb}{\@tlen\@SquareLetter{\rrSb}\@tlen}
+\newcommand{\rrhSb}{\raisebox{-0.25mm}{\SquareSb}}
+\newcommand{\RubikSb}{\raisebox{\@hRubik}{\SquareSb}}
+\newcommand{\textRubikSb}{\rrhSb}
+\newcommand{\rrSbp}{\@rrbp{S}}
+\newcommand{\SquareSbp}{\@tlen\@SquareLetter{\rrSbp}\@tlen}
+\newcommand{\rrhSbp}{\raisebox{-0.25mm}{\SquareSbp}}
+\newcommand{\RubikSbp}{\raisebox{\@hRubik}{\SquareSbp}}
+\newcommand{\textRubikSbp}{\rrhSbp}
+\newcommand{\rrU}{\@rr{U}}
 %%
 \newcommand{\SquareU}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1754,17 +1908,18 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhU}{\raisebox{-0.333\height}{\SquareU}\,}
+\newcommand{\rrhU}{\raisebox{-0.333\height}{\@tlen\SquareU\@tlen}}
 %%
 \newcommand{\RubikU}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareU\\
-\rrU
+\rrU%
 \end{minipage}%%
-}
+}}
 \newcommand{\textRubikU}{\rrU\,\rrhU}
-\newcommand{\rrUw}{\textbf{\textsf{U\footnotesize{w}}}}
+\newcommand{\rrUw}{\@rrw{U}}
 %%
 \newcommand{\SquareUw}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1774,18 +1929,19 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUw}{\raisebox{-0.333\height}{\SquareUw}\,}
+\newcommand{\rrhUw}{\raisebox{-0.333\height}{\@tlen\SquareUw\@tlen}}
 %%
 \newcommand{\RubikUw}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUw\\
-\rrUw
+\rrUw%
 \end{minipage}%%
-}
+}}
 %%
 \newcommand{\textRubikUw}{\rrUw\,\rrhUw}
-\newcommand{\rrUp}{\textbf{\textsf{U}$^\prime$}}
+\newcommand{\rrUp}{\@rrp{U}}
 %%
 \newcommand{\SquareUp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1795,17 +1951,18 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUp}{\raisebox{-0.333\height}{\SquareUp}\,}
+\newcommand{\rrhUp}{\raisebox{-0.333\height}{\@tlen\SquareUp\@tlen}}
 %%
 \newcommand{\RubikUp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUp\\
-\rrUp
+\rrUp%
 \end{minipage}%%
-}
+}}
 \newcommand{\textRubikUp}{\rrUp\,\rrhUp}
-\newcommand{\rrUwp}{\textbf{\textsf{U\footnotesize{w}}$^\prime$}}
+\newcommand{\rrUwp}{\@rrwp{U}}
 %%
 \newcommand{\SquareUwp}{%
 \begin{tikzpicture}[scale=0.5]
@@ -1815,15 +1972,16 @@
 \draw [thick]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUwp}{\raisebox{-0.333\height}{\SquareUwp}\,}
+\newcommand{\rrhUwp}{\raisebox{-0.333\height}{\@tlen\SquareUwp\@tlen}}
 %%
 \newcommand{\RubikUwp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUwp\\
-\rrUwp
+\rrUwp%
 \end{minipage}%%
-}
+}}
 \newcommand{\textRubikUwp}{\rrUwp\,\rrhUwp}
 \newcommand{\rrUs}{\@rrs{U}}
 %%
@@ -1835,15 +1993,16 @@
 \draw [thick, <-]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUs}{\raisebox{-0.333\height}{\SquareUs}\,}
+\newcommand{\rrhUs}{\raisebox{-0.333\height}{\@tlen\SquareUs\@tlen}}
 %%
 \newcommand{\RubikUs}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUs\\
-\rrUs
+\rrUs%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikUs}{\rrUs\,\rrhUs}
 \newcommand{\rrUsp}{\@rrsp{U}}
 %%
@@ -1855,15 +2014,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUsp}{\raisebox{-0.333\height}{\SquareUsp}\,}
+\newcommand{\rrhUsp}{\raisebox{-0.333\height}{\@tlen\SquareUsp\@tlen}}
 %%
 \newcommand{\RubikUsp}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUsp\\
-\rrUsp
+\rrUsp%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikUsp}{\rrUsp\,\rrhUsp}
 \newcommand{\rrUa}{\@rra{U}}
 %%
@@ -1875,15 +2035,16 @@
 \draw [thick, ->]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUa}{\raisebox{-0.333\height}{\SquareUa}\,}
+\newcommand{\rrhUa}{\raisebox{-0.333\height}{\@tlen\SquareUa\@tlen}}
 %%
 \newcommand{\RubikUa}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUa\\
-\rrUa
+\rrUa%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikUa}{\rrUa\,\rrhUa}
 \newcommand{\rrUap}{\@rrap{U}}
 %%
@@ -1895,52 +2056,573 @@
 \draw [thick, <-]     (\@sb,\@sd) --   (\@sbh, \@sd);
 \end{tikzpicture}%
 }
-\newcommand{\rrhUap}{\raisebox{-0.333\height}{\SquareUap}\,}
+\newcommand{\rrhUap}{\raisebox{-0.333\height}{\@tlen\SquareUap\@tlen}}
 %%
 \newcommand{\RubikUap}{%
+{\@rubikfont%
 \begin{minipage}{0.6cm}
-\centering
+\centering%
 \SquareUap\\
-\rrUap
+\rrUap%
 \end{minipage}%
-}
+}}
 \newcommand{\textRubikUap}{\rrUap\,\rrhUap}
-\newcommand{\rrx}{\textbf{\textsf{x}}}
+\newcommand{\rrx}{\@rr{x}}
 \newcommand{\Rubikx}{\@xyzRubik{x}}
 \newcommand{\rrhx}{\@xyzh{x}}
-\newcommand{\rrxp}{\textbf{\textsf{x}$^\prime$}}
+\newcommand{\rrxp}{\@rrp{x}}
 \newcommand{\Rubikxp}{\@xyzRubikp{x}}
 \newcommand{\rrhxp}{\@xyzhp{x}}
-\newcommand{\rry}{\textbf{\textsf{y}}}
+\newcommand{\rry}{\@rr{y}}
 \newcommand{\Rubiky}{\@xyzRubik{y}}
 \newcommand{\rrhy}{\@xyzh{y}}
-\newcommand{\rryp}{\textbf{\textsf{y}$^\prime$}}
+\newcommand{\rryp}{\@rrp{y}}
 \newcommand{\Rubikyp}{\@xyzRubikp{y}}
 \newcommand{\rrhyp}{\@xyzhp{y}}
-\newcommand{\rrz}{\textbf{\textsf{z}}}
+\newcommand{\rrz}{\@rr{z}}
 \newcommand{\Rubikz}{\@xyzRubik{z}}
 \newcommand{\rrhz}{\@xyzh{z}}
-\newcommand{\rrzp}{\textbf{\textsf{z}$^\prime$}}
+\newcommand{\rrzp}{\@rrp{z}}
 \newcommand{\Rubikzp}{\@xyzRubikp{z}}
 \newcommand{\rrhzp}{\@xyzhp{z}}
-\newcommand{\rru}{\textbf{\textsf{u}}}
+\newcommand{\rru}{\@rr{u}}
 \newcommand{\Rubiku}{\@xyzRubik{u}}
 \newcommand{\rrhu}{\@xyzh{u}}
-\newcommand{\rrd}{\textbf{\textsf{d}}}
-\newcommand{\Rubikd}{\@xyzRubik{d}}
-\newcommand{\rrhd}{\@xyzh{d}}
-\newcommand{\rrl}{\textbf{\textsf{l}}}
-\newcommand{\Rubikl}{\@xyzRubik{l}}
-\newcommand{\rrhl}{\@xyzh{l}}
-\newcommand{\rrr}{\textbf{\textsf{r}}}
+\newcommand{\rrd}{\@rr{d}}
+\newcommand{\rrhd}{\@xyzhbdfl{d}}
+\newcommand{\Rubikd}{\@xyzbdflRubik{d}}
+\newcommand{\rrl}{\@rr{l}}
+\newcommand{\rrhl}{\@xyzhbdfl{l}}
+\newcommand{\Rubikl}{\@xyzbdflRubik{l}}
+\newcommand{\rrr}{\@rr{r}}
 \newcommand{\Rubikr}{\@xyzRubik{r}}
 \newcommand{\rrhr}{\@xyzh{r}}
-\newcommand{\rrf}{\textbf{\textsf{f}}}
-\newcommand{\Rubikf}{\@xyzRubik{f}}
-\newcommand{\rrhf}{\@xyzh{f}}
-\newcommand{\rrb}{\textbf{\textsf{b}}}
-\newcommand{\Rubikb}{\@xyzRubik{b}}
-\newcommand{\rrhb}{\@xyzh{b}}
+\newcommand{\rrf}{\@rr{f}}
+\newcommand{\rrhf}{\@xyzhbdfl{f}}
+\newcommand{\Rubikf}{\@xyzbdflRubik{f}}
+\newcommand{\rrb}{\@rr{b}}
+\newcommand{\rrhb}{\@xyzhbdfl{b}}
+\newcommand{\Rubikb}{\@xyzbdflRubik{b}}
+\newcommand{\@xyzhc}[1]{[\raisebox{-1.2pt}%
+   {{\@rubikfont #1\@rubikfontFNS c}}]}
+\newcommand{\@xyzhcp}[1]{[\raisebox{-1.2pt}%
+   {{\@rubikfont #1{\@rubikfontFNS c}\@rubikprime}}]}
+\newcommand{\@xyzRubikc}[1]{\raisebox{3.45pt}%
+   {[\raisebox{-1.2pt}{{\@rubikfont #1\@rubikfontFNS c}}]}}
+\newcommand{\@xyzRubikcp}[1]{\raisebox{3.45pt}%
+   {[\raisebox{-1.2pt}{{\@rubikfont #1{\@rubikfontFNS c}\@rubikprime}}]}}
+\newcommand{\rrRc}{\@rrc{R}}
+\newcommand{\RubikRc}{\@xyzRubikc{R}}
+\newcommand{\rrhRc}{\@xyzhc{R}}
+\newcommand{\rrRcp}{\@rrcp{R}}
+\newcommand{\RubikRcp}{\@xyzRubikcp{R}}
+\newcommand{\rrhRcp}{\@xyzhcp{R}}
+\newcommand{\rrLc}{\@rrc{L}}
+\newcommand{\RubikLc}{\@xyzRubikc{L}}
+\newcommand{\rrhLc}{\@xyzhc{L}}
+\newcommand{\rrLcp}{\@rrcp{L}}
+\newcommand{\RubikLcp}{\@xyzRubikcp{L}}
+\newcommand{\rrhLcp}{\@xyzhcp{L}}
+\newcommand{\rrUc}{\@rrc{U}}
+\newcommand{\RubikUc}{\@xyzRubikc{U}}
+\newcommand{\rrhUc}{\@xyzhc{U}}
+\newcommand{\rrUcp}{\@rrcp{U}}
+\newcommand{\RubikUcp}{\@xyzRubikcp{U}}
+\newcommand{\rrhUcp}{\@xyzhcp{U}}
+\newcommand{\rrDc}{\@rrc{D}}
+\newcommand{\RubikDc}{\@xyzRubikc{D}}
+\newcommand{\rrhDc}{\@xyzhc{D}}
+\newcommand{\rrDcp}{\@rrcp{D}}
+\newcommand{\RubikDcp}{\@xyzRubikcp{D}}
+\newcommand{\rrhDcp}{\@xyzhcp{D}}
+\newcommand{\rrFc}{\@rrc{F}}
+\newcommand{\RubikFc}{\@xyzRubikc{F}}
+\newcommand{\rrhFc}{\@xyzhc{F}}
+\newcommand{\rrFcp}{\@rrcp{F}}
+\newcommand{\RubikFcp}{\@xyzRubikcp{F}}
+\newcommand{\rrhFcp}{\@xyzhcp{F}}
+\newcommand{\rrBc}{\@rrc{B}}
+\newcommand{\RubikBc}{\@xyzRubikc{B}}
+\newcommand{\rrhBc}{\@xyzhc{B}}
+\newcommand{\rrBcp}{\@rrcp{B}}
+\newcommand{\RubikBcp}{\@xyzRubikcp{B}}
+\newcommand{\rrhBcp}{\@xyzhcp{B}}
+\newcommand{\rrRm}{\@rrm{R}}
+\newcommand{\rrhRm}{\rrhMp}%
+\newcommand{\RubikRm}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareMp\\
+\rrRm%
+\end{minipage}%
+}}
+\newcommand{\textRubikRm}{\rrRm\,\rrhMp}
+\newcommand{\rrRmp}{\@rrmp{R}}
+\newcommand{\rrhRmp}{\rrhM}%
+\newcommand{\RubikRmp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareM\\
+\rrRmp%
+\end{minipage}%
+}}
+\newcommand{\textRubikRmp}{\rrRmp\,\rrhM}
+\newcommand{\rrLm}{\@rrm{L}}
+\newcommand{\rrhLm}{\rrhM}%
+\newcommand{\RubikLm}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareM\\
+\rrLm%
+\end{minipage}%
+}}
+\newcommand{\textRubikLm}{\rrLm\,\rrhM}
+\newcommand{\rrLmp}{\@rrmp{L}}
+\newcommand{\rrhLmp}{\rrhMp}%
+\newcommand{\RubikLmp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareMp\\
+\rrLmp%
+\end{minipage}%
+}}
+\newcommand{\textRubikLmp}{\rrLmp\,\rrhMp}
+\newcommand{\rrUm}{\@rrm{U}}
+\newcommand{\rrhUm}{\rrhEp}%
+\newcommand{\RubikUm}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareEp\\
+\rrUm%
+\end{minipage}%
+}}
+\newcommand{\textRubikUm}{\rrUm\,\rrhEp}
+\newcommand{\rrUmp}{\@rrmp{U}}
+\newcommand{\rrhUmp}{\rrhE}%
+\newcommand{\RubikUmp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareE\\
+\rrUmp%
+\end{minipage}%
+}}
+\newcommand{\textRubikUmp}{\rrUmp\,\rrhE}
+\newcommand{\rrDm}{\@rrm{D}}
+\newcommand{\rrhDm}{\rrhE}%
+\newcommand{\RubikDm}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareE\\
+\rrDm%
+\end{minipage}%
+}}
+\newcommand{\textRubikDm}{\rrDm\,\rrhE}
+\newcommand{\rrDmp}{\@rrmp{D}}
+\newcommand{\rrhDmp}{\rrhEp}%
+\newcommand{\RubikDmp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareEp\\
+\rrDmp%
+\end{minipage}%
+}}
+\newcommand{\textRubikDmp}{\rrDmp\,\rrhEp}
+\newcommand{\rrFm}{\@rrm{F}}
+\newcommand{\SquareFm}{\@tlen\@SquareLetter{\rrFm}\@tlen}
+\newcommand{\rrhFm}{\raisebox{-0.25mm}{\SquareFm}}
+\newcommand{\RubikFm}{\raisebox{\@hRubik}{\SquareFm}}
+\newcommand{\textRubikFm}{\rrhFm}
+\newcommand{\rrFmp}{\@rrmp{F}}
+\newcommand{\SquareFmp}{\@tlen\@SquareLetter{\rrFmp}\@tlen}
+\newcommand{\rrhFmp}{\raisebox{-0.25mm}{\SquareFmp}}
+\newcommand{\RubikFmp}{\raisebox{\@hRubik}{\SquareFmp}}
+\newcommand{\textRubikFmp}{\rrhFmp}
+\newcommand{\rrBm}{\@rrm{B}}
+\newcommand{\SquareBm}{\@tlen\@SquareLetter{\rrBm}\@tlen}
+\newcommand{\rrhBm}{\raisebox{-0.25mm}{\SquareBm}}
+\newcommand{\RubikBm}{\raisebox{\@hRubik}{\SquareBm}}
+\newcommand{\textRubikBm}{\rrhBm}
+\newcommand{\rrBmp}{\@rrmp{B}}
+\newcommand{\SquareBmp}{\@tlen\@SquareLetter{\rrBmp}\@tlen}
+\newcommand{\rrhBmp}{\raisebox{-0.25mm}{\SquareBmp}}
+\newcommand{\RubikBmp}{\raisebox{\@hRubik}{\SquareBmp}}
+\newcommand{\textRubikBmp}{\rrhBmp}
+\newcommand{\@randhc}[1]{[\raisebox{-1.2pt}{{\@rubikfont C#1}}]}
+\newcommand{\@randhcp}[1]{[\raisebox{-1.2pt}{{\@rubikfont C#1\@rubikprime}}]}
+\newcommand{\@randRubikc}[1]%
+   {\raisebox{3.45pt}{[\raisebox{-1.2pt}{{\@rubikfont C#1}}]}}
+\newcommand{\@randRubikcp}[1]%
+   {\raisebox{3.45pt}{[\raisebox{-1.2pt}{{\@rubikfont C#1\@rubikprime}}]}}
+\newcommand{\rrCR}{\@rr{CR}}
+\newcommand{\RubikCR}{\@randRubikc{R}}
+\newcommand{\rrhCR}{\@randhc{R}}
+\newcommand{\rrCRp}{\@rrp{CR}}
+\newcommand{\RubikCRp}{\@randRubikcp{R}}
+\newcommand{\rrhCRp}{\@randhcp{R}}
+\newcommand{\rrCL}{\@rr{CL}}
+\newcommand{\RubikCL}{\@randRubikc{L}}
+\newcommand{\rrhCL}{\@randhc{L}}
+\newcommand{\rrCLp}{\@rrp{CL}}
+\newcommand{\RubikCLp}{\@randRubikcp{L}}
+\newcommand{\rrhCLp}{\@randhcp{L}}
+\newcommand{\rrCU}{\@rr{CU}}
+\newcommand{\RubikCU}{\@randRubikc{U}}
+\newcommand{\rrhCU}{\@randhc{U}}
+\newcommand{\rrCUp}{\@rrp{CU}}
+\newcommand{\RubikCUp}{\@randRubikcp{U}}
+\newcommand{\rrhCUp}{\@randhcp{U}}
+\newcommand{\rrCD}{\@rr{CD}}
+\newcommand{\RubikCD}{\@randRubikc{D}}
+\newcommand{\rrhCD}{\@randhc{D}}
+\newcommand{\rrCDp}{\@rrp{CD}}
+\newcommand{\RubikCDp}{\@randRubikcp{D}}
+\newcommand{\rrhCDp}{\@randhcp{D}}
+\newcommand{\rrCF}{\@rr{CF}}
+\newcommand{\RubikCF}{\@randRubikc{F}}
+\newcommand{\rrhCF}{\@randhc{F}}
+\newcommand{\rrCFp}{\@rrp{CF}}
+\newcommand{\RubikCFp}{\@randRubikcp{F}}
+\newcommand{\rrhCFp}{\@randhcp{F}}
+\newcommand{\rrCB}{\@rr{CB}}
+\newcommand{\RubikCB}{\@randRubikc{B}}
+\newcommand{\rrhCB}{\@randhc{B}}
+\newcommand{\rrCBp}{\@rrp{CB}}
+\newcommand{\RubikCBp}{\@randRubikcp{B}}
+\newcommand{\rrhCBp}{\@randhcp{B}}
+\newcommand{\rrMR}{\@rr{MR}}
+\newcommand{\rrhMR}{\rrhMp}%
+\newcommand{\RubikMR}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareMp\\
+\rrMR%
+\end{minipage}%
+}}
+\newcommand{\textRubikMR}{\rrMR\,\rrhMp}
+\newcommand{\rrMRp}{\@rrp{MR}}
+\newcommand{\rrhMRp}{\rrhM}%
+\newcommand{\RubikMRp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareM\\
+\rrMRp%
+\end{minipage}%
+}}
+\newcommand{\textRubikMRp}{\rrMRp\,\rrhM}
+\newcommand{\rrML}{\@rr{ML}}
+\newcommand{\rrhML}{\rrhM}%
+\newcommand{\RubikML}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareM\\
+\rrML%
+\end{minipage}%
+}}
+\newcommand{\textRubikML}{\rrML\,\rrhM}
+\newcommand{\rrMLp}{\@rrp{ML}}
+\newcommand{\rrhMLp}{\rrhMp}%
+\newcommand{\RubikMLp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareMp\\
+\rrMLp%
+\end{minipage}%
+}}
+\newcommand{\textRubikMLp}{\rrMLp\,\rrhMp}
+\newcommand{\rrMU}{\@rr{MU}}
+\newcommand{\rrhMU}{\rrhEp}%
+\newcommand{\RubikMU}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareEp\\
+\rrMU%
+\end{minipage}%
+}}
+\newcommand{\textRubikMU}{\rrMU\,\rrhEp}
+\newcommand{\rrMUp}{\@rrp{MU}}
+\newcommand{\rrhMUp}{\rrhE}%
+\newcommand{\RubikMUp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareE\\
+\rrMUp%
+\end{minipage}%
+}}
+\newcommand{\textRubikMUp}{\rrMUp\,\rrhE}
+\newcommand{\rrMD}{\@rr{MD}}
+\newcommand{\rrhMD}{\rrhE}%
+\newcommand{\RubikMD}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareE\\
+\rrMD%
+\end{minipage}%
+}}
+\newcommand{\textRubikMD}{\rrMD\,\rrhE}
+\newcommand{\rrMDp}{\@rrp{MD}}
+\newcommand{\rrhMDp}{\rrhEp}%
+\newcommand{\RubikMDp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareEp\\
+\rrMDp%
+\end{minipage}%
+}}
+\newcommand{\textRubikMDp}{\rrMDp\,\rrhEp}
+\newcommand{\rrMF}{\@rr{MF}}
+\newcommand{\SquareMF}{\@tlen\@SquareLetter{\rrMF}\@tlen}
+\newcommand{\rrhMF}{\raisebox{-0.25mm}{\SquareMF}}
+\newcommand{\RubikMF}{\raisebox{\@hRubik}{\SquareMF}}
+\newcommand{\textRubikMF}{\rrhMF}
+\newcommand{\rrMFp}{\@rrp{MF}}
+\newcommand{\SquareMFp}{\@tlen\@SquareLetter{\rrMFp}\@tlen}
+\newcommand{\rrhMFp}{\raisebox{-0.25mm}{\SquareMFp}}
+\newcommand{\RubikMFp}{\raisebox{\@hRubik}{\SquareMFp}}
+\newcommand{\textRubikMFp}{\rrhMFp}
+\newcommand{\rrMB}{\@rr{MB}}
+\newcommand{\SquareMB}{\@tlen\@SquareLetter{\rrMB}\@tlen}
+\newcommand{\rrhMB}{\raisebox{-0.25mm}{\SquareMB}}
+\newcommand{\RubikMB}{\raisebox{\@hRubik}{\SquareMB}}
+\newcommand{\textRubikMB}{\rrhMB}
+\newcommand{\rrMBp}{\@rrp{MB}}
+\newcommand{\SquareMBp}{\@tlen\@SquareLetter{\rrMBp}\@tlen}
+\newcommand{\rrhMBp}{\raisebox{-0.25mm}{\SquareMBp}}
+\newcommand{\RubikMBp}{\raisebox{\@hRubik}{\SquareMBp}}
+\newcommand{\textRubikMBp}{\rrhMBp}
+\newcommand{\@rrT}[1]{{\@rubikfont T#1}}
+\newcommand{\@rrhT}[1]{\@join{\rrh#1}{w}}%
+\newcommand{\@textRubikT}[1]{\@rrT{#1}\,\@join{\rrh#1}{w}}
+\newcommand{\@RubikT}[1]{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%%
+\@join{\Square#1}{w}\\%
+\@rrT{#1}%%
+\end{minipage}%
+}}
+%%
+\newcommand{\@rrTp}[1]{{\@rubikfont T#1\@rubikprime}}
+\newcommand{\@rrhTp}[1]{\@join{\rrh#1}{wp}}%
+\newcommand{\@textRubikTp}[1]{\@rrTp{#1}\,\@join{\rrh#1}{wp}}
+%%
+\newcommand{\@RubikTp}[1]{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%%
+\@join{\Square#1}{wp}\\%
+\@rrTp{#1}%%
+\end{minipage}%
+}}
+\newcommand{\rrTL}{\@rrT{L}}% = rrLw
+\newcommand{\rrhTL}{\@rrhT{L}}
+\newcommand{\textRubikTL}{\@textRubikT{L}}
+\newcommand{\RubikTL}{\@RubikT{L}}
+\newcommand{\rrTLp}{\@rrTp{L}}
+\newcommand{\rrhTLp}{\@rrhTp{L}}
+\newcommand{\textRubikTLp}{\@textRubikTp{L}}
+\newcommand{\RubikTLp}{\@RubikTp{L}}
+\newcommand{\rrTR}{\@rrT{R}}
+\newcommand{\rrhTR}{\@rrhT{R}}
+\newcommand{\textRubikTR}{\@textRubikT{R}}
+\newcommand{\RubikTR}{\@RubikT{R}}
+\newcommand{\rrTRp}{\@rrTp{R}}
+\newcommand{\rrhTRp}{\@rrhTp{R}}
+\newcommand{\textRubikTRp}{\@textRubikTp{R}}
+\newcommand{\RubikTRp}{\@RubikTp{R}}
+\newcommand{\rrTU}{\@rrT{U}}
+\newcommand{\rrhTU}{\@rrhT{U}}
+\newcommand{\textRubikTU}{\@textRubikT{U}}
+\newcommand{\RubikTU}{\@RubikT{U}}
+\newcommand{\rrTUp}{\@rrTp{U}}
+\newcommand{\rrhTUp}{\@rrhTp{U}}
+\newcommand{\textRubikTUp}{\@textRubikTp{U}}
+\newcommand{\RubikTUp}{\@RubikTp{U}}
+\newcommand{\rrTD}{\@rrT{D}}
+\newcommand{\rrhTD}{\@rrhT{D}}
+\newcommand{\textRubikTD}{\@textRubikT{D}}
+\newcommand{\RubikTD}{\@RubikT{D}}
+\newcommand{\rrTDp}{\@rrTp{D}}
+\newcommand{\rrhTDp}{\@rrhTp{D}}
+\newcommand{\textRubikTDp}{\@textRubikTp{D}}
+\newcommand{\RubikTDp}{\@RubikTp{D}}
+\newcommand{\rrTF}{\@rrT{F}}
+\newcommand{\rrhTF}{\@rrhT{F}}
+\newcommand{\textRubikTF}{\@textRubikT{F}}
+\newcommand{\RubikTF}{\@RubikT{F}}
+\newcommand{\rrTFp}{\@rrTp{F}}
+\newcommand{\rrhTFp}{\@rrhTp{F}}
+\newcommand{\textRubikTFp}{\@textRubikTp{F}}
+\newcommand{\RubikTFp}{\@RubikTp{F}}
+\newcommand{\rrTB}{\@rrT{B}}
+\newcommand{\SquareTB}{\@tlen\@SquareLetter{\rrTB}\@tlen}
+\newcommand{\rrhTB}{\raisebox{-0.25mm}{\SquareTB}}
+\newcommand{\textRubikTB}{\rrhTB}
+\newcommand{\RubikTB}{\raisebox{\@hRubik}{\SquareTB}}
+\newcommand{\rrTBp}{\@rrTp{B}}
+\newcommand{\SquareTBp}{\@tlen\@SquareLetter{\rrTBp}\@tlen}
+\newcommand{\rrhTBp}{\raisebox{-0.25mm}{\SquareTBp}}
+\newcommand{\textRubikTBp}{\rrhTBp}
+\newcommand{\RubikTBp}{\raisebox{\@hRubik}{\SquareTBp}}
+\newcommand{\rrSR}{\@rr{SR}}
+\newcommand{\rrhSR}{\rrhRs}%
+\newcommand{\RubikSR}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareRs\\
+\rrSR%
+\end{minipage}%
+}}
+\newcommand{\textRubikSR}{\rrSR\,\rrhRs}
+\newcommand{\rrSRp}{\@rrp{SR}}
+\newcommand{\rrhSRp}{\rrhRsp}%
+\newcommand{\RubikSRp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareRsp\\
+\rrSRp%
+\end{minipage}%
+}}
+\newcommand{\textRubikSRp}{\rrSRp\,\rrhRsp}
+\newcommand{\rrSL}{\@rr{SL}}
+\newcommand{\rrhSL}{\rrhLs}%
+\newcommand{\RubikSL}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareLs\\
+\rrSL%
+\end{minipage}%
+}}
+\newcommand{\textRubikSL}{\rrSL\,\rrhLs}
+\newcommand{\rrSLp}{\@rrp{SL}}
+\newcommand{\rrhSLp}{\rrhLsp}%
+\newcommand{\RubikSLp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareLsp\\
+\rrSLp%
+\end{minipage}%
+}}
+\newcommand{\textRubikSLp}{\rrSLp\,\rrhLsp}
+\newcommand{\rrSU}{\@rr{SU}}
+\newcommand{\rrhSU}{\rrhUs}%
+\newcommand{\RubikSU}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareUs\\
+\rrSU%
+\end{minipage}%
+}}
+\newcommand{\textRubikSU}{\rrSU\,\rrhUs}
+\newcommand{\rrSUp}{\@rrp{SU}}
+\newcommand{\rrhSUp}{\rrhUsp}%
+\newcommand{\RubikSUp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareUsp\\
+\rrSUp%
+\end{minipage}%
+}}
+\newcommand{\textRubikSUp}{\rrSUp\,\rrhUsp}
+\newcommand{\rrSD}{\@rr{SD}}
+\newcommand{\rrhSD}{\rrhDs}%
+\newcommand{\RubikSD}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareDs\\
+\rrSD%
+\end{minipage}%
+}}
+\newcommand{\textRubikSD}{\rrSD\,\rrhDs}
+\newcommand{\rrSDp}{\@rrp{SD}}
+\newcommand{\rrhSDp}{\rrhDsp}%
+\newcommand{\RubikSDp}{%
+{\@rubikfont%
+\begin{minipage}{0.6cm}
+\centering%
+\SquareDsp\\
+\rrSDp%
+\end{minipage}%
+}}
+\newcommand{\textRubikSDp}{\rrSDp\,\rrhDsp}
+\newcommand{\rrSF}{\@rr{SF}}
+\newcommand{\SquareSF}{\@tlen\@SquareLetter{\rrSF}\@tlen}
+\newcommand{\rrhSF}{\raisebox{-0.25mm}{\SquareSF}}
+\newcommand{\RubikSF}{\raisebox{\@hRubik}{\SquareSF}}
+\newcommand{\textRubikSF}{\rrhSF}
+\newcommand{\rrSFp}{\@rrp{SF}}
+\newcommand{\SquareSFp}{\@tlen\@SquareLetter{\rrSFp}\@tlen}
+\newcommand{\rrhSFp}{\raisebox{-0.25mm}{\SquareSFp}}
+\newcommand{\RubikSFp}{\raisebox{\@hRubik}{\SquareSFp}}
+\newcommand{\textRubikSFp}{\rrhSFp}
+\newcommand{\rrSB}{\@rr{SB}}
+\newcommand{\SquareSB}{\@tlen\@SquareLetter{\rrSB}\@tlen}
+\newcommand{\rrhSB}{\raisebox{-0.25mm}{\SquareSB}}
+\newcommand{\RubikSB}{\raisebox{\@hRubik}{\SquareSB}}
+\newcommand{\textRubikSB}{\rrhSB}
+\newcommand{\rrSBp}{\@rrp{SB}}
+\newcommand{\SquareSBp}{\@tlen\@SquareLetter{\rrSBp}\@tlen}
+\newcommand{\rrhSBp}{\raisebox{-0.25mm}{\SquareSBp}}
+\newcommand{\RubikSBp}{\raisebox{\@hRubik}{\SquareSBp}}
+\newcommand{\textRubikSBp}{\rrhSBp}
+\newcommand{\textRubikx}{\rrhx}
+\newcommand{\textRubikxp}{\rrhxp}
+\newcommand{\textRubiky}{\rrhy}
+\newcommand{\textRubikyp}{\rrhyp}
+\newcommand{\textRubikz}{\rrhz}
+\newcommand{\textRubikzp}{\rrhzp}
+\newcommand{\textRubikl}{\rrhl}
+\newcommand{\textRubikr}{\rrhr}
+\newcommand{\textRubiku}{\rrhu}
+\newcommand{\textRubikd}{\rrhd}
+\newcommand{\textRubikf}{\rrhf}
+\newcommand{\textRubikb}{\rrhb}
+\newcommand{\textRubikLc}{\rrhLc}
+\newcommand{\textRubikLcp}{\rrhLcp}
+\newcommand{\textRubikRc}{\rrhRc}
+\newcommand{\textRubikRcp}{\rrhRcp}
+\newcommand{\textRubikUc}{\rrhUc}
+\newcommand{\textRubikUcp}{\rrhUcp}
+\newcommand{\textRubikDc}{\rrhDc}
+\newcommand{\textRubikDcp}{\rrhDcp}
+\newcommand{\textRubikFc}{\rrhFc}
+\newcommand{\textRubikFcp}{\rrhFcp}
+\newcommand{\textRubikBc}{\rrhBc}
+\newcommand{\textRubikBcp}{\rrhBcp}
+\newcommand{\textRubikCL}{\rrhCL}
+\newcommand{\textRubikCLp}{\rrhCLp}
+\newcommand{\textRubikCR}{\rrhCR}
+\newcommand{\textRubikCRp}{\rrhCRp}
+\newcommand{\textRubikCU}{\rrhCU}
+\newcommand{\textRubikCUp}{\rrhCUp}
+\newcommand{\textRubikCD}{\rrhCD}
+\newcommand{\textRubikCDp}{\rrhCDp}
+\newcommand{\textRubikCF}{\rrhCF}
+\newcommand{\textRubikCFp}{\rrhCFp}
+\newcommand{\textRubikCB}{\rrhCB}
+\newcommand{\textRubikCBp}{\rrhCBp}
 \endinput
 %%
 %% End of file `rubikcube.sty'.

Added: trunk/Master/texmf-dist/tex/latex/rubik/rubikpatterns.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rubik/rubikpatterns.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/rubik/rubikpatterns.sty	2017-03-06 21:58:50 UTC (rev 43415)
@@ -0,0 +1,148 @@
+%%
+%% This is file `rubikpatterns.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rubikpatterns.dtx  (with options: `rubikpatterns')
+%% 
+%% -----------------------------------------------------------------
+%%   Authors: RWD Nickalls (dick at nickalls.org)
+%%           and Apostolos Syropoulos (asyropoulos at yahoo.com)
+%% 
+%%   Copyright  March 03, 2017     RWD Nickalls and A Syropoulos
+%% 
+%%   VERSION 4.0
+%% 
+%%   This work may be distributed and/or modified under the
+%%   conditions of the LaTeX Project Public License, either
+%%   version 1.3c of this license or (at your option) any
+%%   later version: <http://www.latex-project.org/lppl.txt>
+%% 
+%%   This work consists of the files listed in the README file.
+%% -----------------------------------------------------------------
+%% 
+%%   This is a LaTeX/TikZ package for drawing Rubik cubes
+%%   Please report errors or suggestions for improvement to
+%% 
+%%          RWD Nickalls  (dick at nickalls.org)
+%%          Apostolos Syropoulos (asyropoulos at yahoo.com)
+%% 
+%%  This package requires the basic TikZ package to be loaded already
+%% ------------------------------------------------------------------
+%%% \CheckSum{187}
+%%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+
+\def\RPfileversion{4.0}%
+\def\RPfiledate{2017/03/03}%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{rubikpatterns}[\RPfiledate\space (v\RPfileversion)]
+\newcommand{\rubikpatterns}{\textsc{rubikpatterns}}
+\newcommand{\Superflip}{[Superflip],Dp,R2,Fp,D2,F2,U2,Lp,R,Dp,R2,B,F,Rp,%
+U2,Lp,F2,Rp,U2,Rp,Up,<(20f*)>}%
+\newcommand{\superflip}{\Superflip}
+\newcommand{\PonsAsinorum}{[PonsAsinorum],F2,B2,R2,L2,U2,D2,<(12q*, 6f*)>}%
+\newcommand{\ponsasinorum}{\PonsAsinorum}%
+\newcommand{\CheckerboardsThree}%
+{[CheckerboardsThree],F,B2,Rp,D2,B,R,U,Dp,R,Lp,Dp,Fp,R2,D,F2,Bp,<(20q*, 16f*), order 3>}%
+\newcommand{\checkerboardsthree}{\CheckerboardsThree}%
+\newcommand{\CheckerboardsSix}%
+{[CheckerboardsSix],R2,L2,U,B,L2,Dp,F,B2,R,Lp,Fp,B,R,D,F2,Lp,Up,<(17f*, 22q), order 6>}%
+\newcommand{\checkerboardssix}{\CheckerboardsSix}%
+\newcommand{\Stripes}{[Stripes],F,U,F,R,L2,B,Dp,R,D2,L,Dp,B,R2,L,F,U,F,<(20q*, 17f*)>}%
+\newcommand{\stripes}{\Stripes}%
+\newcommand{\CubeInCube}{[CubeInCube],F,L,F,Up,R,U,F2,L2,Up,Lp,B,Dp,Bp,L2,U,<(18q*, 15f*)>}%
+\newcommand{\cubeincube}{\CubeInCube}%
+\newcommand{\CubeInCubeInCube}%
+{[CubeInCubeInCube],Fp,U,Bp,Rp,U,F2,U2,Fp,Up,F,U2,D,Bp,Dp,R2,B2,Up,<(17f*, 22q)>}%
+\newcommand{\cubeincubeincube}{\CubeInCubeInCube}%
+\newcommand{\ChristmasCross}{[ChristmansCross],U,F,Bp,L2,U2,L2,Fp,B,U2,L2,U,<(16q*, 11f*)>}%
+\newcommand{\christmascross}{\ChristmansCross}%
+\newcommand{\PlummersCross}%
+{[PlummersCross],R2,Lp,D,F2,Rp,Dp,Rp,L,Up,D,R,D,B2,Rp,U,D2,<(20q*, 16f*)>}%
+\newcommand{\plummerscross}{\PlummersCross}%
+\newcommand{\Anaconda}{[Anaconda],L,U,Bp,Up,R,Lp,B,Rp,F,Bp,D,R,Dp,Fp,<(14q*, 14f*)>}%
+\newcommand{\anaconda}{\Anaconda}%
+\newcommand{\Python}{[Python],F2,Rp,Bp,U,Rp,L,Fp,L,Fp,B,Dp,R,B,L2,<(16q*, 14f*)>}%
+\newcommand{\python}{\Python}%
+\newcommand{\BlackMamba}{[BlackMamba],R,D,L,Fp,R,Lp,D,Rp,U,Dp,B,Up,Rp,Dp,<(14q*, 14f*)>}%
+\newcommand{\blackmamba}{\BlackMamba}%
+\newcommand{\GreenMamba}{[GreenMamba],R,D,R,F,Rp,Fp,B,D,Rp,Up,Bp,U,D2,<(14q*, 13f*)>}%
+\newcommand{\greenmamba}{\GreenMamba}%
+\newcommand{\FemaleRattlesnake}%
+{[FemaleRattlesnake],U2,Dp,L2,D,B,U,Bp,Rp,L2,U2,F,Up,F,R,<(18q*, 14f*)>}%
+\newcommand{\femalerattlesnake}{\FemaleRattlesnake}%
+\newcommand{\MaleRattlesnake}%
+{[MaleRattlesnake],Rp,Fp,U,Fp,U2,R,L2,B,Up,Bp,Dp,L2,U2,D,<(18q*, 14f*)>}%
+\newcommand{\malerattlesnake}{\MaleRattlesnake}%
+\newcommand{\FemaleBoa}{[FemaleBoa],R,Up,R2,U2,F,D2,R2,Up,Dp,R,Dp,Fp,<(16q*, 12f*)>}%
+\newcommand{\femaleboa}{\FemaleBoa}%
+\newcommand{\MaleBoa}{[MaleBoa],F,D,Rp,U,D,R2,D2,Fp,U2,R2,U,Rp,<(16q*, 12f*)>}%
+\newcommand{\maleboa}{\MaleBoa}%
+\newcommand{\FourSpot}{[FourSpot],F2,B2,U,Dp,R2,L2,U,Dp,<(12q*, 8f*)>}%
+\newcommand{\fourspot}{\FourSpot}%
+\newcommand{\SixSpot}{[SixSpot],U,Dp,R,Lp,F,Bp,U,Dp,<(8q*, 8f*)>}%
+\newcommand{\sixspot}{\SixSpot}%
+\newcommand{\OrthogonalBars}%
+{[OrthogonalBars],F,Rp,U,L,Fp,Lp,F,Up,R,U,Lp,Up,L,Fp,<(14q*, 14f*)>}%
+\newcommand{\orthogonalbars}{\OrthogonalBars}%
+\newcommand{\SixTs}{[SixTs],F2,R2,U2,Fp,B,D2,L2,F,B,<(14q*, 9f*)>}%
+\newcommand{\sixts}{\SixTs}%
+\newcommand{\SixTwoOne}{[SixTwoOne],U,B2,D2,L,Bp,Lp,Up,Lp,B,D2,B2,<(15q*, 11f*)>}%
+\newcommand{\sixtwoone}{\SixTwoOne}%
+\newcommand{\ExchangedPeaks}%
+{[ExchangedPeaks],F2,R2,D,R2,U,D,F2,Dp,Rp,Dp,F,L2,Fp,D,R,Up,<(16f*, 21q)>}%
+\newcommand{\exchangedpeaks}{\ExchangedPeaks}%
+\newcommand{\TwoTwistedPeaks}%
+{[TwoTwistedPeaks],F,D2,B,R,Bp,Lp,F,Dp,L2,F2,R,Fp,Rp,F2,Lp,Fp,<(16f*, 20q)>}%
+\newcommand{\twotwistedpeaks}{\TwoTwistedPeaks}%
+\newcommand{\FourTwistedPeaks}%
+{[FourTwistedPeaks],Up,D,B,Rp,F,R,Bp,Lp,Fp,B,L,F,Rp,Bp,R,Fp,Up,D,<(18q*, 18f*)>}%
+\newcommand{\fourtwistedpeaks}{\FourTwistedPeaks}%
+\newcommand{\ExchangedChickenFeet}%
+{[ExchangedChickenFeet],F,Lp,Dp,Bp,L,F,U,Fp,Dp,F,L2,Bp,Rp,U,L2,Dp,F,<(19q*, 17f*)>}%
+\newcommand{\exchangedchickenfeet}{\ExchangedChickenFeet}%
+\newcommand{\TwistedChickenFeet}%
+{[TwistedChickenFeet],F,Lp,D,Fp,Up,B,U,F,Up,F,Rp,F2,L,Up,Rp,D2,<(18q*, 16f*)>}%
+\newcommand{\twistedchickenfeet}{\TwistedChickenFeet}%
+\newcommand{\ExchangedRings}%
+{[ExchangedRings],F,U,Dp,Lp,B2,L,Up,D,F,U,R2,L2,Up,L2,F2,<(15f*, 20q)>}%
+\newcommand{\exchangedrings}{\ExchangedRings}%
+\newcommand{\TwistedRings}%
+{[TwistedRings],F,D,Fp,D2,Lp,Bp,U,L,D,R,U,Lp,Fp,U,L,U2,<(18q*, 16f*)>}%
+\newcommand{\twistedrings}{\TwistedRings}%
+\newcommand{\EdgeHexagonTwo}%
+{[EdgeHexagonTwo],U,B2,Up,Fp,Up,D,Lp,D2,L,U,Dp,F,Dp,L2,B2,Dp,<(20q*, 16f*) order2>}%
+\newcommand{\edgehexagontwo}{\EdgeHexagonTwo}%
+\newcommand{\EdgeHexagonThree}%
+{[EdgeHexagonThree],F,L,B,U,L,F2,B2,Rp,F2,B2,Up,Bp,Lp,Fp,<(14f*, 18q) order 3>}%
+\newcommand{\edgehexagonthree}{\EdgeHexagonThree}%
+\newcommand{\TomParksPattern}%
+{[TomParksPattern],L,U,F2,R,Lp,U2,Bp,U,D,B2,L,F,Bp,Rp,L,Fp,R,<(20q*, 17f*)>}%
+\newcommand{\tomparkspattern}{\TomParksPattern}%
+\newcommand{\RonsCubeInCube}%
+{[RonsCubeInCube],L2,D2,Lp,D2,B2,L2,B2,Lp,D2,L2,B2,Lp,B2,<(13f*, 23q)>}%
+\newcommand{\ronscubeincube}{\RonsCubeInCube}%
+\newcommand{\TwistedDuckFeet}%
+{[TwistedDuckFeet],F,Rp,B,R,U,Fp,Lp,Fp,U2,Lp,Up,D2,B,Dp,F,Bp,U2,<(20q*, 17f*)>}%
+\newcommand{\twistedduckfeet}{\TwistedDuckFeet}%
+\newcommand{\ExchangedDuckFeet}%
+{[ExchangedDuckFeet],U,F,R2,Fp,Dp,R,U,B2,U2,Fp,R2,F,D,B2,R,Bp,<(21q*, 16f*)>}%
+\newcommand{\exchangedduckfeet}{\ExchangedDuckFeet}%
+\endinput
+%%
+%% End of file `rubikpatterns.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/rubik/rubikrotation.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rubik/rubikrotation.sty	2017-03-06 21:58:29 UTC (rev 43414)
+++ trunk/Master/texmf-dist/tex/latex/rubik/rubikrotation.sty	2017-03-06 21:58:50 UTC (rev 43415)
@@ -10,8 +10,9 @@
 %%   Authors: RWD Nickalls (dick at nickalls.org)
 %%           and Apostolos Syropoulos (asyropoulos at yahoo.com)
 %% 
-%%   Copyright 25 September 2015     RWD Nickalls and A Syropoulos
+%%   Copyright 03 March 2017     RWD Nickalls and A Syropoulos
 %% 
+%%   VERSION 4.0
 %% 
 %%   This work may be distributed and/or modified under the
 %%   conditions of the LaTeX Project Public License, either
@@ -30,6 +31,7 @@
 %%  This package requires the basic TikZ package to be loaded already
 %% ------------------------------------------------------------------
 
+%%% \CheckSum{322}
 %%% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -46,9 +48,8 @@
 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
 %%   Right brace   \}     Tilde         \~}
 
-
-\def\RRfileversion{3.0}%
-\def\RRfiledate{2015/09/25}%
+\def\RRfileversion{4.0}%
+\def\RRfiledate{2017/03/03}%
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{rubikrotation}[\RRfiledate\space (v\RRfileversion)]
 \@ifpackageloaded{rubikcube}{}{%
@@ -58,6 +59,15 @@
    \typeout{---rubikrotation requires the fancyvrb package%
        for VerbatimInput{} command.}%
    \RequirePackage{fancyvrb}}
+\@ifpackageloaded{ifluatex}{}{%
+   \typeout{---rubikrotation requires the ifluatex package.}%
+   \RequirePackage{ifluatex}}
+\ifluatex%
+   \@ifpackageloaded{shellesc}{}{%
+   \typeout{---rubikrotation requires the shellesc package
+       to run using Lua\LaTeX.}%
+   \RequirePackage{shellesc}}
+\fi%
 \newcommand{\rubikrotation}{\textsc{rubikrotation}}
 \newcommand{\Rubikrotation}{\textsc{Rubikrotation}}
 \newcommand{\@print}[1]{\immediate\write\outfile{#1}}
@@ -81,7 +91,7 @@
 \newwrite\outfile%
 \immediate\openout\outfile=rubikstateERRORS.dat%
 \@print{\@comment rubikstateERRORS.dat}%
-\@print{\@comment ---(RR.sty v\RRfileversion): comments output by Perl script}%
+\@print{\@comment --------------------}%
 \immediate\closeout\outfile%
 \typeout{---setting up newwrite for rubikrotation.sty to use...}%
 \newwrite\outfile%
@@ -134,8 +144,9 @@
    \next
 }
 \newcommand{\RubikRotation}[2][1]{%
+   \typeout{---TeX process (rubikrotation.sty)-------}%
    \typeout{---NEW rotation command------------------}%
-   \typeout{---command = RubikRotation{#1}}%
+   \typeout{---command = RubikRotation[#1]{#2}}%
    \typeout{---writing current Rubik state to file rubikstate.dat}%
    \@openstatefile% open data file
    \@print{\@comment filename: rubikstate.dat}%
@@ -147,9 +158,9 @@
    \@countingloop{\ourRRcounter} in 1:{#1}{%
          \immediate\write\outfile{rotation,#2}}%
    \@closestatefile% close data file
-   \typeout{---running Perl script (rubikrotation)}%
+   \typeout{---CALLing Perl script (rubikrotation.pl)}%
    \immediate\write18{\rubikperlcmd}%
-   \typeout{---inputting NEW datafile (written by Perl script)}%
+   \typeout{---inputting NEW datafile (data written by Perl script)}%
    \input{rubikstateNEW.dat}%
    \typeout{-----------------------------------------}%
  }
@@ -157,6 +168,7 @@
    \typeout{---ShowRubikErrors: inputting file rubikstateERRORS.dat}%
    \VerbatimInput{rubikstateERRORS.dat}%
  }
+\newcommand{\ShowErrors}{\ShowRubikErrors}
 \newcommand{\CheckRubikState}{%
    \typeout{---NEW check command------------------}%
    \typeout{---command = CheckRubikState}%
@@ -165,9 +177,9 @@
    \@print{\@comment filename: rubikstate.dat}%
    \@printrubikstate%
    \@closestatefile% close data file
-   \typeout{---running Perl script (rubikrotation)}%
+   \typeout{---running Perl script (rubikrotation.pl)}%
    \immediate\write18{\rubikperlcmd}%
-   \typeout{---inputting NEW datafile (written by Perl script)}%
+   \typeout{---inputting NEW datafile (data written by Perl script)}%
    \input{rubikstateNEW.dat}%
    \typeout{-----------------------------------------}%
  }



More information about the tex-live-commits mailing list