diff mbox

[1/3] doc: images: add svg for user-guide

Message ID 1445543775-11220-1-git-send-email-mike.holmes@linaro.org
State Superseded
Headers show

Commit Message

Mike Holmes Oct. 22, 2015, 7:56 p.m. UTC
Signed-off-by: Mike Holmes <mike.holmes@linaro.org>
---
 DEPENDENCIES                  |   9 +-
 configure.ac                  |  11 +
 doc/Makefile.am               |   4 +-
 doc/images/.gitignore         |   2 +
 doc/images/Makefile.am        |  33 +++
 doc/images/atomic_queue.svg   | 302 +++++++++++++++++++
 doc/images/ordered_queue.svg  | 658 ++++++++++++++++++++++++++++++++++++++++++
 doc/images/parallel_queue.svg | 470 ++++++++++++++++++++++++++++++
 8 files changed, 1486 insertions(+), 3 deletions(-)
 create mode 100644 doc/images/.gitignore
 create mode 100644 doc/images/Makefile.am
 create mode 100644 doc/images/atomic_queue.svg
 create mode 100644 doc/images/ordered_queue.svg
 create mode 100644 doc/images/parallel_queue.svg
diff mbox

Patch

diff --git a/DEPENDENCIES b/DEPENDENCIES
index 51951d7..7d22bde 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -187,7 +187,12 @@  Prerequisites for building the OpenDataPlane (ODP) API
    ./configure  --enable-cunit  #if cunit is in the PATH
    ./configure  --with-cunit-path=DIR #only if you need a path to Cunit libs and headers
 
-5.0 Documentation & Doxygen
+5.0 Documentation Images & Doxygen
+
+  Images are stored as svg files and the png or eps versions generated when the docs are built
+  Image magics convert application is used
+  # Debian/Ubuntu
+  # apt-get install imagemagick
 
 5.1 API Guide
 See http://www.stack.nl/~dimitri/doxygen/manual/install.html
@@ -206,7 +211,7 @@  The tested version of doxygen is 1.8.8
 
 5.2.1 HTML
    # Ubuntu
-   $ apt-get install asciidoc
+   $ apt-get install asciidoc source-highlight
 
    # Debian
    $ apt-get install asciidoc source-highlight
