diff --git a/docs/DynamicsDiagonal.rst b/docs/DynamicsDiagonal.rst
new file mode 100644
index 0000000..7684d89
--- /dev/null
+++ b/docs/DynamicsDiagonal.rst
@@ -0,0 +1,284 @@
+
+****************************
+GooseFEM::Dynamics::Diagonal
+****************************
+
+.. note::
+
+  Source:
+
+  .. code-block:: cpp
+
+    #include <GooseFEM/DynamicsDiagonalPeriodic.h>
+    #include <GooseFEM/DynamicsDiagonalSemiPeriodic.h>
+    #include <GooseFEM/DynamicsDiagonalLinearStrainQuad4.h>
+
+Overview
+========
+
+Principle
+---------
+
+The philosophy is to provide some structure to efficiently run a finite element simulation which remains customizable. Even more customization can be obtained by copy/pasting the source and modifying it to your need. The idea that is followed involves a hierarchy of three classes, whereby a class that is higher in hierarchy writes to some field of the class that is lower in hierarchy, runs a function, and reads from some field. In general:
+
+*   **Discretized system** (``GooseFEM::Dynamics::Diagonal::Periodic``, ``GooseFEM::Dynamics::Diagonal::SemiPeriodic``).
+
+    Defines the discretized system, and assembles the (inverse) mass matrix, the displacement dependent forces, and the velocity dependent forces from element arrays that are provided by the element definition.
+
+*   **Element definition** (``GooseFEM::Dynamics::Diagonal::LinearStrain::Qaud4``)
+
+    Provides the element arrays by performing numerical quadrature. At the integration point the constitutive response is probed from the quadrature point definition.
+
+*   **Quadrature point definition**
+
+    This class is not provided, and should be provided by the user.
+
+Example
+-------
+
+A simple example is:
+
+[:download:`source: examples/DynamicsDiagonalPeriodic/laminate/no_damping/Verlet/main.cpp <examples/DynamicsDiagonalPeriodic/laminate/no_damping/Verlet/main.cpp>`]
+
+.. code-block:: cpp
+
+  #include <Eigen/Eigen>
+  #include <cppmat/cppmat.h>
+  #include <GooseFEM/GooseFEM.h>
+  #include <GooseMaterial/AmorphousSolid/LinearStrain/Elastic/Cartesian2d.h>
+
+  // -------------------------------------------------------------------
+
+  using     MatS = GooseFEM::MatS;
+  using     MatD = GooseFEM::MatD;
+  using     ColD = GooseFEM::ColD;
+
+  using     T2   = cppmat::cartesian2d::tensor2 <double>;
+  using     T2s  = cppmat::cartesian2d::tensor2s<double>;
+
+  namespace GM   = GooseMaterial::AmorphousSolid::LinearStrain::Elastic::Cartesian2d;
+
+  // ===================================================================
+
+  class Quadrature
+  {
+  public:
+    T2s eps, epsdot, sig;
+
+    size_t nhard;
+    GM::Material hard, soft;
+
+    double Ebar, Vbar;
+
+    Quadrature(size_t nhard);
+
+    double density             (size_t elem, size_t k, double V);
+    void   stressStrain        (size_t elem, size_t k, double V);
+    void   stressStrainRate    (size_t elem, size_t k, double V);
+    void   stressStrainPost    (size_t elem, size_t k, double V);
+    void   stressStrainRatePost(size_t elem, size_t k, double V);
+  };
+
+  // -------------------------------------------------------------------
+
+  Quadrature::Quadrature(size_t _nhard)
+  {
+    nhard    = _nhard;
+    hard     = GM::Material(100.,10.);
+    soft     = GM::Material(100., 1.);
+  }
+
+  // -------------------------------------------------------------------
+
+  double Quadrature::density(size_t elem, size_t k, double V)
+  {
+    return 1.0;
+  }
+  // -------------------------------------------------------------------
+
+  void Quadrature::stressStrain(size_t elem, size_t k, double V)
+  {
+    if ( elem < nhard ) sig = hard.stress(eps);
+    else                sig = soft.stress(eps);
+  }
+  // -------------------------------------------------------------------
+
+  void Quadrature::stressStrainRate(size_t elem, size_t k, double V)
+  {
+  }
+  // -------------------------------------------------------------------
+
+  void Quadrature::stressStrainPost(size_t elem, size_t k, double V)
+  {
+    Vbar += V;
+
+    if ( elem < nhard ) Ebar += hard.energy(eps) * V;
+    else                Ebar += soft.energy(eps) * V;
+  }
+
+  // -------------------------------------------------------------------
+
+  void Quadrature::stressStrainRatePost(size_t elem, size_t k, double V)
+  {
+  }
+
+  // ===================================================================
+
+  int main()
+  {
+    // class which provides the mesh
+    GooseFEM::Mesh::Quad4::Regular mesh(40,40,1.);
+
+    // class which provides the constitutive response at each quadrature point
+    auto  quadrature = std::make_shared<Quadrature>(40*40/4);
+
+    // class which provides the response of each element
+    using Elem = GooseFEM::Dynamics::Diagonal::LinearStrain::Quad4<Quadrature>;
+    auto  elem = std::make_shared<Elem>(quadrature);
+
+    // class which provides the system and an increment
+    GooseFEM::Dynamics::Diagonal::Periodic<Elem> sim(
+      elem,
+      mesh.coor(),
+      mesh.conn(),
+      mesh.dofsPeriodic(),
+      1.e-2,
+      0.0
+    );
+
+    // loop over increments
+    for ( ... )
+    {
+      // - set displacement of fixed DOFs
+      ...
+
+      // - compute time increment
+      sim.Verlet();
+
+      // - post-process
+      quadrature->Ebar = 0.0;
+      quadrature->Vbar = 0.0;
+
+      sim.post();
+
+      ...
+    }
+
+    return 0;
+  }
+
+Pseudo-code
+-----------
+
+What is happening inside ``Verlet`` is evaluating the forces (and the mass matrix), and updating the displacements by solving the system. In pseudo-code:
+
+*   Mass matrix:
+
+    .. code-block:: python
+
+      sim.computeMinv():
+      {
+        for e in elements:
+
+          sim->elem->xe(i,j) = ...
+          sim->elem->ue(i,j) = ...
+
+          sim->elem->computeM(e):
+          {
+            for k in integration-points:
+
+              sim->elem->M(...,...) += ... * sim->elem->quad->density(e,k,V)
+          }
+
+          M(...) += sim->elem->M(i,i)
+      }
+
+*   Displacement dependent force:
+
+    .. code-block:: python
+
+      sim.computeFu():
+      {
+        for e in elements:
+
+          sim->elem->xe(i,j) = ...
+          sim->elem->ue(i,j) = ...
+
+          sim->elem->computeFu(e):
+          {
+            for k in integration-points:
+
+              sim->elem->quad->eps(i,j) = ...
+
+              sim->elem->quad->stressStrain(e,k,V)
+
+              sim->elem->fu(...) += ... * sim->elem->quad->sig(i,j)
+          }
+
+          Fu(...) += sim->elem->fu(i)
+      }
+
+*   Velocity dependent force:
+
+    .. code-block:: python
+
+      sim.computeFv():
+      {
+        for e in elements:
+
+          sim->elem->xe(i,j) = ...
+          sim->elem->ue(i,j) = ...
+          sim->elem->ve(i,j) = ...
+
+          sim->elem->computeFv(e):
+          {
+            for k in integration-points:
+
+              sim->elem->quad->epsdot(i,j) = ...
+
+              sim->elem->quad->stressStrainRate(e,k,V)
+
+              sim->elem->fv(...) += ... * sim->elem->quad->sig(i,j)
+          }
+
+          Fv(...) += sim->elem->fu(i)
+      }
+
+Signature
+---------
+
+From this it is clear that:
+
+*   ``GooseFEM::Dynamics::Diagonal::Periodic`` requires the following minimal signature from ``GooseFEM::Dynamics::Diagonal::LinearStrain::Qaud4``:
+
+    .. code-block:: cpp
+
+      class Element
+      {
+      public:
+        matrix M;                    // should have operator(i,j)
+        column fu, fv;               // should have operator(i)
+        matrix xe, ue, ve;           // should have operator(i,j)
+
+        void computeM (size_t elem); // mass matrix                     <- quad->density
+        void computeFu(size_t elem); // displacement dependent forces   <- quad->stressStrain
+        void computeFv(size_t elem); // displacement dependent forces   <- quad->stressStrainRate
+        void post     (size_t elem); // post-process                    <- quad->stressStrain(Rate)
+      }
+
+*   ``GooseFEM::Dynamics::Diagonal::LinearStrain::Qaud4`` requires the minimal signature from ``Quadrature``
+
+    .. code-block:: cpp
+
+      class Quadrature
+      {
+      public:
+        tensor eps, epsdot, sig;     // should have operator(i,j)
+
+        double density             (size_t elem, size_t k, double V);
+        void   stressStrain        (size_t elem, size_t k, double V);
+        void   stressStrainRate    (size_t elem, size_t k, double V);
+        void   stressStrainPost    (size_t elem, size_t k, double V);
+        void   stressStrainRatePost(size_t elem, size_t k, double V);
+      }
+
diff --git a/docs/Mesh.rst b/docs/Mesh.rst
index 2ceb87f..85c3782 100644
--- a/docs/Mesh.rst
+++ b/docs/Mesh.rst
@@ -1,96 +1,106 @@
 
-******************
-<GooseFEM/Mesh.h>
-******************
+**************
+GooseFEM::Mesh
+**************
+
+.. note::
+
+  Source:
+
+  .. code-block:: cpp
+
+    #include <GooseFEM/Mesh.h>
 
 ``GooseFEM::Mesh::dofs``
 ========================
 
 Get a sequential list of DOF-numbers for each vector-component of each node.
 
 .. code-block:: cpp
 
   MatS GooseFEM::Mesh::dofs ( size_t nnode , size_t ndim )
 
 For example for 3 nodes in 2 dimensions the output is
 
 .. math::
 
   \begin{bmatrix}
     0 & 1 \\
     2 & 3 \\
     4 & 5
   \end{bmatrix}
 
 ``GooseFEM::Mesh::renumber``
 ============================
 
 * Renumber indices to lowest possible indices (returns a copy, input not modified).
 
   .. code-block:: cpp
 
     MatS GooseFEM::Mesh::renumber ( const MatS &in )
 
   For example:
 
   .. math::
 
     \begin{bmatrix}
       0 & 1 \\
       0 & 1 \\
       5 & 4
     \end{bmatrix}
 
   is renumbered to
 
   .. math::
 
     \begin{bmatrix}
       0 & 1 \\
       0 & 1 \\
       3 & 2
     \end{bmatrix}
 
 * Reorder indices such that some items are at the beginning or the end (returns a copy, input not modified).
 
   .. code-block:: cpp
 
