aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@npb.mail.kapsi.fi>2011-11-04 07:22:05 +0000
committerPetteri Aimonen <jpa@npb.mail.kapsi.fi>2011-11-04 07:22:05 +0000
commit85e0afd894daf851baca8ecd50ebae3cdba40e65 (patch)
tree6e6862bc2fbd49f310ebcfcef4f4347025dbc45e
parentc7e2d6cc2fde5a69da7bf2735f4fb33e1633b221 (diff)
Some additions to documentation
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1003 e3a754e5-d11d-0410-8d38-ebb782a927b9
-rw-r--r--docs/Makefile8
-rw-r--r--docs/generator_flow.svg2869
-rw-r--r--docs/index.rst13
3 files changed, 2883 insertions, 7 deletions
diff --git a/docs/Makefile b/docs/Makefile
index d1d9587..3c95399 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -1,4 +1,8 @@
-all: index.html concepts.html reference.html
+all: index.html concepts.html reference.html \
+ generator_flow.png
+
+%.png: %.svg
+ rsvg $< $@
%.html: %.rst
- rst2html --stylesheet=lsr.css --link-stylesheet $< $@ \ No newline at end of file
+ rst2html --stylesheet=lsr.css --link-stylesheet $< $@
diff --git a/docs/generator_flow.svg b/docs/generator_flow.svg
new file mode 100644
index 0000000..e30277a
--- /dev/null
+++ b/docs/generator_flow.svg
@@ -0,0 +1,2869 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<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:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="490"
+ height="220"
+ id="svg1901"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.2 r9819"
+ sodipodi:docname="generator_flow.svg"
+ version="1.1">
+ <defs
+ id="defs1903">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient15568">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1;"
+ offset="0"
+ id="stop15570" />
+ <stop
+ style="stop-color:#729fcf;stop-opacity:0;"
+ offset="1"
+ id="stop15572" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient15558">
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:1;"
+ offset="0"
+ id="stop15560" />
+ <stop
+ style="stop-color:#fcaf3e;stop-opacity:0;"
+ offset="1"
+ id="stop15562" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient13629">
+ <stop
+ style="stop-color:#fce94f;stop-opacity:1;"
+ offset="0"
+ id="stop13631" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop13633" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.284916,0,30.08928)"
+ r="15.821514"
+ fy="42.07798"
+ fx="24.306795"
+ cy="42.07798"
+ cx="24.306795"
+ id="radialGradient4548"
+ xlink:href="#linearGradient4542"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient259">
+ <stop
+ style="stop-color:#fafafa;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop260" />
+ <stop
+ style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop261" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient269">
+ <stop
+ style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop270" />
+ <stop
+ style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop271" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="114.5684"
+ fx="20.892099"
+ r="5.256"
+ cy="114.5684"
+ cx="20.892099"
+ id="aigrd2">
+ <stop
+ id="stop15566"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop15568"
+ style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+ offset="1.0000000" />
+ </radialGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="64.567902"
+ fx="20.892099"
+ r="5.257"
+ cy="64.567902"
+ cx="20.892099"
+ id="aigrd3">
+ <stop
+ id="stop15573"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop15575"
+ style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+ offset="1.0000000" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient15662">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop15664" />
+ <stop
+ style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop15666" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4542"
+ inkscape:collect="always">
+ <stop
+ id="stop4544"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop4546"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ id="stop5050"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056" />
+ <stop
+ id="stop5052"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5060"
+ inkscape:collect="always">
+ <stop
+ id="stop5062"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="9.586297"
+ fy="9.8105707"
+ fx="21.578989"
+ cy="9.8105707"
+ cx="21.578989"
+ gradientTransform="matrix(0.74942,0,0,0.394055,6.226925,10.09253)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2908"
+ xlink:href="#linearGradient2869"
+ inkscape:collect="always" />
+ <radialGradient
+ r="6.4286141"
+ fy="20.800287"
+ fx="23.94367"
+ cy="20.800287"
+ cx="23.94367"
+ gradientTransform="matrix(1.353283,0,0,0.635968,-8.45889,3.41347)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2906"
+ xlink:href="#linearGradient2884"
+ inkscape:collect="always" />
+ <radialGradient
+ r="9.586297"
+ fy="9.0255041"
+ fx="21.578989"
+ cy="9.0255041"
+ cx="21.578989"
+ gradientTransform="matrix(0.74942,0,0,0.394055,6.226925,10.09253)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2898"
+ xlink:href="#linearGradient2869"
+ inkscape:collect="always" />
+ <radialGradient
+ r="6.4286141"
+ fy="20.800287"
+ fx="23.94367"
+ cy="20.800287"
+ cx="23.94367"
+ gradientTransform="matrix(1.353283,0,0,0.635968,-8.45889,3.41347)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2896"
+ xlink:href="#linearGradient2884"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="22.585211"
+ x2="24.990499"
+ y1="34.004856"
+ x1="24.990499"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2288"
+ xlink:href="#linearGradient4210"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="47.388485"
+ x2="30.014812"
+ y1="19.912336"
+ x1="18.706615"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2285"
+ xlink:href="#linearGradient4222"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.020695"
+ x2="22.071806"
+ y1="9.7577486"
+ x1="21.906841"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2282"
+ xlink:href="#linearGradient4987"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="12.636667"
+ x2="34.193642"
+ y1="12.636667"
+ x1="16.148972"
+ gradientTransform="matrix(1,0,0,1.039184,0,-0.04057054)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2280"
+ xlink:href="#linearGradient4182"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="16.17037"
+ x2="24.119167"
+ y1="24.720648"
+ x1="25.381256"
+ gradientTransform="matrix(1,0,0,0.986355,0,0.316638)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2277"
+ xlink:href="#linearGradient4192"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="15.267649"
+ x2="47.065834"
+ y1="14.661557"
+ x1="36.288929"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2274"
+ xlink:href="#linearGradient4995"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="12.333632"
+ x2="17.696169"
+ y1="13.444801"
+ x1="30.062469"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2269"
+ xlink:href="#linearGradient4979"
+ inkscape:collect="always" />
+ <radialGradient
+ r="17.576654"
+ fy="35.373093"
+ fx="22.930462"
+ cy="35.373093"
+ cx="22.930462"
+ gradientTransform="matrix(1,0,0,0.333333,0,23.58206)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2252"
+ xlink:href="#linearGradient4946"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient4182">
+ <stop
+ style="stop-color:#a36d18;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4184" />
+ <stop
+ style="stop-color:#d79020;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4186" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4192">
+ <stop
+ style="stop-color:#e9b96e;stop-opacity:1;"
+ offset="0"
+ id="stop4194" />
+ <stop
+ style="stop-color:#f1d19e;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4196" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4210">
+ <stop
+ style="stop-color:#eaba6f;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4212" />
+ <stop
+ style="stop-color:#b97a1b;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4214" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4222">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4224" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.68639052;"
+ offset="1.0000000"
+ id="stop4226" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4946">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4948" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4950" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4979">
+ <stop
+ style="stop-color:#fbf0e0;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4981" />
+ <stop
+ style="stop-color:#f0ce99;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4983" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4987">
+ <stop
+ style="stop-color:#a0670c;stop-opacity:1;"
+ offset="0"
+ id="stop4989" />
+ <stop
+ style="stop-color:#a0670c;stop-opacity:0;"
+ offset="1"
+ id="stop4991" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4995">
+ <stop
+ style="stop-color:#de9523;stop-opacity:1;"
+ offset="0"
+ id="stop4997" />
+ <stop
+ style="stop-color:#a36d18;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4999" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2869">
+ <stop
+ id="stop2871"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop2873"
+ offset="1.0000000"
+ style="stop-color:#cccccc;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2884"
+ inkscape:collect="always">
+ <stop
+ id="stop2886"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop2888"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ y2="609.50507"
+ x2="302.85715"
+ y1="366.64789"
+ x1="302.85715"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient6715-6"
+ xlink:href="#linearGradient5048-7"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5048-7">
+ <stop
+ id="stop5050-2"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056-4" />
+ <stop
+ id="stop5052-0"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient6717-4"
+ xlink:href="#linearGradient5060-6"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5060-6"
+ inkscape:collect="always">
+ <stop
+ id="stop5062-2"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064-8"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient6719-8"
+ xlink:href="#linearGradient5060-6"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(-0.901805,0.210818,-0.211618,-0.898788,63.54132,37.87423)"
+ y2="46.06208"
+ x2="29.477814"
+ y1="2.8703361"
+ x1="25.950134"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5486"
+ xlink:href="#linearGradient5476"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1.106909,-0.258404,0.259748,1.101665,-19.66697,12.19788)"
+ gradientUnits="userSpaceOnUse"
+ y2="46.06208"
+ x2="29.477814"
+ y1="2.8703361"
+ x1="25.950134"
+ id="linearGradient5482"
+ xlink:href="#linearGradient5476"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(1.106909,-0.258404,0.259748,1.101665,-19.66697,12.19788)"
+ y2="2.8163671"
+ x2="21.587093"
+ y1="23.499001"
+ x1="21.587093"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5472"
+ xlink:href="#linearGradient5464"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4356">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4358" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4360" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4344">
+ <stop
+ style="stop-color:#727e0a;stop-opacity:1;"
+ offset="0"
+ id="stop4346" />
+ <stop
+ style="stop-color:#5b6508;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4348" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4338">
+ <stop
+ id="stop4340"
+ offset="0.0000000"
+ style="stop-color:#e9b15e;stop-opacity:1.0000000;" />
+ <stop
+ id="stop4342"
+ offset="1.0000000"
+ style="stop-color:#966416;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4163">
+ <stop
+ style="stop-color:#3b74bc;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop4165" />
+ <stop
+ style="stop-color:#2d5990;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4167" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3824">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3826" />
+ <stop
+ style="stop-color:#c9c9c9;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop3828" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3816">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3818" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3820" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3800">
+ <stop
+ style="stop-color:#f4d9b1;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop3802" />
+ <stop
+ style="stop-color:#df9725;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop3804" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3800"
+ id="radialGradient3806"
+ cx="29.344931"
+ cy="17.064077"
+ fx="29.344931"
+ fy="17.064077"
+ r="9.1620579"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3816"
+ id="radialGradient3822"
+ cx="31.112698"
+ cy="19.008621"
+ fx="31.112698"
+ fy="19.008621"
+ r="8.6620579"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3824"
+ id="linearGradient3830"
+ x1="30.935921"
+ y1="29.553486"
+ x2="30.935921"
+ y2="35.803486"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4163"
+ id="radialGradient4169"
+ cx="28.089741"
+ cy="27.203083"
+ fx="28.089741"
+ fy="27.203083"
+ r="13.56536"
+ gradientTransform="matrix(1.297564,0,0,0.884831,-8.358505,4.940469)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3800"
+ id="radialGradient4171"
+ gradientUnits="userSpaceOnUse"
+ cx="29.344931"
+ cy="17.064077"
+ fx="29.344931"
+ fy="17.064077"
+ r="9.1620579"
+ gradientTransform="matrix(0.787998,0,0,0.787998,6.221198,3.617627)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3824"
+ id="linearGradient4175"
+ gradientUnits="userSpaceOnUse"
+ x1="30.935921"
+ y1="29.553486"
+ x2="30.935921"
+ y2="35.803486"
+ gradientTransform="translate(0.707108,0)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3816"
+ id="radialGradient4179"
+ gradientUnits="userSpaceOnUse"
+ cx="31.112698"
+ cy="19.008621"
+ fx="31.112698"
+ fy="19.008621"
+ r="8.6620579" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3824"
+ id="linearGradient4326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12.41789,-7)"
+ x1="30.935921"
+ y1="29.553486"
+ x2="30.935921"
+ y2="35.803486" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4338"
+ id="radialGradient4328"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.787998,0,0,0.787998,6.221198,3.617627)"
+ cx="29.344931"
+ cy="17.064077"
+ fx="29.344931"
+ fy="17.064077"
+ r="9.1620579" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3816"
+ id="radialGradient4330"
+ gradientUnits="userSpaceOnUse"
+ cx="31.112698"
+ cy="19.008621"
+ fx="31.112698"
+ fy="19.008621"
+ r="8.6620579" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3824"
+ id="linearGradient4332"
+ gradientUnits="userSpaceOnUse"
+ x1="30.935921"
+ y1="29.553486"
+ x2="30.935921"
+ y2="35.803486"
+ gradientTransform="translate(-13.125,-7)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3816"
+ id="radialGradient4336"
+ gradientUnits="userSpaceOnUse"
+ cx="31.112698"
+ cy="19.008621"
+ fx="31.112698"
+ fy="19.008621"
+ r="8.6620579" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4344"
+ id="radialGradient4350"
+ cx="16.214741"
+ cy="19.836468"
+ fx="16.214741"
+ fy="19.836468"
+ r="13.56536"
+ gradientTransform="matrix(1,0,0,0.681917,0,8.233773)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient4362"
+ x1="20.661695"
+ y1="35.817974"
+ x2="22.626925"
+ y2="36.217758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient4366"
+ gradientUnits="userSpaceOnUse"
+ x1="22.686766"
+ y1="36.3904"
+ x2="21.408455"
+ y2="35.739632"
+ gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.1096,-3.945209)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient4372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.07212,-9.82492)"
+ x1="20.661695"
+ y1="35.817974"
+ x2="22.626925"
+ y2="36.217758" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient4374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
+ x1="22.686766"
+ y1="36.3904"
+ x2="21.408455"
+ y2="35.739632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient1366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
+ x1="22.686766"
+ y1="36.3904"
+ x2="21.408455"
+ y2="35.739632" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4356"
+ id="linearGradient1369"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.07212,-9.82492)"
+ x1="20.661695"
+ y1="35.817974"
+ x2="22.626925"
+ y2="36.217758" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3824"
+ id="linearGradient1372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12.41789,-7)"
+ x1="30.935921"
+ y1="29.553486"
+ x2="30.935921"
+ y2="35.803486" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4344"
+ id="radialGradient1381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.681917,0,8.233773)"
+ cx="16.214741"
+ cy="19.836468"
+ fx="16.214741"
+ fy="19.836468"
+ r="13.56536" />
+ <linearGradient
+ y2="11.981981"
+ x2="13.846983"
+ y1="11.48487"
+ x1="11.74217"
+ gradientTransform="matrix(1.276531,0,0,-1.406115,24.24763,33.3374)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1493"
+ xlink:href="#linearGradient15107"
+ inkscape:collect="always" />
+ <radialGradient
+ r="7.228416"
+ fy="73.615715"
+ fx="6.702713"
+ cy="73.615715"
+ cx="6.702713"
+ gradientTransform="scale(1.902215,0.525703)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1481"
+ xlink:href="#linearGradient10691"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="12.765438"
+ x2="38.129341"
+ y1="7.7850504"
+ x1="26.577936"
+ gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2365"
+ xlink:href="#linearGradient4274"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="29.698416"
+ x2="16.588747"
+ y1="16.612858"
+ x1="41.093174"
+ gradientTransform="matrix(0,0.914114,-0.914114,0,39.78243,-9.748047)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2566"
+ xlink:href="#linearGradient2187"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="27.145725"
+ x2="10.112462"
+ y1="23.332331"
+ x1="10.791593"
+ gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2564"
+ xlink:href="#linearGradient6925"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="30.55784"
+ x2="12.252101"
+ y1="15.028743"
+ x1="15.193591"
+ gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2562"
+ xlink:href="#linearGradient6901"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6925">
+ <stop
+ style="stop-color:#204a87;stop-opacity:1;"
+ offset="0"
+ id="stop6927" />
+ <stop
+ style="stop-color:#204a87;stop-opacity:0;"
+ offset="1"
+ id="stop6929" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient6901">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="0"
+ id="stop6903" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="1"
+ id="stop6905" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2187"
+ inkscape:collect="always">
+ <stop
+ id="stop2189"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop2191"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4274">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.25490198;"
+ offset="0.0000000"
+ id="stop4276" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4278" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10691">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop10693" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop10695" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient15107">
+ <stop
+ id="stop15109"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop15111"
+ offset="1.0000000"
+ style="stop-color:#e2e2e2;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9749">
+ <stop
+ id="stop9751"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop9753"
+ offset="1.0000000"
+ style="stop-color:#ededed;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2274-5">
+ <stop
+ id="stop2276"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:0.12871288;" />
+ <stop
+ id="stop2278"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2624">
+ <stop
+ style="stop-color:#dfe0df;stop-opacity:1;"
+ offset="0"
+ id="stop2626" />
+ <stop
+ id="stop2630"
+ offset="0.23809524"
+ style="stop-color:#a6b0a6;stop-opacity:1;" />
+ <stop
+ style="stop-color:#b5beb5;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2628" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5464">
+ <stop
+ id="stop5466"
+ offset="0"
+ style="stop-color:#729fcf;stop-opacity:1;" />
+ <stop
+ id="stop5468"
+ offset="1"
+ style="stop-color:#afc9e4;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5476"
+ inkscape:collect="always">
+ <stop
+ id="stop5478"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop5480"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5048-5">
+ <stop
+ id="stop5050-4"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056-9" />
+ <stop
+ id="stop5052-2"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.177966,0,108.7434)"
+ r="29.036913"
+ fy="132.28575"
+ fx="61.518883"
+ cy="132.28575"
+ cx="61.518883"
+ id="radialGradient2801"
+ xlink:href="#linearGradient2795"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="76.313133"
+ x2="26.670298"
+ y1="76.176224"
+ x1="172.94208"
+ gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2258"
+ xlink:href="#linearGradient4689"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="144.75717"
+ x2="-65.308502"
+ y1="144.75717"
+ x1="224.23996"
+ gradientTransform="matrix(0.562541,0,0,0.567972,-11.5974,-7.60954)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2255"
+ xlink:href="#linearGradient4671"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="144.75717"
+ x2="-65.308502"
+ y1="144.75717"
+ x1="224.23996"
+ gradientTransform="translate(100.2702,99.61116)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2250"
+ xlink:href="#linearGradient4671"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="76.313133"
+ x2="26.670298"
+ y1="77.475983"
+ x1="172.94208"
+ gradientTransform="translate(100.2702,99.61116)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2248"
+ xlink:href="#linearGradient4689"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="144.75717"
+ x2="-65.308502"
+ y1="144.75717"
+ x1="224.23996"
+ gradientTransform="translate(100.2702,99.61116)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient4671"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="76.313133"
+ x2="26.670298"
+ y1="77.475983"
+ x1="172.94208"
+ gradientTransform="translate(100.2702,99.61116)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient4689"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(100.2702,99.61116)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient4689"
+ id="linearGradient2990"
+ y2="76.313133"
+ x2="26.670298"
+ y1="77.475983"
+ x1="172.94208" />
+ <linearGradient
+ gradientTransform="translate(100.2702,99.61116)"
+ gradientUnits="userSpaceOnUse"
+ xlink:href="#linearGradient4671"
+ id="linearGradient2987"
+ y2="144.75717"
+ x2="-65.308502"
+ y1="144.75717"
+ x1="224.23996" />
+ <linearGradient
+ id="linearGradient4689">
+ <stop
+ id="stop4691"
+ offset="0"
+ style="stop-color:#5a9fd4;stop-opacity:1;" />
+ <stop
+ id="stop4693"
+ offset="1"
+ style="stop-color:#306998;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4671">
+ <stop
+ id="stop4673"
+ offset="0"
+ style="stop-color:#ffd43b;stop-opacity:1;" />
+ <stop
+ id="stop4675"
+ offset="1"
+ style="stop-color:#ffe873;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3236">
+ <stop
+ id="stop3244"
+ offset="0"
+ style="stop-color:#f4f4f4;stop-opacity:1" />
+ <stop
+ id="stop3240"
+ offset="1"
+ style="stop-color:white;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3676">
+ <stop
+ id="stop3678"
+ offset="0"
+ style="stop-color:#b2b2b2;stop-opacity:0.5;" />
+ <stop
+ id="stop3680"
+ offset="1"
+ style="stop-color:#b3b3b3;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2787">
+ <stop
+ id="stop2789"
+ offset="0"
+ style="stop-color:#7f7f7f;stop-opacity:0.5;" />
+ <stop
+ id="stop2791"
+ offset="1"
+ style="stop-color:#7f7f7f;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2795">
+ <stop
+ id="stop2797"
+ offset="0"
+ style="stop-color:#b8b8b8;stop-opacity:0.49803922;" />
+ <stop
+ id="stop2799"
+ offset="1"
+ style="stop-color:#7f7f7f;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient11109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)"
+ x1="26.648937"
+ y1="20.603781"
+ x2="135.66525"
+ y2="114.39767" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4671"
+ id="linearGradient11111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.562541,0,0,0.567972,-9.399749,-5.305317)"
+ x1="150.96111"
+ y1="192.35176"
+ x2="112.03144"
+ y2="137.27299" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2795"
+ id="radialGradient11113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.382716e-8,-0.296405,1.43676,4.683673e-7,-128.544,150.5202)"
+ cx="61.518883"
+ cy="132.28575"
+ fx="61.518883"
+ fy="132.28575"
+ r="29.036913" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient11177"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient11179"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient11181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient259"
+ id="radialGradient11183"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.960493,1.041132)"
+ cx="33.966679"
+ cy="35.736916"
+ fx="33.966679"
+ fy="35.736916"
+ r="86.70845" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient269"
+ id="radialGradient11185"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+ cx="8.824419"
+ cy="3.7561285"
+ fx="8.824419"
+ fy="3.7561285"
+ r="37.751713" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15662"
+ id="radialGradient11187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+ cx="8.1435566"
+ cy="7.2678967"
+ fx="8.1435566"
+ fy="7.2678967"
+ r="38.158695" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd2"
+ id="radialGradient11189"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
+ cx="20.892099"
+ cy="114.5684"
+ fx="20.892099"
+ fy="114.5684"
+ r="5.256" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd3"
+ id="radialGradient11191"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
+ cx="20.892099"
+ cy="64.567902"
+ fx="20.892099"
+ fy="64.567902"
+ r="5.257" />
+ <linearGradient
+ y2="31.026741"
+ x2="22.17771"
+ y1="33.357376"
+ x1="17.397203"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1505"
+ xlink:href="#linearGradient2573-9"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="7.4121075"
+ x2="40.024059"
+ y1="4.2507305"
+ x1="11.841544"
+ gradientTransform="matrix(1.370928,0,0,-1.46456,2.525057,33.71269)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1503"
+ xlink:href="#linearGradient9749-0"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-7.5274644"
+ x2="17.178024"
+ y1="20.219761"
+ x1="10.027"
+ gradientTransform="matrix(1.570607,0,0,-1.231511,2.973436,33.33485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1501"
+ xlink:href="#linearGradient15107-6"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="11.981981"
+ x2="13.846983"
+ y1="11.48487"
+ x1="11.74217"
+ gradientTransform="matrix(1.296015,0,0,-1.43692,3.746576,33.20516)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1497"
+ xlink:href="#linearGradient15107-6"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="11.981981"
+ x2="13.846983"
+ y1="11.48487"
+ x1="11.74217"
+ gradientTransform="matrix(1.276531,0,0,-1.406115,24.24763,33.3374)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1493-0"
+ xlink:href="#linearGradient15107-6"
+ inkscape:collect="always" />
+ <radialGradient
+ r="17.977943"
+ fy="38.711506"
+ fx="27.741131"
+ cy="38.711506"
+ cx="27.741131"
+ gradientTransform="matrix(0.629929,0.459373,-0.147675,0.248512,16.51724,9.053737)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1491"
+ xlink:href="#linearGradient2274-9"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="52.090679"
+ x2="9.8855038"
+ y1="38.070892"
+ x1="9.1643066"
+ gradientTransform="matrix(2.454781,0,0,0.762004,2.88175,0.337386)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1487"
+ xlink:href="#linearGradient2624-6"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="26.022909"
+ x2="18.475286"
+ y1="4.7461624"
+ x1="11.572842"
+ gradientTransform="matrix(1.343475,0,0,1.505846,2.879511,-2.266018)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1483"
+ xlink:href="#linearGradient15107-6"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient4274-7">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.25490198;"
+ offset="0.0000000"
+ id="stop4276-3" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop4278-5" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient15107-6">
+ <stop
+ id="stop15109-8"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop15111-9"
+ offset="1.0000000"
+ style="stop-color:#e2e2e2;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9749-0">
+ <stop
+ id="stop9751-2"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop9753-3"
+ offset="1.0000000"
+ style="stop-color:#ededed;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2274-9">
+ <stop
+ id="stop2276-4"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:0.12871288;" />
+ <stop
+ id="stop2278-2"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2573-9"
+ inkscape:collect="always">
+ <stop
+ id="stop2575-9"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop2577-6"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2624-6">
+ <stop
+ style="stop-color:#dfe0df;stop-opacity:1;"
+ offset="0"
+ id="stop2626-1" />
+ <stop
+ id="stop2630-9"
+ offset="0.23809524"
+ style="stop-color:#a6b0a6;stop-opacity:1;" />
+ <stop
+ style="stop-color:#b5beb5;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2628-4" />
+ </linearGradient>
+ <linearGradient
+ y2="609.50507"
+ x2="302.85715"
+ y1="366.64789"
+ x1="302.85715"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5027"
+ xlink:href="#linearGradient5048-2"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5048-2">
+ <stop
+ id="stop5050-7"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056-2" />
+ <stop
+ id="stop5052-01"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5029"
+ xlink:href="#linearGradient5060-4"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5060-4"
+ inkscape:collect="always">
+ <stop
+ id="stop5062-24"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064-0"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="117.14286"
+ fy="486.64789"
+ fx="605.71429"
+ cy="486.64789"
+ cx="605.71429"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5031"
+ xlink:href="#linearGradient5060-4"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5048-3">
+ <stop
+ id="stop5050-23"
+ offset="0"
+ style="stop-color:black;stop-opacity:0;" />
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0.5"
+ id="stop5056-8" />
+ <stop
+ id="stop5052-05"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5060-5"
+ inkscape:collect="always">
+ <stop
+ id="stop5062-1"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop5064-5"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient259-5">
+ <stop
+ style="stop-color:#fafafa;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop260-8" />
+ <stop
+ style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop261-9" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient269-3">
+ <stop
+ style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop270-6" />
+ <stop
+ style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop271-7" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient15662-6">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop15664-2" />
+ <stop
+ style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop15666-5" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="114.5684"
+ fx="20.892099"
+ r="5.256"
+ cy="114.5684"
+ cx="20.892099"
+ id="aigrd2-0">
+ <stop
+ id="stop15566-0"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop15568-0"
+ style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+ offset="1.0000000" />
+ </radialGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="64.567902"
+ fx="20.892099"
+ r="5.257"
+ cy="64.567902"
+ cx="20.892099"
+ id="aigrd3-2">
+ <stop
+ id="stop15573-8"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop15575-8"
+ style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+ offset="1.0000000" />
+ </radialGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048-3"
+ id="linearGradient13544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060-5"
+ id="radialGradient13546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060-5"
+ id="radialGradient13548"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient259-5"
+ id="radialGradient13550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.960493,1.041132)"
+ cx="33.966679"
+ cy="35.736916"
+ fx="33.966679"
+ fy="35.736916"
+ r="86.70845" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient269-3"
+ id="radialGradient13552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+ cx="8.824419"
+ cy="3.7561285"
+ fx="8.824419"
+ fy="3.7561285"
+ r="37.751713" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15662-6"
+ id="radialGradient13554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.968273,0,0,1.032767,3.353553,0.646447)"
+ cx="8.1435566"
+ cy="7.2678967"
+ fx="8.1435566"
+ fy="7.2678967"
+ r="38.158695" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd2-0"
+ id="radialGradient13556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
+ cx="20.892099"
+ cy="114.5684"
+ fx="20.892099"
+ fy="114.5684"
+ r="5.256" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd3-2"
+ id="radialGradient13558"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.229703,0,0,0.229703,4.613529,3.979808)"
+ cx="20.892099"
+ cy="64.567902"
+ fx="20.892099"
+ fy="64.567902"
+ r="5.257" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient13629"
+ id="linearGradient13635"
+ x1="135"
+ y1="317.36218"
+ x2="105"
+ y2="237.36218"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ y2="248.6311"
+ x2="153.0005"
+ y1="15.4238"
+ x1="99.777298"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd1">
+ <stop
+ id="stop53300"
+ style="stop-color:#184375"
+ offset="0" />
+ <stop
+ id="stop53302"
+ style="stop-color:#C8BDDC"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2300">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.32673267;"
+ offset="0.0000000"
+ id="stop2302" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop2304" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2300"
+ id="radialGradient15544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.399258,-2.234445e-7,8.196178e-8,0.513264,4.365074,4.839285)"
+ cx="14.287618"
+ cy="68.872971"
+ fx="14.287618"
+ fy="72.568001"
+ r="11.68987" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd1"
+ id="linearGradient15546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.200685,0,0,0.200685,-0.585758,-1.050787)"
+ x1="99.777298"
+ y1="15.4238"
+ x2="153.0005"
+ y2="248.6311" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15558"
+ id="linearGradient15564"
+ x1="350"
+ y1="352.36218"
+ x2="350"
+ y2="272.36218"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15568"
+ id="linearGradient15574"
+ x1="350"
+ y1="452.36218"
+ x2="340"
+ y2="342.36218"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="249.31284"
+ inkscape:cy="117.69757"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1280"
+ inkscape:window-height="750"
+ inkscape:window-x="-1"
+ inkscape:window-y="26"
+ showgrid="true"
+ inkscape:window-maximized="1"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid10878"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ color="#0000ff"
+ opacity="0.04705882" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata1906">
+ <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>
+ <g
+ inkscape:label="Taso 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-60,-212.36218)">
+ <path
+ style="fill:url(#linearGradient15574);fill-opacity:1;stroke:none"
+ d="m 214,392.36218 25,-25 275,0 25,25 -25,25 -275,0 z"
+ id="path15566"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:url(#linearGradient15564);fill-opacity:1;stroke:none"
+ d="m 230,332.36218 0,-40 0,-10 290,0 0,50 -20,20 -90,0 0,5 -30,20 -30,-20 0,-5 -100,0 z"
+ id="path15548"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccc" />
+ <path
+ style="fill:url(#linearGradient13635);fill-opacity:1;stroke:none"
+ d="m 70,287.36218 0,-60 230,0 20,20 0,45 -35,20 -35,-20 0,-5 z"
+ id="path13627"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc" />
+ <g
+ id="g10938"
+ transform="translate(0,0.21712644)">
+ <g
+ transform="matrix(0.69596564,0,0,0.69596564,116.34319,233.05094)"
+ id="g3694">
+ <g
+ id="layer6"
+ inkscape:label="Shadow">
+ <g
+ style="display:inline"
+ transform="matrix(0.02105461,0,0,0.02086758,42.85172,41.1536)"
+ id="g6707">
+ <rect
+ style="opacity:0.40206185;color:#000000;fill:url(#linearGradient11177);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect6709"
+ width="1339.6335"
+ height="478.35718"
+ x="-1559.2523"
+ y="-150.69685" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient11179);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ id="path6711"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ id="path6713"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient11181);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Base"
+ id="layer1-8">
+ <rect
+ style="color:#000000;fill:url(#radialGradient11183);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient11185);stroke-width:1.43685257;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect15391"
+ width="34.875"
+ height="40.920494"
+ x="6.6035528"
+ y="3.6464462"
+ ry="1.1490486" />
+ <rect
+ style="color:#000000;fill:none;stroke:url(#radialGradient11187);stroke-width:1.43685257;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect15660"
+ width="32.775887"
+ height="38.946384"
+ x="7.6660538"
+ y="4.5839462"
+ ry="0.14904857"
+ rx="0.14904857" />
+ <g
+ transform="translate(0.646447,-0.03798933)"
+ id="g2270">
+ <g
+ id="g1440"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43685257;stroke-miterlimit:4"
+ transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)">
+ <radialGradient
+ id="radialGradient1442"
+ cx="20.892099"
+ cy="114.5684"
+ r="5.256"
+ fx="20.892099"
+ fy="114.5684"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#F0F0F0"
+ id="stop1444" />
+ <stop
+ offset="1"
+ style="stop-color:#474747"
+ id="stop1446" />
+ </radialGradient>
+ <path
+ inkscape:connector-curvature="0"
+ style="stroke:none"
+ d="m 23.428,113.07 c 0,1.973 -1.6,3.572 -3.573,3.572 -1.974,0 -3.573,-1.6 -3.573,-3.572 0,-1.974 1.6,-3.573 3.573,-3.573 1.973,0 3.573,1.6 3.573,3.573 z"
+ id="path1448" />
+ <radialGradient
+ id="radialGradient1450"
+ cx="20.892099"
+ cy="64.567902"
+ r="5.257"
+ fx="20.892099"
+ fy="64.567902"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#F0F0F0"
+ id="stop1452" />
+ <stop
+ offset="1"
+ style="stop-color:#474747"
+ id="stop1454" />
+ </radialGradient>
+ <path
+ inkscape:connector-curvature="0"
+ style="stroke:none"
+ d="m 23.428,63.07 c 0,1.973 -1.6,3.573 -3.573,3.573 -1.974,0 -3.573,-1.6 -3.573,-3.573 0,-1.974 1.6,-3.573 3.573,-3.573 1.973,0 3.573,1.6 3.573,3.573 z"
+ id="path1456" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient11189);fill-rule:nonzero;stroke:none"
+ d="m 9.9950109,29.952326 c 0,0.453204 -0.3675248,0.820499 -0.8207288,0.820499 -0.4534338,0 -0.8207289,-0.367524 -0.8207289,-0.820499 0,-0.453434 0.3675248,-0.820729 0.8207289,-0.820729 0.453204,0 0.8207288,0.367525 0.8207288,0.820729 z"
+ id="path15570" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient11191);fill-rule:nonzero;stroke:none"
+ d="m 9.9950109,18.467176 c 0,0.453204 -0.3675248,0.820729 -0.8207288,0.820729 -0.4534338,0 -0.8207289,-0.367525 -0.8207289,-0.820729 0,-0.453434 0.3675248,-0.820729 0.8207289,-0.820729 0.453204,0 0.8207288,0.367525 0.8207288,0.820729 z"
+ id="path15577" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.42040503;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
+ d="m 11.505723,5.4942766 0,37.9065924"
+ id="path15672"
+ sodipodi:nodetypes="cc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ffffff;stroke-width:1.43685257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.20467828"
+ d="m 12.5,5.0205154 0,38.0177126"
+ id="path15674"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <g
+ id="layer5"
+ inkscape:label="Text"
+ style="display:inline">
+ <rect
+ ry="0.065390877"
+ rx="0.13778631"
+ y="9"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect15686"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.13778631"
+ y="11"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect15688"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.13778631"
+ y="13"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect15690"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.13778631"
+ y="15"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect15692"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.13778631"
+ y="17"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect15694"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.13778631"
+ y="19"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect15696"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.13778631"
+ y="21"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect15698"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.13778631"
+ y="23"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect15700"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.062003858"
+ y="25"
+ x="15.999986"
+ height="1"
+ width="9.0000057"
+ id="rect15732"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <g
+ id="g4849">
+ <rect
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect15736"
+ width="20.000006"
+ height="1"
+ x="15.999986"
+ y="29"
+ rx="0.13778631"
+ ry="0.065390877" />
+ <rect
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect15738"
+ width="20.000006"
+ height="1"
+ x="15.999986"
+ y="31"
+ rx="0.13778631"
+ ry="0.065390877" />
+ <rect
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect15740"
+ width="20.000006"
+ height="1"
+ x="15.999986"
+ y="33"
+ rx="0.13778631"
+ ry="0.065390877" />
+ <rect
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect15742"
+ width="20.000006"
+ height="1"
+ x="15.999986"
+ y="35"
+ rx="0.13778631"
+ ry="0.065390877" />
+ <rect
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect15744"
+ width="14.000014"
+ height="1"
+ x="15.999986"
+ y="37"
+ rx="0.096450485"
+ ry="0.065390877" />
+ </g>
+ </g>
+ </g>
+ <text
+ sodipodi:linespacing="125%"
+ id="text7676"
+ y="279.34702"
+ x="85.84211"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="279.34702"
+ x="85.84211"
+ id="tspan7678"
+ sodipodi:role="line">MyMessage.proto</tspan></text>
+ </g>
+ <g
+ id="g11049"
+ transform="translate(74.824219,-16)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text7692"
+ y="408.36218"
+ x="269.17578"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="408.36218"
+ x="269.17578"
+ id="tspan7694"
+ sodipodi:role="line">pb_encode( );</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text7696"
+ y="421.36218"
+ x="269"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="421.36218"
+ x="269"
+ id="tspan7698"
+ sodipodi:role="line">pb_decode( );</tspan></text>
+ </g>
+ <g
+ id="g10981"
+ transform="translate(40.612196,-41.994574)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text7688"
+ y="321.55872"
+ x="161.02837"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="321.55872"
+ x="161.02837"
+ id="tspan7690"
+ sodipodi:role="line">nanopb_generator.py</tspan></text>
+ <g
+ transform="matrix(0.20866613,0,0,0.20866613,166.72161,281.75965)"
+ id="g10620">
+ <path
+ inkscape:connector-curvature="0"
+ id="path46"
+ style="fill:#646464;fill-opacity:1"
+ d="m 184.61344,61.929363 c 0,-14.56215 -4.15226,-22.03817 -12.45678,-22.44755 -3.30427,-0.15595 -6.53055,0.37039 -9.66912,1.58878 -2.505,0.89673 -4.19124,1.78372 -5.07823,2.68045 l 0,34.75812 c 5.31216,3.33351 10.02976,4.88329 14.14303,4.63962 8.70415,-0.57508 13.0611,-7.64172 13.0611,-21.21942 z m 10.24419,0.60432 c 0,7.39804 -1.73498,13.53871 -5.22444,18.422 -3.88909,5.5266 -9.27923,8.37275 -16.17042,8.52871 -5.1952,0.1657 -10.54635,-1.46207 -16.05346,-4.87355 l 0,31.590317 -8.90884,-3.17755 0,-70.120567 c 1.46206,-1.79346 3.34325,-3.3335 5.62407,-4.63961 5.30242,-3.08983 11.74524,-4.67861 19.32848,-4.75658 l 0.12671,0.12671 c 6.93018,-0.08773 12.27159,2.75843 16.02422,8.5287 3.4992,5.29267 5.25368,12.07665 5.25368,20.37142 z" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path48"
+ style="fill:#646464;fill-opacity:1"
+ d="m 249.30487,83.265743 c 0,9.92254 -0.9942,16.794237 -2.9826,20.615097 -1.99816,3.82086 -5.79952,6.8717 -11.41385,9.14277 -4.55189,1.79346 -9.47417,2.76817 -14.75709,2.93387 l -1.47181,-5.61432 c 5.37064,-0.73103 9.15252,-1.46207 11.34561,-2.1931 4.31796,-1.46206 7.28108,-3.70389 8.90884,-6.706 1.30611,-2.446517 1.94942,-7.115367 1.94942,-14.026057 l 0,-2.3198 c -6.09193,2.76817 -12.47628,4.14251 -19.15303,4.14251 -4.38619,0 -8.25579,-1.37434 -11.58929,-4.14251 -3.74289,-3.01186 -5.61433,-6.83272 -5.61433,-11.46258 l 0,-37.07793 8.90884,-3.05084 0,37.3216 c 0,3.98656 1.28662,7.0569 3.85985,9.21101 2.57323,2.1541 5.90674,3.18729 9.99077,3.10932 4.08403,-0.08773 8.46047,-1.66676 13.10983,-4.75658 l 0,-43.54025 8.90884,0 0,48.41379 z" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path50"
+ style="fill:#646464;fill-opacity:1"
+ d="m 284.08249,88.997033 c -1.06243,0.08772 -2.03714,0.12671 -2.93387,0.12671 -5.03925,0 -8.96733,-1.19889 -11.77449,-3.60642 -2.79742,-2.40753 -4.20099,-5.73129 -4.20099,-9.97127 l 0,-35.08953 -6.10168,0 0,-5.60457 6.10168,0 0,-14.88381 8.89909,-3.16781 0,18.05162 10.01026,0 0,5.60457 -10.01026,0 0,34.84585 c 0,3.34325 0.89673,5.71179 2.6902,7.09588 1.54004,1.14041 3.98656,1.79347 7.32006,1.95917 l 0,4.63961 z" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path52"
+ style="fill:#646464;fill-opacity:1"
+ d="m 338.02288,88.266003 -8.90884,0 0,-34.38773 c 0,-3.49921 -0.81876,-6.51106 -2.44651,-9.02581 -1.88119,-2.84615 -4.49342,-4.26923 -7.84641,-4.26923 -4.08404,0 -9.19152,2.15411 -15.32242,6.46233 l 0,41.22044 -8.90885,0 0,-82.1972101 8.90885,-2.80716 0,37.4385701 c 5.6923,-4.14251 11.91093,-6.21864 18.66566,-6.21864 4.7176,0 8.53846,1.58877 11.46258,4.75658 2.93388,3.1678 4.39594,7.11537 4.39594,11.83296 l 0,37.1949 0,0 z" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path54"
+ style="fill:#646464;fill-opacity:1"
+ d="m 385.37424,60.525783 c 0,-5.59483 -1.06242,-10.21495 -3.17755,-13.87011 -2.51474,-4.45442 -6.42332,-6.80347 -11.70625,-7.04715 -9.76658,0.56534 -14.64012,7.56375 -14.64012,20.97574 0,6.15042 1.01369,11.28713 3.06057,15.41015 2.61223,5.25368 6.53056,7.84641 11.755,7.75869 9.80557,-0.07798 14.70835,-7.81717 14.70835,-23.22732 z m 9.75685,0.05848 c 0,7.96338 -2.03714,14.5914 -6.10168,19.88407 -4.47391,5.92623 -10.65357,8.89909 -18.53897,8.89909 -7.81716,0 -13.90909,-2.97286 -18.30503,-8.89909 -3.98656,-5.29267 -5.97497,-11.92069 -5.97497,-19.88407 0,-7.48576 2.15411,-13.78238 6.46232,-18.90935 4.5519,-5.43888 10.53661,-8.16806 17.93464,-8.16806 7.39805,0 13.42174,2.72918 18.06137,8.16806 4.3082,5.12697 6.46232,11.42359 6.46232,18.90935 z" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path56"
+ style="fill:#646464;fill-opacity:1"
+ d="m 446.20583,88.266003 -8.90884,0 0,-36.33715 c 0,-3.98656 -1.19889,-7.09588 -3.59667,-9.33772 -2.39779,-2.23208 -5.59483,-3.31401 -9.58139,-3.22628 -4.23023,0.07798 -8.25579,1.46206 -12.07664,4.14251 l 0,44.75864 -8.90884,0 0,-45.86006 c 5.12697,-3.73313 9.84456,-6.16991 14.15276,-7.31032 4.06455,-1.06243 7.65148,-1.58877 10.74131,-1.58877 2.11512,0 4.10352,0.20469 5.97496,0.61406 3.49921,0.80901 6.34535,2.31006 8.53845,4.51291 2.44651,2.43677 3.6649,5.3609 3.6649,8.78212 l 0,40.85006 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient11109);fill-opacity:1"
+ d="m 60.510156,6.3979729 c -4.583653,0.021298 -8.960939,0.4122177 -12.8125,1.09375 C 36.35144,9.4962267 34.291407,13.691825 34.291406,21.429223 l 0,10.21875 26.8125,0 0,3.40625 -26.8125,0 -10.0625,0 c -7.792459,0 -14.6157592,4.683717 -16.7500002,13.59375 -2.46182,10.212966 -2.5710151,16.586023 0,27.25 1.9059283,7.937852 6.4575432,13.593748 14.2500002,13.59375 l 9.21875,0 0,-12.25 c 0,-8.849902 7.657144,-16.656248 16.75,-16.65625 l 26.78125,0 c 7.454951,0 13.406253,-6.138164 13.40625,-13.625 l 0,-25.53125 c 0,-7.266339 -6.12998,-12.7247775 -13.40625,-13.9375001 -4.605987,-0.7667253 -9.385097,-1.1150483 -13.96875,-1.09375 z m -14.5,8.2187501 c 2.769547,0 5.03125,2.298646 5.03125,5.125 -2e-6,2.816336 -2.261703,5.09375 -5.03125,5.09375 -2.779476,-1e-6 -5.03125,-2.277415 -5.03125,-5.09375 -1e-6,-2.826353 2.251774,-5.125 5.03125,-5.125 z"
+ id="path1948" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient11111);fill-opacity:1"
+ d="m 91.228906,35.054223 0,11.90625 c 0,9.230755 -7.825895,16.999999 -16.75,17 l -26.78125,0 c -7.335833,0 -13.406249,6.278483 -13.40625,13.625 l 0,25.531247 c 0,7.26634 6.318588,11.54032 13.40625,13.625 8.487331,2.49561 16.626237,2.94663 26.78125,0 6.750155,-1.95439 13.406253,-5.88761 13.40625,-13.625 l 0,-10.218747 -26.78125,0 0,-3.40625 26.78125,0 13.406254,0 c 7.79246,0 10.69625,-5.435408 13.40624,-13.59375 2.79933,-8.398886 2.68022,-16.475776 0,-27.25 -1.92578,-7.757441 -5.60387,-13.59375 -13.40624,-13.59375 l -10.062504,0 z m -15.0625,64.65625 c 2.779478,3e-6 5.03125,2.277417 5.03125,5.093747 -2e-6,2.82635 -2.251775,5.125 -5.03125,5.125 -2.76955,0 -5.03125,-2.29865 -5.03125,-5.125 2e-6,-2.81633 2.261697,-5.093747 5.03125,-5.093747 z"
+ id="path1950" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 463.5544,26.909383 1.56195,0 0,-9.79624 3.70013,0 0,-1.16766 -8.96221,0 0,1.16766 3.70013,0 0,9.79624 m 6.64702,0 1.33447,0 0,-8.94703 2.89641,8.945906 1.48569,0 3.01816,-8.915576 0,8.9167 1.45579,0 0,-10.9639 -1.92589,0 -3.29831,9.392857 -2.81297,-9.392857 -2.15335,0 0,10.9639"
+ style="font-size:15.16445827px;font-style:normal;font-weight:normal;line-height:125%;fill:#646464;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ id="text3004"
+ sodipodi:nodetypes="ccccccccccccccccccccccc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.44382019;fill:url(#radialGradient11113);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path1894"
+ sodipodi:cx="61.518883"
+ sodipodi:cy="132.28575"
+ sodipodi:rx="48.948284"
+ sodipodi:ry="8.6066771"
+ d="m 110.46717,132.28575 c 0,4.75334 -21.914896,8.60668 -48.948287,8.60668 -27.033391,0 -48.948284,-3.85334 -48.948284,-8.60668 0,-4.75334 21.914893,-8.60668 48.948284,-8.60668 27.033391,0 48.948287,3.85334 48.948287,8.60668 z"
+ transform="matrix(0.73406,0,0,0.809524,16.24958,27.00935)" />
+ </g>
+ </g>
+ <g
+ transform="translate(221.34207,203.5191)"
+ id="g10632">
+ <g
+ id="g10678"
+ inkscape:label="Text"
+ style="display:inline" />
+ </g>
+ <g
+ id="g13491"
+ transform="translate(24.020135,-23.566724)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text7680"
+ y="360.05713"
+ x="215.79094"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="360.05713"
+ x="215.79094"
+ id="tspan7682"
+ sodipodi:role="line">MyMessage.pb.c</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text7684"
+ y="346.05713"
+ x="215.73695"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="346.05713"
+ x="215.73695"
+ id="tspan7686"
+ sodipodi:role="line">MyMessage.pb.h</tspan></text>
+ </g>
+ <g
+ id="g13560"
+ transform="translate(1.7323942,-7.4432063)">
+ <g
+ transform="matrix(0.69596564,0,0,0.69596564,207.04204,157.31974)"
+ id="g10800-7">
+ <g
+ transform="translate(221.34207,203.5191)"
+ id="g10634-0"
+ inkscape:label="Shadow">
+ <g
+ style="display:inline"
+ transform="matrix(0.02105461,0,0,0.02086758,42.85172,41.1536)"
+ id="g10636-1">
+ <rect
+ style="opacity:0.40206185;color:#000000;fill:url(#linearGradient13544);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ id="rect10638-5"
+ width="1339.6335"
+ height="478.35718"
+ x="-1559.2523"
+ y="-150.69685" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient13546);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ id="path10640-0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ id="path10642-8"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient13548);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ transform="translate(221.34207,203.5191)"
+ style="display:inline"
+ inkscape:label="Base"
+ id="g10644-0">
+ <rect
+ style="color:#000000;fill:url(#radialGradient13550);fill-opacity:1;fill-rule:nonzero;stroke:url(#radialGradient13552);stroke-width:1.43685257;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10646-7"
+ width="34.875"
+ height="40.920494"
+ x="6.6035528"
+ y="3.6464462"
+ ry="1.1490486" />
+ <rect
+ style="color:#000000;fill:none;stroke:url(#radialGradient13554);stroke-width:1.43685257;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10648-1"
+ width="32.775887"
+ height="38.946384"
+ x="7.6660538"
+ y="4.5839462"
+ ry="0.14904857"
+ rx="0.14904857" />
+ <g
+ transform="translate(0.646447,-0.03798933)"
+ id="g10650-5">
+ <g
+ id="g10652-1"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43685257;stroke-miterlimit:4"
+ transform="matrix(0.229703,0,0,0.229703,4.967081,4.244972)">
+ <radialGradient
+ id="radialGradient10654-3"
+ cx="20.892099"
+ cy="114.5684"
+ r="5.256"
+ fx="20.892099"
+ fy="114.5684"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#F0F0F0"
+ id="stop10656-3" />
+ <stop
+ offset="1"
+ style="stop-color:#474747"
+ id="stop10658-9" />
+ </radialGradient>
+ <path
+ inkscape:connector-curvature="0"
+ style="stroke:none"
+ d="m 23.428,113.07 c 0,1.973 -1.6,3.572 -3.573,3.572 -1.974,0 -3.573,-1.6 -3.573,-3.572 0,-1.974 1.6,-3.573 3.573,-3.573 1.973,0 3.573,1.6 3.573,3.573 z"
+ id="path10660-4" />
+ <radialGradient
+ id="radialGradient10662-8"
+ cx="20.892099"
+ cy="64.567902"
+ r="5.257"
+ fx="20.892099"
+ fy="64.567902"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#F0F0F0"
+ id="stop10664-2" />
+ <stop
+ offset="1"
+ style="stop-color:#474747"
+ id="stop10666-3" />
+ </radialGradient>
+ <path
+ inkscape:connector-curvature="0"
+ style="stroke:none"
+ d="m 23.428,63.07 c 0,1.973 -1.6,3.573 -3.573,3.573 -1.974,0 -3.573,-1.6 -3.573,-3.573 0,-1.974 1.6,-3.573 3.573,-3.573 1.973,0 3.573,1.6 3.573,3.573 z"
+ id="path10668-6" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient13556);fill-rule:nonzero;stroke:none"
+ d="m 9.9950109,29.952326 c 0,0.453204 -0.3675248,0.820499 -0.8207288,0.820499 -0.4534338,0 -0.8207289,-0.367524 -0.8207289,-0.820499 0,-0.453434 0.3675248,-0.820729 0.8207289,-0.820729 0.453204,0 0.8207288,0.367525 0.8207288,0.820729 z"
+ id="path10670-0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient13558);fill-rule:nonzero;stroke:none"
+ d="m 9.9950109,18.467176 c 0,0.453204 -0.3675248,0.820729 -0.8207288,0.820729 -0.4534338,0 -0.8207289,-0.367525 -0.8207289,-0.820729 0,-0.453434 0.3675248,-0.820729 0.8207289,-0.820729 0.453204,0 0.8207288,0.367525 0.8207288,0.820729 z"
+ id="path10672-9" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:1.42040503;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.01754384"
+ d="m 11.505723,5.4942766 0,37.9065924"
+ id="path10674-0"
+ sodipodi:nodetypes="cc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#ffffff;stroke-width:1.43685257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.20467828"
+ d="m 12.5,5.0205154 0,38.0177126"
+ id="path10676-7"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.13778631"
+ y="9"
+ x="15.999994"
+ height="1"
+ width="20.000006"
+ id="rect10680-0"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.010779859"
+ y="11"
+ x="15.999994"
+ height="1"
+ width="1.5647217"
+ id="rect10682-2"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.071673371"
+ y="13"
+ x="18.272837"
+ height="1"
+ width="10.403558"
+ id="rect10684-0"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.093421049"
+ y="15"
+ x="18.272837"
+ height="1"
+ width="13.560284"
+ id="rect10686-0"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.074283093"
+ y="17"
+ x="18.272837"
+ height="1"
+ width="10.782365"
+ id="rect10688-0"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.010779865"
+ y="19"
+ x="18.272837"
+ height="1"
+ width="1.5647227"
+ id="rect10690-4"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.041226614"
+ y="21"
+ x="20.166874"
+ height="1"
+ width="5.984139"
+ id="rect10692-0"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.031657632"
+ y="23"
+ x="18.146568"
+ height="1"
+ width="4.5951796"
+ id="rect10694-8"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.064613581"
+ y="25"
+ x="20.040596"
+ height="1"
+ width="9.3788128"
+ id="rect10696-1"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10730-1"
+ width="1.5501302"
+ height="1"
+ x="18.166864"
+ y="27"
+ rx="0.010679333"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10732-9"
+ width="1.5647217"
+ height="1"
+ x="15.999994"
+ y="29"
+ rx="0.010779859"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10734-9"
+ width="9.2671347"
+ height="1"
+ x="15.999994"
+ y="33"
+ rx="0.063844196"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10736-3"
+ width="1.5647217"
+ height="1"
+ x="15.999994"
+ y="35"
+ rx="0.010779859"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10738-9"
+ width="8.7620602"
+ height="1"
+ x="18.272837"
+ y="37"
+ rx="0.060364578"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10740-9"
+ width="10.277287"
+ height="1"
+ x="18.272837"
+ y="39"
+ rx="0.070803463"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#555753;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10742-1"
+ width="1.5647227"
+ height="1"
+ x="19.43354"
+ y="23"
+ rx="0.010779865"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.010779865"
+ y="16.928572"
+ x="18.272825"
+ height="1"
+ width="1.5647227"
+ id="rect10744-2"
+ style="color:#000000;fill:#555753;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#75507b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10746-6"
+ width="3.9754369"
+ height="1"
+ x="15.951397"
+ y="8.9821434"
+ rx="0.027388033"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.021236859"
+ y="13.000001"
+ x="18.272825"
+ height="1"
+ width="3.0825799"
+ id="rect10748-4"
+ style="color:#000000;fill:#75507b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#75507b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10750-7"
+ width="3.0825799"
+ height="1"
+ x="18.36211"
+ y="14.964287"
+ rx="0.021236859"
+ ry="0.065390877" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ ry="0.065390877"
+ rx="0.014470569"
+ y="33"
+ x="15.86211"
+ height="1"
+ width="2.1004369"
+ id="rect10752-9"
+ style="color:#000000;fill:#75507b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ transform="translate(221.34207,203.5191)"
+ style="color:#000000;fill:#75507b;fill-opacity:0.54970757;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:block;overflow:visible"
+ id="rect10754-3"
+ width="2.1004369"
+ height="1"
+ x="18.272825"
+ y="36.92857"
+ rx="0.014470569"
+ ry="0.065390877" />
+ <text
+ xml:space="preserve"
+ style="font-size:22.49356079px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#2e3436;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ x="247.85315"
+ y="242.62157"
+ id="text10726-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan10728-8"
+ x="247.85315"
+ y="242.62157">c</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ x="339"
+ y="345.36218"
+ id="text13355"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan13357"
+ x="339"
+ y="345.36218">Nanopb library</tspan></text>
+ </g>
+ <g
+ id="g11071"
+ transform="translate(81.439632,-41.53157)">
+ <g
+ id="g12984">
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ x="193"
+ y="442.36218"
+ id="text10864"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan10866"
+ x="193"
+ y="442.36218">Protocol Buffers</tspan><tspan
+ sodipodi:role="line"
+ x="193"
+ y="457.36218"
+ id="tspan10868"
+ dy="-5">messages</tspan></text>
+ <g
+ transform="matrix(0.66229159,0,0,0.66229159,176.71024,408.41713)"
+ inkscape:label="Layer 1"
+ id="layer1-3">
+ <g
+ style="display:inline"
+ id="g5022"
+ transform="matrix(0.02312904,0,0,0.01485743,45.62082,30.57952)">
+ <rect
+ y="-150.69685"
+ x="-1559.2523"
+ height="478.35718"
+ width="1339.6335"
+ id="rect4173"
+ style="opacity:0.40206185;color:#000000;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ id="path5058"
+ d="m -219.61876,-150.68038 c 0,0 0,478.33079 0,478.33079 142.874166,0.90045 345.40022,-107.16966 345.40014,-239.196175 0,-132.026537 -159.436816,-239.134595 -345.40014,-239.134615 z"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.40206185;color:#000000;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m -1559.2523,-150.68038 c 0,0 0,478.33079 0,478.33079 -142.8742,0.90045 -345.4002,-107.16966 -345.4002,-239.196175 0,-132.026537 159.4368,-239.134595 345.4002,-239.134615 z"
+ id="path5018"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ id="g2570"
+ transform="matrix(1.004727,0,0,1.006001,0.05456518,-9.119156)"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path12723"
+ d="m 6.34375,15.454879 0,25.987281 36.96875,0 L 43.25,15.554447 c -1.3e-5,-0.0057 3.74e-4,-0.02709 0,-0.03319 -7.31e-4,-0.0065 0.0011,-0.02633 0,-0.03319 -0.0014,-0.0072 -0.02946,-0.02558 -0.03125,-0.03319 l -36.875,0 z"
+ style="fill:url(#linearGradient1483);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.50185335;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc"
+ id="path1634"
+ d="M 20.490674,29.058712 7.09471,40.0307 l 13.908842,-9.604306 9.018158,0 12.419047,9.482193 -11.863425,-10.849875 -10.086658,0 z"
+ style="fill:url(#linearGradient1487);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path15103"
+ d="m 7.34375,16.733862 c -0.0067,0.01334 0.00539,0.01964 0,0.03159 -0.00237,0.0056 -0.029214,0.02632 -0.03125,0.03159 -0.0017,0.0049 0.00137,0.02704 0,0.03159 -0.00103,0.0042 6.858e-4,0.02777 0,0.03159 l 0.03125,23.473418 34.9375,0 -0.0625,-23.347047 c -6.87e-4,-0.0037 10e-4,-0.02751 0,-0.03159 -0.01466,-0.04808 -0.04183,-0.132156 -0.09375,-0.221149 l -34.78125,0 z"
+ style="fill:none;stroke:#ffffff;stroke-width:1.50185323;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path2563"
+ d="M 23.329298,32.996721 C 20.937189,32.550375 7.9003872,18.771125 6.5966059,16.372022 6.5816495,16.343448 6.5559705,16.288608 6.5446896,16.2636 l 34.5131134,0 c -0.277079,2.502804 -7.524227,16.505746 -9.561279,16.733121 -0.0082,4.68e-4 -0.02128,0 -0.02927,0 l -8.020859,0 c -0.03363,0 -0.07755,0.0074 -0.117094,0 z"
+ style="fill:url(#radialGradient1491);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path1613"
+ d="M 20.77475,31.085394 C 18.407309,30.694257 7.945269,18.619435 7.1185841,16.517089 7.109327,16.49205 7.094677,16.443993 7.088438,16.422079 l 35.542207,0 c -0.823616,2.19322 -11.29845,14.464065 -13.445143,14.663315 -0.0085,4.09e-4 -0.02191,0 -0.03015,0 l -8.260021,0 c -0.03463,0 -0.08145,0.0065 -0.120584,0 z"
+ style="fill:url(#linearGradient1497);fill-opacity:1;fill-rule:evenodd;stroke:#989898;stroke-width:1.28649366;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path18153"
+ d="M 20.625174,30.490479 C 18.519211,29.999928 7.7224803,17.987711 7.0314243,16.466377 c -0.00254,-0.006 0.00218,-0.02669 0,-0.03231 -0.00545,-0.01576 -0.029096,-0.0523 -0.03125,-0.06463 2.87e-5,-0.0033 -4.061e-4,-0.02938 0,-0.03231 0.00117,-0.0021 0.029695,0.0017 0.03125,0 l 0.09375,-0.09694 35.4687497,0 c -0.0027,0.02433 -0.02268,0.06687 -0.03125,0.09694 -0.0075,0.0236 -0.02057,0.07023 -0.03125,0.09694 -0.922098,2.180937 -11.507988,13.766449 -13.34375,14.056416 -0.01493,0.0016 -0.04885,0 -0.0625,0 l -8.375,0 c -0.03029,-0.0017 -0.08975,0.0082 -0.125,0 z"
+ style="fill:url(#linearGradient1501);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path1616"
+ d="M 20.875174,30.051141 C 18.427215,29.501671 8.7040003,18.433898 7.5314243,16.451725 l 34.5937497,0 c -1.490188,2.333171 -11.046672,13.411791 -13.15625,13.599416 -0.0087,4.02e-4 -0.02278,0 -0.03125,0 l -7.90625,0 c -0.02639,0 -0.06488,0.0036 -0.09375,0 -0.01979,-0.0031 -0.04165,0.0047 -0.0625,0 z"
+ style="fill:none;stroke:url(#linearGradient1503);stroke-width:1.2864933;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc"
+ id="path1636"
+ d="m 20.959511,30.447113 -11.941499,8.270856 2.219433,0.0061 9.998125,-6.86894 8.821908,-1.422838 -9.097967,0.01482 z"
+ style="fill:url(#linearGradient1505);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g11055"
+ transform="translate(68.952442,-27.959635)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text10870"
+ y="435.36218"
+ x="367.90341"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="435.36218"
+ x="367.90341"
+ id="tspan10872"
+ sodipodi:role="line">Data structures</tspan></text>
+ <g
+ transform="matrix(0.69596564,0,0,0.69596564,273.85443,81.742553)"
+ id="g10906">
+ <path
+ style="fill:none;stroke:#2e3436;stroke-width:1.43685257px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 180,479.36218 0,-3 4,0 0,-3"
+ id="path10902"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#2e3436;stroke-width:1.43685257px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 206,479.36218 0,-3 -4,0 0,-3"
+ id="path10904"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <g
+ id="g10880">
+ <rect
+ ry="0.040280778"
+ rx="0.010749566"
+ y="462.36218"
+ x="180"
+ height="11"
+ width="26"
+ id="rect10874"
+ style="color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1.43685257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:#bdd2e9;stroke-width:1.43685257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect10876"
+ width="24"
+ height="9.0000305"
+ x="181"
+ y="463.36215"
+ rx="0.0099226767"
+ ry="0.032957111" />
+ </g>
+ <g
+ id="g10892"
+ transform="translate(8,-2)">
+ <rect
+ style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:1.43685257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect10886"
+ width="13"
+ height="10.999969"
+ x="166"
+ y="481.36221"
+ rx="0.0053747827"
+ ry="0.040280666" />
+ <rect
+ ry="0.032956999"
+ rx="0.004547894"
+ y="482.36218"
+ x="167"
+ height="9"
+ width="11"
+ id="rect10888"
+ style="color:#000000;fill:#8ae234;fill-opacity:1;fill-rule:nonzero;stroke:#caf2a4;stroke-width:1.43685257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ <g
+ transform="translate(33,-2)"
+ id="g10896">
+ <rect
+ ry="0.040280666"
+ rx="0.0053747827"
+ y="481.36221"
+ x="166"
+ height="10.999969"
+ width="13"
+ id="rect10898"
+ style="color:#000000;fill:#d3d7cf;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:1.43685257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="color:#000000;fill:#8ae234;fill-opacity:1;fill-rule:nonzero;stroke:#caf2a4;stroke-width:1.43685257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect10900"
+ width="11"
+ height="9"
+ x="167"
+ y="482.36218"
+ rx="0.004547894"
+ ry="0.032956999" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g15531"
+ transform="translate(-16,0.55679368)">
+ <g
+ transform="matrix(0.79106547,0,0,0.79106547,463.64438,289.26048)"
+ id="g15500">
+ <g
+ inkscape:label="shadow"
+ id="layer2">
+ <path
+ transform="matrix(1.18638,0,0,1.18638,-4.539687,-7.794678)"
+ d="m 44.285715,38.714287 c 0,5.43296 -8.922325,9.837245 -19.928572,9.837245 -11.006246,0 -19.9285713,-4.404285 -19.9285713,-9.837245 0,-5.432961 8.9223253,-9.837245 19.9285713,-9.837245 11.006247,0 19.928572,4.404284 19.928572,9.837245 z"
+ sodipodi:ry="9.837245"
+ sodipodi:rx="19.928572"
+ sodipodi:cy="38.714287"
+ sodipodi:cx="24.357143"
+ id="path1538"
+ style="color:#000000;fill:url(#radialGradient15544);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.50000042;marker:none;visibility:visible;display:inline;overflow:visible"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="layer1-4"
+ inkscape:label="Layer 1">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient15546);fill-rule:nonzero;stroke:#3f4561;stroke-width:1.26411784;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 24.285801,43.196358 4.3751874,23.285744 24.285801,3.3751291 44.196415,23.285744 24.285801,43.196358 l 0,0 z"
+ id="path53304" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc"
+ style="opacity:0.72000002;fill:#ffffff;fill-rule:nonzero;stroke:none"
+ d="M 43.505062,23.285744 24.285801,4.0664819 5.0665401,23.285744 5.8476076,23.910676 24.45724,5.4825431 43.505256,23.285744 l -1.94e-4,0 z"
+ id="path53359" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.5;fill:#ffffff;fill-rule:nonzero;stroke:none"
+ d="m 8.9257729,27.145172 0.7384498,-1.024184 c 0.6367493,0.268492 1.3006183,0.485069 1.9861833,0.644885 l -0.0058,1.576858 c 0.427728,0.08834 0.86301,0.156136 1.304105,0.204371 l 0.481774,-1.501889 c 0.344041,0.02848 0.691764,0.04417 1.043361,0.04417 0.351209,0 0.699124,-0.0155 1.043166,-0.04417 l 0.481775,1.501889 c 0.441288,-0.04823 0.876376,-0.116036 1.304104,-0.204371 l -0.006,-1.577051 c 0.685758,-0.159623 1.349433,-0.3762 1.986182,-0.644692 l 0.92248,1.279502 c 0.402351,-0.182094 0.794241,-0.382591 1.174895,-0.600522 l -0.492817,-1.498016 c 0.59723,-0.36225 1.161723,-0.773319 1.687471,-1.227972 l 1.272141,0.931779 c 0.325638,-0.296581 0.637329,-0.608272 0.933716,-0.93391 l -0.931585,-1.271947 c 0.454847,-0.525748 0.865916,-1.090047 1.228166,-1.687665 l 1.498015,0.493011 C 26.79347,21.2244 26.994161,20.832316 27.175867,20.43016 l -1.279308,-0.922287 c 0.268492,-0.636749 0.485068,-1.300618 0.645079,-1.986376 l 1.576663,0.0058 c 0.08834,-0.427727 0.156137,-0.86301 0.204178,-1.304298 l -1.501695,-0.481774 c 0.02886,-0.343848 0.04417,-0.691764 0.04417,-1.043167 0,-0.351403 -0.01569,-0.699125 -0.04417,-1.043361 l 1.501695,-0.481774 C 28.274632,12.73184 28.206442,12.296751 28.118495,11.86883 l -1.577051,0.006 C 26.381627,11.189076 26.165051,10.525208 25.896753,9.8886539 L 27.176061,8.9663652 C 26.994354,8.5640139 26.79347,8.1721237 26.575926,7.7912754 L 25.077717,8.2842867 C 24.715466,7.6868623 24.304398,7.1225635 23.849744,6.5970095 L 24.78133,5.3248686 C 24.502958,5.0189892 24.210252,4.7268638 23.905922,4.4467488 L 5.0669275,23.285938 6.0738693,24.29288 6.3725811,24.074174 c 0.5257484,0.454653 1.0900465,0.865722 1.6874698,1.227972 l -0.2419526,0.735157 1.1080622,1.108062 -3.876e-4,-1.93e-4 z"
+ id="path53361" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.5;fill:#ffffff;fill-rule:nonzero;stroke:none"
+ d="m 28.448976,32.191116 c 0,-6.484682 4.233883,-11.979469 10.08724,-13.874023 l -2.226972,-2.227167 c -0.01685,0.007 -0.0339,0.01298 -0.05056,0.02015 L 36.077171,15.858244 34.665167,14.44624 c -0.463178,0.2189 -0.91667,0.45446 -1.359314,0.707648 l 0.694089,2.109193 c -0.841314,0.509669 -1.635748,1.08869 -2.375747,1.728732 l -1.79111,-1.311659 c -0.458721,0.41746 -0.897297,0.856036 -1.314564,1.314565 l 1.311465,1.790914 c -0.640041,0.740195 -1.218868,1.534628 -1.728731,2.375748 l -2.109387,-0.694089 c -0.306654,0.536403 -0.589093,1.088304 -0.844994,1.654732 l 1.801182,1.298293 c -0.377942,0.896329 -0.682852,1.831014 -0.907758,2.796501 l -2.219999,-0.0085 c -0.124172,0.602266 -0.219869,1.215188 -0.287476,1.836051 l 2.114423,0.678398 c -0.04029,0.484293 -0.06199,0.97401 -0.06199,1.46857 0,0.494753 0.0217,0.98447 0.06199,1.468763 l -2.114423,0.677816 c 0.06761,0.621251 0.163304,1.233979 0.28767,1.836245 l 2.219805,-0.0083 c 0.224906,0.965487 0.529816,1.900172 0.907758,2.796502 l -1.801182,1.298486 c 0.142382,0.31479 0.293869,0.624931 0.452136,0.930423 l 3.804023,-3.803636 c -0.61602,-1.614245 -0.95425,-3.365836 -0.95425,-5.196269 l 1.93e-4,-1.94e-4 z"
+ id="path53363" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc"
+ style="opacity:0.35;fill:#000000;fill-rule:nonzero;stroke:none"
+ d="M 5.2050478,23.424252 24.285801,42.505005 43.505062,23.285744 42.789963,22.603525 24.310314,41.041677 5.2050478,23.424059 l 0,1.93e-4 z"
+ id="path53365" />
+ </g>
+ </g>
+ <text
+ sodipodi:linespacing="125%"
+ id="text13355-1"
+ y="337.36218"
+ x="440"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans"
+ xml:space="preserve"><tspan
+ y="337.36218"
+ x="440"
+ id="tspan13357-7"
+ sodipodi:role="line">User application</tspan></text>
+ </g>
+ </g>
+</svg>
diff --git a/docs/index.rst b/docs/index.rst
index 1022a1b..31d781e 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -13,9 +13,11 @@ Overall structure
=================
For the runtime program, you always need *pb.h* for type declarations.
-Depending on whether you want to encode, decode or both, you also need *pb_encode.h/c* or *pb_decode.h/c*.
+Depending on whether you want to encode, decode, or both, you also need *pb_encode.h/c* or *pb_decode.h/c*.
-The high-level encoding and decoding functions take an array of *pb_field_t* structures, which describes the fields of a message structure. Usually you want these autogenerated from a *.proto* file. The tool string *nanopb_generator.py* accomplishes this.
+The high-level encoding and decoding functions take an array of *pb_field_t* structures, which describes the fields of a message structure. Usually you want these autogenerated from a *.proto* file. The tool script *nanopb_generator.py* accomplishes this.
+
+.. image:: generator_flow.png
So a typical project might include these files:
@@ -25,8 +27,8 @@ So a typical project might include these files:
- pb_encode.h and pb_encode.c (needed for encoding messages)
2) Protocol description (you can have many):
- person.proto (just an example)
- - person.c (autogenerated, contains initializers for const arrays)
- - person.h (autogenerated, contains type declarations)
+ - person.pb.c (autogenerated, contains initializers for const arrays)
+ - person.pb.h (autogenerated, contains type declarations)
Features and limitations
========================
@@ -37,7 +39,7 @@ Features and limitations
#) Small code size (2–10 kB depending on processor)
#) Small ram usage (typically 200 bytes)
#) Allows specifying maximum size for strings and arrays, so that they can be allocated statically.
-#) No malloc needed: everything is stored on the stack.
+#) No malloc needed: everything can be allocated statically or on the stack.
#) You can use either encoder or decoder alone to cut the code size in half.
**Limitations**
@@ -48,6 +50,7 @@ Features and limitations
#) The deprecated Protocol Buffers feature called "groups" is not supported.
#) Fields in the generated structs are ordered by the tag number, instead of the natural ordering in .proto file.
#) Unknown fields are not preserved when decoding and re-encoding a message.
+#) Reflection (runtime introspection) is not supported. E.g. you can't request a field by giving its name in a string.
#) Numeric arrays are always encoded as packed, even if not marked as packed in .proto. This causes incompatibility with decoders that do not support packed format.
#) Cyclic references between messages are not supported. They could be supported in callback-mode if there was an option in the generator to set the mode.