diff --git a/configure.ac b/configure.ac
index 5d84f92..0d08e58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -248,6 +248,16 @@  AC_ARG_ENABLE([user-guides],
 AM_CONDITIONAL([user_guide], [test "x${user_guides}" = "xyes" ])
 
 ##########################################################################
+# Check for imagemagic availability
+##########################################################################
+       AC_CHECK_PROGS([IMAGEMAGIC], [convert])
+       if test -z "$IMAGEMAGIC";
+          then AC_MSG_WARN([Imagemagic (convert) not found - continuing without image support])
+       fi
+
+AM_CONDITIONAL([HAVE_IMAGEMAGIC], [test "x${IMAGEMAGIC}" = "xconvert"])
+
+##########################################################################
 # Save and set temporary compilation flags
 ##########################################################################
 OLD_LDFLAGS=$LDFLAGS
@@ -296,6 +306,7 @@  AM_CXXFLAGS="-std=c++11"
 AC_CONFIG_FILES([Makefile
 		 doc/Makefile
 		 doc/implementers-guide/Makefile
+		 doc/images/Makefile
 		 example/Makefile
 		 example/classifier/Makefile
 		 example/generator/Makefile
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 73bd8e2..3aa29a3 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,8 +1,10 @@ 
+SUBDIRS = images
+
 if HAVE_DOXYGEN
 clean-local:
 	rm -rf output
 endif
 
 if user_guide
-SUBDIRS = implementers-guide
+SUBDIRS += implementers-guide
 endif
diff --git a/doc/images/.gitignore b/doc/images/.gitignore
new file mode 100644
index 0000000..148f2f2
--- /dev/null
+++ b/doc/images/.gitignore
@@ -0,0 +1,2 @@ 
+*.png
+*.eps
diff --git a/doc/images/Makefile.am b/doc/images/Makefile.am
new file mode 100644
index 0000000..df8f9d4
--- /dev/null
+++ b/doc/images/Makefile.am
@@ -0,0 +1,33 @@ 
+SVG_SRCS =  atomic_queue.svg \
+	ordered_queue.svg \
+	parallel_queue.svg
+SVG_TARGETS = $(SVG_SRCS:svg=png)
+SVG_TARGETS += $(SVG_SRCS:svg=eps)
+
+EXTRA_DIST = $(SVG_SRCS)
+
+TARGETS=
+
+if HAVE_IMAGEMAGIC
+TARGETS += $(SVG_TARGETS)
+endif
+
+all-local: $(TARGETS)
+
+clean-local:
+	rm -f $(TARGETS)
+
+atomic_queue.png: atomic_queue.svg
+	convert $< $@
+atomic_queue.eps: atomic_queue.svg
+	convert $< $@
+
+ordered_queue.png: ordered_queue.svg
+	convert $< $@
+parallel_queue.eps: parallel_queue.svg
+	convert $< $@
+
+parallel_queue.png: parallel_queue.svg
+	convert $< $@
+ordered_queue.eps: ordered_queue.svg
+	convert $< $@
diff --git a/doc/images/atomic_queue.svg b/doc/images/atomic_queue.svg
new file mode 100644
index 0000000..bd4958f
--- /dev/null
+++ b/doc/images/atomic_queue.svg
@@ -0,0 +1,302 @@ 
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   viewBox="0 0 528.09972 227.74805"
+   stroke-miterlimit="10"
+   id="svg4406"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="atomic_queue.svg"
+   width="528.09973"
+   height="227.74805"
+   style="fill:none;stroke:none;stroke-linecap:square;stroke-miterlimit:10">
+  <metadata
+     id="metadata4513">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs4511" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1176"
+     id="namedview4509"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="0.32777778"
+     inkscape:cx="1112.9523"
+     inkscape:cy="-489.62767"
+     inkscape:window-x="0"
+     inkscape:window-y="264"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg4406" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4413"
+     d="m -175.52231,-118.55643 960,0 0,720 -960,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4415"
+     d="m 1,28.9685 49.19685,0 0,34.92914 -49.19685,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4417"
+     d="m 1,28.9685 49.19685,0 0,34.92914 -49.19685,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4419"
+     d="m 50.19685,28.9685 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4421"
+     d="m 50.19685,28.9685 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4423"
+     d="m 75.86615,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4425"
+     d="m 75.86615,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4427"
+     d="m 101.53543,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4429"
+     d="m 101.53543,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4431"
+     d="m 225.56167,113.04724 17.81891,-35.63777 109.05511,0 17.81891,35.63777 -17.81891,35.63779 -109.05511,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4433"
+     d="m 225.56167,113.04724 17.81891,-35.63777 109.05511,0 17.81891,35.63777 -17.81891,35.63779 -109.05511,0 z" />
+  <path
+     style="fill:#000000;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4435"
+     d="m 253.41842,115.59224 1.6875,-0.14063 q 0.125,1.01563 0.5625,1.67188 0.4375,0.65625 1.35937,1.0625 0.9375,0.40625 2.09375,0.40625 1.03125,0 1.8125,-0.3125 0.79688,-0.3125 1.1875,-0.84375 0.39063,-0.53125 0.39063,-1.15625 0,-0.64063 -0.375,-1.10938 -0.375,-0.48437 -1.23438,-0.8125 -0.54687,-0.21875 -2.42187,-0.65625 -1.875,-0.45312 -2.625,-0.85937 -0.96875,-0.51563 -1.45313,-1.26563 -0.46875,-0.75 -0.46875,-1.6875 0,-1.03125 0.57813,-1.92187 0.59375,-0.90625 1.70312,-1.35938 1.125,-0.46875 2.5,-0.46875 1.51563,0 2.67188,0.48438 1.15625,0.48437 1.76562,1.4375 0.625,0.9375 0.67188,2.14062 l -1.71875,0.125 q -0.14063,-1.28125 -0.95313,-1.9375 -0.79687,-0.67187 -2.35937,-0.67187 -1.625,0 -2.375,0.60937 -0.75,0.59375 -0.75,1.4375 0,0.73438 0.53125,1.20313 0.51562,0.46875 2.70312,0.96875 2.20313,0.5 3.01563,0.875 1.1875,0.54687 1.75,1.39062 0.57812,0.82813 0.57812,1.92188 0,1.09375 -0.625,2.0625 -0.625,0.95312 -1.79687,1.48437 -1.15625,0.53125 -2.60938,0.53125 -1.84375,0 -3.09375,-0.53125 -1.25,-0.54687 -1.96875,-1.625 -0.70312,-1.07812 -0.73437,-2.45312 z m 19.2717,0.76562 1.64062,0.21875 q -0.26562,1.6875 -1.375,2.65625 -1.10937,0.95313 -2.73437,0.95313 -2.01563,0 -3.25,-1.3125 -1.21875,-1.32813 -1.21875,-3.79688 0,-1.59375 0.51562,-2.78125 0.53125,-1.20312 1.60938,-1.79687 1.09375,-0.60938 2.35937,-0.60938 1.60938,0 2.625,0.8125 1.01563,0.8125 1.3125,2.3125 l -1.625,0.25 q -0.23437,-1 -0.82812,-1.5 -0.59375,-0.5 -1.42188,-0.5 -1.26562,0 -2.0625,0.90625 -0.78125,0.90625 -0.78125,2.85938 0,1.98437 0.76563,2.89062 0.76562,0.89063 1.98437,0.89063 0.98438,0 1.64063,-0.59375 0.65625,-0.60938 0.84375,-1.85938 z m 2.89062,3.60938 0,-13.59375 1.67188,0 0,4.875 q 1.17187,-1.35938 2.95312,-1.35938 1.09375,0 1.89063,0.4375 0.8125,0.42188 1.15625,1.1875 0.35937,0.76563 0.35937,2.20313 l 0,6.25 -1.67187,0 0,-6.25 q 0,-1.25 -0.54688,-1.8125 -0.54687,-0.57813 -1.53125,-0.57813 -0.75,0 -1.40625,0.39063 -0.64062,0.375 -0.92187,1.04687 -0.28125,0.65625 -0.28125,1.8125 l 0,5.39063 -1.67188,0 z m 17.12574,-3.17188 1.71875,0.21875 q -0.40625,1.5 -1.51563,2.34375 -1.09375,0.82813 -2.8125,0.82813 -2.15625,0 -3.42187,-1.32813 -1.26563,-1.32812 -1.26563,-3.73437 0,-2.48438 1.26563,-3.85938 1.28125,-1.375 3.32812,-1.375 1.98438,0 3.23438,1.34375 1.25,1.34375 1.25,3.79688 0,0.14062 -0.0156,0.4375 l -7.34375,0 q 0.0937,1.625 0.92188,2.48437 0.82812,0.85938 2.0625,0.85938 0.90625,0 1.54687,-0.46875 0.65625,-0.48438 1.04688,-1.54688 z m -5.48438,-2.70312 5.5,0 q -0.10937,-1.23438 -0.625,-1.85938 -0.79687,-0.96875 -2.07812,-0.96875 -1.14063,0 -1.9375,0.78125 -0.78125,0.76563 -0.85938,2.04688 z m 15.5007,5.875 0,-1.25 q -0.9375,1.46875 -2.75,1.46875 -1.17187,0 -2.17187,-0.64063 -0.98438,-0.65625 -1.53125,-1.8125 -0.53125,-1.17187 -0.53125,-2.6875 0,-1.46875 0.48437,-2.67187 0.5,-1.20313 1.46875,-1.84375 0.98438,-0.64063 2.20313,-0.64063 0.89062,0 1.57812,0.375 0.70313,0.375 1.14063,0.98438 l 0,-4.875 1.65625,0 0,13.59375 -1.54688,0 z m -5.28125,-4.92188 q 0,1.89063 0.79688,2.82813 0.8125,0.9375 1.89062,0.9375 1.09375,0 1.85938,-0.89063 0.76562,-0.89062 0.76562,-2.73437 0,-2.01563 -0.78125,-2.95313 -0.78125,-0.95312 -1.92187,-0.95312 -1.10938,0 -1.85938,0.90625 -0.75,0.90625 -0.75,2.85937 z m 15.71948,4.92188 0,-1.45313 q -1.14062,1.67188 -3.125,1.67188 -0.85937,0 -1.625,-0.32813 -0.75,-0.34375 -1.125,-0.84375 -0.35937,-0.5 -0.51562,-1.23437 -0.0937,-0.5 -0.0937,-1.5625 l 0,-6.10938 1.67187,0 0,5.46875 q 0,1.3125 0.0937,1.76563 0.15625,0.65625 0.67188,1.03125 0.51562,0.375 1.26562,0.375 0.75,0 1.40625,-0.375 0.65625,-0.39063 0.92188,-1.04688 0.28125,-0.67187 0.28125,-1.9375 l 0,-5.28125 1.67187,0 0,9.85938 -1.5,0 z m 3.89133,0 0,-13.59375 1.67188,0 0,13.59375 -1.67188,0 z m 10.92609,-3.17188 1.71875,0.21875 q -0.40625,1.5 -1.51563,2.34375 -1.09375,0.82813 -2.8125,0.82813 -2.15625,0 -3.42187,-1.32813 -1.26563,-1.32812 -1.26563,-3.73437 0,-2.48438 1.26563,-3.85938 1.28125,-1.375 3.32812,-1.375 1.98438,0 3.23438,1.34375 1.25,1.34375 1.25,3.79688 0,0.14062 -0.0156,0.4375 l -7.34375,0 q 0.0937,1.625 0.92188,2.48437 0.82812,0.85938 2.0625,0.85938 0.90625,0 1.54687,-0.46875 0.65625,-0.48438 1.04688,-1.54688 z m -5.48438,-2.70312 5.5,0 q -0.10937,-1.23438 -0.625,-1.85938 -0.79687,-0.96875 -2.07812,-0.96875 -1.14063,0 -1.9375,0.78125 -0.78125,0.76563 -0.85938,2.04688 z m 9.09445,5.875 0,-9.85938 1.5,0 0,1.5 q 0.57813,-1.04687 1.0625,-1.375 0.48438,-0.34375 1.07813,-0.34375 0.84375,0 1.71875,0.54688 l -0.57813,1.54687 q -0.60937,-0.35937 -1.23437,-0.35937 -0.54688,0 -0.98438,0.32812 -0.42187,0.32813 -0.60937,0.90625 -0.28125,0.89063 -0.28125,1.95313 l 0,5.15625 -1.67188,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4437"
+     d="m 470.06039,10.50676 0,0 C 470.06039,5.25632 474.31668,1 479.5671,1 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4439"
+     d="m 470.06039,10.50676 0,0 C 470.06039,5.25632 474.31668,1 479.5671,1 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4441"
+     d="m 485.74539,28.79527 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4443"
+     d="m 485.74539,28.79527 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4445"
+     d="m 127.20471,46.43307 67.68506,-0.34645" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4447"
+     d="m 127.20471,46.43307 67.68506,-0.34645" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4449"
+     d="m 194.90027,46.7874 32.78738,44.91339" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4451"
+     d="m 194.90027,46.7874 32.78738,44.91339" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4453"
+     d="m 226.26509,92.41207 157.54327,0" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4455"
+     d="m 226.26509,92.41207 157.54327,0" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4457"
+     d="M 483.59839,46.78346 415.91333,46.43701" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4459"
+     d="M 483.59839,46.78346 415.91333,46.43701" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4461"
+     d="M 415.90289,47.1378 383.11554,92.05118" />
+  <path
+     style="fill-rule:nonzero;stroke:#9900ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4463"
+     d="M 415.90289,47.1378 383.11554,92.05118" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4465"
+     d="m 1,198.77954 49.19685,0 0,-34.92914 -49.19685,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4467"
+     d="m 1,198.77954 49.19685,0 0,-34.92914 -49.19685,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4469"
+     d="m 50.19685,198.77954 25.6693,0 0,-34.92914 -25.6693,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4471"
+     d="m 50.19685,198.77954 25.6693,0 0,-34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4473"
+     d="m 75.86615,198.77954 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4475"
+     d="m 75.86615,198.77954 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4477"
+     d="m 101.53543,198.77954 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4479"
+     d="m 101.53543,198.77954 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4481"
+     d="m 470.06039,217.24127 0,0 c 0,5.25046 4.25629,9.50678 9.50671,9.50678 l 38.02588,0 0,0 c 2.52137,0 4.93946,-1.00162 6.72229,-2.78449 1.78284,-1.78284 2.78449,-4.20093 2.78449,-6.72229 l 0,-71.50616 c 0,-5.25043 -4.25635,-9.50676 -9.50678,-9.50676 l -38.02588,0 c -5.25042,0 -9.50671,4.25633 -9.50671,9.50676 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4483"
+     d="m 470.06039,217.24127 0,0 c 0,5.25046 4.25629,9.50678 9.50671,9.50678 l 38.02588,0 0,0 c 2.52137,0 4.93946,-1.00162 6.72229,-2.78449 1.78284,-1.78284 2.78449,-4.20093 2.78449,-6.72229 l 0,-71.50616 c 0,-5.25043 -4.25635,-9.50676 -9.50678,-9.50676 l -38.02588,0 c -5.25042,0 -9.50671,4.25633 -9.50671,9.50676 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4485"
+     d="m 485.74539,198.95277 25.66931,0 0,-34.92914 -25.66931,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4487"
+     d="m 485.74539,198.95277 25.66931,0 0,-34.92914 -25.66931,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4489"
+     d="m 127.20471,181.31497 67.68506,0.34644" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4491"
+     d="m 127.20471,181.31497 67.68506,0.34644" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4493"
+     d="m 194.90027,180.96063 32.78738,-44.91339" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4495"
+     d="m 194.90027,180.96063 32.78738,-44.91339" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4497"
+     d="m 226.26509,135.33597 158.2677,-0.8504" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4499"
+     d="m 226.26509,135.33597 158.2677,-0.8504" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4501"
+     d="m 483.59839,180.96457 -67.68506,0.34647" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4503"
+     d="m 483.59839,180.96457 -67.68506,0.34647" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4505"
+     d="M 415.90289,180.61023 383.11554,135.69685" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4507"
+     d="M 415.90289,180.61023 383.11554,135.69685" />
+  <path
+     id="path4409"
+     d="m 623.79973,339.07069 959.99997,0 0,720.00001 -959.99997,0 0,-720.00001 z"
+     inkscape:connector-curvature="0"
+     style="clip-rule:nonzero" />
+</svg>
diff --git a/doc/images/ordered_queue.svg b/doc/images/ordered_queue.svg
new file mode 100644
index 0000000..dfc9c22
--- /dev/null
+++ b/doc/images/ordered_queue.svg
@@ -0,0 +1,658 @@ 
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   viewBox="0 0 761.46093 486.49073"
+   stroke-miterlimit="10"
+   id="svg4406"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ordered_queue.svg"
+   width="761.46094"
+   height="486.49072"
+   style="fill:none;stroke:none;stroke-linecap:square;stroke-miterlimit:10">
+  <metadata
+     id="metadata4513">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs4511">
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4562"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4565"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="2511"
+     inkscape:window-height="1416"
+     id="namedview4509"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="2.4820709"
+     inkscape:cx="414.43619"
+     inkscape:cy="241.85164"
+     inkscape:window-x="1969"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg4406"
+     inkscape:snap-global="true"
+     inkscape:snap-text-baseline="true" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4413"
+     d="m -172.68921,-118.55643 960,0 0,720 -960,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4415"
+     d="m 3.8331046,28.9685 49.1968504,0 0,34.92914 -49.1968504,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4417"
+     d="m 3.8331046,28.9685 49.1968504,0 0,34.92914 -49.1968504,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4419"
+     d="m 53.029955,28.9685 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4421"
+     d="m 53.029955,28.9685 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4423"
+     d="m 78.699255,28.9685 25.669275,0 0,34.92914 -25.669275,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4425"
+     d="m 78.699255,28.9685 25.669275,0 0,34.92914 -25.669275,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4427"
+     d="m 104.36853,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4429"
+     d="m 104.36853,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4431"
+     d="m 228.39477,113.04724 17.81891,-35.63777 109.05511,0 17.81891,35.63777 -17.81891,35.63779 -109.05511,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4433"
+     d="m 228.39477,113.04724 17.81891,-35.63777 109.05511,0 17.81891,35.63777 -17.81891,35.63779 -109.05511,0 z" />
+  <path
+     style="fill:#000000;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4435"
+     d="m 256.25152,115.59224 1.6875,-0.14063 q 0.125,1.01563 0.5625,1.67188 0.4375,0.65625 1.35937,1.0625 0.9375,0.40625 2.09375,0.40625 1.03125,0 1.8125,-0.3125 0.79688,-0.3125 1.1875,-0.84375 0.39063,-0.53125 0.39063,-1.15625 0,-0.64063 -0.375,-1.10938 -0.375,-0.48437 -1.23438,-0.8125 -0.54687,-0.21875 -2.42187,-0.65625 -1.875,-0.45312 -2.625,-0.85937 -0.96875,-0.51563 -1.45313,-1.26563 -0.46875,-0.75 -0.46875,-1.6875 0,-1.03125 0.57813,-1.92187 0.59375,-0.90625 1.70312,-1.35938 1.125,-0.46875 2.5,-0.46875 1.51563,0 2.67188,0.48438 1.15625,0.48437 1.76562,1.4375 0.625,0.9375 0.67188,2.14062 l -1.71875,0.125 q -0.14063,-1.28125 -0.95313,-1.9375 -0.79687,-0.67187 -2.35937,-0.67187 -1.625,0 -2.375,0.60937 -0.75,0.59375 -0.75,1.4375 0,0.73438 0.53125,1.20313 0.51562,0.46875 2.70312,0.96875 2.20313,0.5 3.01563,0.875 1.1875,0.54687 1.75,1.39062 0.57812,0.82813 0.57812,1.92188 0,1.09375 -0.625,2.0625 -0.625,0.95312 -1.79687,1.48437 -1.15625,0.53125 -2.60938,0.53125 -1.84375,0 -3.09375,-0.53125 -1.25,-0.54687 -1.96875,-1.625 -0.70312,-1.07812 -0.73437,-2.45312 z m 19.2717,0.76562 1.64062,0.21875 q -0.26562,1.6875 -1.375,2.65625 -1.10937,0.95313 -2.73437,0.95313 -2.01563,0 -3.25,-1.3125 -1.21875,-1.32813 -1.21875,-3.79688 0,-1.59375 0.51562,-2.78125 0.53125,-1.20312 1.60938,-1.79687 1.09375,-0.60938 2.35937,-0.60938 1.60938,0 2.625,0.8125 1.01563,0.8125 1.3125,2.3125 l -1.625,0.25 q -0.23437,-1 -0.82812,-1.5 -0.59375,-0.5 -1.42188,-0.5 -1.26562,0 -2.0625,0.90625 -0.78125,0.90625 -0.78125,2.85938 0,1.98437 0.76563,2.89062 0.76562,0.89063 1.98437,0.89063 0.98438,0 1.64063,-0.59375 0.65625,-0.60938 0.84375,-1.85938 z m 2.89062,3.60938 0,-13.59375 1.67188,0 0,4.875 q 1.17187,-1.35938 2.95312,-1.35938 1.09375,0 1.89063,0.4375 0.8125,0.42188 1.15625,1.1875 0.35937,0.76563 0.35937,2.20313 l 0,6.25 -1.67187,0 0,-6.25 q 0,-1.25 -0.54688,-1.8125 -0.54687,-0.57813 -1.53125,-0.57813 -0.75,0 -1.40625,0.39063 -0.64062,0.375 -0.92187,1.04687 -0.28125,0.65625 -0.28125,1.8125 l 0,5.39063 -1.67188,0 z m 17.12574,-3.17188 1.71875,0.21875 q -0.40625,1.5 -1.51563,2.34375 -1.09375,0.82813 -2.8125,0.82813 -2.15625,0 -3.42187,-1.32813 -1.26563,-1.32812 -1.26563,-3.73437 0,-2.48438 1.26563,-3.85938 1.28125,-1.375 3.32812,-1.375 1.98438,0 3.23438,1.34375 1.25,1.34375 1.25,3.79688 0,0.14062 -0.0156,0.4375 l -7.34375,0 q 0.0937,1.625 0.92188,2.48437 0.82812,0.85938 2.0625,0.85938 0.90625,0 1.54687,-0.46875 0.65625,-0.48438 1.04688,-1.54688 z m -5.48438,-2.70312 5.5,0 q -0.10937,-1.23438 -0.625,-1.85938 -0.79687,-0.96875 -2.07812,-0.96875 -1.14063,0 -1.9375,0.78125 -0.78125,0.76563 -0.85938,2.04688 z m 15.5007,5.875 0,-1.25 q -0.9375,1.46875 -2.75,1.46875 -1.17187,0 -2.17187,-0.64063 -0.98438,-0.65625 -1.53125,-1.8125 -0.53125,-1.17187 -0.53125,-2.6875 0,-1.46875 0.48437,-2.67187 0.5,-1.20313 1.46875,-1.84375 0.98438,-0.64063 2.20313,-0.64063 0.89062,0 1.57812,0.375 0.70313,0.375 1.14063,0.98438 l 0,-4.875 1.65625,0 0,13.59375 -1.54688,0 z m -5.28125,-4.92188 q 0,1.89063 0.79688,2.82813 0.8125,0.9375 1.89062,0.9375 1.09375,0 1.85938,-0.89063 0.76562,-0.89062 0.76562,-2.73437 0,-2.01563 -0.78125,-2.95313 -0.78125,-0.95312 -1.92187,-0.95312 -1.10938,0 -1.85938,0.90625 -0.75,0.90625 -0.75,2.85937 z m 15.71948,4.92188 0,-1.45313 q -1.14062,1.67188 -3.125,1.67188 -0.85937,0 -1.625,-0.32813 -0.75,-0.34375 -1.125,-0.84375 -0.35937,-0.5 -0.51562,-1.23437 -0.0937,-0.5 -0.0937,-1.5625 l 0,-6.10938 1.67187,0 0,5.46875 q 0,1.3125 0.0937,1.76563 0.15625,0.65625 0.67188,1.03125 0.51562,0.375 1.26562,0.375 0.75,0 1.40625,-0.375 0.65625,-0.39063 0.92188,-1.04688 0.28125,-0.67187 0.28125,-1.9375 l 0,-5.28125 1.67187,0 0,9.85938 -1.5,0 z m 3.89133,0 0,-13.59375 1.67188,0 0,13.59375 -1.67188,0 z m 10.92609,-3.17188 1.71875,0.21875 q -0.40625,1.5 -1.51563,2.34375 -1.09375,0.82813 -2.8125,0.82813 -2.15625,0 -3.42187,-1.32813 -1.26563,-1.32812 -1.26563,-3.73437 0,-2.48438 1.26563,-3.85938 1.28125,-1.375 3.32812,-1.375 1.98438,0 3.23438,1.34375 1.25,1.34375 1.25,3.79688 0,0.14062 -0.0156,0.4375 l -7.34375,0 q 0.0937,1.625 0.92188,2.48437 0.82812,0.85938 2.0625,0.85938 0.90625,0 1.54687,-0.46875 0.65625,-0.48438 1.04688,-1.54688 z m -5.48438,-2.70312 5.5,0 q -0.10937,-1.23438 -0.625,-1.85938 -0.79687,-0.96875 -2.07812,-0.96875 -1.14063,0 -1.9375,0.78125 -0.78125,0.76563 -0.85938,2.04688 z m 9.09445,5.875 0,-9.85938 1.5,0 0,1.5 q 0.57813,-1.04687 1.0625,-1.375 0.48438,-0.34375 1.07813,-0.34375 0.84375,0 1.71875,0.54688 l -0.57813,1.54687 q -0.60937,-0.35937 -1.23437,-0.35937 -0.54688,0 -0.98438,0.32812 -0.42187,0.32813 -0.60937,0.90625 -0.28125,0.89063 -0.28125,1.95313 l 0,5.15625 -1.67188,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4437"
+     d="m 472.89349,10.50676 0,0 C 472.89349,5.25632 477.14978,1 482.4002,1 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4439"
+     d="m 472.89349,10.50676 0,0 C 472.89349,5.25632 477.14978,1 482.4002,1 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4441"
+     d="m 488.57849,28.79527 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4443"
+     d="m 488.57849,28.79527 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4445"
+     d="m 130.03781,46.43307 67.68506,-0.34645" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4447"
+     d="m 129.63492,47.641738 67.68506,-0.34645" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4449"
+     d="m 197.73337,46.7874 32.78738,44.91339" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4451"
+     d="m 196.92759,48.398958 32.78738,44.91339" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4453"
+     d="m 229.09819,92.41207 157.54327,0" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4455"
+     d="m 229.09819,92.41207 157.54327,0" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4457"
+     d="M 486.43149,46.78346 418.74643,46.43701" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4459"
+     d="M 486.43149,46.78346 418.74643,46.43701" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4461"
+     d="M 418.73599,47.1378 385.94864,92.05118" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4465"
+     d="m 2.6115575,160.45605 49.1968505,0 0,-34.92914 -49.1968505,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4467"
+     d="m 2.6115575,160.45605 49.1968505,0 0,-34.92914 -49.1968505,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4469"
+     d="m 51.808408,160.45605 25.6693,0 0,-34.92914 -25.6693,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4471"
+     d="m 51.808408,160.45605 25.6693,0 0,-34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4473"
+     d="m 77.477708,160.45605 25.669282,0 0,-34.92914 -25.669282,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4475"
+     d="m 77.477708,160.45605 25.669282,0 0,-34.92914 -25.669282,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4477"
+     d="m 103.14699,160.45605 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4479"
+     d="m 103.14699,160.45605 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4481"
+     d="m 470.06039,354.17466 0,0 c 0,5.25046 4.25629,9.50678 9.50671,9.50678 l 38.02588,0 0,0 c 2.52137,0 4.93946,-1.00162 6.72229,-2.78449 1.78284,-1.78284 2.78449,-4.20093 2.78449,-6.72229 l 0,-71.50616 c 0,-5.25043 -4.25635,-9.50676 -9.50678,-9.50676 l -38.02588,0 c -5.25042,0 -9.50671,4.25633 -9.50671,9.50676 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4483"
+     d="m 470.06039,354.17466 0,0 c 0,5.25046 4.25629,9.50678 9.50671,9.50678 l 38.02588,0 0,0 c 2.52137,0 4.93946,-1.00162 6.72229,-2.78449 1.78284,-1.78284 2.78449,-4.20093 2.78449,-6.72229 l 0,-71.50616 c 0,-5.25043 -4.25635,-9.50676 -9.50678,-9.50676 l -38.02588,0 c -5.25042,0 -9.50671,4.25633 -9.50671,9.50676 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4485"
+     d="m 485.74539,335.88616 25.66931,0 0,-34.92914 -25.66931,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4487"
+     d="m 485.74539,335.88616 25.66931,0 0,-34.92914 -25.66931,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4489"
+     d="m 127.20471,318.24836 67.68506,0.34644" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4493"
+     d="m 194.90027,317.89402 32.78738,-44.91339" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4497"
+     d="m 226.26509,272.26936 158.2677,-0.8504" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2.46436429;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4499"
+     d="m 128.23639,141.26408 243.31544,-0.83984" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4501"
+     d="m 483.59839,317.89796 -67.68506,0.34647" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4503"
+     d="m 483.59839,318.70374 -67.68506,0.34647" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4505"
+     d="M 415.90289,317.54362 383.11554,272.63024" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2.565;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none"
+     inkscape:connector-curvature="0"
+     id="path4507"
+     d="M 414.06808,317.81135 370.9359,139.95963" />
+  <path
+     id="path4409"
+     d="m 626.63283,339.07069 959.99997,0 0,720.00001 -959.99997,0 0,-720.00001 z"
+     inkscape:connector-curvature="0"
+     style="clip-rule:nonzero" />
+  <path
+     style="fill:none;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4465-7"
+     d="m 3.0034146,110.16796 49.1968504,0 0,-34.92913 -49.1968504,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4467-0"
+     d="m 3.0034146,110.16796 49.1968504,0 0,-34.92913 -49.1968504,0 z" />
+  <path
+     style="fill:none;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4469-7"
+     d="m 52.200265,110.16796 25.6693,0 0,-34.92913 -25.6693,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4471-0"
+     d="m 52.200265,110.16796 25.6693,0 0,-34.92913 -25.6693,0 z" />
+  <path
+     style="fill:none;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4473-9"
+     d="m 77.869565,110.16796 25.669275,0 0,-34.92913 -25.669275,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4475-6"
+     d="m 77.869565,110.16796 25.669275,0 0,-34.92913 -25.669275,0 z" />
+  <path
+     style="fill:none;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4477-1"
+     d="m 103.53884,110.16796 25.66929,0 0,-34.92913 -25.66929,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4479-6"
+     d="m 103.53884,110.16796 25.66929,0 0,-34.92913 -25.66929,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4415-7"
+     d="m 634.2562,27.62961 49.19685,0 0,34.92914 -49.19685,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4417-6"
+     d="m 634.2562,27.62961 49.19685,0 0,34.92914 -49.19685,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4419-0"
+     d="m 683.45305,27.62961 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4421-0"
+     d="m 683.45305,27.62961 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4423-5"
+     d="m 709.12235,27.62961 25.66929,0 0,34.92914 -25.66929,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4425-0"
+     d="m 709.12235,27.62961 25.66929,0 0,34.92914 -25.66929,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4427-0"
+     d="m 734.79164,27.62961 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4429-2"
+     d="m 734.79164,27.62961 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4465-72"
+     d="m 631.4231,334.37404 49.19685,0 0,-34.92914 -49.19685,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4467-7"
+     d="m 631.4231,334.37404 49.19685,0 0,-34.92914 -49.19685,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4469-0"
+     d="m 680.61995,334.37404 25.6693,0 0,-34.92914 -25.6693,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4471-4"
+     d="m 680.61995,334.37404 25.6693,0 0,-34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4473-94"
+     d="m 706.28925,334.37404 25.66929,0 0,-34.92914 -25.66929,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4475-1"
+     d="m 706.28925,334.37404 25.66929,0 0,-34.92914 -25.66929,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4477-9"
+     d="m 731.95854,334.37404 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4479-3"
+     d="m 731.95854,334.37404 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2.59186149;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4459-3"
+     d="M 629.87967,45.654886 513.97954,45.315094" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4437-3"
+     d="m 468.33265,131.5554 0,0 c 0,-5.25044 4.25629,-9.50676 9.50671,-9.50676 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4439-5"
+     d="m 468.33265,131.5554 0,0 c 0,-5.25044 4.25629,-9.50676 9.50671,-9.50676 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4441-6"
+     d="m 484.01765,149.84391 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4443-9"
+     d="m 484.01765,149.84391 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4437-4"
+     d="m 473.05449,404.47781 0,0 c 0,-5.25044 4.25629,-9.50676 9.50671,-9.50676 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4439-4"
+     d="m 473.05449,404.47781 0,0 c 0,-5.25044 4.25629,-9.50676 9.50671,-9.50676 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4441-9"
+     d="m 488.73949,422.76632 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4443-6"
+     d="m 488.73949,422.76632 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#800080;stroke-width:2.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+     d="m 509.12913,166.36411 62.3283,0 57.60646,-116.157282"
+     id="path4458"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#800080;stroke-width:2.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+     d="M 512.9066,441.17526 545.01512,440.23089 627.17515,53.9843"
+     id="path4460"
+     inkscape:connector-curvature="0" />
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="742.00342"
+     y="45.748047"
+     id="text4462"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4464"
+       x="742.00342"
+       y="45.748047">1</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="716.00342"
+     y="45.748047"
+     id="text4466"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4468"
+       x="716.00342"
+       y="45.748047">2</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="497.00342"
+     y="48.748047"
+     id="text4470"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4472"
+       x="497.00342"
+       y="48.748047">5</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="491.00342"
+     y="168.74805"
+     id="text4474"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4476"
+       x="491.00342"
+       y="168.74805">3</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="497.00342"
+     y="439.74805"
+     id="text4478"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4480"
+       x="497.00342"
+       y="439.74805">4</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="115.39186"
+     y="48.568272"
+     id="text4482"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4484"
+       x="115.39186"
+       y="48.568272">6</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="85.003418"
+     y="48.748047"
+     id="text4486"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4488"
+       x="85.003418"
+       y="48.748047">7</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="113.61497"
+     y="142.49117"
+     id="text4490"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4492"
+       x="113.61497"
+       y="142.49117">3</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="495.00342"
+     y="317.74805"
+     id="text4494"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4496"
+       x="495.00342"
+       y="317.74805">2</tspan></text>
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     x="743.00342"
+     y="320.74805"
+     id="text4498"
+     sodipodi:linespacing="125%"><tspan
+       sodipodi:role="line"
+       id="tspan4500"
+       x="743.00342"
+       y="320.74805">1</tspan></text>
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:1.92938769;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4447-9"
+     d="m 129.54104,56.932167 62.84594,-0.347244" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4451-6"
+     d="m 192.3997,57.2861 32.78739,44.91339" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4455-1"
+     d="m 223.76452,102.91077 157.54328,0" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:1.95323598;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4447-0"
+     d="m 129.31719,35.932033 64.45896,-0.346976" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4451-4"
+     d="m 195.3997,36.2861 32.78739,44.91339" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4455-9"
+     d="m 226.76452,81.91077 157.54328,0" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#800080;stroke-width:2.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+     d="m 384.00341,80.748047 35,-35"
+     id="path4535"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#800080;stroke-width:2.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+     d="m 381.00341,102.74805 69,333 36,2"
+     id="path4539"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#ff0000;stroke-width:2.61961603;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;marker-mid:url(#Arrow1Lstart)"
+     inkscape:connector-curvature="0"
+     id="path4503-5"
+     d="m 630.54942,318.71899 -118.50454,0.33949" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:1.6421113;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4459-1"
+     d="m 483.05483,165.96601 -45.10454,-0.35047" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#800080;stroke-width:2.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:10;stroke-dasharray:none"
+     d="M 385.96803,91.256236 437.94076,164.5821"
+     id="path4946"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/doc/images/parallel_queue.svg b/doc/images/parallel_queue.svg
new file mode 100644
index 0000000..50e3f38
--- /dev/null
+++ b/doc/images/parallel_queue.svg
@@ -0,0 +1,470 @@ 
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   viewBox="0 0 529.48229 486.49073"
+   stroke-miterlimit="10"
+   id="svg4406"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="parallel_queue.svg"
+   width="529.4823"
+   height="486.49072"
+   style="fill:none;stroke:none;stroke-linecap:square;stroke-miterlimit:10">
+  <metadata
+     id="metadata4513">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs4511">
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4562"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(0.8,0,0,0.8,10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4565"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="2511"
+     inkscape:window-height="1416"
+     id="namedview4509"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="1.0589091"
+     inkscape:cx="705.36023"
+     inkscape:cy="16.23361"
+     inkscape:window-x="1969"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg4406"
+     inkscape:snap-global="true"
+     inkscape:snap-text-baseline="true" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4413"
+     d="m -174.30077,-118.55643 960,0 0,720 -960,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4415"
+     d="m 2.22154,28.9685 49.19685,0 0,34.92914 -49.19685,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4417"
+     d="m 2.22154,28.9685 49.19685,0 0,34.92914 -49.19685,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4419"
+     d="m 51.41839,28.9685 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4421"
+     d="m 51.41839,28.9685 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4423"
+     d="m 77.08769,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4425"
+     d="m 77.08769,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4427"
+     d="m 102.75697,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4429"
+     d="m 102.75697,28.9685 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4431"
+     d="m 226.78321,113.04724 17.81891,-35.63777 109.05511,0 17.81891,35.63777 -17.81891,35.63779 -109.05511,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4433"
+     d="m 226.78321,113.04724 17.81891,-35.63777 109.05511,0 17.81891,35.63777 -17.81891,35.63779 -109.05511,0 z" />
+  <path
+     style="fill:#000000;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4435"
+     d="m 254.63996,115.59224 1.6875,-0.14063 q 0.125,1.01563 0.5625,1.67188 0.4375,0.65625 1.35937,1.0625 0.9375,0.40625 2.09375,0.40625 1.03125,0 1.8125,-0.3125 0.79688,-0.3125 1.1875,-0.84375 0.39063,-0.53125 0.39063,-1.15625 0,-0.64063 -0.375,-1.10938 -0.375,-0.48437 -1.23438,-0.8125 -0.54687,-0.21875 -2.42187,-0.65625 -1.875,-0.45312 -2.625,-0.85937 -0.96875,-0.51563 -1.45313,-1.26563 -0.46875,-0.75 -0.46875,-1.6875 0,-1.03125 0.57813,-1.92187 0.59375,-0.90625 1.70312,-1.35938 1.125,-0.46875 2.5,-0.46875 1.51563,0 2.67188,0.48438 1.15625,0.48437 1.76562,1.4375 0.625,0.9375 0.67188,2.14062 l -1.71875,0.125 q -0.14063,-1.28125 -0.95313,-1.9375 -0.79687,-0.67187 -2.35937,-0.67187 -1.625,0 -2.375,0.60937 -0.75,0.59375 -0.75,1.4375 0,0.73438 0.53125,1.20313 0.51562,0.46875 2.70312,0.96875 2.20313,0.5 3.01563,0.875 1.1875,0.54687 1.75,1.39062 0.57812,0.82813 0.57812,1.92188 0,1.09375 -0.625,2.0625 -0.625,0.95312 -1.79687,1.48437 -1.15625,0.53125 -2.60938,0.53125 -1.84375,0 -3.09375,-0.53125 -1.25,-0.54687 -1.96875,-1.625 -0.70312,-1.07812 -0.73437,-2.45312 z m 19.2717,0.76562 1.64062,0.21875 q -0.26562,1.6875 -1.375,2.65625 -1.10937,0.95313 -2.73437,0.95313 -2.01563,0 -3.25,-1.3125 -1.21875,-1.32813 -1.21875,-3.79688 0,-1.59375 0.51562,-2.78125 0.53125,-1.20312 1.60938,-1.79687 1.09375,-0.60938 2.35937,-0.60938 1.60938,0 2.625,0.8125 1.01563,0.8125 1.3125,2.3125 l -1.625,0.25 q -0.23437,-1 -0.82812,-1.5 -0.59375,-0.5 -1.42188,-0.5 -1.26562,0 -2.0625,0.90625 -0.78125,0.90625 -0.78125,2.85938 0,1.98437 0.76563,2.89062 0.76562,0.89063 1.98437,0.89063 0.98438,0 1.64063,-0.59375 0.65625,-0.60938 0.84375,-1.85938 z m 2.89062,3.60938 0,-13.59375 1.67188,0 0,4.875 q 1.17187,-1.35938 2.95312,-1.35938 1.09375,0 1.89063,0.4375 0.8125,0.42188 1.15625,1.1875 0.35937,0.76563 0.35937,2.20313 l 0,6.25 -1.67187,0 0,-6.25 q 0,-1.25 -0.54688,-1.8125 -0.54687,-0.57813 -1.53125,-0.57813 -0.75,0 -1.40625,0.39063 -0.64062,0.375 -0.92187,1.04687 -0.28125,0.65625 -0.28125,1.8125 l 0,5.39063 -1.67188,0 z m 17.12574,-3.17188 1.71875,0.21875 q -0.40625,1.5 -1.51563,2.34375 -1.09375,0.82813 -2.8125,0.82813 -2.15625,0 -3.42187,-1.32813 -1.26563,-1.32812 -1.26563,-3.73437 0,-2.48438 1.26563,-3.85938 1.28125,-1.375 3.32812,-1.375 1.98438,0 3.23438,1.34375 1.25,1.34375 1.25,3.79688 0,0.14062 -0.0156,0.4375 l -7.34375,0 q 0.0937,1.625 0.92188,2.48437 0.82812,0.85938 2.0625,0.85938 0.90625,0 1.54687,-0.46875 0.65625,-0.48438 1.04688,-1.54688 z m -5.48438,-2.70312 5.5,0 q -0.10937,-1.23438 -0.625,-1.85938 -0.79687,-0.96875 -2.07812,-0.96875 -1.14063,0 -1.9375,0.78125 -0.78125,0.76563 -0.85938,2.04688 z m 15.5007,5.875 0,-1.25 q -0.9375,1.46875 -2.75,1.46875 -1.17187,0 -2.17187,-0.64063 -0.98438,-0.65625 -1.53125,-1.8125 -0.53125,-1.17187 -0.53125,-2.6875 0,-1.46875 0.48437,-2.67187 0.5,-1.20313 1.46875,-1.84375 0.98438,-0.64063 2.20313,-0.64063 0.89062,0 1.57812,0.375 0.70313,0.375 1.14063,0.98438 l 0,-4.875 1.65625,0 0,13.59375 -1.54688,0 z m -5.28125,-4.92188 q 0,1.89063 0.79688,2.82813 0.8125,0.9375 1.89062,0.9375 1.09375,0 1.85938,-0.89063 0.76562,-0.89062 0.76562,-2.73437 0,-2.01563 -0.78125,-2.95313 -0.78125,-0.95312 -1.92187,-0.95312 -1.10938,0 -1.85938,0.90625 -0.75,0.90625 -0.75,2.85937 z m 15.71948,4.92188 0,-1.45313 q -1.14062,1.67188 -3.125,1.67188 -0.85937,0 -1.625,-0.32813 -0.75,-0.34375 -1.125,-0.84375 -0.35937,-0.5 -0.51562,-1.23437 -0.0937,-0.5 -0.0937,-1.5625 l 0,-6.10938 1.67187,0 0,5.46875 q 0,1.3125 0.0937,1.76563 0.15625,0.65625 0.67188,1.03125 0.51562,0.375 1.26562,0.375 0.75,0 1.40625,-0.375 0.65625,-0.39063 0.92188,-1.04688 0.28125,-0.67187 0.28125,-1.9375 l 0,-5.28125 1.67187,0 0,9.85938 -1.5,0 z m 3.89133,0 0,-13.59375 1.67188,0 0,13.59375 -1.67188,0 z m 10.92609,-3.17188 1.71875,0.21875 q -0.40625,1.5 -1.51563,2.34375 -1.09375,0.82813 -2.8125,0.82813 -2.15625,0 -3.42187,-1.32813 -1.26563,-1.32812 -1.26563,-3.73437 0,-2.48438 1.26563,-3.85938 1.28125,-1.375 3.32812,-1.375 1.98438,0 3.23438,1.34375 1.25,1.34375 1.25,3.79688 0,0.14062 -0.0156,0.4375 l -7.34375,0 q 0.0937,1.625 0.92188,2.48437 0.82812,0.85938 2.0625,0.85938 0.90625,0 1.54687,-0.46875 0.65625,-0.48438 1.04688,-1.54688 z m -5.48438,-2.70312 5.5,0 q -0.10937,-1.23438 -0.625,-1.85938 -0.79687,-0.96875 -2.07812,-0.96875 -1.14063,0 -1.9375,0.78125 -0.78125,0.76563 -0.85938,2.04688 z m 9.09445,5.875 0,-9.85938 1.5,0 0,1.5 q 0.57813,-1.04687 1.0625,-1.375 0.48438,-0.34375 1.07813,-0.34375 0.84375,0 1.71875,0.54688 l -0.57813,1.54687 q -0.60937,-0.35937 -1.23437,-0.35937 -0.54688,0 -0.98438,0.32812 -0.42187,0.32813 -0.60937,0.90625 -0.28125,0.89063 -0.28125,1.95313 l 0,5.15625 -1.67188,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4437"
+     d="m 471.28193,10.50676 0,0 C 471.28193,5.25632 475.53822,1 480.78864,1 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4439"
+     d="m 471.28193,10.50676 0,0 C 471.28193,5.25632 475.53822,1 480.78864,1 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4441"
+     d="m 486.96693,28.79527 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4443"
+     d="m 486.96693,28.79527 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4445"
+     d="m 128.42625,46.43307 67.68506,-0.34645" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4447"
+     d="m 128.02336,47.64174 67.68506,-0.34645" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4449"
+     d="m 196.12181,46.7874 32.78738,44.91339" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4451"
+     d="m 195.31603,48.39896 32.78738,44.91339" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4453"
+     d="m 227.48663,92.41207 157.54327,0" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4455"
+     d="m 227.48663,92.41207 157.54327,0" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4457"
+     d="M 484.81993,46.78346 417.13487,46.43701" />
+  <path
+     style="fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4459"
+     d="M 484.81993,46.78346 417.13487,46.43701" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4461"
+     d="M 417.12443,47.1378 384.33708,92.05118" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4465"
+     d="m 1,160.45605 49.19685,0 0,-34.92914 -49.19685,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4467"
+     d="m 1,160.45605 49.19685,0 0,-34.92914 -49.19685,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4469"
+     d="m 50.19685,160.45605 25.6693,0 0,-34.92914 -25.6693,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4471"
+     d="m 50.19685,160.45605 25.6693,0 0,-34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4473"
+     d="m 75.86615,160.45605 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4475"
+     d="m 75.86615,160.45605 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4477"
+     d="m 101.53543,160.45605 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4479"
+     d="m 101.53543,160.45605 25.66928,0 0,-34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4481"
+     d="m 468.44883,354.17466 0,0 c 0,5.25046 4.25629,9.50678 9.50671,9.50678 l 38.02588,0 0,0 c 2.52137,0 4.93946,-1.00162 6.72229,-2.78449 1.78284,-1.78284 2.78449,-4.20093 2.78449,-6.72229 l 0,-71.50616 c 0,-5.25043 -4.25635,-9.50676 -9.50678,-9.50676 l -38.02588,0 c -5.25042,0 -9.50671,4.25633 -9.50671,9.50676 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4483"
+     d="m 468.44883,354.17466 0,0 c 0,5.25046 4.25629,9.50678 9.50671,9.50678 l 38.02588,0 0,0 c 2.52137,0 4.93946,-1.00162 6.72229,-2.78449 1.78284,-1.78284 2.78449,-4.20093 2.78449,-6.72229 l 0,-71.50616 c 0,-5.25043 -4.25635,-9.50676 -9.50678,-9.50676 l -38.02588,0 c -5.25042,0 -9.50671,4.25633 -9.50671,9.50676 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4485"
+     d="m 484.13383,335.88616 25.66931,0 0,-34.92914 -25.66931,0 z" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4487"
+     d="m 484.13383,335.88616 25.66931,0 0,-34.92914 -25.66931,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4489"
+     d="m 125.59315,318.24836 67.68506,0.34644" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4493"
+     d="m 193.28871,317.89402 32.78738,-44.91339" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4497"
+     d="m 224.65353,272.26936 158.2677,-0.8504" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2.46436429;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4499"
+     d="m 126.62483,141.26408 243.31544,-0.83984" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4501"
+     d="m 481.98683,317.89796 -67.68506,0.34647" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
+     inkscape:connector-curvature="0"
+     id="path4503"
+     d="m 481.98683,318.70374 -67.68506,0.34647" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+     inkscape:connector-curvature="0"
+     id="path4505"
+     d="M 414.29133,317.54362 381.50398,272.63024" />
+  <path
+     style="fill-rule:nonzero;stroke:#ff0000;stroke-width:2.56500006;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none"
+     inkscape:connector-curvature="0"
+     id="path4507"
+     d="M 412.45652,317.81135 369.32434,139.95963" />
+  <path
+     id="path4409"
+     d="m 625.02127,339.07069 959.99993,0 0,720.00001 -959.99993,0 0,-720.00001 z"
+     inkscape:connector-curvature="0"
+     style="clip-rule:nonzero" />
+  <path
+     style="fill:none;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4465-7"
+     d="m 1.39185,110.16796 49.19685,0 0,-34.92913 -49.19685,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4467-0"
+     d="m 1.39185,110.16796 49.19685,0 0,-34.92913 -49.19685,0 z" />
+  <path
+     style="fill:none;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4469-7"
+     d="m 50.5887,110.16796 25.6693,0 0,-34.92913 -25.6693,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4471-0"
+     d="m 50.5887,110.16796 25.6693,0 0,-34.92913 -25.6693,0 z" />
+  <path
+     style="fill:none;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4473-9"
+     d="m 76.258,110.16796 25.66928,0 0,-34.92913 -25.66928,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4475-6"
+     d="m 76.258,110.16796 25.66928,0 0,-34.92913 -25.66928,0 z" />
+  <path
+     style="fill:none;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4477-1"
+     d="m 101.92728,110.16796 25.66929,0 0,-34.92913 -25.66929,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4479-6"
+     d="m 101.92728,110.16796 25.66929,0 0,-34.92913 -25.66929,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4415-7"
+     d="m 632.64464,27.62961 49.19685,0 0,34.92914 -49.19685,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4419-0"
+     d="m 681.84149,27.62961 25.6693,0 0,34.92914 -25.6693,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4423-5"
+     d="m 707.51079,27.62961 25.66929,0 0,34.92914 -25.66929,0 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4427-0"
+     d="m 733.18008,27.62961 25.66928,0 0,34.92914 -25.66928,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4437-3"
+     d="m 466.72109,131.5554 0,0 c 0,-5.25044 4.25629,-9.50676 9.50671,-9.50676 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4439-5"
+     d="m 466.72109,131.5554 0,0 c 0,-5.25044 4.25629,-9.50676 9.50671,-9.50676 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4441-6"
+     d="m 482.40609,149.84391 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4443-9"
+     d="m 482.40609,149.84391 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:#cfe2f3;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4437-4"
+     d="m 471.44293,404.47781 0,0 c 0,-5.25044 4.25629,-9.50676 9.50671,-9.50676 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4439-4"
+     d="m 471.44293,404.47781 0,0 c 0,-5.25044 4.25629,-9.50676 9.50671,-9.50676 l 38.02588,0 0,0 c 2.52137,0 4.93946,1.0016 6.72229,2.78447 1.78284,1.78286 2.78449,4.20093 2.78449,6.72229 l 0,71.50618 c 0,5.25043 -4.25635,9.50674 -9.50678,9.50674 l -38.02588,0 c -5.25042,0 -9.50671,-4.25631 -9.50671,-9.50674 z" />
+  <path
+     style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-linecap:square;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4441-9"
+     d="m 487.12793,422.76632 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4443-6"
+     d="m 487.12793,422.76632 25.66931,0 0,34.92914 -25.66931,0 z" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:1.92938769;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4447-9"
+     d="m 127.92948,56.93217 62.84594,-0.34725" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4451-6"
+     d="m 190.78814,57.2861 32.78739,44.91339" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4455-1"
+     d="m 222.15296,102.91077 157.54328,0" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:1.95323598;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4447-0"
+     d="m 127.70563,35.93203 64.45896,-0.34697" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4451-4"
+     d="m 193.78814,36.2861 32.78739,44.91339" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4455-9"
+     d="m 225.15296,81.91077 157.54328,0" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#800080;stroke-width:2.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+     d="m 382.39185,80.74805 35,-35"
+     id="path4535"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#800080;stroke-width:2.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+     d="m 379.39185,102.74805 69,333 36,2"
+     id="path4539"
+     inkscape:connector-curvature="0" />
+  <path
+     style="fill:none;fill-rule:nonzero;stroke:#800080;stroke-width:1.6421113;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10"
+     inkscape:connector-curvature="0"
+     id="path4459-1"
+     d="m 481.44327,165.96601 -45.10454,-0.35047" />
+  <path
+     style="fill:none;fill-rule:evenodd;stroke:#800080;stroke-width:2.5999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+     d="M 384.35647,91.25624 436.3292,164.5821"
+     id="path4946"
+     inkscape:connector-curvature="0" />
+</svg>