-    MatS GooseFEM::Mesh::renumber ( const MatS &in , const VecS &idx, std::string location="end" );
+    MatS GooseFEM::Mesh::renumber ( const MatS &in , const ColS &idx, std::string location="end" );
 
   For example:
 
   .. math::
 
     \mathrm{in} =
     \begin{bmatrix}
       0 & 1 \\
       0 & 1 \\
       3 & 2 \\
       4 & 5
     \end{bmatrix}
 
   with
 
   .. math::
 
     \mathrm{idx} =
     \begin{bmatrix}
       6 & 4
     \end{bmatrix}
 
   Implies that ``in`` is renumbered such that the 6th item becomes the one-before-last item (:math:`5 \rightarrow 4`), and the 4th item become the last (:math:`3 \rightarrow 5`). The remaining items are renumbered to the lowest index while keeping the same order. The result:
 
   .. math::
 
     \begin{bmatrix}
       0 & 1 \\
       0 & 1 \\
       5 & 2 \\
       4 & 3
     \end{bmatrix}
 
+  Consider also [:download:`source: figures/Mesh/renumber.cpp <figures/Mesh/renumber.cpp>`]
+
 
 
 
 
 
diff --git a/docs/MeshQuad4.rst b/docs/MeshQuad4.rst
index 4eea39a..c941490 100644
--- a/docs/MeshQuad4.rst
+++ b/docs/MeshQuad4.rst
@@ -1,53 +1,118 @@
 
-**********************
-<GooseFEM/MeshQuad4.h>
-**********************
+*********************
+GooseFEM::Mesh::Quad4
+*********************
+
+.. note::
+
+  Source:
+
+  .. code-block:: cpp
+
+    #include <GooseFEM/MeshQuad4.h>
 
 ``GooseFEM::Mesh::Quad4::Regular``
 ==================================
 
-Regular mesh of linear quadrilaterals in two-dimensions.
+.. code-block:: cpp
+
+  GooseFEM::Mesh::Quad4::Regular(size_t nx, size_t ny, double h=1.);
+
+Regular mesh of linear quadrilaterals in two-dimensions. The element edges are all of the same size :math:`h` (by default equal to one), optional scaling can be applied afterwards. For example the mesh shown below that consists of 21 x 11 elements. In that image the element numbers are indicated with a color, and likewise for the boundary nodes.
+
+.. image:: figures/MeshQuad4/Regular/example.svg
+  :width: 500px
+  :align: center
 
 Methods:
 
-*  ``MatS = GooseFEM::Mesh::Quad4::Regular.nodesPeriodic()``
+.. code-block:: cpp
 
-    Returns a list of periodic node-pairs in which the first column contains the independent nodes, and the second column the dependent nodes.
+  // A matrix with on each row a nodal coordinate:
+  // [ x , y ]
+  MatD = GooseFEM::Mesh::Quad4::Regular.coor();
 
+  // A matrix with the connectivity, with on each row to the nodes of each element
+  MatS = GooseFEM::Mesh::Quad4::Regular.conn();
+
+  // A list of boundary nodes
+  ColS = GooseFEM::Mesh::Quad4::Regular.nodesBottom();
+  ColS = GooseFEM::Mesh::Quad4::Regular.nodesTop();
+  ColS = GooseFEM::Mesh::Quad4::Regular.nodesLeft();
+  ColS = GooseFEM::Mesh::Quad4::Regular.nodesRight();
+
+  // A matrix with periodic node pairs on each row:
+  // [ independent nodes, dependent nodes ]
+  MatS = GooseFEM::Mesh::Quad4::Regular.nodesPeriodic();
+
+  // The node at the origin
+  size_t = GooseFEM::Mesh::Quad4::Regular.nodeOrigin();
+
+  // A matrix with DOF-numbers: two per node in sequential order
+  MatS = GooseFEM::Mesh::Quad4::Regular.dofs();
+
+  // A matrix with DOF-numbers: two per node in sequential order
+  // All the periodic repetitions are eliminated from the system
+  MatS = GooseFEM::Mesh::Quad4::Regular.dofsPeriodic();
 
 ``GooseFEM::Mesh::Quad4::FineLayer``
 ====================================
 
 Regular mesh with a fine layer of quadrilateral elements, and coarser elements above and below.
 
 .. image:: figures/MeshQuad4/FineLayer/example.svg
   :width: 500px
   :align: center
 
 .. note::
 
   The coarsening depends strongly on the desired number of elements in horizontal elements. The becomes clear from the following example:
 
-  .. code-block:: python
+  .. code-block:: cpp
 
-    mesh = gf.Mesh.Quad4.FineLayer(6*9  ,51) # left   image :  546 elements
-    mesh = gf.Mesh.Quad4.FineLayer(6*9+3,51) # middle image :  703 elements
-    mesh = gf.Mesh.Quad4.FineLayer(6*9+1,51) # right  image : 2915 elements
+    mesh = GooseFEM::Mesh::Quad4::FineLayer(6*9  ,51); // left   image :  546 elements
+    mesh = GooseFEM::Mesh::Quad4::FineLayer(6*9+3,51); // middle image :  703 elements
+    mesh = GooseFEM::Mesh::Quad4::FineLayer(6*9+1,51); // right  image : 2915 elements
 
   .. image:: figures/MeshQuad4/FineLayer/behavior.svg
     :width: 1000px
     :align: center
 
 Methods:
 
-*   ``MatS = GooseFEM::Mesh::Quad4::Regular.nodesPeriodic()``
+.. code-block:: cpp
+
+  // A matrix with on each row a nodal coordinate:
+  // [ x , y ]
+  MatD = GooseFEM::Mesh::Quad4::Regular.coor();
+
+  // A matrix with the connectivity, with on each row to the nodes of each element
+  MatS = GooseFEM::Mesh::Quad4::Regular.conn();
+
+  // A list of boundary nodes
+  ColS = GooseFEM::Mesh::Quad4::Regular.nodesBottom();
+  ColS = GooseFEM::Mesh::Quad4::Regular.nodesTop();
+  ColS = GooseFEM::Mesh::Quad4::Regular.nodesLeft();
+  ColS = GooseFEM::Mesh::Quad4::Regular.nodesRight();
+
+  // A matrix with periodic node pairs on each row:
+  // [ independent nodes, dependent nodes ]
+  MatS = GooseFEM::Mesh::Quad4::Regular.nodesPeriodic();
+
+  // The node at the origin
+  size_t = GooseFEM::Mesh::Quad4::Regular.nodeOrigin();
 
-    Returns a list of periodic node-pairs in which the first column contains the independent nodes, and the second column the dependent nodes.
+  // A matrix with DOF-numbers: two per node in sequential order
+  MatS = GooseFEM::Mesh::Quad4::Regular.dofs();
 
-*   ``ColS = GooseFEM::Mesh::Quad4::Regular.elementsFine()``
+  // A matrix with DOF-numbers: two per node in sequential order
+  // All the periodic repetitions are eliminated from the system
+  MatS = GooseFEM::Mesh::Quad4::Regular.dofsPeriodic();
 
-    Returns a list with the element numbers of the fine elements in the center of the mesh (highlighted in the plot below).
+  // A list with the element numbers of the fine elements in the center of the mesh
+  // (highlighted in the plot below)
+  ColS = GooseFEM::Mesh::Quad4::FineLayer.elementsFine();
 
     .. image:: figures/MeshQuad4/FineLayer/example_elementsFine.svg
       :width: 500px
       :align: center
diff --git a/docs/MeshTri3.rst b/docs/MeshTri3.rst
index cd189f9..3e4cc99 100644
--- a/docs/MeshTri3.rst
+++ b/docs/MeshTri3.rst
@@ -1,13 +1,13 @@
 
-**********************
-<GooseFEM/MeshTri3.h>
-**********************
+********************
+GooseFEM::Mesh::Tri3
+********************
 
-``GooseFEM::Mesh::Tri3::Regular``
-=================================
+.. note::
 
-Regular mesh of linear triangles in two-dimensions. Methods:
+  Source:
 
-*  ``MatS = GooseFEM::Mesh::Tri3::Regular.nodesPeriodic()``
+  .. code-block:: cpp
+
+    #include <GooseFEM/MeshTri3.h>
 
-    Returns a list of periodic node-pairs in which the first column contains the independent nodes, and the second column the dependent nodes.
diff --git a/docs/compile.rst b/docs/compile.rst
index 042ec0c..e4e75c6 100644
--- a/docs/compile.rst
+++ b/docs/compile.rst
@@ -1,131 +1,131 @@
 
 .. _compile:
 
 *********
 Compiling
 *********
 
 Introduction
 ============
 
 This module is header only. So one just has to ``#include <GooseFEM/GooseFEM.h>``. somewhere in the source code, and to tell the compiler where the header-files are. For the latter, several ways are described below.
 
-Before proceeding, a words about optimization. Of course one should use optimization when compiling the release of the code (``-O2`` or ``-O3``). But it is also a good idea to switch of the assertions in the code (mostly checks on size) that facilitate easy debugging, but do cost time. Therefore, include the flag ``-DNDEBUG``. Note that this is all C++ standard. I.e. it should be no surprise, and it always a good idea to do.
+Before proceeding, a words about optimization. Of course one should use optimization when compiling the release of the code (``-O2`` or ``-O3``). But it is also a good idea to switch off the assertions in the code (mostly checks on size) that facilitate easy debugging, but do cost time. Therefore, include the flag ``-DNDEBUG``. Note that this is all C++ standard. I.e. it should be no surprise, and it always a good idea to do.
 
 .. note::
 
   This code depends on `eigen3 <https://github.com/RLovelett/eigen>`_ and `cppmat <https://github.com/tdegeus/cppmat>`_. Both are also header-only libraries. Both can be 'installed' using identical steps as described below.
 
 Manual compiler flags
 =====================
 
 GNU / Clang
 -----------
 
 Add the following compiler's arguments:
 
 .. code-block:: bash
 
   -I${PATH_TO_GOOSEFEM}/src -std=c++14
 
 .. note:: **(Not recommended)**
 
   If you want to avoid separately including the header files using a compiler flag, ``git submodule`` is a nice way to go:
 
   1.  Include this module as a submodule using ``git submodule add https://github.com/tdegeus/GooseFEM.git``.
 
   2.  Replace the first line of this example by ``#include "GooseFEM/src/GooseFEM/GooseFEM.h"``.
 
       *If you decide to manually copy the header file, you might need to modify this relative path to your liking.*
 
   Or see :ref:`compile_automatic`. You can also combine the ``git submodule`` with any of the below compiling strategies.
 
 .. _compile_automatic:
 
 (Semi-)Automatic compiler flags
 ===============================
 
 Install
 -------
 
 To enable (semi-)automatic build, one should 'install' ``GooseFEM`` somewhere.
 
 Install system-wide (root)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 1.  Proceed to a (temporary) build directory. For example
 
     .. code-block:: bash
 
       $ cd /path/to/GooseFEM/src/build
 
 2.  'Build' ``GooseFEM``
 
     .. code-block:: bash
 
       $ cmake ..
       $ make install
 
     (If you've used another build directory, change the first command to ``$ cmake /path/to/GooseFEM/src``)
 
 Install in custom location (user)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 1.  Proceed to a (temporary) build directory. For example
 
     .. code-block:: bash
 
       $ cd /path/to/GooseFEM/src/build
 
-2.  'Build' ``GooseFEM``, to install it in a custom location
+2.  'Build' ``GooseFEM`` to install it in a custom location
 
     .. code-block:: bash
 
       $ mkdir /custom/install/path
       $ cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/custom/install/path
       $ make install
 
     (If you've used another build directory, change the first command to ``$ cmake /path/to/GooseFEM/src``)
 
 3.  Add the following path to your ``~/.bashrc`` (or ``~/.zshrc``):
 
     .. code-block:: bash
 
       export PKG_CONFIG_PATH=/custom/install/path/share/pkgconfig:$PKG_CONFIG_PATH
 
 .. note:: **(Not recommended)**
 
   If you do not wish to use ``CMake`` for the installation, or you want to do something custom. You can of course. Follow these steps:
 
   1.  Copy the file ``src/GooseFEM.pc.in`` to ``GooseFEM.pc`` to some location that can be found by ``pkg_config`` (for example by adding ``export PKG_CONFIG_PATH=/path/to/GooseFEM.pc:$PKG_CONFIG_PATH`` to the ``.bashrc``).
 
   2.  Modify the line ``prefix=@CMAKE_INSTALL_PREFIX@`` to ``prefix=/path/to/GooseFEM``.
 
   3.  Modify the line ``Cflags: -I${prefix}/@INCLUDE_INSTALL_DIR@`` to ``Cflags: -I${prefix}/src``.
 
   4.  Modify the line ``Version: @GOOSEFEM_VERSION_NUMBER@`` to reflect the correct release version.
 
 Compiler arguments from 'pkg-config'
 ------------------------------------
 
 Instead of ``-I...`` one can now use
 
 .. code-block:: bash
 
   `pkg-config --cflags GooseFEM` -std=c++14
 
 as compiler argument.
 
 Compiler arguments from 'cmake'
 -------------------------------
 
 Add the following to your ``CMakeLists.txt``:
 
 .. code-block:: cmake
 
   set(CMAKE_CXX_STANDARD 14)
 
   find_package(PkgConfig)
 
   pkg_check_modules(GOOSEFEM REQUIRED GooseFEM)
   include_directories(${GOOSEFEM_INCLUDE_DIRS})
diff --git a/docs/examples/DynamicsDiagonalPeriodic/laminate/no_damping/Verlet/main.cpp b/docs/examples/DynamicsDiagonalPeriodic/laminate/no_damping/Verlet/main.cpp
index 133f187..55c6252 100644
--- a/docs/examples/DynamicsDiagonalPeriodic/laminate/no_damping/Verlet/main.cpp
+++ b/docs/examples/DynamicsDiagonalPeriodic/laminate/no_damping/Verlet/main.cpp
@@ -1,161 +1,159 @@
 
 #include <HDF5pp.h>
 #include <Eigen/Eigen>
 #include <cppmat/cppmat.h>
 #include <GooseFEM/GooseFEM.h>
 #include <GooseMaterial/AmorphousSolid/LinearStrain/Elastic/Cartesian2d.h>
 
 // -------------------------------------------------------------------------------------------------
 
 using     MatS = GooseFEM::MatS;
 using     MatD = GooseFEM::MatD;
 using     ColD = GooseFEM::ColD;
 
-using     vec  = cppmat::cartesian2d::vector  <double>;
 using     T2   = cppmat::cartesian2d::tensor2 <double>;
 using     T2s  = cppmat::cartesian2d::tensor2s<double>;
-using     T2d  = cppmat::cartesian2d::tensor2d<double>;
 
 namespace GM   = GooseMaterial::AmorphousSolid::LinearStrain::Elastic::Cartesian2d;
 
 // =================================================================================================
 
 class Quadrature
 {
 public:
   T2s eps, epsdot, sig;
 
   size_t nhard;
   GM::Material hard, soft;
 
   double Ebar, Vbar;
 
   Quadrature(size_t nhard);
 
   double density             (size_t elem, size_t k, double V);
   void   stressStrain        (size_t elem, size_t k, double V);
   void   stressStrainRate    (size_t elem, size_t k, double V);
   void   stressStrainPost    (size_t elem, size_t k, double V);
   void   stressStrainRatePost(size_t elem, size_t k, double V);
 };
 
 // -------------------------------------------------------------------------------------------------
 
 Quadrature::Quadrature(size_t _nhard)
 {
   nhard    = _nhard;
   hard     = GM::Material(100.,10.);
   soft     = GM::Material(100., 1.);
 }
 
 // -------------------------------------------------------------------------------------------------
 
 double Quadrature::density(size_t elem, size_t k, double V)
 {
   return 1.0;
 }
 // -------------------------------------------------------------------------------------------------
 
 void Quadrature::stressStrain(size_t elem, size_t k, double V)
 {
   if ( elem < nhard ) sig = hard.stress(eps);
   else                sig = soft.stress(eps);
 }
 // -------------------------------------------------------------------------------------------------
 
 void Quadrature::stressStrainRate(size_t elem, size_t k, double V)
 {
 }
 // -------------------------------------------------------------------------------------------------
 
 void Quadrature::stressStrainPost(size_t elem, size_t k, double V)
 {
   Vbar += V;
 
   if ( elem < nhard ) Ebar += hard.energy(eps) * V;
   else                Ebar += soft.energy(eps) * V;
 }
 
 // -------------------------------------------------------------------------------------------------
 
 void Quadrature::stressStrainRatePost(size_t elem, size_t k, double V)
 {
 }
 
 // =================================================================================================
 
 int main()
 {
   // set simulation parameters
   double T     = 20.  ; // total time
   double dt    = 1.e-2; // time increment
   size_t nx    = 40   ; // number of elements in both directions
   double gamma = .05  ; // displacement step
 
   // class which provides the mesh
   GooseFEM::Mesh::Quad4::Regular mesh(nx,nx,1.);
   // reference node
   size_t nodeOrigin = mesh.nodeOrigin();
 
   // class which provides the constitutive response at each quadrature point
   auto  quadrature = std::make_shared<Quadrature>(nx*nx/4);
 
   // class which provides the response of each element
   using Elem = GooseFEM::Dynamics::Diagonal::LinearStrain::Quad4<Quadrature>;
   auto  elem = std::make_shared<Elem>(quadrature);
 
   // class which provides the system and an increment
   GooseFEM::Dynamics::Diagonal::Periodic<Elem> sim(
     elem,
     mesh.coor(),
     mesh.conn(),
     mesh.dofsPeriodic(),
     dt,
     0.0
   );
 
   // define update in macroscopic deformation gradient
   T2 dFbar(0.);
   dFbar(0,1) = gamma;
 
   // update the displacement according to the macroscopic deformation gradient update
   for ( size_t i = 0 ; i < sim.nnode ; ++i )
     for ( size_t j = 0 ; j < sim.ndim ; ++j )
       for ( size_t k = 0 ; k < sim.ndim ; ++k )
         sim.u(i,j) += dFbar(j,k) * ( sim.x0(i,k) - sim.x0(nodeOrigin,k) );
 
   // output variables
   ColD Epot(static_cast<int>(T/dt)); Epot.setZero(); // potential energy
   ColD Ekin(static_cast<int>(T/dt)); Ekin.setZero();
   ColD t   (static_cast<int>(T/dt)); t   .setZero();
 
   // loop over increments
   for ( size_t inc = 0 ; inc < static_cast<size_t>(Epot.size()) ; ++inc )
   {
     // - compute increment
     sim.Verlet();
 
     // - post: energy based on nodes
     // -- store time
     t(inc) = sim.t;
     // -- kinetic energy
     for ( size_t i = 0 ; i < sim.ndof ; ++i )
       Ekin(inc) += .5 / sim.Minv(i) * std::pow( sim.V(i) , 2. );
     // -- potential energy
     quadrature->Ebar = 0.0;
     quadrature->Vbar = 0.0;
     sim.post();
     Epot(inc) = quadrature->Ebar;
   }
 
   // write to output file
   H5p::File f = H5p::File("example.hdf5");
   f.write("/global/Epot",Epot       );
   f.write("/global/Ekin",Ekin       );
   f.write("/global/t"   ,t          );
   f.write("/mesh/coor"  ,mesh.coor());
   f.write("/mesh/conn"  ,mesh.conn());
   f.write("/mesh/disp"  ,sim.u      );
 
   return 0;
 }
diff --git a/docs/figures/Mesh/renumber.cpp b/docs/figures/Mesh/renumber.cpp
new file mode 100644
index 0000000..dfb8a7b
--- /dev/null
+++ b/docs/figures/Mesh/renumber.cpp
@@ -0,0 +1,56 @@
+#include <GooseFEM/GooseFEM.h>
+
+using ColS = GooseFEM::ColS;
+using MatS = GooseFEM::MatS;
+
+int main()
+{
+  // mesh definition
+  GooseFEM::Mesh::Quad4::Regular mesh = GooseFEM::Mesh::Quad4::Regular(2,2);
+
+  // extract information
+  size_t ndim   = mesh.ndim       ();
+  ColS   top    = mesh.nodesTop   ();
+  ColS   bottom = mesh.nodesBottom();
+  ColS   left   = mesh.nodesLeft  ();
+  ColS   right  = mesh.nodesRight ();
+  size_t nleft  = static_cast<size_t>(left.size());
+  size_t ntop   = static_cast<size_t>(top .size());
+
+  // default DOF-numbers: sequential numbering per element
+  MatS dofs = mesh.dofs();
+
+  std::cout << "dofs = " << std::endl;
+  std::cout << dofs << std::endl << std::endl;
+
+  // periodicity in horizontal direction : eliminate 'dependent' DOFs
+  // N.B. the corner nodes are part of the fixed boundaries
+  for ( size_t i = 1 ; i < nleft-1 ; ++i )
+    for ( size_t j = 0 ; j < ndim ; ++j )
+      dofs(right(i),j) = dofs(left(i),j);
+
+  // renumber "dofs" to be sequential
+  dofs = GooseFEM::Mesh::renumber(dofs);
+
+  std::cout << "periodicity :" << std::endl << "dofs = " << std::endl;
+  std::cout << dofs << std::endl << std::endl;
+
+  // construct list with prescribed DOFs
+  // - allocate
+  ColS fixedDofs(2*ntop*ndim);
+  // - read: bottom
+  for ( size_t i = 0 ; i < ntop ; ++i )
+    for ( size_t j = 0 ; j < ndim ; ++j )
+      fixedDofs(i*ndim+j) = dofs(bottom(i),j);
+  // - read: top
+  for ( size_t i = 0 ; i < ntop ; ++i )
+    for ( size_t j = 0 ; j < ndim ; ++j )
+      fixedDofs(i*ndim+j+ntop*ndim) = dofs(top(i),j);
+
+  // renumber "dofs" to have the "fixedDofs" at the end
+  dofs = GooseFEM::Mesh::renumber(dofs,fixedDofs);
+
+  std::cout << "fixedDofs to end :" << std::endl << "dofs = " << std::endl;
+  std::cout << dofs << std::endl << std::endl;
+
+}
diff --git a/docs/figures/MeshQuad4/Regular/example.py b/docs/figures/MeshQuad4/Regular/example.py
new file mode 100644
index 0000000..1f36bfd
--- /dev/null
+++ b/docs/figures/MeshQuad4/Regular/example.py
@@ -0,0 +1,33 @@
+
+import GooseFEM as gf
+import matplotlib.pyplot as plt
+import goosempl as gplt
+import numpy as np
+
+plt.style.use(['goose'])
+
+# --------------------------------------------------------------------------------------------------
+
+mesh   = gf.Mesh.Quad4.Regular(21,11)
+coor   = mesh.coor()
+conn   = mesh.conn()
+cindex = np.arange(conn.shape[0])
+
+# --------------------------------------------------------------------------------------------------
+
+fig,ax = plt.subplots(figsize=(10,10))
+
+im = gplt.patch(coor=coor,conn=conn,cindex=cindex,cmap='jet')
+
+ax.plot(coor[:                 ,0],coor[:                 ,1],marker='o',linestyle='none')
+ax.plot(coor[mesh.nodesLeft  (),0],coor[mesh.nodesLeft  (),1],marker='o',linestyle='none',color='g')
+ax.plot(coor[mesh.nodesRight (),0],coor[mesh.nodesRight (),1],marker='o',linestyle='none',color='b')
+ax.plot(coor[mesh.nodesBottom(),0],coor[mesh.nodesBottom(),1],marker='o',linestyle='none',color='r')
+ax.plot(coor[mesh.nodesTop   (),0],coor[mesh.nodesTop   (),1],marker='o',linestyle='none',color='y')
+
+ax.set_aspect('equal')
+ax.get_xaxis().set_visible(False)
+ax.get_yaxis().set_visible(False)
+
+plt.savefig('example.svg')
+plt.show()
diff --git a/docs/figures/MeshQuad4/Regular/example.svg b/docs/figures/MeshQuad4/Regular/example.svg
new file mode 100644
index 0000000..2c51834
--- /dev/null
+++ b/docs/figures/MeshQuad4/Regular/example.svg
@@ -0,0 +1,1861 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Created with matplotlib (http://matplotlib.org/) -->
+<svg height="720pt" version="1.1" viewBox="0 0 720 720" width="720pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <style type="text/css">
+*{stroke-linecap:butt;stroke-linejoin:round;}
+  </style>
+ </defs>
+ <g id="figure_1">
+  <g id="patch_1">
+   <path d="M 0 720 
+L 720 720 
+L 720 0 
+L 0 0 
+z
+" style="fill:none;"/>
+  </g>
+  <g id="axes_1">
+   <g id="patch_2">
+    <path d="M 20.78 537.686667 
+L 699.22 537.686667 
+L 699.22 182.313333 
+L 20.78 182.313333 
+z
+" style="fill:none;"/>
+   </g>
+   <g id="PatchCollection_1">
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 508.072222 
+L 104.238889 508.072222 
+L 104.238889 481.15 
+L 77.316667 481.15 
+z
+" style="fill:#000080;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 508.072222 
+L 131.161111 508.072222 
+L 131.161111 481.15 
+L 104.238889 481.15 
+z
+" style="fill:#000084;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 508.072222 
+L 158.083333 508.072222 
+L 158.083333 481.15 
+L 131.161111 481.15 
+z
+" style="fill:#000089;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 508.072222 
+L 185.005556 508.072222 
+L 185.005556 481.15 
+L 158.083333 481.15 
+z
+" style="fill:#00008d;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 508.072222 
+L 211.927778 508.072222 
+L 211.927778 481.15 
+L 185.005556 481.15 
+z
+" style="fill:#000092;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 508.072222 
+L 238.85 508.072222 
+L 238.85 481.15 
+L 211.927778 481.15 
+z
+" style="fill:#000096;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 508.072222 
+L 265.772222 508.072222 
+L 265.772222 481.15 
+L 238.85 481.15 
+z
+" style="fill:#00009b;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 508.072222 
+L 292.694444 508.072222 
+L 292.694444 481.15 
+L 265.772222 481.15 
+z
+" style="fill:#00009f;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 508.072222 
+L 319.616667 508.072222 
+L 319.616667 481.15 
+L 292.694444 481.15 
+z
+" style="fill:#0000a4;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 508.072222 
+L 346.538889 508.072222 
+L 346.538889 481.15 
+L 319.616667 481.15 
+z
+" style="fill:#0000ad;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 508.072222 
+L 373.461111 508.072222 
+L 373.461111 481.15 
+L 346.538889 481.15 
+z
+" style="fill:#0000b2;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 508.072222 
+L 400.383333 508.072222 
+L 400.383333 481.15 
+L 373.461111 481.15 
+z
+" style="fill:#0000b6;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 508.072222 
+L 427.305556 508.072222 
+L 427.305556 481.15 
+L 400.383333 481.15 
+z
+" style="fill:#0000bb;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 508.072222 
+L 454.227778 508.072222 
+L 454.227778 481.15 
+L 427.305556 481.15 
+z
+" style="fill:#0000bf;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 508.072222 
+L 481.15 508.072222 
+L 481.15 481.15 
+L 454.227778 481.15 
+z
+" style="fill:#0000c4;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 508.072222 
+L 508.072222 508.072222 
+L 508.072222 481.15 
+L 481.15 481.15 
+z
+" style="fill:#0000c8;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 508.072222 
+L 534.994444 508.072222 
+L 534.994444 481.15 
+L 508.072222 481.15 
+z
+" style="fill:#0000cd;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 508.072222 
+L 561.916667 508.072222 
+L 561.916667 481.15 
+L 534.994444 481.15 
+z
+" style="fill:#0000d1;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 508.072222 
+L 588.838889 508.072222 
+L 588.838889 481.15 
+L 561.916667 481.15 
+z
+" style="fill:#0000da;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 508.072222 
+L 615.761111 508.072222 
+L 615.761111 481.15 
+L 588.838889 481.15 
+z
+" style="fill:#0000df;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 508.072222 
+L 642.683333 508.072222 
+L 642.683333 481.15 
+L 615.761111 481.15 
+z
+" style="fill:#0000e3;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 481.15 
+L 104.238889 481.15 
+L 104.238889 454.227778 
+L 77.316667 454.227778 
+z
+" style="fill:#0000e8;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 481.15 
+L 131.161111 481.15 
+L 131.161111 454.227778 
+L 104.238889 454.227778 
+z
+" style="fill:#0000ed;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 481.15 
+L 158.083333 481.15 
+L 158.083333 454.227778 
+L 131.161111 454.227778 
+z
+" style="fill:#0000f1;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 481.15 
+L 185.005556 481.15 
+L 185.005556 454.227778 
+L 158.083333 454.227778 
+z
+" style="fill:#0000f6;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 481.15 
+L 211.927778 481.15 
+L 211.927778 454.227778 
+L 185.005556 454.227778 
+z
+" style="fill:#0000fa;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 481.15 
+L 238.85 481.15 
+L 238.85 454.227778 
+L 211.927778 454.227778 
+z
+" style="fill:#0000ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 481.15 
+L 265.772222 481.15 
+L 265.772222 454.227778 
+L 238.85 454.227778 
+z
+" style="fill:#0000ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 481.15 
+L 292.694444 481.15 
+L 292.694444 454.227778 
+L 265.772222 454.227778 
+z
+" style="fill:#0000ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 481.15 
+L 319.616667 481.15 
+L 319.616667 454.227778 
+L 292.694444 454.227778 
+z
+" style="fill:#0000ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 481.15 
+L 346.538889 481.15 
+L 346.538889 454.227778 
+L 319.616667 454.227778 
+z
+" style="fill:#0004ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 481.15 
+L 373.461111 481.15 
+L 373.461111 454.227778 
+L 346.538889 454.227778 
+z
+" style="fill:#0008ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 481.15 
+L 400.383333 481.15 
+L 400.383333 454.227778 
+L 373.461111 454.227778 
+z
+" style="fill:#000cff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 481.15 
+L 427.305556 481.15 
+L 427.305556 454.227778 
+L 400.383333 454.227778 
+z
+" style="fill:#0010ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 481.15 
+L 454.227778 481.15 
+L 454.227778 454.227778 
+L 427.305556 454.227778 
+z
+" style="fill:#0014ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 481.15 
+L 481.15 481.15 
+L 481.15 454.227778 
+L 454.227778 454.227778 
+z
+" style="fill:#0018ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 481.15 
+L 508.072222 481.15 
+L 508.072222 454.227778 
+L 481.15 454.227778 
+z
+" style="fill:#0020ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 481.15 
+L 534.994444 481.15 
+L 534.994444 454.227778 
+L 508.072222 454.227778 
+z
+" style="fill:#0024ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 481.15 
+L 561.916667 481.15 
+L 561.916667 454.227778 
+L 534.994444 454.227778 
+z
+" style="fill:#0028ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 481.15 
+L 588.838889 481.15 
+L 588.838889 454.227778 
+L 561.916667 454.227778 
+z
+" style="fill:#002cff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 481.15 
+L 615.761111 481.15 
+L 615.761111 454.227778 
+L 588.838889 454.227778 
+z
+" style="fill:#0030ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 481.15 
+L 642.683333 481.15 
+L 642.683333 454.227778 
+L 615.761111 454.227778 
+z
+" style="fill:#0034ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 454.227778 
+L 104.238889 454.227778 
+L 104.238889 427.305556 
+L 77.316667 427.305556 
+z
+" style="fill:#0038ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 454.227778 
+L 131.161111 454.227778 
+L 131.161111 427.305556 
+L 104.238889 427.305556 
+z
+" style="fill:#003cff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 454.227778 
+L 158.083333 454.227778 
+L 158.083333 427.305556 
+L 131.161111 427.305556 
+z
+" style="fill:#0040ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 454.227778 
+L 185.005556 454.227778 
+L 185.005556 427.305556 
+L 158.083333 427.305556 
+z
+" style="fill:#0048ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 454.227778 
+L 211.927778 454.227778 
+L 211.927778 427.305556 
+L 185.005556 427.305556 
+z
+" style="fill:#004cff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 454.227778 
+L 238.85 454.227778 
+L 238.85 427.305556 
+L 211.927778 427.305556 
+z
+" style="fill:#0050ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 454.227778 
+L 265.772222 454.227778 
+L 265.772222 427.305556 
+L 238.85 427.305556 
+z
+" style="fill:#0054ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 454.227778 
+L 292.694444 454.227778 
+L 292.694444 427.305556 
+L 265.772222 427.305556 
+z
+" style="fill:#0058ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 454.227778 
+L 319.616667 454.227778 
+L 319.616667 427.305556 
+L 292.694444 427.305556 
+z
+" style="fill:#005cff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 454.227778 
+L 346.538889 454.227778 
+L 346.538889 427.305556 
+L 319.616667 427.305556 
+z
+" style="fill:#0060ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 454.227778 
+L 373.461111 454.227778 
+L 373.461111 427.305556 
+L 346.538889 427.305556 
+z
+" style="fill:#0064ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 454.227778 
+L 400.383333 454.227778 
+L 400.383333 427.305556 
+L 373.461111 427.305556 
+z
+" style="fill:#0068ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 454.227778 
+L 427.305556 454.227778 
+L 427.305556 427.305556 
+L 400.383333 427.305556 
+z
+" style="fill:#0070ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 454.227778 
+L 454.227778 454.227778 
+L 454.227778 427.305556 
+L 427.305556 427.305556 
+z
+" style="fill:#0074ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 454.227778 
+L 481.15 454.227778 
+L 481.15 427.305556 
+L 454.227778 427.305556 
+z
+" style="fill:#0078ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 454.227778 
+L 508.072222 454.227778 
+L 508.072222 427.305556 
+L 481.15 427.305556 
+z
+" style="fill:#007cff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 454.227778 
+L 534.994444 454.227778 
+L 534.994444 427.305556 
+L 508.072222 427.305556 
+z
+" style="fill:#0080ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 454.227778 
+L 561.916667 454.227778 
+L 561.916667 427.305556 
+L 534.994444 427.305556 
+z
+" style="fill:#0084ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 454.227778 
+L 588.838889 454.227778 
+L 588.838889 427.305556 
+L 561.916667 427.305556 
+z
+" style="fill:#0088ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 454.227778 
+L 615.761111 454.227778 
+L 615.761111 427.305556 
+L 588.838889 427.305556 
+z
+" style="fill:#008cff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 454.227778 
+L 642.683333 454.227778 
+L 642.683333 427.305556 
+L 615.761111 427.305556 
+z
+" style="fill:#0094ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 427.305556 
+L 104.238889 427.305556 
+L 104.238889 400.383333 
+L 77.316667 400.383333 
+z
+" style="fill:#0098ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 427.305556 
+L 131.161111 427.305556 
+L 131.161111 400.383333 
+L 104.238889 400.383333 
+z
+" style="fill:#009cff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 427.305556 
+L 158.083333 427.305556 
+L 158.083333 400.383333 
+L 131.161111 400.383333 
+z
+" style="fill:#00a0ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 427.305556 
+L 185.005556 427.305556 
+L 185.005556 400.383333 
+L 158.083333 400.383333 
+z
+" style="fill:#00a4ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 427.305556 
+L 211.927778 427.305556 
+L 211.927778 400.383333 
+L 185.005556 400.383333 
+z
+" style="fill:#00a8ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 427.305556 
+L 238.85 427.305556 
+L 238.85 400.383333 
+L 211.927778 400.383333 
+z
+" style="fill:#00acff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 427.305556 
+L 265.772222 427.305556 
+L 265.772222 400.383333 
+L 238.85 400.383333 
+z
+" style="fill:#00b0ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 427.305556 
+L 292.694444 427.305556 
+L 292.694444 400.383333 
+L 265.772222 400.383333 
+z
+" style="fill:#00b4ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 427.305556 
+L 319.616667 427.305556 
+L 319.616667 400.383333 
+L 292.694444 400.383333 
+z
+" style="fill:#00bcff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 427.305556 
+L 346.538889 427.305556 
+L 346.538889 400.383333 
+L 319.616667 400.383333 
+z
+" style="fill:#00c0ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 427.305556 
+L 373.461111 427.305556 
+L 373.461111 400.383333 
+L 346.538889 400.383333 
+z
+" style="fill:#00c4ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 427.305556 
+L 400.383333 427.305556 
+L 400.383333 400.383333 
+L 373.461111 400.383333 
+z
+" style="fill:#00c8ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 427.305556 
+L 427.305556 427.305556 
+L 427.305556 400.383333 
+L 400.383333 400.383333 
+z
+" style="fill:#00ccff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 427.305556 
+L 454.227778 427.305556 
+L 454.227778 400.383333 
+L 427.305556 400.383333 
+z
+" style="fill:#00d0ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 427.305556 
+L 481.15 427.305556 
+L 481.15 400.383333 
+L 454.227778 400.383333 
+z
+" style="fill:#00d4ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 427.305556 
+L 508.072222 427.305556 
+L 508.072222 400.383333 
+L 481.15 400.383333 
+z
+" style="fill:#00d8ff;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 427.305556 
+L 534.994444 427.305556 
+L 534.994444 400.383333 
+L 508.072222 400.383333 
+z
+" style="fill:#00dcfe;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 427.305556 
+L 561.916667 427.305556 
+L 561.916667 400.383333 
+L 534.994444 400.383333 
+z
+" style="fill:#00e4f8;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 427.305556 
+L 588.838889 427.305556 
+L 588.838889 400.383333 
+L 561.916667 400.383333 
+z
+" style="fill:#02e8f4;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 427.305556 
+L 615.761111 427.305556 
+L 615.761111 400.383333 
+L 588.838889 400.383333 
+z
+" style="fill:#06ecf1;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 427.305556 
+L 642.683333 427.305556 
+L 642.683333 400.383333 
+L 615.761111 400.383333 
+z
+" style="fill:#09f0ee;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 400.383333 
+L 104.238889 400.383333 
+L 104.238889 373.461111 
+L 77.316667 373.461111 
+z
+" style="fill:#0cf4eb;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 400.383333 
+L 131.161111 400.383333 
+L 131.161111 373.461111 
+L 104.238889 373.461111 
+z
+" style="fill:#0ff8e7;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 400.383333 
+L 158.083333 400.383333 
+L 158.083333 373.461111 
+L 131.161111 373.461111 
+z
+" style="fill:#13fce4;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 400.383333 
+L 185.005556 400.383333 
+L 185.005556 373.461111 
+L 158.083333 373.461111 
+z
+" style="fill:#16ffe1;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 400.383333 
+L 211.927778 400.383333 
+L 211.927778 373.461111 
+L 185.005556 373.461111 
+z
+" style="fill:#19ffde;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 400.383333 
+L 238.85 400.383333 
+L 238.85 373.461111 
+L 211.927778 373.461111 
+z
+" style="fill:#1fffd7;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 400.383333 
+L 265.772222 400.383333 
+L 265.772222 373.461111 
+L 238.85 373.461111 
+z
+" style="fill:#23ffd4;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 400.383333 
+L 292.694444 400.383333 
+L 292.694444 373.461111 
+L 265.772222 373.461111 
+z
+" style="fill:#26ffd1;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 400.383333 
+L 319.616667 400.383333 
+L 319.616667 373.461111 
+L 292.694444 373.461111 
+z
+" style="fill:#29ffce;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 400.383333 
+L 346.538889 400.383333 
+L 346.538889 373.461111 
+L 319.616667 373.461111 
+z
+" style="fill:#2cffca;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 400.383333 
+L 373.461111 400.383333 
+L 373.461111 373.461111 
+L 346.538889 373.461111 
+z
+" style="fill:#30ffc7;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 400.383333 
+L 400.383333 400.383333 
+L 400.383333 373.461111 
+L 373.461111 373.461111 
+z
+" style="fill:#33ffc4;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 400.383333 
+L 427.305556 400.383333 
+L 427.305556 373.461111 
+L 400.383333 373.461111 
+z
+" style="fill:#36ffc1;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 400.383333 
+L 454.227778 400.383333 
+L 454.227778 373.461111 
+L 427.305556 373.461111 
+z
+" style="fill:#39ffbe;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 400.383333 
+L 481.15 400.383333 
+L 481.15 373.461111 
+L 454.227778 373.461111 
+z
+" style="fill:#40ffb7;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 400.383333 
+L 508.072222 400.383333 
+L 508.072222 373.461111 
+L 481.15 373.461111 
+z
+" style="fill:#43ffb4;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 400.383333 
+L 534.994444 400.383333 
+L 534.994444 373.461111 
+L 508.072222 373.461111 
+z
+" style="fill:#46ffb1;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 400.383333 
+L 561.916667 400.383333 
+L 561.916667 373.461111 
+L 534.994444 373.461111 
+z
+" style="fill:#49ffad;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 400.383333 
+L 588.838889 400.383333 
+L 588.838889 373.461111 
+L 561.916667 373.461111 
+z
+" style="fill:#4dffaa;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 400.383333 
+L 615.761111 400.383333 
+L 615.761111 373.461111 
+L 588.838889 373.461111 
+z
+" style="fill:#50ffa7;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 400.383333 
+L 642.683333 400.383333 
+L 642.683333 373.461111 
+L 615.761111 373.461111 
+z
+" style="fill:#53ffa4;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 373.461111 
+L 104.238889 373.461111 
+L 104.238889 346.538889 
+L 77.316667 346.538889 
+z
+" style="fill:#56ffa0;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 373.461111 
+L 131.161111 373.461111 
+L 131.161111 346.538889 
+L 104.238889 346.538889 
+z
+" style="fill:#5aff9d;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 373.461111 
+L 158.083333 373.461111 
+L 158.083333 346.538889 
+L 131.161111 346.538889 
+z
+" style="fill:#60ff97;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 373.461111 
+L 185.005556 373.461111 
+L 185.005556 346.538889 
+L 158.083333 346.538889 
+z
+" style="fill:#63ff94;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 373.461111 
+L 211.927778 373.461111 
+L 211.927778 346.538889 
+L 185.005556 346.538889 
+z
+" style="fill:#66ff90;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 373.461111 
+L 238.85 373.461111 
+L 238.85 346.538889 
+L 211.927778 346.538889 
+z
+" style="fill:#6aff8d;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 373.461111 
+L 265.772222 373.461111 
+L 265.772222 346.538889 
+L 238.85 346.538889 
+z
+" style="fill:#6dff8a;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 373.461111 
+L 292.694444 373.461111 
+L 292.694444 346.538889 
+L 265.772222 346.538889 
+z
+" style="fill:#70ff87;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 373.461111 
+L 319.616667 373.461111 
+L 319.616667 346.538889 
+L 292.694444 346.538889 
+z
+" style="fill:#73ff83;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 373.461111 
+L 346.538889 373.461111 
+L 346.538889 346.538889 
+L 319.616667 346.538889 
+z
+" style="fill:#77ff80;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 373.461111 
+L 373.461111 373.461111 
+L 373.461111 346.538889 
+L 346.538889 346.538889 
+z
+" style="fill:#7dff7a;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 373.461111 
+L 400.383333 373.461111 
+L 400.383333 346.538889 
+L 373.461111 346.538889 
+z
+" style="fill:#80ff77;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 373.461111 
+L 427.305556 373.461111 
+L 427.305556 346.538889 
+L 400.383333 346.538889 
+z
+" style="fill:#83ff73;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 373.461111 
+L 454.227778 373.461111 
+L 454.227778 346.538889 
+L 427.305556 346.538889 
+z
+" style="fill:#87ff70;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 373.461111 
+L 481.15 373.461111 
+L 481.15 346.538889 
+L 454.227778 346.538889 
+z
+" style="fill:#8aff6d;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 373.461111 
+L 508.072222 373.461111 
+L 508.072222 346.538889 
+L 481.15 346.538889 
+z
+" style="fill:#8dff6a;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 373.461111 
+L 534.994444 373.461111 
+L 534.994444 346.538889 
+L 508.072222 346.538889 
+z
+" style="fill:#90ff66;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 373.461111 
+L 561.916667 373.461111 
+L 561.916667 346.538889 
+L 534.994444 346.538889 
+z
+" style="fill:#94ff63;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 373.461111 
+L 588.838889 373.461111 
+L 588.838889 346.538889 
+L 561.916667 346.538889 
+z
+" style="fill:#97ff60;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 373.461111 
+L 615.761111 373.461111 
+L 615.761111 346.538889 
+L 588.838889 346.538889 
+z
+" style="fill:#9dff5a;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 373.461111 
+L 642.683333 373.461111 
+L 642.683333 346.538889 
+L 615.761111 346.538889 
+z
+" style="fill:#a0ff56;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 346.538889 
+L 104.238889 346.538889 
+L 104.238889 319.616667 
+L 77.316667 319.616667 
+z
+" style="fill:#a4ff53;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 346.538889 
+L 131.161111 346.538889 
+L 131.161111 319.616667 
+L 104.238889 319.616667 
+z
+" style="fill:#a7ff50;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 346.538889 
+L 158.083333 346.538889 
+L 158.083333 319.616667 
+L 131.161111 319.616667 
+z
+" style="fill:#aaff4d;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 346.538889 
+L 185.005556 346.538889 
+L 185.005556 319.616667 
+L 158.083333 319.616667 
+z
+" style="fill:#adff49;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 346.538889 
+L 211.927778 346.538889 
+L 211.927778 319.616667 
+L 185.005556 319.616667 
+z
+" style="fill:#b1ff46;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 346.538889 
+L 238.85 346.538889 
+L 238.85 319.616667 
+L 211.927778 319.616667 
+z
+" style="fill:#b4ff43;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 346.538889 
+L 265.772222 346.538889 
+L 265.772222 319.616667 
+L 238.85 319.616667 
+z
+" style="fill:#b7ff40;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 346.538889 
+L 292.694444 346.538889 
+L 292.694444 319.616667 
+L 265.772222 319.616667 
+z
+" style="fill:#beff39;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 346.538889 
+L 319.616667 346.538889 
+L 319.616667 319.616667 
+L 292.694444 319.616667 
+z
+" style="fill:#c1ff36;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 346.538889 
+L 346.538889 346.538889 
+L 346.538889 319.616667 
+L 319.616667 319.616667 
+z
+" style="fill:#c4ff33;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 346.538889 
+L 373.461111 346.538889 
+L 373.461111 319.616667 
+L 346.538889 319.616667 
+z
+" style="fill:#c7ff30;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 346.538889 
+L 400.383333 346.538889 
+L 400.383333 319.616667 
+L 373.461111 319.616667 
+z
+" style="fill:#caff2c;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 346.538889 
+L 427.305556 346.538889 
+L 427.305556 319.616667 
+L 400.383333 319.616667 
+z
+" style="fill:#ceff29;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 346.538889 
+L 454.227778 346.538889 
+L 454.227778 319.616667 
+L 427.305556 319.616667 
+z
+" style="fill:#d1ff26;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 346.538889 
+L 481.15 346.538889 
+L 481.15 319.616667 
+L 454.227778 319.616667 
+z
+" style="fill:#d4ff23;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 346.538889 
+L 508.072222 346.538889 
+L 508.072222 319.616667 
+L 481.15 319.616667 
+z
+" style="fill:#d7ff1f;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 346.538889 
+L 534.994444 346.538889 
+L 534.994444 319.616667 
+L 508.072222 319.616667 
+z
+" style="fill:#deff19;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 346.538889 
+L 561.916667 346.538889 
+L 561.916667 319.616667 
+L 534.994444 319.616667 
+z
+" style="fill:#e1ff16;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 346.538889 
+L 588.838889 346.538889 
+L 588.838889 319.616667 
+L 561.916667 319.616667 
+z
+" style="fill:#e4ff13;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 346.538889 
+L 615.761111 346.538889 
+L 615.761111 319.616667 
+L 588.838889 319.616667 
+z
+" style="fill:#e7ff0f;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 346.538889 
+L 642.683333 346.538889 
+L 642.683333 319.616667 
+L 615.761111 319.616667 
+z
+" style="fill:#ebff0c;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 319.616667 
+L 104.238889 319.616667 
+L 104.238889 292.694444 
+L 77.316667 292.694444 
+z
+" style="fill:#eeff09;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 319.616667 
+L 131.161111 319.616667 
+L 131.161111 292.694444 
+L 104.238889 292.694444 
+z
+" style="fill:#f1fc06;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 319.616667 
+L 158.083333 319.616667 
+L 158.083333 292.694444 
+L 131.161111 292.694444 
+z
+" style="fill:#f4f802;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 319.616667 
+L 185.005556 319.616667 
+L 185.005556 292.694444 
+L 158.083333 292.694444 
+z
+" style="fill:#f8f500;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 319.616667 
+L 211.927778 319.616667 
+L 211.927778 292.694444 
+L 185.005556 292.694444 
+z
+" style="fill:#feed00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 319.616667 
+L 238.85 319.616667 
+L 238.85 292.694444 
+L 211.927778 292.694444 
+z
+" style="fill:#ffea00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 319.616667 
+L 265.772222 319.616667 
+L 265.772222 292.694444 
+L 238.85 292.694444 
+z
+" style="fill:#ffe600;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 319.616667 
+L 292.694444 319.616667 
+L 292.694444 292.694444 
+L 265.772222 292.694444 
+z
+" style="fill:#ffe200;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 319.616667 
+L 319.616667 319.616667 
+L 319.616667 292.694444 
+L 292.694444 292.694444 
+z
+" style="fill:#ffde00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 319.616667 
+L 346.538889 319.616667 
+L 346.538889 292.694444 
+L 319.616667 292.694444 
+z
+" style="fill:#ffdb00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 319.616667 
+L 373.461111 319.616667 
+L 373.461111 292.694444 
+L 346.538889 292.694444 
+z
+" style="fill:#ffd700;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 319.616667 
+L 400.383333 319.616667 
+L 400.383333 292.694444 
+L 373.461111 292.694444 
+z
+" style="fill:#ffd300;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 319.616667 
+L 427.305556 319.616667 
+L 427.305556 292.694444 
+L 400.383333 292.694444 
+z
+" style="fill:#ffd000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 319.616667 
+L 454.227778 319.616667 
+L 454.227778 292.694444 
+L 427.305556 292.694444 
+z
+" style="fill:#ffc800;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 319.616667 
+L 481.15 319.616667 
+L 481.15 292.694444 
+L 454.227778 292.694444 
+z
+" style="fill:#ffc400;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 319.616667 
+L 508.072222 319.616667 
+L 508.072222 292.694444 
+L 481.15 292.694444 
+z
+" style="fill:#ffc100;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 319.616667 
+L 534.994444 319.616667 
+L 534.994444 292.694444 
+L 508.072222 292.694444 
+z
+" style="fill:#ffbd00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 319.616667 
+L 561.916667 319.616667 
+L 561.916667 292.694444 
+L 534.994444 292.694444 
+z
+" style="fill:#ffb900;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 319.616667 
+L 588.838889 319.616667 
+L 588.838889 292.694444 
+L 561.916667 292.694444 
+z
+" style="fill:#ffb600;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 319.616667 
+L 615.761111 319.616667 
+L 615.761111 292.694444 
+L 588.838889 292.694444 
+z
+" style="fill:#ffb200;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 319.616667 
+L 642.683333 319.616667 
+L 642.683333 292.694444 
+L 615.761111 292.694444 
+z
+" style="fill:#ffae00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 292.694444 
+L 104.238889 292.694444 
+L 104.238889 265.772222 
+L 77.316667 265.772222 
+z
+" style="fill:#ffab00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 292.694444 
+L 131.161111 292.694444 
+L 131.161111 265.772222 
+L 104.238889 265.772222 
+z
+" style="fill:#ffa300;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 292.694444 
+L 158.083333 292.694444 
+L 158.083333 265.772222 
+L 131.161111 265.772222 
+z
+" style="fill:#ff9f00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 292.694444 
+L 185.005556 292.694444 
+L 185.005556 265.772222 
+L 158.083333 265.772222 
+z
+" style="fill:#ff9c00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 292.694444 
+L 211.927778 292.694444 
+L 211.927778 265.772222 
+L 185.005556 265.772222 
+z
+" style="fill:#ff9800;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 292.694444 
+L 238.85 292.694444 
+L 238.85 265.772222 
+L 211.927778 265.772222 
+z
+" style="fill:#ff9400;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 292.694444 
+L 265.772222 292.694444 
+L 265.772222 265.772222 
+L 238.85 265.772222 
+z
+" style="fill:#ff9100;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 292.694444 
+L 292.694444 292.694444 
+L 292.694444 265.772222 
+L 265.772222 265.772222 
+z
+" style="fill:#ff8d00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 292.694444 
+L 319.616667 292.694444 
+L 319.616667 265.772222 
+L 292.694444 265.772222 
+z
+" style="fill:#ff8900;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 292.694444 
+L 346.538889 292.694444 
+L 346.538889 265.772222 
+L 319.616667 265.772222 
+z
+" style="fill:#ff8200;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 292.694444 
+L 373.461111 292.694444 
+L 373.461111 265.772222 
+L 346.538889 265.772222 
+z
+" style="fill:#ff7e00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 292.694444 
+L 400.383333 292.694444 
+L 400.383333 265.772222 
+L 373.461111 265.772222 
+z
+" style="fill:#ff7a00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 292.694444 
+L 427.305556 292.694444 
+L 427.305556 265.772222 
+L 400.383333 265.772222 
+z
+" style="fill:#ff7700;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 292.694444 
+L 454.227778 292.694444 
+L 454.227778 265.772222 
+L 427.305556 265.772222 
+z
+" style="fill:#ff7300;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 292.694444 
+L 481.15 292.694444 
+L 481.15 265.772222 
+L 454.227778 265.772222 
+z
+" style="fill:#ff6f00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 292.694444 
+L 508.072222 292.694444 
+L 508.072222 265.772222 
+L 481.15 265.772222 
+z
+" style="fill:#ff6c00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 292.694444 
+L 534.994444 292.694444 
+L 534.994444 265.772222 
+L 508.072222 265.772222 
+z
+" style="fill:#ff6800;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 292.694444 
+L 561.916667 292.694444 
+L 561.916667 265.772222 
+L 534.994444 265.772222 
+z
+" style="fill:#ff6400;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 292.694444 
+L 588.838889 292.694444 
+L 588.838889 265.772222 
+L 561.916667 265.772222 
+z
+" style="fill:#ff5d00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 292.694444 
+L 615.761111 292.694444 
+L 615.761111 265.772222 
+L 588.838889 265.772222 
+z
+" style="fill:#ff5900;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 292.694444 
+L 642.683333 292.694444 
+L 642.683333 265.772222 
+L 615.761111 265.772222 
+z
+" style="fill:#ff5500;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 265.772222 
+L 104.238889 265.772222 
+L 104.238889 238.85 
+L 77.316667 238.85 
+z
+" style="fill:#ff5200;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 265.772222 
+L 131.161111 265.772222 
+L 131.161111 238.85 
+L 104.238889 238.85 
+z
+" style="fill:#ff4e00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 265.772222 
+L 158.083333 265.772222 
+L 158.083333 238.85 
+L 131.161111 238.85 
+z
+" style="fill:#ff4a00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 265.772222 
+L 185.005556 265.772222 
+L 185.005556 238.85 
+L 158.083333 238.85 
+z
+" style="fill:#ff4700;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 265.772222 
+L 211.927778 265.772222 
+L 211.927778 238.85 
+L 185.005556 238.85 
+z
+" style="fill:#ff4300;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 265.772222 
+L 238.85 265.772222 
+L 238.85 238.85 
+L 211.927778 238.85 
+z
+" style="fill:#ff3f00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 265.772222 
+L 265.772222 265.772222 
+L 265.772222 238.85 
+L 238.85 238.85 
+z
+" style="fill:#ff3800;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 265.772222 
+L 292.694444 265.772222 
+L 292.694444 238.85 
+L 265.772222 238.85 
+z
+" style="fill:#ff3400;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 265.772222 
+L 319.616667 265.772222 
+L 319.616667 238.85 
+L 292.694444 238.85 
+z
+" style="fill:#ff3000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 265.772222 
+L 346.538889 265.772222 
+L 346.538889 238.85 
+L 319.616667 238.85 
+z
+" style="fill:#ff2d00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 265.772222 
+L 373.461111 265.772222 
+L 373.461111 238.85 
+L 346.538889 238.85 
+z
+" style="fill:#ff2900;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 265.772222 
+L 400.383333 265.772222 
+L 400.383333 238.85 
+L 373.461111 238.85 
+z
+" style="fill:#ff2500;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 265.772222 
+L 427.305556 265.772222 
+L 427.305556 238.85 
+L 400.383333 238.85 
+z
+" style="fill:#ff2200;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 265.772222 
+L 454.227778 265.772222 
+L 454.227778 238.85 
+L 427.305556 238.85 
+z
+" style="fill:#ff1e00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 265.772222 
+L 481.15 265.772222 
+L 481.15 238.85 
+L 454.227778 238.85 
+z
+" style="fill:#ff1a00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 265.772222 
+L 508.072222 265.772222 
+L 508.072222 238.85 
+L 481.15 238.85 
+z
+" style="fill:#ff1300;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 265.772222 
+L 534.994444 265.772222 
+L 534.994444 238.85 
+L 508.072222 238.85 
+z
+" style="fill:#fa0f00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 265.772222 
+L 561.916667 265.772222 
+L 561.916667 238.85 
+L 534.994444 238.85 
+z
+" style="fill:#f60b00;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 265.772222 
+L 588.838889 265.772222 
+L 588.838889 238.85 
+L 561.916667 238.85 
+z
+" style="fill:#f10800;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 265.772222 
+L 615.761111 265.772222 
+L 615.761111 238.85 
+L 588.838889 238.85 
+z
+" style="fill:#ed0400;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 265.772222 
+L 642.683333 265.772222 
+L 642.683333 238.85 
+L 615.761111 238.85 
+z
+" style="fill:#e80000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 77.316667 238.85 
+L 104.238889 238.85 
+L 104.238889 211.927778 
+L 77.316667 211.927778 
+z
+" style="fill:#e40000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 104.238889 238.85 
+L 131.161111 238.85 
+L 131.161111 211.927778 
+L 104.238889 211.927778 
+z
+" style="fill:#df0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 131.161111 238.85 
+L 158.083333 238.85 
+L 158.083333 211.927778 
+L 131.161111 211.927778 
+z
+" style="fill:#da0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 158.083333 238.85 
+L 185.005556 238.85 
+L 185.005556 211.927778 
+L 158.083333 211.927778 
+z
+" style="fill:#d10000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 185.005556 238.85 
+L 211.927778 238.85 
+L 211.927778 211.927778 
+L 185.005556 211.927778 
+z
+" style="fill:#cd0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 211.927778 238.85 
+L 238.85 238.85 
+L 238.85 211.927778 
+L 211.927778 211.927778 
+z
+" style="fill:#c80000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 238.85 238.85 
+L 265.772222 238.85 
+L 265.772222 211.927778 
+L 238.85 211.927778 
+z
+" style="fill:#c40000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 265.772222 238.85 
+L 292.694444 238.85 
+L 292.694444 211.927778 
+L 265.772222 211.927778 
+z
+" style="fill:#bf0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 292.694444 238.85 
+L 319.616667 238.85 
+L 319.616667 211.927778 
+L 292.694444 211.927778 
+z
+" style="fill:#bb0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 319.616667 238.85 
+L 346.538889 238.85 
+L 346.538889 211.927778 
+L 319.616667 211.927778 
+z
+" style="fill:#b60000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 346.538889 238.85 
+L 373.461111 238.85 
+L 373.461111 211.927778 
+L 346.538889 211.927778 
+z
+" style="fill:#b20000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 373.461111 238.85 
+L 400.383333 238.85 
+L 400.383333 211.927778 
+L 373.461111 211.927778 
+z
+" style="fill:#ad0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 400.383333 238.85 
+L 427.305556 238.85 
+L 427.305556 211.927778 
+L 400.383333 211.927778 
+z
+" style="fill:#a40000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 427.305556 238.85 
+L 454.227778 238.85 
+L 454.227778 211.927778 
+L 427.305556 211.927778 
+z
+" style="fill:#9f0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 454.227778 238.85 
+L 481.15 238.85 
+L 481.15 211.927778 
+L 454.227778 211.927778 
+z
+" style="fill:#9b0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 481.15 238.85 
+L 508.072222 238.85 
+L 508.072222 211.927778 
+L 481.15 211.927778 
+z
+" style="fill:#960000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 508.072222 238.85 
+L 534.994444 238.85 
+L 534.994444 211.927778 
+L 508.072222 211.927778 
+z
+" style="fill:#920000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 534.994444 238.85 
+L 561.916667 238.85 
+L 561.916667 211.927778 
+L 534.994444 211.927778 
+z
+" style="fill:#8d0000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 561.916667 238.85 
+L 588.838889 238.85 
+L 588.838889 211.927778 
+L 561.916667 211.927778 
+z
+" style="fill:#890000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 588.838889 238.85 
+L 615.761111 238.85 
+L 615.761111 211.927778 
+L 588.838889 211.927778 
+z
+" style="fill:#840000;stroke:#000000;"/>
+    <path clip-path="url(#pcd77f0de20)" d="M 615.761111 238.85 
+L 642.683333 238.85 
+L 642.683333 211.927778 
+L 615.761111 211.927778 
+z
+" style="fill:#800000;stroke:#000000;"/>
+   </g>
+   <g id="line2d_1">
+    <defs>
+     <path d="M 0 3 
+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 
+C 2.683901 1.55874 3 0.795609 3 0 
+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 
+C 1.55874 -2.683901 0.795609 -3 0 -3 
+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 
+C -2.683901 -1.55874 -3 -0.795609 -3 0 
+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 
+C -1.55874 2.683901 -0.795609 3 0 3 
+z
+" id="m635e10850f" style="stroke:#000000;"/>
+    </defs>
+    <g clip-path="url(#pcd77f0de20)">
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="508.072222"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="481.15"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="454.227778"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="427.305556"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="400.383333"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="373.461111"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="346.538889"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="319.616667"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="292.694444"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="265.772222"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="238.85"/>
+     <use style="stroke:#000000;" x="77.316667" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="104.238889" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="131.161111" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="158.083333" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="185.005556" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="211.927778" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="238.85" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="265.772222" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="292.694444" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="319.616667" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="346.538889" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="373.461111" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="400.383333" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="427.305556" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="454.227778" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="481.15" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="508.072222" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="534.994444" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="561.916667" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="588.838889" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="615.761111" xlink:href="#m635e10850f" y="211.927778"/>
+     <use style="stroke:#000000;" x="642.683333" xlink:href="#m635e10850f" y="211.927778"/>
+    </g>
+   </g>
+   <g id="line2d_2">
+    <defs>
+     <path d="M 0 3 
+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 
+C 2.683901 1.55874 3 0.795609 3 0 
+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 
+C 1.55874 -2.683901 0.795609 -3 0 -3 
+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 
+C -2.683901 -1.55874 -3 -0.795609 -3 0 
+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 
+C -1.55874 2.683901 -0.795609 3 0 3 
+z
+" id="m8a209b9e3f" style="stroke:#008000;"/>
+    </defs>
+    <g clip-path="url(#pcd77f0de20)">
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="508.072222"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="481.15"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="454.227778"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="427.305556"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="400.383333"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="373.461111"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="346.538889"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="319.616667"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="292.694444"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="265.772222"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="238.85"/>
+     <use style="fill:#008000;stroke:#008000;" x="77.316667" xlink:href="#m8a209b9e3f" y="211.927778"/>
+    </g>
+   </g>
+   <g id="line2d_3">
+    <defs>
+     <path d="M 0 3 
+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 
+C 2.683901 1.55874 3 0.795609 3 0 
+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 
+C 1.55874 -2.683901 0.795609 -3 0 -3 
+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 
+C -2.683901 -1.55874 -3 -0.795609 -3 0 
+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 
+C -1.55874 2.683901 -0.795609 3 0 3 
+z
+" id="m04d8794764" style="stroke:#0000ff;"/>
+    </defs>
+    <g clip-path="url(#pcd77f0de20)">
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="508.072222"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="481.15"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="454.227778"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="427.305556"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="400.383333"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="373.461111"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="346.538889"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="319.616667"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="292.694444"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="265.772222"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="238.85"/>
+     <use style="fill:#0000ff;stroke:#0000ff;" x="642.683333" xlink:href="#m04d8794764" y="211.927778"/>
+    </g>
+   </g>
+   <g id="line2d_4">
+    <defs>
+     <path d="M 0 3 
+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 
+C 2.683901 1.55874 3 0.795609 3 0 
+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 
+C 1.55874 -2.683901 0.795609 -3 0 -3 
+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 
+C -2.683901 -1.55874 -3 -0.795609 -3 0 
+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 
+C -1.55874 2.683901 -0.795609 3 0 3 
+z
+" id="m650da9de81" style="stroke:#ff0000;"/>
+    </defs>
+    <g clip-path="url(#pcd77f0de20)">
+     <use style="fill:#ff0000;stroke:#ff0000;" x="77.316667" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="104.238889" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="131.161111" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="158.083333" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="185.005556" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="211.927778" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="238.85" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="265.772222" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="292.694444" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="319.616667" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="346.538889" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="373.461111" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="400.383333" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="427.305556" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="454.227778" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="481.15" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="508.072222" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="534.994444" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="561.916667" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="588.838889" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="615.761111" xlink:href="#m650da9de81" y="508.072222"/>
+     <use style="fill:#ff0000;stroke:#ff0000;" x="642.683333" xlink:href="#m650da9de81" y="508.072222"/>
+    </g>
+   </g>
+   <g id="line2d_5">
+    <defs>
+     <path d="M 0 3 
+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 
+C 2.683901 1.55874 3 0.795609 3 0 
+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 
+C 1.55874 -2.683901 0.795609 -3 0 -3 
+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 
+C -2.683901 -1.55874 -3 -0.795609 -3 0 
+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 
+C -1.55874 2.683901 -0.795609 3 0 3 
+z
+" id="m8a276ca432" style="stroke:#bfbf00;"/>
+    </defs>
+    <g clip-path="url(#pcd77f0de20)">
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="77.316667" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="104.238889" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="131.161111" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="158.083333" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="185.005556" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="211.927778" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="238.85" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="265.772222" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="292.694444" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="319.616667" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="346.538889" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="373.461111" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="400.383333" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="427.305556" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="454.227778" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="481.15" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="508.072222" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="534.994444" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="561.916667" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="588.838889" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="615.761111" xlink:href="#m8a276ca432" y="211.927778"/>
+     <use style="fill:#bfbf00;stroke:#bfbf00;" x="642.683333" xlink:href="#m8a276ca432" y="211.927778"/>
+    </g>
+   </g>
+   <g id="patch_3">
+    <path d="M 20.78 537.686667 
+L 20.78 182.313333 
+" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
+   </g>
+   <g id="patch_4">
+    <path d="M 699.22 537.686667 
+L 699.22 182.313333 
+" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
+   </g>
+   <g id="patch_5">
+    <path d="M 20.78 537.686667 
+L 699.22 537.686667 
+" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
+   </g>
+   <g id="patch_6">
+    <path d="M 20.78 182.313333 
+L 699.22 182.313333 
+" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/>
+   </g>
+  </g>
+ </g>
+ <defs>
+  <clipPath id="pcd77f0de20">
+   <rect height="355.373333" width="678.44" x="20.78" y="182.313333"/>
+  </clipPath>
+ </defs>
+</svg>
diff --git a/docs/index.rst b/docs/index.rst
index 8007449..22a518d 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,59 +1,60 @@
 
 *********
 GooseFEM
 *********
 
 Introduction
 ============
 
-GooseFEM provides several standard finite element simulations, some common element definitions, and some simple finite element meshes. A basic documentation is provided here, whereby one is highly urged to also look into the code itself, or at minimum the function decelerators and their comments.
+GooseFEM provides several standard finite element simulations, some common element definitions, and some simple finite element meshes. A basic documentation is provided here, whereby one is highly urged to look into the code itself, at minimum the function decelerators and their comments.
 
 .. note::
 
   This library is free to use under the `GPLv3 license <https://github.com/tdegeus/GooseFEM/blob/master/LICENSE>`_. Any additions are very much appreciated, in terms of suggested functionality, code, documentation, testimonials, word of mouth advertisement, .... Bug reports or feature requests can be filed on `GitHub <http://github.com/tdegeus/GooseFEM>`_. As always, the code comes with no guarantee. None of the developers can be held responsible for possible mistakes.
 
   Download: `.zip file <https://github.com/tdegeus/GooseFEM/zipball/master>`_ | `.tar.gz file <https://github.com/tdegeus/GooseFEM/tarball/master>`_.
 
   (c - `GPLv3 <https://github.com/tdegeus/GooseFEM/blob/master/LICENSE>`_) T.W.J. de Geus (Tom) | tom@geus.me | `www.geus.me <http://www.geus.me>`_ | `github.com/tdegeus/GooseFEM <http://github.com/tdegeus/GooseFEM>`_
 
 Contents
 ========
 
 GooseFEM documentation
 -----------------------
 
 .. toctree::
    :maxdepth: 1
 
    compile.rst
    Mesh.rst
    MeshTri3.rst
    MeshQuad4.rst
+   DynamicsDiagonal.rst
    develop.rst
 
 Theory
 ------
 
 .. toctree::
    :maxdepth: 1
 
    theory/readme.rst
 
 Examples
 --------
 
 .. toctree::
    :maxdepth: 1
 
    examples/theory/statics_small-strain_linear_dense/readme.rst
    examples/theory/statics_small-strain_nonlinear_dense/readme.rst
    examples/theory/diagonal_mass/readme.rst
 
 
 Indices and tables
 ==================
 
 * :ref:`genindex`
 * :ref:`modindex`
 * :ref:`search`