From 031e88a38930489ec010dcb961d171f9fc8b87d6 Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Thu, 14 Sep 2017 22:27:29 +0200 Subject: [PATCH] Type conversion / operator exercises --- Doc/Sd1/Ref/LangFundament/ascii7bit.svg | 33 +- Doc/Sd1/Ref/LangFundament/ascii7bitEven.svg | 36 +- Doc/Sd1/Ref/LangFundament/byte2short.svg | 1382 ++++++++++ Doc/Sd1/Ref/LangFundament/char2short.svg | 1380 ++++++++++ Doc/Sd1/Ref/LangFundament/dualSigned3bit.svg | 36 +- Doc/Sd1/Ref/LangFundament/dualSignedByte.svg | 30 +- Doc/Sd1/Ref/LangFundament/int2char.svg | 1849 +++++++++++++ Doc/Sd1/Ref/LangFundament/iso8859_1.svg | 38 +- Doc/Sd1/Ref/LangFundament/literalToMemory.svg | 20 +- Doc/Sd1/Ref/LangFundament/operatorSum.svg | 957 +++++++ Doc/Sd1/Ref/LangFundament/unicode.svg | 32 +- .../Ref/LangFundament/variableToMemory.svg | 18 +- Doc/Sd1/languageFundamentals.xml | 2367 ++++++++--------- 13 files changed, 6761 insertions(+), 1417 deletions(-) create mode 100644 Doc/Sd1/Ref/LangFundament/byte2short.svg create mode 100644 Doc/Sd1/Ref/LangFundament/char2short.svg create mode 100644 Doc/Sd1/Ref/LangFundament/int2char.svg create mode 100644 Doc/Sd1/Ref/LangFundament/operatorSum.svg diff --git a/Doc/Sd1/Ref/LangFundament/ascii7bit.svg b/Doc/Sd1/Ref/LangFundament/ascii7bit.svg index 542f34348..4cb4cc59a 100644 --- a/Doc/Sd1/Ref/LangFundament/ascii7bit.svg +++ b/Doc/Sd1/Ref/LangFundament/ascii7bit.svg @@ -12,7 +12,7 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="ascii7bit.svg" - inkscape:version="0.92.1 unknown" + inkscape:version="0.92.1 r15371" version="1.2" id="svg2" height="586.66669" @@ -31,9 +31,9 @@ inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1600" - inkscape:window-height="1176" + inkscape:window-height="1090" inkscape:window-x="0" - inkscape:window-y="24" + inkscape:window-y="27" inkscape:window-maximized="1" showguides="false" inkscape:guide-bbox="true"> @@ -706,29 +706,30 @@ id="layer1" transform="translate(0,-535.85302)"> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.0081141;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-7" width="377.95282" - height="566.92914" + height="570" x="226.77165" - y="555.59058" - ry="35.433064" /> + y="552.51971" + ry="9.9999924" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.0081141;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-1" width="113.38583" - height="566.92914" + height="570" x="680.31494" - y="555.59058" - ry="35.433064" /> + y="552.51971" + ry="9.9999924" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.96286082;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289" - width="113.38583" - height="566.92914" + width="110" + height="570" x="0" - y="555.59058" - ry="35.433064" /> + y="552.51971" + ry="9.9999924" + rx="0" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672" diff --git a/Doc/Sd1/Ref/LangFundament/ascii7bitEven.svg b/Doc/Sd1/Ref/LangFundament/ascii7bitEven.svg index d55609919..dea62b3f5 100644 --- a/Doc/Sd1/Ref/LangFundament/ascii7bitEven.svg +++ b/Doc/Sd1/Ref/LangFundament/ascii7bitEven.svg @@ -12,7 +12,7 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="ascii7bitEven.svg" - inkscape:version="0.92.1 unknown" + inkscape:version="0.92.1 r15371" version="1.2" id="svg2" height="586.66669" @@ -26,14 +26,14 @@ inkscape:pageshadow="2" inkscape:zoom="1.7079545" inkscape:cx="410.66666" - inkscape:cy="293.33334" + inkscape:cy="387.01265" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1600" - inkscape:window-height="1176" + inkscape:window-height="1090" inkscape:window-x="0" - inkscape:window-y="24" + inkscape:window-y="27" inkscape:window-maximized="1" showguides="false" inkscape:guide-bbox="true"> @@ -696,7 +696,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -706,29 +706,29 @@ id="layer1" transform="translate(0,-535.85302)"> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.99468255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-7" width="377.95276" - height="377.95276" + height="376.61414" x="226.77159" - y="631.18109" - ry="35.433064" /> + y="632.51971" + ry="9.9999924" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.99468255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-1" width="113.38585" - height="377.95276" + height="376.61414" x="680.31488" - y="631.18109" - ry="35.433064" /> + y="632.51971" + ry="9.9999924" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.99468255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289" width="113.38583" - height="377.95276" + height="376.61414" x="-7.5825432e-05" - y="631.18109" - ry="35.433064" /> + y="632.51971" + ry="9.9999924" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672" @@ -1394,7 +1394,7 @@ height="340.15747" x="226.77165" y="19.737553" /></flowRegion><flowPara - id="flowPara4593"></flowPara></flowRoot> <g + id="flowPara4593" /></flowRoot> <g id="g4633" transform="translate(113.38569,226.77155)"> <rect diff --git a/Doc/Sd1/Ref/LangFundament/byte2short.svg b/Doc/Sd1/Ref/LangFundament/byte2short.svg new file mode 100644 index 000000000..1967e469d --- /dev/null +++ b/Doc/Sd1/Ref/LangFundament/byte2short.svg @@ -0,0 +1,1382 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:ns1="http://sozi.baierouge.fr" + 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" + sodipodi:docname="byte2short.svg" + inkscape:version="0.92.1 r15371" + version="1.2" + id="svg2" + height="227.79527" + width="823.36237"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.2077062" + inkscape:cx="388.04755" + inkscape:cy="206.43261" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:window-width="1600" + inkscape:window-height="1090" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="false" + inkscape:guide-bbox="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0"> + <inkscape:grid + type="xygrid" + id="grid1569" + originx="0" + originy="-262.20473" /> + </sodipodi:namedview> + <defs + id="defs4"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker11618" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path11616" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker2318" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2316" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker4887" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path4627" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6797" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + id="path6799" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6793" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + id="path6795" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker6778" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path6514" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lstart" + style="overflow:visible"> + <path + id="path3841" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareM" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareM"> + <path + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path3914" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible"> + <path + id="path3844" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondM" + orient="auto" + refY="0" + refX="0" + id="DiamondM" + style="overflow:visible"> + <path + id="path3923" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMH" + orient="auto" + refY="0" + refX="0" + id="DiamondMH" + style="overflow:visible"> + <path + id="path4656" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendB" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendB" + style="overflow:visible"> + <path + id="path4659" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMU" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMU"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path5221" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend3" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend3" + style="overflow:visible"> + <path + id="path5224" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMo" + orient="auto" + refY="0" + refX="0" + id="DiamondMo" + style="overflow:visible"> + <path + id="path5799" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendO" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendO" + style="overflow:visible"> + <path + id="path5802" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondM1" + orient="auto" + refY="0" + refX="0" + id="DiamondM1" + style="overflow:visible"> + <path + id="path6393" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendV" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendV" + style="overflow:visible"> + <path + id="path6396" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMN" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMN"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path7813" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LstartP" + orient="auto" + refY="0" + refX="0" + id="Arrow1LstartP" + style="overflow:visible"> + <path + id="path7816" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMb" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMb"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path9491" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendX" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendX" + style="overflow:visible"> + <path + id="path9494" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareM8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareM8"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path10143" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendT" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendT" + style="overflow:visible"> + <path + id="path10146" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMNT" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMNT"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path12195" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LstartPJ" + orient="auto" + refY="0" + refX="0" + id="Arrow1LstartPJ" + style="overflow:visible"> + <path + id="path12198" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMNTL" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMNTL"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path12907" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lendx" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lendx" + style="overflow:visible"> + <path + id="path12910" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMoY" + orient="auto" + refY="0" + refX="0" + id="DiamondMoY" + style="overflow:visible"> + <path + id="path13187" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendOe" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendOe" + style="overflow:visible"> + <path + id="path13190" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + id="linearGradient3928-8"> + <stop + offset="0" + style="stop-color:#7c7c7c" + id="stop3930-2" /> + <stop + offset="1" + style="stop-color:#e6e3e3" + id="stop3932-0" /> + </linearGradient> + <linearGradient + id="linearGradient8877"> + <stop + style="stop-color:#cecece;stop-opacity:1;" + offset="0" + id="stop8879" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop8881" /> + </linearGradient> + <linearGradient + id="linearGradient8869"> + <stop + id="stop8871" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop8873" + offset="1" + style="stop-color:#000000;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient7421"> + <stop + id="stop7423" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop7425" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient7405"> + <stop + style="stop-color:#9e9e9e;stop-opacity:1;" + offset="0" + id="stop7407" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7409" /> + </linearGradient> + <linearGradient + id="linearGradient7378"> + <stop + id="stop7380" + offset="0" + style="stop-color:#9e9e9e;stop-opacity:1;" /> + <stop + id="stop7382" + offset="1" + style="stop-color:#ffffff;stop-opacity:1;" /> + </linearGradient> + <inkscape:perspective + id="perspective6864" + inkscape:persp3d-origin="32 : 21.333333 : 1" + inkscape:vp_z="64 : 32 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 32 : 1" + sodipodi:type="inkscape:persp3d" /> + <filter + id="imagebot_16" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-6" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-1" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-8" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-7" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-9" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-2" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-2" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-8" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-9" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-73" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-6" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-1" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + id="imagebot_16-0"> + <feGaussianBlur + id="imagebot_21-7" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-5" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + id="imagebot_12-0" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215"> + <feGaussianBlur + id="imagebot_18-4" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-8" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-02" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-9" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-4" + y2="0.73097426" + xlink:href="#linearGradient3928-8" + x2="36.048218" + y1="43.90382" + x1="35.173683" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-3" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-5" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-17" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + </defs> + <metadata + id="metadata7"> + <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="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-632.51971)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672" + x="104.51711" + y="415.68225" + id="text3004"><tspan + sodipodi:role="line" + id="tspan3006" + x="104.51711" + y="415.68225" + style="font-size:42.66666794px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"> </tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.15147495;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect4289" + width="400" + height="157.63777" + x="0" + y="662.51971" + ry="9.9999924" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6ffd5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.9344157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect5901" + width="302.36221" + height="220" + x="520" + y="632.51971" + ry="4.8098278e-14" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-4-3" + width="37.795277" + height="37.795277" + x="557.79529" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52704" + y="817.54968" + id="text2687-80-6"><tspan + sodipodi:role="line" + id="tspan2685-4-7" + x="568.52704" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-4-5" + width="37.795277" + height="37.795277" + x="746.77167" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-6" + width="37.795277" + height="37.795277" + x="671.18109" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-1" + width="37.795277" + height="37.795277" + x="708.97638" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-0" + width="37.795277" + height="37.795277" + x="595.59064" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="817.37054" + id="text2687-8-6-9"><tspan + sodipodi:role="line" + id="tspan2685-7-25-3" + x="606.32227" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-5-6" + width="37.795277" + height="37.795277" + x="633.38586" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11755" + y="817.37054" + id="text2687-8-2-1-0"><tspan + sodipodi:role="line" + id="tspan2685-7-2-1-6" + x="644.11755" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-2" + width="37.795277" + height="37.795277" + x="784.56696" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29865" + y="817.37054" + id="text2687-8-0-6-6"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-1" + x="795.29865" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-8" + width="37.795277" + height="37.795277" + x="520" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-3" + width="37.795277" + height="37.795277" + x="633.38586" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-9" + width="37.795277" + height="37.795277" + x="671.18121" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-02-9" + width="37.795277" + height="37.795277" + x="708.97632" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-6" + width="37.795277" + height="37.795277" + x="746.77167" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.50336" + y="779.57532" + id="text2687-8-0-1"><tspan + sodipodi:role="line" + id="tspan2685-7-9-2" + x="757.50336" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">1</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-9" + width="37.795277" + height="37.795277" + x="557.79541" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52704" + y="779.57532" + id="text2687-8-6-3"><tspan + sodipodi:role="line" + id="tspan2685-7-25-1" + x="568.52704" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-5-9" + width="37.795277" + height="37.795277" + x="595.59064" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-84" + width="37.795277" + height="37.795277" + x="784.56708" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-3" + width="37.795277" + height="37.795277" + x="520" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="779.57532" + id="text2687-8-0-6-61"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-06" + x="530.73169" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="660.25952" + y="654.01447" + id="text5905"><tspan + sodipodi:role="line" + id="tspan5903" + x="660.25952" + y="654.01447" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32.3691597px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="726.49359" + y="770.78754" + id="text5909" + transform="scale(0.90621245,1.103494)"><tspan + sodipodi:role="line" + id="tspan5907" + x="726.49359" + y="770.78754" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36221,822.51969 v 37.7953" + id="path5940-3" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 520,822.51969 v 37.7953" + id="path5940-5" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 520,712.51969 v 37.79528" + id="path5940-2" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36221,712.51969 v 37.79528" + id="path5940-57" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36218,636.92911 v 37.79528" + id="path5940-18" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 519.99997,636.92911 v 37.79528" + id="path5940-59" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="660.01294" + y="733.22003" + id="text5905-6"><tspan + sodipodi:role="line" + id="tspan5903-4" + x="660.01294" + y="733.22003" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-6" + width="37.795277" + height="37.795277" + x="557.79529" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52698" + y="703.98468" + id="text2687-8-6-7-0"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-6" + x="568.52698" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-8-0" + width="37.795277" + height="37.795277" + x="520" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="703.98468" + id="text2687-8-6-7-8-2"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-4-3" + x="530.73169" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32233" + y="779.75433" + id="text2687-80-3-4"><tspan + sodipodi:role="line" + id="tspan2685-4-5-4" + x="606.32233" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11761" + y="779.75433" + id="text2687-80-3-3"><tspan + sodipodi:role="line" + id="tspan2685-4-5-0" + x="644.11761" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91284" + y="779.75433" + id="text2687-80-3-7"><tspan + sodipodi:role="line" + id="tspan2685-4-5-86" + x="681.91284" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70813" + y="779.75433" + id="text2687-80-3-8"><tspan + sodipodi:role="line" + id="tspan2685-4-5-84" + x="719.70813" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29871" + y="779.75433" + id="text2687-80-3-31"><tspan + sodipodi:role="line" + id="tspan2685-4-5-49" + x="795.29871" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73181" + y="817.54968" + id="text2687-80-3-20"><tspan + sodipodi:role="line" + id="tspan2685-4-5-6" + x="530.73181" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91284" + y="817.54968" + id="text2687-80-3-89"><tspan + sodipodi:role="line" + id="tspan2685-4-5-2" + x="681.91284" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70813" + y="817.54968" + id="text2687-80-3-6"><tspan + sodipodi:role="line" + id="tspan2685-4-5-64" + x="719.70813" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.50336" + y="817.37054" + id="text2687-8-0-6-6-9"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-1-50" + x="757.50336" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-30" + width="37.795277" + height="37.795277" + x="595.59045" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-92" + width="37.795277" + height="37.795277" + x="633.38574" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-5" + width="37.795277" + height="37.795277" + x="633.38574" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-4" + width="37.795277" + height="37.795277" + x="671.18103" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-0" + width="37.795277" + height="37.795277" + x="708.97632" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-5" + width="37.795277" + height="37.795277" + x="746.77161" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-94" + width="37.795277" + height="37.795277" + x="784.56677" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="703.98468" + id="text2687-8-6-7-9-7-3-96"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-9" + x="606.32227" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11743" + y="703.98468" + id="text2687-8-6-7-9-7-3-33"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-8" + x="644.11743" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91272" + y="703.98468" + id="text2687-8-6-7-9-7-3-05"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-6" + x="681.91272" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70801" + y="703.98468" + id="text2687-8-6-7-9-7-3-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-40" + x="719.70801" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.5033" + y="703.98468" + id="text2687-8-6-7-9-7-3-04"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-62" + x="757.5033" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29858" + y="703.98468" + id="text2687-8-6-7-9-7-3-67"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-5" + x="795.29858" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="8.4715853" + y="710.22858" + id="text2900"><tspan + sodipodi:role="line" + id="tspan2898" + x="8.4715853" + y="710.22858">byte <tspan + style="fill:#0000ff;stroke:#0000ff" + id="tspan2910">b = 42</tspan>; </tspan><tspan + sodipodi:role="line" + x="8.4715853" + y="746.89526" + id="tspan2902">short <tspan + style="fill:#ff0000;stroke:#ff0000" + id="tspan2914">s = b</tspan>; </tspan><tspan + sodipodi:role="line" + x="8.4715853" + y="783.56189" + id="tspan2904">System.out.println(s);</tspan><tspan + sodipodi:role="line" + x="8.4715853" + y="820.22858" + id="tspan2906" /></text> + </g> + <script + ns1:version="14.10-05142318" + id="sozi-script">function namespace(b,d,a){var c=b;d.split(".").forEach(function(e){if(typeof c[e]==="undefined"){c[e]={}}c=c[e]});if(a){a(c,b)}return c}namespace(this,"sozi.events",function(b){var a={};b.listen=function(c,d){if(!a.hasOwnProperty(c)){a[c]=[]}a[c].push(d)};b.fire=function(d){var c=Array.prototype.slice.call(arguments,1);if(a.hasOwnProperty(d)){a[d].forEach(function(e){e.apply(null,c)})}}});namespace(this,"sozi.proto",function(a){a.Object={installConstructors:function(){function b(){}b.prototype=this;this.instance=function(){var c=new b();c.construct.apply(c,arguments);return c};this.subtype=function(d){var c=new b();c.augment(d);c.installConstructors();return c}},construct:function(){},augment:function(c){for(var b in c){if(c.hasOwnProperty(b)){this[b]=c[b]}}return this},bind:function(c){var b=this;return function(){return c.apply(b,arguments)}}};a.Object.installConstructors()});namespace(this,"sozi.actions",function(A,g){var u=namespace(g,"sozi.player");var v=namespace(g,"sozi.display");var n=g.document;var o=0;var w=1;var t=1.05;var y=5;var m=5;var r=false;var i=0;var h=0;function a(C,B,D){u.stop();v.viewPorts.player.zoom(C>0?t:1/t,B,D)}function x(B){u.stop();v.viewPorts.player.rotate(B>0?y:-y)}function s(){if(sozi.framelist.isVisible()){sozi.framelist.hide();u.restart()}else{u.stop();sozi.framelist.show()}}function d(B){return v.viewPorts.player.contains(B.clientX,B.clientY)}function f(B){if(!d(B)){return}if(B.button===o){n.documentElement.addEventListener("mousemove",q,false);r=false;i=B.clientX;h=B.clientY}else{if(B.button===w){s()}}B.stopPropagation();B.preventDefault()}function q(B){if(!d(B)){return}u.stop();if(!r&&(Math.abs(B.clientX-i)>m||Math.abs(B.clientY-h)>m)){r=true}if(r){sozi.events.fire("sozi.player.cleanup");v.viewPorts.player.drag(B.clientX-i,B.clientY-h);i=B.clientX;h=B.clientY}B.stopPropagation()}function c(B){if(!d(B)){return}if(B.button===o){n.documentElement.removeEventListener("mousemove",q,false)}B.stopPropagation();B.preventDefault()}function p(B){if(!d(B)){return}u.moveToPrevious();B.stopPropagation();B.preventDefault()}function e(B){if(!d(B)){return}if(!r&&B.button!==w){u.moveToNext()}B.stopPropagation();B.preventDefault()}function j(B){if(!d(B)){return}if(!B){B=g.event}var C=0;if(B.wheelDelta){C=B.wheelDelta}else{if(B.detail){C=-B.detail}}if(C!==0){if(B.shiftKey){x(C)}else{a(C,B.clientX,B.clientY)}}B.stopPropagation();B.preventDefault()}function l(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.charCode||B.which){case 43:a(1,g.innerWidth/2,g.innerHeight/2);break;case 45:a(-1,g.innerWidth/2,g.innerHeight/2);break;case 61:u.moveToCurrent();break;case 70:case 102:u.showAll();break;case 84:case 116:s();break;case 82:x(-1);break;case 114:x(1);break;default:return}B.stopPropagation();B.preventDefault()}function b(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.keyCode){case 36:if(B.shiftKey){u.jumpToFirst()}else{u.moveToFirst()}break;case 35:if(B.shiftKey){u.jumpToLast()}else{u.moveToLast()}break;case 38:case 33:case 37:if(B.shiftKey){u.jumpToPrevious()}else{u.moveToPrevious()}break;case 40:case 34:case 39:case 13:case 32:if(B.shiftKey){u.jumpToNext()}else{u.moveToNext()}break;default:return}B.stopPropagation();B.preventDefault()}function z(B){B.stopPropagation()}function k(){var C=n.getElementsByTagName("a");for(var D=0;D<C.length;D+=1){C[D].addEventListener("click",z,false);C[D].addEventListener("contextmenu",z,false)}var B=n.documentElement;B.addEventListener("click",e,false);B.addEventListener("mousedown",f,false);B.addEventListener("mouseup",c,false);B.addEventListener("contextmenu",p,false);B.addEventListener("DOMMouseScroll",j,false);g.onmousewheel=j;B.addEventListener("keypress",l,false);B.addEventListener("keydown",b,false)}sozi.events.listen("sozi.display.ready",k)});namespace(this,"sozi.animation",function(d,g){var h=g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||g.msRequestAnimationFrame||g.oRequestAnimationFrame;var k=function(){return g.performance&&g.performance.now?g.performance.now():Date.now()};d.setAnimationFrameHandlers=function(l,m){h=l;k=m};var i=40;var c;var j=[];function e(){if(j.length>0){if(h){h(e)}j.forEach(function(l){l.step(k())})}else{if(!h){g.clearInterval(c)}}}function b(){if(h){h(e)}else{c=g.setInterval(function(){e(k())},i)}}function a(l){j.push(l);if(j.length===1){b()}}function f(l){j.splice(j.indexOf(l),1)}d.Animator=sozi.proto.Object.subtype({construct:function(){this.durationMs=0;this.data=null;this.initialTime=0;this.started=false},start:function(l,m){this.durationMs=l;this.data=m;this.initialTime=k();this.onStep(0);if(!this.started){this.started=true;a(this)}},stop:function(){if(this.started){f(this);this.started=false}},step:function(m){var l=m-this.initialTime;if(l>=this.durationMs){this.stop();this.onStep(1);this.onDone()}else{this.onStep(l/this.durationMs)}},onStep:function(l){},onDone:function(){}});d.profiles={linear:function(l){return l},accelerate:function(l){return Math.pow(l,3)},"strong-accelerate":function(l){return Math.pow(l,5)},decelerate:function(l){return 1-Math.pow(1-l,3)},"strong-decelerate":function(l){return 1-Math.pow(1-l,5)},"accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,3)/2;return l<=0.5?n:1-n},"strong-accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,5)/2;return l<=0.5?n:1-n},"decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,2))/2;return l<=0.5?n:1-n},"strong-decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,3))/2;return l<=0.5?n:1-n},"immediate-beginning":function(l){return 1},"immediate-end":function(l){return l===1?1:0},"immediate-middle":function(l){return l>=0.5?1:0}}});namespace(this,"sozi.display",function(c,g){var f="http://www.w3.org/2000/svg";var b="http://www.w3.org/1999/xlink";var i=g.document;var k;var h;var j;c.viewPorts={};var e;c.CameraState=sozi.proto.Object.subtype({construct:function(){this.cx=this.cy=0;this.width=this.height=1;this.angle=0;this.clipped=true;this.transitionZoomPercent=0;this.transitionProfile=sozi.animation.profiles.linear;this.transitionPath=null},setCenter:function(l,m){this.cx=l;this.cy=m;return this},setSize:function(m,l){this.width=m;this.height=l;return this},setClipped:function(l){this.clipped=l;return this},setAngle:function(l){this.angle=(l+180)%360-180;return this},setRawAngle:function(l){this.angle=l;return this},setTransitionZoomPercent:function(l){this.transitionZoomPercent=l;return this},setTransitionProfile:function(l){this.transitionProfile=l;return this},setTransitionPath:function(l){this.transitionPath=l;return this},setAtElement:function(p){var s,o,t,m;if(p.nodeName==="rect"){s=p.x.baseVal.value;o=p.y.baseVal.value;t=p.width.baseVal.value;m=p.height.baseVal.value}else{var q=p.getBBox();s=q.x;o=q.y;t=q.width;m=q.height}var n=i.documentElement.createSVGPoint();n.x=s+t/2;n.y=o+m/2;var r=p.getCTM();n=n.matrixTransform(r);var l=Math.sqrt(r.a*r.a+r.b*r.b);return this.setCenter(n.x,n.y).setSize(t*l,m*l).setAngle(Math.atan2(r.b,r.a)*180/Math.PI)},setAtState:function(l){return this.setCenter(l.cx,l.cy).setSize(l.width,l.height).setAngle(l.angle).setClipped(l.clipped).setTransitionZoomPercent(l.transitionZoomPercent).setTransitionProfile(l.transitionProfile).setTransitionPath(l.transitionPath)},interpolatableAttributes:["width","height","angle"],interpolate:function(n,o,t,v,r){var p=1-t;for(var q=0;q<this.interpolatableAttributes.length;q+=1){var s=this.interpolatableAttributes[q];this[s]=o[s]*t+n[s]*p}var l=r?n.transitionPath:o.transitionPath;if(v&&l){var x=l.getTotalLength();if(r){var m=l.getPointAtLength(x);var u=l.getPointAtLength(0);var w=l.getPointAtLength(x*p)}else{var m=l.getPointAtLength(0);var u=l.getPointAtLength(x);var w=l.getPointAtLength(x*t)}this.cx=w.x+(o.cx-u.x)*t+(n.cx-m.x)*p;this.cy=w.y+(o.cy-u.y)*t+(n.cy-m.y)*p}else{this.cx=o.cx*t+n.cx*p;this.cy=o.cy*t+n.cy*p}}});c.Camera=c.CameraState.subtype({construct:function(n,o){c.CameraState.construct.call(this);this.viewPort=n;this.svgClipRect=i.createElementNS(f,"rect");var m=i.createElementNS(f,"clipPath");m.setAttribute("id","sozi-clip-path-"+n.id+"-"+o);m.appendChild(this.svgClipRect);n.svgGroup.appendChild(m);var l=i.createElementNS(f,"g");l.setAttribute("clip-path","url(#sozi-clip-path-"+n.id+"-"+o+")");n.svgGroup.appendChild(l);if(n.isPrimary){this.svgLayer=i.createElementNS(f,"g");this.svgLayer.appendChild(i.getElementById(o))}else{this.svgLayer=i.createElementNS(f,"use");this.svgLayer.setAttributeNS(b,"href","#"+o)}l.appendChild(this.svgLayer)},setAtState:function(l){return c.CameraState.setAtState.call(this,l).update()},getScale:function(){return Math.min(this.viewPort.width/this.width,this.viewPort.height/this.height)},rotate:function(l){return this.setAngle(this.angle+l).update()},zoom:function(m,l,n){return this.setSize(this.width/m,this.height/m).drag((1-m)*(l-this.viewPort.width/2),(1-m)*(n-this.viewPort.height/2))},drag:function(m,l){var q=this.getScale();var o=this.angle*Math.PI/180;var n=Math.sin(o);var p=Math.cos(o);return this.setCenter(this.cx-(m*p-l*n)/q,this.cy-(m*n+l*p)/q).setClipped(false).update()},update:function(){var q=this.getScale();var n=this.width*q;var m=this.height*q;var l=(this.viewPort.width-n)/2;var r=(this.viewPort.height-m)/2;this.svgClipRect.setAttribute("x",this.clipped?l:0);this.svgClipRect.setAttribute("y",this.clipped?r:0);this.svgClipRect.setAttribute("width",this.clipped?n:this.viewPort.width);this.svgClipRect.setAttribute("height",this.clipped?m:this.viewPort.height);var p=-this.cx+this.width/2+l/q;var o=-this.cy+this.height/2+r/q;this.svgLayer.setAttribute("transform","scale("+q+")translate("+p+","+o+")rotate("+(-this.angle)+","+this.cx+","+this.cy+")");return this}});c.ViewPort=sozi.proto.Object.subtype({construct:function(n,m,l){this.id=n;c.viewPorts[n]=this;this.isPrimary=!!l;if(this.isPrimary){if(e){throw"Failed to create a primary viewport. A primary viewport already exists."}else{e=this}}this.svgGroup=i.createElementNS(f,"g");this.svgGroup.setAttribute("class","sozi-viewport");this.svgGroup.setAttribute("id","sozi-viewport-"+n);i.documentElement.appendChild(this.svgGroup);this.setLocation(0,0).setSize(g.innerWidth,g.innerHeight);this.cameras={};m.forEach(function(o){this.cameras[o]=c.Camera.instance(this,o)},this)},setSize:function(m,l){this.width=m;this.height=l;return this},setLocation:function(l,m){this.x=l;this.y=m;return this},contains:function(l,m){return l>=this.x&&l<this.x+this.width&&m>=this.y&&m<this.y+this.height},getDocumentState:function(){var m=c.CameraState.instance().setCenter(k.x+k.width/2,k.y+k.height/2).setSize(k.width,k.height).setClipped(false);var l={};for(var n in this.cameras){l[n]=m}return l},update:function(){this.svgGroup.setAttribute("transform","translate("+this.x+","+this.y+")");for(var l in this.cameras){this.cameras[l].update()}return this},showFrame:function(l){for(var m in l.states){this.cameras[m].setAtState(l.states[m])}return this},drag:function(m,l){for(var n in this.cameras){this.cameras[n].drag(m,l)}return this},zoom:function(m,l,o){for(var n in this.cameras){this.cameras[n].zoom(m,l,o)}return this},rotate:function(l){for(var m in this.cameras){this.cameras[m].rotate(l)}return this},onWindowResize:function(m,l){this.setLocation(this.x*m,this.y*l).setSize(this.width*m,this.height*l).update()}});function d(){var l=i.documentElement;k=l.getBBox();h=g.innerWidth;j=g.innerHeight;l.setAttribute("width",h);l.setAttribute("height",j);sozi.events.fire("sozi.display.ready")}function a(){var l=i.documentElement;l.setAttribute("width",g.innerWidth);l.setAttribute("height",g.innerHeight);for(var m in c.viewPorts){c.viewPorts[m].onWindowResize(g.innerWidth/h,g.innerHeight/j)}h=g.innerWidth;j=g.innerHeight}sozi.events.listen("sozi.document.ready",d);g.addEventListener("resize",a,false)});namespace(this,"sozi.document",function(c,e){var g=e.document;var b="http://sozi.baierouge.fr";var d={title:"Untitled",sequence:"0",hide:"true",clip:"true","show-in-frame-list":"true","timeout-enable":"false","timeout-ms":"5000","transition-duration-ms":"1000","transition-zoom-percent":"0","transition-profile":"linear","transition-path-hide":"true"};var h=["g","image","path","rect","circle","ellipse","line","polyline","polygon","text","clippath"];c.frames=[];c.idLayerList=[];function j(l,k){return l.getAttributeNS(b,k)||d[k]}function i(o,p,k){var l=o.states[p]=o.states[p]||sozi.display.CameraState.instance();if(typeof l.transitionZoomPercent==="undefined"||k.hasAttributeNS(b,"transition-zoom-percent")){l.setTransitionZoomPercent(parseInt(j(k,"transition-zoom-percent"),10))}if(typeof l.transitionProfile==="undefined"||k.hasAttributeNS(b,"transition-profile")){l.setTransitionProfile(sozi.animation.profiles[j(k,"transition-profile")])}if(typeof l.transitionPath==="undefined"||k.hasAttributeNS(b,"transition-path")){var n=g.getElementById(k.getAttributeNS(b,"transition-path"));if(n&&n.nodeName==="path"){l.setTransitionPath(n);if(j(k,"transition-path-hide")==="true"){n.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"refid")){var m=g.getElementById(k.getAttributeNS(b,"refid"));if(m){l.setAtElement(m);if(j(k,"hide")==="true"){m.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"clip")){l.setClipped(j(k,"clip")==="true")}}function a(){var l=[];var p=g.getElementsByTagNameNS(b,"layer");for(var n=0;n<p.length;n+=1){var s=p[n].getAttributeNS(b,"group");if(s&&l.indexOf(s)===-1){l.push(s)}}var r=g.documentElement;var o="http://www.w3.org/2000/svg";var q=g.createElementNS(o,"g");var k=Array.prototype.slice.call(r.childNodes);k.forEach(function(u,t){if(!u.getAttribute){r.removeChild(u)}else{if(l.indexOf(u.getAttribute("id"))!==-1){if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+t);c.idLayerList.push("sozi-wrapper-"+t);r.insertBefore(q,u);q=g.createElementNS(o,"g")}c.idLayerList.push(u.getAttribute("id"))}else{if(h.indexOf(u.localName.toLowerCase())!==-1){r.removeChild(u);q.appendChild(u)}}}});if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+k.length);c.idLayerList.push("sozi-wrapper-"+k.length);r.appendChild(q)}var m=Array.prototype.slice.call(g.getElementsByTagNameNS(b,"frame"));m.sort(function(u,t){var w=parseInt(j(u,"sequence"),10);var v=parseInt(j(t,"sequence"),10);return w-v});m.forEach(function(v,u){var x={id:v.getAttribute("id"),title:j(v,"title"),showInFrameList:j(v,"show-in-frame-list")==="true",sequence:parseInt(j(v,"sequence"),10),timeoutEnable:j(v,"timeout-enable")==="true",timeoutMs:parseInt(j(v,"timeout-ms"),10),transitionDurationMs:parseInt(j(v,"transition-duration-ms"),10),states:{}};c.idLayerList.forEach(function(A){if(u===0||A.search("sozi-wrapper-[0-9]+")!==-1){i(x,A,v)}else{var z=x.states[A]=sozi.display.CameraState.instance();var y=c.frames[c.frames.length-1].states[A];z.setAtState(y)}});var t=Array.prototype.slice.call(v.getElementsByTagNameNS(b,"layer"));t.forEach(function(y){var z=y.getAttributeNS(b,"group");if(z&&c.idLayerList.indexOf(z)!==-1){i(x,z,y)}});for(var w in x.states){if(x.states.hasOwnProperty(w)){c.frames.push(x);break}}})}c.getFrameIndexForId=function(l){for(var k=0;k<c.frames.length;k+=1){if(c.frames[k].id===l){return k}}return -1};function f(){g.documentElement.removeAttribute("viewBox");a();sozi.events.fire("sozi.document.ready")}e.addEventListener("load",f,false)});namespace(this,"sozi.framelist",function(u,k){var o=k.document;var c=5;var i;var p;var j=0;var h;var s;var b;var v;var w;var t;var e=300;var f="decelerate";var a="http://www.w3.org/2000/svg";function n(z){var x=z.relatedTarget,y=o.documentElement;while(x&&x!==i&&x!==y){x=x.parentNode}if(x!==i){u.hide();sozi.player.restart();z.stopPropagation()}}function r(y){var x=p.getCTM().f;if(x<=-k.innerHeight/2){x+=k.innerHeight/2}else{if(x<0){x=0}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function d(y){var x=p.getCTM().f;if(x+j>=k.innerHeight*3/2){x-=k.innerHeight/2}else{if(x+j>k.innerHeight+2*c){x=k.innerHeight-j-4*c}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function g(x){return function(y){sozi.player.previewFrame(x);y.stopPropagation()}}function l(x){x.stopPropagation()}function q(){i=o.createElementNS(a,"g");i.setAttribute("id","sozi-toc");o.documentElement.appendChild(i);p=o.createElementNS(a,"g");i.appendChild(p);var y=o.createElementNS(a,"rect");y.setAttribute("id","sozi-toc-background");y.setAttribute("x",c);y.setAttribute("y",c);y.setAttribute("rx",c);y.setAttribute("ry",c);y.addEventListener("click",l,false);y.addEventListener("mousedown",l,false);y.addEventListener("mouseout",n,false);p.appendChild(y);var A=0;sozi.document.frames.forEach(function(D,E){if(D.showInFrameList){var C=o.createElementNS(a,"text");C.appendChild(o.createTextNode(D.title));C.setAttribute("id","sozi-toc-"+D.id);p.appendChild(C);if(E===sozi.player.currentFrameIndex){C.setAttribute("class","sozi-toc-current")}var B=C.getBBox().width;j+=C.getBBox().height;if(B>A){A=B}C.setAttribute("x",2*c);C.setAttribute("y",j+c);C.addEventListener("click",g(E),false);C.addEventListener("mousedown",l,false)}});var x=o.createElementNS(a,"path");x.setAttribute("class","sozi-toc-arrow");x.setAttribute("d","M"+(A+3*c)+","+(5*c)+" l"+(4*c)+",0 l-"+(2*c)+",-"+(3*c)+" z");x.addEventListener("click",r,false);x.addEventListener("mousedown",l,false);i.appendChild(x);var z=o.createElementNS(a,"path");z.setAttribute("class","sozi-toc-arrow");z.setAttribute("d","M"+(A+3*c)+","+(7*c)+" l"+(4*c)+",0 l-"+(2*c)+","+(3*c)+" z");z.addEventListener("click",d,false);z.addEventListener("mousedown",l,false);i.appendChild(z);y.setAttribute("width",A+7*c);y.setAttribute("height",j+2*c);h=-A-9*c;s=0;w=v=h;i.setAttribute("transform","translate("+h+",0)");t=sozi.animation.Animator.instance().augment({onStep:function(B){var D=sozi.animation.profiles[f](B),C=1-D;w=v*D+b*C;i.setAttribute("transform","translate("+w+",0)")}})}function m(x){var y=Array.prototype.slice.call(o.getElementsByClassName("sozi-toc-current"));y.forEach(function(A){A.removeAttribute("class")});var z=sozi.document.frames[x];if(z.showInFrameList){o.getElementById("sozi-toc-"+z.id).setAttribute("class","sozi-toc-current")}}u.show=function(){o.documentElement.appendChild(i);b=w;v=s;t.start(e)};u.hide=function(){b=w;v=h;t.start(e)};u.isVisible=function(){return v===s};sozi.events.listen("sozi.player.ready",q);sozi.events.listen("sozi.player.cleanup",u.hide);sozi.events.listen("sozi.player.framechange",m)});namespace(this,"sozi.framenumber",function(a,d){var g=d.document;var e;var k,i;var f;var b="http://www.w3.org/2000/svg";function h(){var m=k.getBBox(),n=Math.max(m.width,m.height)*0.75,l=n*1.25;f.setAttribute("r",n);e.setAttribute("transform","translate("+l+","+l+")")}function c(){e=g.createElementNS(b,"g");k=g.createElementNS(b,"text");f=g.createElementNS(b,"circle");e.setAttribute("id","sozi-framenumber");f.setAttribute("cx",0);f.setAttribute("cy",0);e.appendChild(f);i=g.createTextNode(sozi.player.currentFrameIndex+1);k.setAttribute("text-anchor","middle");k.setAttribute("dominant-baseline","central");k.setAttribute("x",0);k.setAttribute("y",0);k.appendChild(i);e.appendChild(k);g.documentElement.appendChild(e);h()}function j(l){i.nodeValue=l+1}sozi.events.listen("sozi.player.ready",c);sozi.events.listen("sozi.player.framechange",j)});namespace(this,"sozi.links",function(c,e){var b="http://www.w3.org/2000/svg";var a="http://www.w3.org/1999/xlink";function f(g){return function(h){sozi.player.moveToFrame(g);h.preventDefault();h.stopPropagation()}}function d(){var h=e.document.getElementsByTagNameNS(b,"a");for(var j=0;j<h.length;j+=1){var g=h[j].getAttributeNS(a,"href");if(g&&g[0]==="#"){h[j].addEventListener("click",f(sozi.location.getFrameIndexForHash(g)),false)}}}sozi.events.listen("sozi.document.ready",d)});namespace(this,"sozi.location",function(a,d){var b=false;a.getFrameIndex=function(){return a.getFrameIndexForHash(d.location.hash)};a.getFrameIndexForHash=function(g){var h=g?g.slice(1):"1";var f;if(/^[0-9]+$/.test(h)){f=parseInt(h,10)-1}else{f=sozi.document.getFrameIndexForId(h)}if(f<0){return 0}else{if(f>=sozi.document.frames.length){return sozi.document.frames.length-1}else{return f}}};function e(){var f=a.getFrameIndex();if(!b){sozi.player.moveToFrame(f)}b=false}function c(f){b=true;d.location.hash="#"+sozi.document.frames[f].id}d.addEventListener("hashchange",e,false);sozi.events.listen("sozi.player.framechange",c)});namespace(this,"sozi.player",function(d,g){var l;var c;var i;var e=500;var n=-10;var j="linear";var f=0;d.currentFrameIndex=0;var k=false;var m=false;function h(){if(sozi.document.frames[d.currentFrameIndex].timeoutEnable){m=true;var o=(d.currentFrameIndex+1)%sozi.document.frames.length;i=g.setTimeout(function(){d.moveToFrame(o)},sozi.document.frames[d.currentFrameIndex].timeoutMs)}}d.startFromIndex=function(o){k=true;m=false;f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);h()};d.restart=function(){d.startFromIndex(d.currentFrameIndex)};d.stop=function(){c.stop();if(m){g.clearTimeout(i);m=false}k=false;f=d.currentFrameIndex};function b(o,y,w){var z={ss:((o<0)?Math.max(y,w):Math.min(y,w))*(100-o)/100,ts:0.5,k:0};if(o!==0){var s=y-w;var r=y-z.ss;var q=w-z.ss;if(s!==0){var p=Math.sqrt(r*q);var x=(r-p)/s;var t=(r+p)/s;z.ts=(x>0&&x<=1)?x:t}z.k=r/z.ts/z.ts}return z}d.jumpToFrame=function(o){d.stop();sozi.events.fire("sozi.player.cleanup");f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);sozi.events.fire("sozi.player.framechange",o)};d.getAnimationData=function(o,q,s,p,v,t){var r={};for(var w in o){r[w]={initialState:sozi.display.CameraState.instance(),finalState:sozi.display.CameraState.instance(),useTransitionPath:v,reverseTransitionPath:t};r[w].profile=p||q[w].transitionProfile;r[w].initialState.setAtState(o[w]);if(q.hasOwnProperty(w)){r[w].finalState.setAtState(q[w])}else{r[w].finalState.setAtState(o[w])}if(r[w].finalState.angle-r[w].initialState.angle>180){r[w].finalState.setRawAngle(r[w].finalState.angle-360)}else{if(r[w].finalState.angle-r[w].initialState.angle<-180){r[w].initialState.setRawAngle(r[w].initialState.angle-360)}}var u=s||q[w].transitionZoomPercent;if(u&&q.hasOwnProperty(w)){r[w].zoomWidth=b(u,o[w].width,q[w].width);r[w].zoomHeight=b(u,o[w].height,q[w].height)}}return r};d.previewFrame=function(o){d.currentFrameIndex=o;c.start(e,d.getAnimationData(l.cameras,sozi.document.frames[o].states,n,sozi.animation.profiles[j]),false,false);sozi.events.fire("sozi.player.framechange",o)};d.moveToFrame=function(r){if(m){g.clearTimeout(i);m=false}var q,t,s,p,o;if(r===(d.currentFrameIndex-1)%sozi.document.frames.length){q=sozi.document.frames[d.currentFrameIndex].transitionDurationMs;t=undefined;s=undefined;p=true;o=true}else{if(r===(d.currentFrameIndex+1)%sozi.document.frames.length){q=sozi.document.frames[r].transitionDurationMs;t=undefined;s=undefined;p=true;o=false}else{q=e;t=n;s=sozi.animation.profiles[j];p=false;o=false}}sozi.events.fire("sozi.player.cleanup");k=true;d.currentFrameIndex=r;c.start(q,d.getAnimationData(l.cameras,sozi.document.frames[r].states,t,s,p,o));sozi.events.fire("sozi.player.framechange",r)};d.jumpToFirst=function(){d.jumpToFrame(0)};d.moveToFirst=function(){d.moveToFrame(0)};d.jumpToPrevious=function(){var o=d.currentFrameIndex;if(!c.started||f<=d.currentFrameIndex){o-=1}if(o>=0){d.jumpToFrame(o)}};d.moveToPrevious=function(){for(var o=d.currentFrameIndex-1;o>=0;o-=1){var p=sozi.document.frames[o];if(!p.timeoutEnable||p.timeoutMs!==0){d.moveToFrame(o);break}}};d.jumpToNext=function(){var o=d.currentFrameIndex;if(!c.started||f>=d.currentFrameIndex){o+=1}if(o<sozi.document.frames.length){d.jumpToFrame(o)}};d.moveToNext=function(){if(d.currentFrameIndex<sozi.document.frames.length-1||sozi.document.frames[d.currentFrameIndex].timeoutEnable){d.moveToFrame((d.currentFrameIndex+1)%sozi.document.frames.length)}};d.jumpToLast=function(){d.jumpToFrame(sozi.document.frames.length-1)};d.moveToLast=function(){d.moveToFrame(sozi.document.frames.length-1)};d.moveToCurrent=function(){d.moveToFrame(d.currentFrameIndex)};d.showAll=function(){d.stop();sozi.events.fire("sozi.player.cleanup");c.start(e,d.getAnimationData(l.cameras,l.getDocumentState(),n,sozi.animation.profiles[j],false,false))};function a(){l=sozi.display.ViewPort.instance("player",sozi.document.idLayerList,true);d.startFromIndex(sozi.location.getFrameIndex());g.setTimeout(l.bind(l.update),1);sozi.events.fire("sozi.player.ready")}d.onAnimationStep=function(o,q){for(var s in q){var p=l.cameras[s];p.interpolate(q[s].initialState,q[s].finalState,q[s].profile(o),q[s].useTransitionPath,q[s].reverseTransitionPath);var r;if(q[s].zoomWidth&&q[s].zoomWidth.k!==0){r=o-q[s].zoomWidth.ts;p.width=q[s].zoomWidth.k*r*r+q[s].zoomWidth.ss}if(q[s].zoomHeight&&q[s].zoomHeight.k!==0){r=o-q[s].zoomHeight.ts;p.height=q[s].zoomHeight.k*r*r+q[s].zoomHeight.ss}p.setClipped(q[s].finalState.clipped)}l.update()};c=sozi.animation.Animator.instance().augment({onStep:function(o){d.onAnimationStep(o,this.data)},onDone:function(){for(var o in this.data){l.cameras[o].setAtState(this.data[o].finalState)}l.update();f=d.currentFrameIndex;if(k){h()}}});sozi.events.listen("sozi.display.ready",a)});</script> + <style + ns1:version="14.10-05142318" + id="sozi-style">#sozi-toc text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}#sozi-toc text:hover{fill:#0cf;cursor:pointer}#sozi-toc text.sozi-toc-current{fill:#fa4}#sozi-toc-background{stroke:#222;stroke-opacity:.1;stroke-width:10;fill:#222;fill-opacity:.9}.sozi-toc-arrow{fill:#eff;fill-opacity:.75;stroke:none}.sozi-toc-arrow:hover{fill:#0cf}#sozi-framenumber circle{stroke:#222;stroke-opacity:.1;stroke-width:4;fill:#222;fill-opacity:.9}#sozi-framenumber text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}</style> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="1" + ns1:title="Gcd implementation" + ns1:refid="rect10351" /> + <ns1:frame + ns1:refid="rect10841" + ns1:title="Gcd maven packaging" + ns1:sequence="2" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="3" + ns1:title="Using Math.getGcd()" + ns1:refid="rect11089" /> + <ns1:frame + ns1:refid="rect11381" + ns1:title="Fraction project" + ns1:sequence="4" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="5" + ns1:title="Maven dependency definition" + ns1:refid="rect11637" /> + <ns1:frame + ns1:refid="rect11895" + ns1:title="Fraction depends on Gcd" + ns1:sequence="6" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000" + ns1:transition-duration-ms="1000" + ns1:transition-zoom-percent="0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> +</svg> diff --git a/Doc/Sd1/Ref/LangFundament/char2short.svg b/Doc/Sd1/Ref/LangFundament/char2short.svg new file mode 100644 index 000000000..02713c4ba --- /dev/null +++ b/Doc/Sd1/Ref/LangFundament/char2short.svg @@ -0,0 +1,1380 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:ns1="http://sozi.baierouge.fr" + 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" + sodipodi:docname="char2int.svg" + inkscape:version="0.92.1 r15371" + version="1.2" + id="svg2" + height="227.79527" + width="823.36237"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.2077062" + inkscape:cx="388.04755" + inkscape:cy="140.19133" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:window-width="1600" + inkscape:window-height="1090" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="false" + inkscape:guide-bbox="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0"> + <inkscape:grid + type="xygrid" + id="grid1569" + originx="0" + originy="-262.20473" /> + </sodipodi:namedview> + <defs + id="defs4"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker11618" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path11616" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker2318" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2316" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker4887" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path4627" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6797" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + id="path6799" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6793" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + id="path6795" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker6778" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path6514" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lstart" + style="overflow:visible"> + <path + id="path3841" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareM" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareM"> + <path + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path3914" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible"> + <path + id="path3844" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondM" + orient="auto" + refY="0" + refX="0" + id="DiamondM" + style="overflow:visible"> + <path + id="path3923" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMH" + orient="auto" + refY="0" + refX="0" + id="DiamondMH" + style="overflow:visible"> + <path + id="path4656" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendB" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendB" + style="overflow:visible"> + <path + id="path4659" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMU" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMU"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path5221" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend3" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend3" + style="overflow:visible"> + <path + id="path5224" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMo" + orient="auto" + refY="0" + refX="0" + id="DiamondMo" + style="overflow:visible"> + <path + id="path5799" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendO" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendO" + style="overflow:visible"> + <path + id="path5802" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondM1" + orient="auto" + refY="0" + refX="0" + id="DiamondM1" + style="overflow:visible"> + <path + id="path6393" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendV" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendV" + style="overflow:visible"> + <path + id="path6396" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMN" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMN"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path7813" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LstartP" + orient="auto" + refY="0" + refX="0" + id="Arrow1LstartP" + style="overflow:visible"> + <path + id="path7816" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMb" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMb"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path9491" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendX" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendX" + style="overflow:visible"> + <path + id="path9494" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareM8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareM8"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path10143" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendT" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendT" + style="overflow:visible"> + <path + id="path10146" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMNT" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMNT"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path12195" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LstartPJ" + orient="auto" + refY="0" + refX="0" + id="Arrow1LstartPJ" + style="overflow:visible"> + <path + id="path12198" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMNTL" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMNTL"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path12907" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lendx" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lendx" + style="overflow:visible"> + <path + id="path12910" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMoY" + orient="auto" + refY="0" + refX="0" + id="DiamondMoY" + style="overflow:visible"> + <path + id="path13187" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendOe" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendOe" + style="overflow:visible"> + <path + id="path13190" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + id="linearGradient3928-8"> + <stop + offset="0" + style="stop-color:#7c7c7c" + id="stop3930-2" /> + <stop + offset="1" + style="stop-color:#e6e3e3" + id="stop3932-0" /> + </linearGradient> + <linearGradient + id="linearGradient8877"> + <stop + style="stop-color:#cecece;stop-opacity:1;" + offset="0" + id="stop8879" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop8881" /> + </linearGradient> + <linearGradient + id="linearGradient8869"> + <stop + id="stop8871" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop8873" + offset="1" + style="stop-color:#000000;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient7421"> + <stop + id="stop7423" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop7425" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient7405"> + <stop + style="stop-color:#9e9e9e;stop-opacity:1;" + offset="0" + id="stop7407" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7409" /> + </linearGradient> + <linearGradient + id="linearGradient7378"> + <stop + id="stop7380" + offset="0" + style="stop-color:#9e9e9e;stop-opacity:1;" /> + <stop + id="stop7382" + offset="1" + style="stop-color:#ffffff;stop-opacity:1;" /> + </linearGradient> + <inkscape:perspective + id="perspective6864" + inkscape:persp3d-origin="32 : 21.333333 : 1" + inkscape:vp_z="64 : 32 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 32 : 1" + sodipodi:type="inkscape:persp3d" /> + <filter + id="imagebot_16" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-6" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-1" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-8" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-7" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-9" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-2" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-2" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-8" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-9" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-73" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-6" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-1" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + id="imagebot_16-0"> + <feGaussianBlur + id="imagebot_21-7" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-5" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + id="imagebot_12-0" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215"> + <feGaussianBlur + id="imagebot_18-4" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-8" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-02" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-9" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-4" + y2="0.73097426" + xlink:href="#linearGradient3928-8" + x2="36.048218" + y1="43.90382" + x1="35.173683" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-3" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-5" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-17" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + </defs> + <metadata + id="metadata7"> + <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="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-632.51971)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672" + x="104.51711" + y="415.68225" + id="text3004"><tspan + sodipodi:role="line" + id="tspan3006" + x="104.51711" + y="415.68225" + style="font-size:42.66666794px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"> </tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.74963069;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect4289" + width="400" + height="120.00002" + x="0" + y="662.51971" + ry="7.6123838" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6ffd5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.9344157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect5901" + width="302.36221" + height="220" + x="520" + y="632.51971" + ry="4.8098278e-14" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-4-3" + width="37.795277" + height="37.795277" + x="557.79529" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52704" + y="817.54968" + id="text2687-80-6"><tspan + sodipodi:role="line" + id="tspan2685-4-7" + x="568.52704" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-4-5" + width="37.795277" + height="37.795277" + x="746.77167" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-6" + width="37.795277" + height="37.795277" + x="671.18109" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-1" + width="37.795277" + height="37.795277" + x="708.97638" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-0" + width="37.795277" + height="37.795277" + x="595.59064" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="817.37054" + id="text2687-8-6-9"><tspan + sodipodi:role="line" + id="tspan2685-7-25-3" + x="606.32227" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-5-6" + width="37.795277" + height="37.795277" + x="633.38586" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11755" + y="817.37054" + id="text2687-8-2-1-0"><tspan + sodipodi:role="line" + id="tspan2685-7-2-1-6" + x="644.11755" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-2" + width="37.795277" + height="37.795277" + x="784.56696" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29865" + y="817.37054" + id="text2687-8-0-6-6"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-1" + x="795.29865" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-8" + width="37.795277" + height="37.795277" + x="520" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-3" + width="37.795277" + height="37.795277" + x="633.38586" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-9" + width="37.795277" + height="37.795277" + x="671.18121" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-02-9" + width="37.795277" + height="37.795277" + x="708.97632" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-6" + width="37.795277" + height="37.795277" + x="746.77167" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.50336" + y="779.57532" + id="text2687-8-0-1"><tspan + sodipodi:role="line" + id="tspan2685-7-9-2" + x="757.50336" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-9" + width="37.795277" + height="37.795277" + x="557.79541" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52704" + y="779.57532" + id="text2687-8-6-3"><tspan + sodipodi:role="line" + id="tspan2685-7-25-1" + x="568.52704" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">1</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-5-9" + width="37.795277" + height="37.795277" + x="595.59064" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-84" + width="37.795277" + height="37.795277" + x="784.56708" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-3" + width="37.795277" + height="37.795277" + x="520" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="779.57532" + id="text2687-8-0-6-61"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-06" + x="530.73169" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="660.25952" + y="654.01447" + id="text5905"><tspan + sodipodi:role="line" + id="tspan5903" + x="660.25952" + y="654.01447" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32.3691597px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="726.49359" + y="770.78754" + id="text5909" + transform="scale(0.90621245,1.103494)"><tspan + sodipodi:role="line" + id="tspan5907" + x="726.49359" + y="770.78754" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36221,822.51969 v 37.7953" + id="path5940-3" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 520,822.51969 v 37.7953" + id="path5940-5" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 520,712.51969 v 37.79528" + id="path5940-2" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36221,712.51969 v 37.79528" + id="path5940-57" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36218,636.92911 v 37.79528" + id="path5940-18" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 519.99997,636.92911 v 37.79528" + id="path5940-59" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="660.01294" + y="733.22003" + id="text5905-6"><tspan + sodipodi:role="line" + id="tspan5903-4" + x="660.01294" + y="733.22003" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-6" + width="37.795277" + height="37.795277" + x="557.79529" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52698" + y="703.98468" + id="text2687-8-6-7-0"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-6" + x="568.52698" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">1</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-8-0" + width="37.795277" + height="37.795277" + x="520" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="703.98468" + id="text2687-8-6-7-8-2"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-4-3" + x="530.73169" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32233" + y="779.75433" + id="text2687-80-3-4"><tspan + sodipodi:role="line" + id="tspan2685-4-5-4" + x="606.32233" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11761" + y="779.75433" + id="text2687-80-3-3"><tspan + sodipodi:role="line" + id="tspan2685-4-5-0" + x="644.11761" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91284" + y="779.75433" + id="text2687-80-3-7"><tspan + sodipodi:role="line" + id="tspan2685-4-5-86" + x="681.91284" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70813" + y="779.75433" + id="text2687-80-3-8"><tspan + sodipodi:role="line" + id="tspan2685-4-5-84" + x="719.70813" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29871" + y="779.75433" + id="text2687-80-3-31"><tspan + sodipodi:role="line" + id="tspan2685-4-5-49" + x="795.29871" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73181" + y="817.54968" + id="text2687-80-3-20"><tspan + sodipodi:role="line" + id="tspan2685-4-5-6" + x="530.73181" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91284" + y="817.54968" + id="text2687-80-3-89"><tspan + sodipodi:role="line" + id="tspan2685-4-5-2" + x="681.91284" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70813" + y="817.54968" + id="text2687-80-3-6"><tspan + sodipodi:role="line" + id="tspan2685-4-5-64" + x="719.70813" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.50336" + y="817.37054" + id="text2687-8-0-6-6-9"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-1-50" + x="757.50336" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-30" + width="37.795277" + height="37.795277" + x="595.59045" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-92" + width="37.795277" + height="37.795277" + x="633.38574" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-5" + width="37.795277" + height="37.795277" + x="633.38574" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-4" + width="37.795277" + height="37.795277" + x="671.18103" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-0" + width="37.795277" + height="37.795277" + x="708.97632" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-5" + width="37.795277" + height="37.795277" + x="746.77161" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-94" + width="37.795277" + height="37.795277" + x="784.56677" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="703.98468" + id="text2687-8-6-7-9-7-3-96"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-9" + x="606.32227" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11743" + y="703.98468" + id="text2687-8-6-7-9-7-3-33"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-8" + x="644.11743" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91272" + y="703.98468" + id="text2687-8-6-7-9-7-3-05"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-6" + x="681.91272" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70801" + y="703.98468" + id="text2687-8-6-7-9-7-3-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-40" + x="719.70801" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.5033" + y="703.98468" + id="text2687-8-6-7-9-7-3-04"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-62" + x="757.5033" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29858" + y="703.98468" + id="text2687-8-6-7-9-7-3-67"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-5" + x="795.29858" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="8.4715853" + y="710.22858" + id="text2900"><tspan + sodipodi:role="line" + x="8.4715853" + y="710.22858" + id="tspan2902">short <tspan + style="fill:#ff0000;stroke:#ff0000" + id="tspan2940">i</tspan> = <tspan + style="fill:#0000ff;stroke:#0000ff" + id="tspan2944">'A'</tspan>; </tspan><tspan + sodipodi:role="line" + x="8.4715853" + y="746.89526" + id="tspan2904">System.out.println(<tspan + style="fill:#ff0000;stroke:#ff0000" + id="tspan2956">i</tspan>);</tspan><tspan + sodipodi:role="line" + x="8.4715853" + y="783.56189" + id="tspan2906" /></text> + </g> + <script + ns1:version="14.10-05142318" + id="sozi-script">function namespace(b,d,a){var c=b;d.split(".").forEach(function(e){if(typeof c[e]==="undefined"){c[e]={}}c=c[e]});if(a){a(c,b)}return c}namespace(this,"sozi.events",function(b){var a={};b.listen=function(c,d){if(!a.hasOwnProperty(c)){a[c]=[]}a[c].push(d)};b.fire=function(d){var c=Array.prototype.slice.call(arguments,1);if(a.hasOwnProperty(d)){a[d].forEach(function(e){e.apply(null,c)})}}});namespace(this,"sozi.proto",function(a){a.Object={installConstructors:function(){function b(){}b.prototype=this;this.instance=function(){var c=new b();c.construct.apply(c,arguments);return c};this.subtype=function(d){var c=new b();c.augment(d);c.installConstructors();return c}},construct:function(){},augment:function(c){for(var b in c){if(c.hasOwnProperty(b)){this[b]=c[b]}}return this},bind:function(c){var b=this;return function(){return c.apply(b,arguments)}}};a.Object.installConstructors()});namespace(this,"sozi.actions",function(A,g){var u=namespace(g,"sozi.player");var v=namespace(g,"sozi.display");var n=g.document;var o=0;var w=1;var t=1.05;var y=5;var m=5;var r=false;var i=0;var h=0;function a(C,B,D){u.stop();v.viewPorts.player.zoom(C>0?t:1/t,B,D)}function x(B){u.stop();v.viewPorts.player.rotate(B>0?y:-y)}function s(){if(sozi.framelist.isVisible()){sozi.framelist.hide();u.restart()}else{u.stop();sozi.framelist.show()}}function d(B){return v.viewPorts.player.contains(B.clientX,B.clientY)}function f(B){if(!d(B)){return}if(B.button===o){n.documentElement.addEventListener("mousemove",q,false);r=false;i=B.clientX;h=B.clientY}else{if(B.button===w){s()}}B.stopPropagation();B.preventDefault()}function q(B){if(!d(B)){return}u.stop();if(!r&&(Math.abs(B.clientX-i)>m||Math.abs(B.clientY-h)>m)){r=true}if(r){sozi.events.fire("sozi.player.cleanup");v.viewPorts.player.drag(B.clientX-i,B.clientY-h);i=B.clientX;h=B.clientY}B.stopPropagation()}function c(B){if(!d(B)){return}if(B.button===o){n.documentElement.removeEventListener("mousemove",q,false)}B.stopPropagation();B.preventDefault()}function p(B){if(!d(B)){return}u.moveToPrevious();B.stopPropagation();B.preventDefault()}function e(B){if(!d(B)){return}if(!r&&B.button!==w){u.moveToNext()}B.stopPropagation();B.preventDefault()}function j(B){if(!d(B)){return}if(!B){B=g.event}var C=0;if(B.wheelDelta){C=B.wheelDelta}else{if(B.detail){C=-B.detail}}if(C!==0){if(B.shiftKey){x(C)}else{a(C,B.clientX,B.clientY)}}B.stopPropagation();B.preventDefault()}function l(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.charCode||B.which){case 43:a(1,g.innerWidth/2,g.innerHeight/2);break;case 45:a(-1,g.innerWidth/2,g.innerHeight/2);break;case 61:u.moveToCurrent();break;case 70:case 102:u.showAll();break;case 84:case 116:s();break;case 82:x(-1);break;case 114:x(1);break;default:return}B.stopPropagation();B.preventDefault()}function b(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.keyCode){case 36:if(B.shiftKey){u.jumpToFirst()}else{u.moveToFirst()}break;case 35:if(B.shiftKey){u.jumpToLast()}else{u.moveToLast()}break;case 38:case 33:case 37:if(B.shiftKey){u.jumpToPrevious()}else{u.moveToPrevious()}break;case 40:case 34:case 39:case 13:case 32:if(B.shiftKey){u.jumpToNext()}else{u.moveToNext()}break;default:return}B.stopPropagation();B.preventDefault()}function z(B){B.stopPropagation()}function k(){var C=n.getElementsByTagName("a");for(var D=0;D<C.length;D+=1){C[D].addEventListener("click",z,false);C[D].addEventListener("contextmenu",z,false)}var B=n.documentElement;B.addEventListener("click",e,false);B.addEventListener("mousedown",f,false);B.addEventListener("mouseup",c,false);B.addEventListener("contextmenu",p,false);B.addEventListener("DOMMouseScroll",j,false);g.onmousewheel=j;B.addEventListener("keypress",l,false);B.addEventListener("keydown",b,false)}sozi.events.listen("sozi.display.ready",k)});namespace(this,"sozi.animation",function(d,g){var h=g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||g.msRequestAnimationFrame||g.oRequestAnimationFrame;var k=function(){return g.performance&&g.performance.now?g.performance.now():Date.now()};d.setAnimationFrameHandlers=function(l,m){h=l;k=m};var i=40;var c;var j=[];function e(){if(j.length>0){if(h){h(e)}j.forEach(function(l){l.step(k())})}else{if(!h){g.clearInterval(c)}}}function b(){if(h){h(e)}else{c=g.setInterval(function(){e(k())},i)}}function a(l){j.push(l);if(j.length===1){b()}}function f(l){j.splice(j.indexOf(l),1)}d.Animator=sozi.proto.Object.subtype({construct:function(){this.durationMs=0;this.data=null;this.initialTime=0;this.started=false},start:function(l,m){this.durationMs=l;this.data=m;this.initialTime=k();this.onStep(0);if(!this.started){this.started=true;a(this)}},stop:function(){if(this.started){f(this);this.started=false}},step:function(m){var l=m-this.initialTime;if(l>=this.durationMs){this.stop();this.onStep(1);this.onDone()}else{this.onStep(l/this.durationMs)}},onStep:function(l){},onDone:function(){}});d.profiles={linear:function(l){return l},accelerate:function(l){return Math.pow(l,3)},"strong-accelerate":function(l){return Math.pow(l,5)},decelerate:function(l){return 1-Math.pow(1-l,3)},"strong-decelerate":function(l){return 1-Math.pow(1-l,5)},"accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,3)/2;return l<=0.5?n:1-n},"strong-accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,5)/2;return l<=0.5?n:1-n},"decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,2))/2;return l<=0.5?n:1-n},"strong-decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,3))/2;return l<=0.5?n:1-n},"immediate-beginning":function(l){return 1},"immediate-end":function(l){return l===1?1:0},"immediate-middle":function(l){return l>=0.5?1:0}}});namespace(this,"sozi.display",function(c,g){var f="http://www.w3.org/2000/svg";var b="http://www.w3.org/1999/xlink";var i=g.document;var k;var h;var j;c.viewPorts={};var e;c.CameraState=sozi.proto.Object.subtype({construct:function(){this.cx=this.cy=0;this.width=this.height=1;this.angle=0;this.clipped=true;this.transitionZoomPercent=0;this.transitionProfile=sozi.animation.profiles.linear;this.transitionPath=null},setCenter:function(l,m){this.cx=l;this.cy=m;return this},setSize:function(m,l){this.width=m;this.height=l;return this},setClipped:function(l){this.clipped=l;return this},setAngle:function(l){this.angle=(l+180)%360-180;return this},setRawAngle:function(l){this.angle=l;return this},setTransitionZoomPercent:function(l){this.transitionZoomPercent=l;return this},setTransitionProfile:function(l){this.transitionProfile=l;return this},setTransitionPath:function(l){this.transitionPath=l;return this},setAtElement:function(p){var s,o,t,m;if(p.nodeName==="rect"){s=p.x.baseVal.value;o=p.y.baseVal.value;t=p.width.baseVal.value;m=p.height.baseVal.value}else{var q=p.getBBox();s=q.x;o=q.y;t=q.width;m=q.height}var n=i.documentElement.createSVGPoint();n.x=s+t/2;n.y=o+m/2;var r=p.getCTM();n=n.matrixTransform(r);var l=Math.sqrt(r.a*r.a+r.b*r.b);return this.setCenter(n.x,n.y).setSize(t*l,m*l).setAngle(Math.atan2(r.b,r.a)*180/Math.PI)},setAtState:function(l){return this.setCenter(l.cx,l.cy).setSize(l.width,l.height).setAngle(l.angle).setClipped(l.clipped).setTransitionZoomPercent(l.transitionZoomPercent).setTransitionProfile(l.transitionProfile).setTransitionPath(l.transitionPath)},interpolatableAttributes:["width","height","angle"],interpolate:function(n,o,t,v,r){var p=1-t;for(var q=0;q<this.interpolatableAttributes.length;q+=1){var s=this.interpolatableAttributes[q];this[s]=o[s]*t+n[s]*p}var l=r?n.transitionPath:o.transitionPath;if(v&&l){var x=l.getTotalLength();if(r){var m=l.getPointAtLength(x);var u=l.getPointAtLength(0);var w=l.getPointAtLength(x*p)}else{var m=l.getPointAtLength(0);var u=l.getPointAtLength(x);var w=l.getPointAtLength(x*t)}this.cx=w.x+(o.cx-u.x)*t+(n.cx-m.x)*p;this.cy=w.y+(o.cy-u.y)*t+(n.cy-m.y)*p}else{this.cx=o.cx*t+n.cx*p;this.cy=o.cy*t+n.cy*p}}});c.Camera=c.CameraState.subtype({construct:function(n,o){c.CameraState.construct.call(this);this.viewPort=n;this.svgClipRect=i.createElementNS(f,"rect");var m=i.createElementNS(f,"clipPath");m.setAttribute("id","sozi-clip-path-"+n.id+"-"+o);m.appendChild(this.svgClipRect);n.svgGroup.appendChild(m);var l=i.createElementNS(f,"g");l.setAttribute("clip-path","url(#sozi-clip-path-"+n.id+"-"+o+")");n.svgGroup.appendChild(l);if(n.isPrimary){this.svgLayer=i.createElementNS(f,"g");this.svgLayer.appendChild(i.getElementById(o))}else{this.svgLayer=i.createElementNS(f,"use");this.svgLayer.setAttributeNS(b,"href","#"+o)}l.appendChild(this.svgLayer)},setAtState:function(l){return c.CameraState.setAtState.call(this,l).update()},getScale:function(){return Math.min(this.viewPort.width/this.width,this.viewPort.height/this.height)},rotate:function(l){return this.setAngle(this.angle+l).update()},zoom:function(m,l,n){return this.setSize(this.width/m,this.height/m).drag((1-m)*(l-this.viewPort.width/2),(1-m)*(n-this.viewPort.height/2))},drag:function(m,l){var q=this.getScale();var o=this.angle*Math.PI/180;var n=Math.sin(o);var p=Math.cos(o);return this.setCenter(this.cx-(m*p-l*n)/q,this.cy-(m*n+l*p)/q).setClipped(false).update()},update:function(){var q=this.getScale();var n=this.width*q;var m=this.height*q;var l=(this.viewPort.width-n)/2;var r=(this.viewPort.height-m)/2;this.svgClipRect.setAttribute("x",this.clipped?l:0);this.svgClipRect.setAttribute("y",this.clipped?r:0);this.svgClipRect.setAttribute("width",this.clipped?n:this.viewPort.width);this.svgClipRect.setAttribute("height",this.clipped?m:this.viewPort.height);var p=-this.cx+this.width/2+l/q;var o=-this.cy+this.height/2+r/q;this.svgLayer.setAttribute("transform","scale("+q+")translate("+p+","+o+")rotate("+(-this.angle)+","+this.cx+","+this.cy+")");return this}});c.ViewPort=sozi.proto.Object.subtype({construct:function(n,m,l){this.id=n;c.viewPorts[n]=this;this.isPrimary=!!l;if(this.isPrimary){if(e){throw"Failed to create a primary viewport. A primary viewport already exists."}else{e=this}}this.svgGroup=i.createElementNS(f,"g");this.svgGroup.setAttribute("class","sozi-viewport");this.svgGroup.setAttribute("id","sozi-viewport-"+n);i.documentElement.appendChild(this.svgGroup);this.setLocation(0,0).setSize(g.innerWidth,g.innerHeight);this.cameras={};m.forEach(function(o){this.cameras[o]=c.Camera.instance(this,o)},this)},setSize:function(m,l){this.width=m;this.height=l;return this},setLocation:function(l,m){this.x=l;this.y=m;return this},contains:function(l,m){return l>=this.x&&l<this.x+this.width&&m>=this.y&&m<this.y+this.height},getDocumentState:function(){var m=c.CameraState.instance().setCenter(k.x+k.width/2,k.y+k.height/2).setSize(k.width,k.height).setClipped(false);var l={};for(var n in this.cameras){l[n]=m}return l},update:function(){this.svgGroup.setAttribute("transform","translate("+this.x+","+this.y+")");for(var l in this.cameras){this.cameras[l].update()}return this},showFrame:function(l){for(var m in l.states){this.cameras[m].setAtState(l.states[m])}return this},drag:function(m,l){for(var n in this.cameras){this.cameras[n].drag(m,l)}return this},zoom:function(m,l,o){for(var n in this.cameras){this.cameras[n].zoom(m,l,o)}return this},rotate:function(l){for(var m in this.cameras){this.cameras[m].rotate(l)}return this},onWindowResize:function(m,l){this.setLocation(this.x*m,this.y*l).setSize(this.width*m,this.height*l).update()}});function d(){var l=i.documentElement;k=l.getBBox();h=g.innerWidth;j=g.innerHeight;l.setAttribute("width",h);l.setAttribute("height",j);sozi.events.fire("sozi.display.ready")}function a(){var l=i.documentElement;l.setAttribute("width",g.innerWidth);l.setAttribute("height",g.innerHeight);for(var m in c.viewPorts){c.viewPorts[m].onWindowResize(g.innerWidth/h,g.innerHeight/j)}h=g.innerWidth;j=g.innerHeight}sozi.events.listen("sozi.document.ready",d);g.addEventListener("resize",a,false)});namespace(this,"sozi.document",function(c,e){var g=e.document;var b="http://sozi.baierouge.fr";var d={title:"Untitled",sequence:"0",hide:"true",clip:"true","show-in-frame-list":"true","timeout-enable":"false","timeout-ms":"5000","transition-duration-ms":"1000","transition-zoom-percent":"0","transition-profile":"linear","transition-path-hide":"true"};var h=["g","image","path","rect","circle","ellipse","line","polyline","polygon","text","clippath"];c.frames=[];c.idLayerList=[];function j(l,k){return l.getAttributeNS(b,k)||d[k]}function i(o,p,k){var l=o.states[p]=o.states[p]||sozi.display.CameraState.instance();if(typeof l.transitionZoomPercent==="undefined"||k.hasAttributeNS(b,"transition-zoom-percent")){l.setTransitionZoomPercent(parseInt(j(k,"transition-zoom-percent"),10))}if(typeof l.transitionProfile==="undefined"||k.hasAttributeNS(b,"transition-profile")){l.setTransitionProfile(sozi.animation.profiles[j(k,"transition-profile")])}if(typeof l.transitionPath==="undefined"||k.hasAttributeNS(b,"transition-path")){var n=g.getElementById(k.getAttributeNS(b,"transition-path"));if(n&&n.nodeName==="path"){l.setTransitionPath(n);if(j(k,"transition-path-hide")==="true"){n.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"refid")){var m=g.getElementById(k.getAttributeNS(b,"refid"));if(m){l.setAtElement(m);if(j(k,"hide")==="true"){m.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"clip")){l.setClipped(j(k,"clip")==="true")}}function a(){var l=[];var p=g.getElementsByTagNameNS(b,"layer");for(var n=0;n<p.length;n+=1){var s=p[n].getAttributeNS(b,"group");if(s&&l.indexOf(s)===-1){l.push(s)}}var r=g.documentElement;var o="http://www.w3.org/2000/svg";var q=g.createElementNS(o,"g");var k=Array.prototype.slice.call(r.childNodes);k.forEach(function(u,t){if(!u.getAttribute){r.removeChild(u)}else{if(l.indexOf(u.getAttribute("id"))!==-1){if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+t);c.idLayerList.push("sozi-wrapper-"+t);r.insertBefore(q,u);q=g.createElementNS(o,"g")}c.idLayerList.push(u.getAttribute("id"))}else{if(h.indexOf(u.localName.toLowerCase())!==-1){r.removeChild(u);q.appendChild(u)}}}});if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+k.length);c.idLayerList.push("sozi-wrapper-"+k.length);r.appendChild(q)}var m=Array.prototype.slice.call(g.getElementsByTagNameNS(b,"frame"));m.sort(function(u,t){var w=parseInt(j(u,"sequence"),10);var v=parseInt(j(t,"sequence"),10);return w-v});m.forEach(function(v,u){var x={id:v.getAttribute("id"),title:j(v,"title"),showInFrameList:j(v,"show-in-frame-list")==="true",sequence:parseInt(j(v,"sequence"),10),timeoutEnable:j(v,"timeout-enable")==="true",timeoutMs:parseInt(j(v,"timeout-ms"),10),transitionDurationMs:parseInt(j(v,"transition-duration-ms"),10),states:{}};c.idLayerList.forEach(function(A){if(u===0||A.search("sozi-wrapper-[0-9]+")!==-1){i(x,A,v)}else{var z=x.states[A]=sozi.display.CameraState.instance();var y=c.frames[c.frames.length-1].states[A];z.setAtState(y)}});var t=Array.prototype.slice.call(v.getElementsByTagNameNS(b,"layer"));t.forEach(function(y){var z=y.getAttributeNS(b,"group");if(z&&c.idLayerList.indexOf(z)!==-1){i(x,z,y)}});for(var w in x.states){if(x.states.hasOwnProperty(w)){c.frames.push(x);break}}})}c.getFrameIndexForId=function(l){for(var k=0;k<c.frames.length;k+=1){if(c.frames[k].id===l){return k}}return -1};function f(){g.documentElement.removeAttribute("viewBox");a();sozi.events.fire("sozi.document.ready")}e.addEventListener("load",f,false)});namespace(this,"sozi.framelist",function(u,k){var o=k.document;var c=5;var i;var p;var j=0;var h;var s;var b;var v;var w;var t;var e=300;var f="decelerate";var a="http://www.w3.org/2000/svg";function n(z){var x=z.relatedTarget,y=o.documentElement;while(x&&x!==i&&x!==y){x=x.parentNode}if(x!==i){u.hide();sozi.player.restart();z.stopPropagation()}}function r(y){var x=p.getCTM().f;if(x<=-k.innerHeight/2){x+=k.innerHeight/2}else{if(x<0){x=0}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function d(y){var x=p.getCTM().f;if(x+j>=k.innerHeight*3/2){x-=k.innerHeight/2}else{if(x+j>k.innerHeight+2*c){x=k.innerHeight-j-4*c}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function g(x){return function(y){sozi.player.previewFrame(x);y.stopPropagation()}}function l(x){x.stopPropagation()}function q(){i=o.createElementNS(a,"g");i.setAttribute("id","sozi-toc");o.documentElement.appendChild(i);p=o.createElementNS(a,"g");i.appendChild(p);var y=o.createElementNS(a,"rect");y.setAttribute("id","sozi-toc-background");y.setAttribute("x",c);y.setAttribute("y",c);y.setAttribute("rx",c);y.setAttribute("ry",c);y.addEventListener("click",l,false);y.addEventListener("mousedown",l,false);y.addEventListener("mouseout",n,false);p.appendChild(y);var A=0;sozi.document.frames.forEach(function(D,E){if(D.showInFrameList){var C=o.createElementNS(a,"text");C.appendChild(o.createTextNode(D.title));C.setAttribute("id","sozi-toc-"+D.id);p.appendChild(C);if(E===sozi.player.currentFrameIndex){C.setAttribute("class","sozi-toc-current")}var B=C.getBBox().width;j+=C.getBBox().height;if(B>A){A=B}C.setAttribute("x",2*c);C.setAttribute("y",j+c);C.addEventListener("click",g(E),false);C.addEventListener("mousedown",l,false)}});var x=o.createElementNS(a,"path");x.setAttribute("class","sozi-toc-arrow");x.setAttribute("d","M"+(A+3*c)+","+(5*c)+" l"+(4*c)+",0 l-"+(2*c)+",-"+(3*c)+" z");x.addEventListener("click",r,false);x.addEventListener("mousedown",l,false);i.appendChild(x);var z=o.createElementNS(a,"path");z.setAttribute("class","sozi-toc-arrow");z.setAttribute("d","M"+(A+3*c)+","+(7*c)+" l"+(4*c)+",0 l-"+(2*c)+","+(3*c)+" z");z.addEventListener("click",d,false);z.addEventListener("mousedown",l,false);i.appendChild(z);y.setAttribute("width",A+7*c);y.setAttribute("height",j+2*c);h=-A-9*c;s=0;w=v=h;i.setAttribute("transform","translate("+h+",0)");t=sozi.animation.Animator.instance().augment({onStep:function(B){var D=sozi.animation.profiles[f](B),C=1-D;w=v*D+b*C;i.setAttribute("transform","translate("+w+",0)")}})}function m(x){var y=Array.prototype.slice.call(o.getElementsByClassName("sozi-toc-current"));y.forEach(function(A){A.removeAttribute("class")});var z=sozi.document.frames[x];if(z.showInFrameList){o.getElementById("sozi-toc-"+z.id).setAttribute("class","sozi-toc-current")}}u.show=function(){o.documentElement.appendChild(i);b=w;v=s;t.start(e)};u.hide=function(){b=w;v=h;t.start(e)};u.isVisible=function(){return v===s};sozi.events.listen("sozi.player.ready",q);sozi.events.listen("sozi.player.cleanup",u.hide);sozi.events.listen("sozi.player.framechange",m)});namespace(this,"sozi.framenumber",function(a,d){var g=d.document;var e;var k,i;var f;var b="http://www.w3.org/2000/svg";function h(){var m=k.getBBox(),n=Math.max(m.width,m.height)*0.75,l=n*1.25;f.setAttribute("r",n);e.setAttribute("transform","translate("+l+","+l+")")}function c(){e=g.createElementNS(b,"g");k=g.createElementNS(b,"text");f=g.createElementNS(b,"circle");e.setAttribute("id","sozi-framenumber");f.setAttribute("cx",0);f.setAttribute("cy",0);e.appendChild(f);i=g.createTextNode(sozi.player.currentFrameIndex+1);k.setAttribute("text-anchor","middle");k.setAttribute("dominant-baseline","central");k.setAttribute("x",0);k.setAttribute("y",0);k.appendChild(i);e.appendChild(k);g.documentElement.appendChild(e);h()}function j(l){i.nodeValue=l+1}sozi.events.listen("sozi.player.ready",c);sozi.events.listen("sozi.player.framechange",j)});namespace(this,"sozi.links",function(c,e){var b="http://www.w3.org/2000/svg";var a="http://www.w3.org/1999/xlink";function f(g){return function(h){sozi.player.moveToFrame(g);h.preventDefault();h.stopPropagation()}}function d(){var h=e.document.getElementsByTagNameNS(b,"a");for(var j=0;j<h.length;j+=1){var g=h[j].getAttributeNS(a,"href");if(g&&g[0]==="#"){h[j].addEventListener("click",f(sozi.location.getFrameIndexForHash(g)),false)}}}sozi.events.listen("sozi.document.ready",d)});namespace(this,"sozi.location",function(a,d){var b=false;a.getFrameIndex=function(){return a.getFrameIndexForHash(d.location.hash)};a.getFrameIndexForHash=function(g){var h=g?g.slice(1):"1";var f;if(/^[0-9]+$/.test(h)){f=parseInt(h,10)-1}else{f=sozi.document.getFrameIndexForId(h)}if(f<0){return 0}else{if(f>=sozi.document.frames.length){return sozi.document.frames.length-1}else{return f}}};function e(){var f=a.getFrameIndex();if(!b){sozi.player.moveToFrame(f)}b=false}function c(f){b=true;d.location.hash="#"+sozi.document.frames[f].id}d.addEventListener("hashchange",e,false);sozi.events.listen("sozi.player.framechange",c)});namespace(this,"sozi.player",function(d,g){var l;var c;var i;var e=500;var n=-10;var j="linear";var f=0;d.currentFrameIndex=0;var k=false;var m=false;function h(){if(sozi.document.frames[d.currentFrameIndex].timeoutEnable){m=true;var o=(d.currentFrameIndex+1)%sozi.document.frames.length;i=g.setTimeout(function(){d.moveToFrame(o)},sozi.document.frames[d.currentFrameIndex].timeoutMs)}}d.startFromIndex=function(o){k=true;m=false;f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);h()};d.restart=function(){d.startFromIndex(d.currentFrameIndex)};d.stop=function(){c.stop();if(m){g.clearTimeout(i);m=false}k=false;f=d.currentFrameIndex};function b(o,y,w){var z={ss:((o<0)?Math.max(y,w):Math.min(y,w))*(100-o)/100,ts:0.5,k:0};if(o!==0){var s=y-w;var r=y-z.ss;var q=w-z.ss;if(s!==0){var p=Math.sqrt(r*q);var x=(r-p)/s;var t=(r+p)/s;z.ts=(x>0&&x<=1)?x:t}z.k=r/z.ts/z.ts}return z}d.jumpToFrame=function(o){d.stop();sozi.events.fire("sozi.player.cleanup");f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);sozi.events.fire("sozi.player.framechange",o)};d.getAnimationData=function(o,q,s,p,v,t){var r={};for(var w in o){r[w]={initialState:sozi.display.CameraState.instance(),finalState:sozi.display.CameraState.instance(),useTransitionPath:v,reverseTransitionPath:t};r[w].profile=p||q[w].transitionProfile;r[w].initialState.setAtState(o[w]);if(q.hasOwnProperty(w)){r[w].finalState.setAtState(q[w])}else{r[w].finalState.setAtState(o[w])}if(r[w].finalState.angle-r[w].initialState.angle>180){r[w].finalState.setRawAngle(r[w].finalState.angle-360)}else{if(r[w].finalState.angle-r[w].initialState.angle<-180){r[w].initialState.setRawAngle(r[w].initialState.angle-360)}}var u=s||q[w].transitionZoomPercent;if(u&&q.hasOwnProperty(w)){r[w].zoomWidth=b(u,o[w].width,q[w].width);r[w].zoomHeight=b(u,o[w].height,q[w].height)}}return r};d.previewFrame=function(o){d.currentFrameIndex=o;c.start(e,d.getAnimationData(l.cameras,sozi.document.frames[o].states,n,sozi.animation.profiles[j]),false,false);sozi.events.fire("sozi.player.framechange",o)};d.moveToFrame=function(r){if(m){g.clearTimeout(i);m=false}var q,t,s,p,o;if(r===(d.currentFrameIndex-1)%sozi.document.frames.length){q=sozi.document.frames[d.currentFrameIndex].transitionDurationMs;t=undefined;s=undefined;p=true;o=true}else{if(r===(d.currentFrameIndex+1)%sozi.document.frames.length){q=sozi.document.frames[r].transitionDurationMs;t=undefined;s=undefined;p=true;o=false}else{q=e;t=n;s=sozi.animation.profiles[j];p=false;o=false}}sozi.events.fire("sozi.player.cleanup");k=true;d.currentFrameIndex=r;c.start(q,d.getAnimationData(l.cameras,sozi.document.frames[r].states,t,s,p,o));sozi.events.fire("sozi.player.framechange",r)};d.jumpToFirst=function(){d.jumpToFrame(0)};d.moveToFirst=function(){d.moveToFrame(0)};d.jumpToPrevious=function(){var o=d.currentFrameIndex;if(!c.started||f<=d.currentFrameIndex){o-=1}if(o>=0){d.jumpToFrame(o)}};d.moveToPrevious=function(){for(var o=d.currentFrameIndex-1;o>=0;o-=1){var p=sozi.document.frames[o];if(!p.timeoutEnable||p.timeoutMs!==0){d.moveToFrame(o);break}}};d.jumpToNext=function(){var o=d.currentFrameIndex;if(!c.started||f>=d.currentFrameIndex){o+=1}if(o<sozi.document.frames.length){d.jumpToFrame(o)}};d.moveToNext=function(){if(d.currentFrameIndex<sozi.document.frames.length-1||sozi.document.frames[d.currentFrameIndex].timeoutEnable){d.moveToFrame((d.currentFrameIndex+1)%sozi.document.frames.length)}};d.jumpToLast=function(){d.jumpToFrame(sozi.document.frames.length-1)};d.moveToLast=function(){d.moveToFrame(sozi.document.frames.length-1)};d.moveToCurrent=function(){d.moveToFrame(d.currentFrameIndex)};d.showAll=function(){d.stop();sozi.events.fire("sozi.player.cleanup");c.start(e,d.getAnimationData(l.cameras,l.getDocumentState(),n,sozi.animation.profiles[j],false,false))};function a(){l=sozi.display.ViewPort.instance("player",sozi.document.idLayerList,true);d.startFromIndex(sozi.location.getFrameIndex());g.setTimeout(l.bind(l.update),1);sozi.events.fire("sozi.player.ready")}d.onAnimationStep=function(o,q){for(var s in q){var p=l.cameras[s];p.interpolate(q[s].initialState,q[s].finalState,q[s].profile(o),q[s].useTransitionPath,q[s].reverseTransitionPath);var r;if(q[s].zoomWidth&&q[s].zoomWidth.k!==0){r=o-q[s].zoomWidth.ts;p.width=q[s].zoomWidth.k*r*r+q[s].zoomWidth.ss}if(q[s].zoomHeight&&q[s].zoomHeight.k!==0){r=o-q[s].zoomHeight.ts;p.height=q[s].zoomHeight.k*r*r+q[s].zoomHeight.ss}p.setClipped(q[s].finalState.clipped)}l.update()};c=sozi.animation.Animator.instance().augment({onStep:function(o){d.onAnimationStep(o,this.data)},onDone:function(){for(var o in this.data){l.cameras[o].setAtState(this.data[o].finalState)}l.update();f=d.currentFrameIndex;if(k){h()}}});sozi.events.listen("sozi.display.ready",a)});</script> + <style + ns1:version="14.10-05142318" + id="sozi-style">#sozi-toc text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}#sozi-toc text:hover{fill:#0cf;cursor:pointer}#sozi-toc text.sozi-toc-current{fill:#fa4}#sozi-toc-background{stroke:#222;stroke-opacity:.1;stroke-width:10;fill:#222;fill-opacity:.9}.sozi-toc-arrow{fill:#eff;fill-opacity:.75;stroke:none}.sozi-toc-arrow:hover{fill:#0cf}#sozi-framenumber circle{stroke:#222;stroke-opacity:.1;stroke-width:4;fill:#222;fill-opacity:.9}#sozi-framenumber text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}</style> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="1" + ns1:title="Gcd implementation" + ns1:refid="rect10351" /> + <ns1:frame + ns1:refid="rect10841" + ns1:title="Gcd maven packaging" + ns1:sequence="2" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="3" + ns1:title="Using Math.getGcd()" + ns1:refid="rect11089" /> + <ns1:frame + ns1:refid="rect11381" + ns1:title="Fraction project" + ns1:sequence="4" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="5" + ns1:title="Maven dependency definition" + ns1:refid="rect11637" /> + <ns1:frame + ns1:refid="rect11895" + ns1:title="Fraction depends on Gcd" + ns1:sequence="6" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000" + ns1:transition-duration-ms="1000" + ns1:transition-zoom-percent="0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> +</svg> diff --git a/Doc/Sd1/Ref/LangFundament/dualSigned3bit.svg b/Doc/Sd1/Ref/LangFundament/dualSigned3bit.svg index f13629a0a..a07cff69d 100644 --- a/Doc/Sd1/Ref/LangFundament/dualSigned3bit.svg +++ b/Doc/Sd1/Ref/LangFundament/dualSigned3bit.svg @@ -14,7 +14,7 @@ viewBox="0 0 216 155" version="1.1" id="svg4948" - inkscape:version="0.92.1 unknown" + inkscape:version="0.92.1 r15371" sodipodi:docname="dualSigned3bit.svg"> <defs id="defs4942" /> @@ -25,16 +25,16 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.97701863" - inkscape:cx="421.49477" - inkscape:cy="211.03164" + inkscape:zoom="1.381713" + inkscape:cx="480.63251" + inkscape:cy="430.44279" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1600" - inkscape:window-height="1176" + inkscape:window-height="1090" inkscape:window-x="0" - inkscape:window-y="24" + inkscape:window-y="27" inkscape:window-maximized="1"> <inkscape:grid type="xygrid" @@ -58,29 +58,29 @@ id="layer1" transform="translate(0,-142)"> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80284804;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-7" width="50" - height="150" + height="153.45833" x="50" - y="147" - ry="14.062497" /> + y="143.54167" + ry="2.6458282" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80284804;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-1" width="40.000004" - height="150" + height="153.45833" x="110" - y="147" - ry="14.062497" /> + y="143.54167" + ry="2.6458282" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80284804;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289" width="30.000002" - height="150" + height="153.45833" x="-1.9073477e-06" - y="147" - ry="14.062497" /> + y="143.54167" + ry="2.6458282" /> <text xml:space="preserve" style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111126px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" diff --git a/Doc/Sd1/Ref/LangFundament/dualSignedByte.svg b/Doc/Sd1/Ref/LangFundament/dualSignedByte.svg index c571c6ae7..ce3778bda 100644 --- a/Doc/Sd1/Ref/LangFundament/dualSignedByte.svg +++ b/Doc/Sd1/Ref/LangFundament/dualSignedByte.svg @@ -14,7 +14,7 @@ viewBox="0 0 216 155" version="1.1" id="svg4948" - inkscape:version="0.92.1 unknown" + inkscape:version="0.92.1 r15371" sodipodi:docname="dualSignedByte.svg"> <defs id="defs4942" /> @@ -32,9 +32,9 @@ inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1600" - inkscape:window-height="1176" + inkscape:window-height="1090" inkscape:window-x="0" - inkscape:window-y="24" + inkscape:window-y="27" inkscape:window-maximized="1"> <inkscape:grid type="xygrid" @@ -58,29 +58,29 @@ id="layer1" transform="translate(0,-142)"> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79589683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-7" width="100" - height="150" + height="150.8125" x="50" - y="147" - ry="14.062497" /> + y="146.1875" + ry="2.6458333" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79589683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-1" width="50.000004" - height="150" + height="150.8125" x="160" - y="147" - ry="14.062497" /> + y="146.1875" + ry="2.6458333" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79589683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289" width="30.000002" - height="150" + height="150.8125" x="-1.9073477e-06" - y="147" - ry="14.062497" /> + y="146.1875" + ry="2.6458333" /> <text xml:space="preserve" style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111126px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" diff --git a/Doc/Sd1/Ref/LangFundament/int2char.svg b/Doc/Sd1/Ref/LangFundament/int2char.svg new file mode 100644 index 000000000..ca1400989 --- /dev/null +++ b/Doc/Sd1/Ref/LangFundament/int2char.svg @@ -0,0 +1,1849 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:ns1="http://sozi.baierouge.fr" + 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" + sodipodi:docname="int2char.svg" + inkscape:version="0.92.1 r15371" + version="1.2" + id="svg2" + height="338.97647" + width="823.36237"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.2077062" + inkscape:cx="388.04755" + inkscape:cy="206.43261" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:window-width="1600" + inkscape:window-height="1090" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="false" + inkscape:guide-bbox="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0"> + <inkscape:grid + type="xygrid" + id="grid1569" + originx="0" + originy="-262.20472" /> + </sodipodi:namedview> + <defs + id="defs4"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker11618" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path11616" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker2318" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2316" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker4887" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path4627" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6797" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + id="path6799" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6793" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + id="path6795" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker6778" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path6514" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lstart" + style="overflow:visible"> + <path + id="path3841" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareM" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareM"> + <path + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path3914" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible"> + <path + id="path3844" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondM" + orient="auto" + refY="0" + refX="0" + id="DiamondM" + style="overflow:visible"> + <path + id="path3923" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMH" + orient="auto" + refY="0" + refX="0" + id="DiamondMH" + style="overflow:visible"> + <path + id="path4656" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendB" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendB" + style="overflow:visible"> + <path + id="path4659" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMU" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMU"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path5221" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend3" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend3" + style="overflow:visible"> + <path + id="path5224" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMo" + orient="auto" + refY="0" + refX="0" + id="DiamondMo" + style="overflow:visible"> + <path + id="path5799" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendO" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendO" + style="overflow:visible"> + <path + id="path5802" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondM1" + orient="auto" + refY="0" + refX="0" + id="DiamondM1" + style="overflow:visible"> + <path + id="path6393" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendV" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendV" + style="overflow:visible"> + <path + id="path6396" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMN" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMN"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path7813" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LstartP" + orient="auto" + refY="0" + refX="0" + id="Arrow1LstartP" + style="overflow:visible"> + <path + id="path7816" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMb" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMb"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path9491" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendX" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendX" + style="overflow:visible"> + <path + id="path9494" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareM8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareM8"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path10143" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendT" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendT" + style="overflow:visible"> + <path + id="path10146" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMNT" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMNT"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path12195" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LstartPJ" + orient="auto" + refY="0" + refX="0" + id="Arrow1LstartPJ" + style="overflow:visible"> + <path + id="path12198" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMNTL" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMNTL"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path12907" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lendx" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lendx" + style="overflow:visible"> + <path + id="path12910" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMoY" + orient="auto" + refY="0" + refX="0" + id="DiamondMoY" + style="overflow:visible"> + <path + id="path13187" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendOe" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendOe" + style="overflow:visible"> + <path + id="path13190" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + id="linearGradient3928-8"> + <stop + offset="0" + style="stop-color:#7c7c7c" + id="stop3930-2" /> + <stop + offset="1" + style="stop-color:#e6e3e3" + id="stop3932-0" /> + </linearGradient> + <linearGradient + id="linearGradient8877"> + <stop + style="stop-color:#cecece;stop-opacity:1;" + offset="0" + id="stop8879" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop8881" /> + </linearGradient> + <linearGradient + id="linearGradient8869"> + <stop + id="stop8871" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop8873" + offset="1" + style="stop-color:#000000;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient7421"> + <stop + id="stop7423" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop7425" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient7405"> + <stop + style="stop-color:#9e9e9e;stop-opacity:1;" + offset="0" + id="stop7407" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7409" /> + </linearGradient> + <linearGradient + id="linearGradient7378"> + <stop + id="stop7380" + offset="0" + style="stop-color:#9e9e9e;stop-opacity:1;" /> + <stop + id="stop7382" + offset="1" + style="stop-color:#ffffff;stop-opacity:1;" /> + </linearGradient> + <inkscape:perspective + id="perspective6864" + inkscape:persp3d-origin="32 : 21.333333 : 1" + inkscape:vp_z="64 : 32 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 32 : 1" + sodipodi:type="inkscape:persp3d" /> + <filter + id="imagebot_16" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-6" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-1" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-8" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-7" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-9" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-2" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-2" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-8" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-9" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-73" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-6" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-1" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + id="imagebot_16-0"> + <feGaussianBlur + id="imagebot_21-7" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-5" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + id="imagebot_12-0" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215"> + <feGaussianBlur + id="imagebot_18-4" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-8" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-02" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-9" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-4" + y2="0.73097426" + xlink:href="#linearGradient3928-8" + x2="36.048218" + y1="43.90382" + x1="35.173683" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-3" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-5" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-17" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + </defs> + <metadata + id="metadata7"> + <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="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-521.33853)"> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.74963069;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect4289" + width="400" + height="120.00002" + x="10" + y="562.51971" + ry="7.6123838" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6ffd5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.36916566;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect5901" + width="302.36221" + height="330" + x="520" + y="522.51971" + ry="7.214742e-14" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-4-3" + width="37.795277" + height="37.795277" + x="557.79529" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52704" + y="817.54968" + id="text2687-80-6"><tspan + sodipodi:role="line" + id="tspan2685-4-7" + x="568.52704" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-4-5" + width="37.795277" + height="37.795277" + x="746.77167" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-6" + width="37.795277" + height="37.795277" + x="671.18109" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-1" + width="37.795277" + height="37.795277" + x="708.97638" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-0" + width="37.795277" + height="37.795277" + x="595.59064" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="817.37054" + id="text2687-8-6-9"><tspan + sodipodi:role="line" + id="tspan2685-7-25-3" + x="606.32227" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-5-6" + width="37.795277" + height="37.795277" + x="633.38586" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11755" + y="817.37054" + id="text2687-8-2-1-0"><tspan + sodipodi:role="line" + id="tspan2685-7-2-1-6" + x="644.11755" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-2" + width="37.795277" + height="37.795277" + x="784.56696" + y="788.11029" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29865" + y="817.37054" + id="text2687-8-0-6-6"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-1" + x="795.29865" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-8" + width="37.795277" + height="37.795277" + x="520" + y="788.11029" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-3" + width="37.795277" + height="37.795277" + x="633.38586" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-9" + width="37.795277" + height="37.795277" + x="671.18121" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-02-9" + width="37.795277" + height="37.795277" + x="708.97632" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-6" + width="37.795277" + height="37.795277" + x="746.77167" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.50336" + y="779.57532" + id="text2687-8-0-1"><tspan + sodipodi:role="line" + id="tspan2685-7-9-2" + x="757.50336" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-9" + width="37.795277" + height="37.795277" + x="557.79541" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52704" + y="779.57532" + id="text2687-8-6-3"><tspan + sodipodi:role="line" + id="tspan2685-7-25-1" + x="568.52704" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">1</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-5-9" + width="37.795277" + height="37.795277" + x="595.59064" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-84" + width="37.795277" + height="37.795277" + x="784.56708" + y="750.315" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-04-3-3" + width="37.795277" + height="37.795277" + x="520" + y="750.315" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="779.57532" + id="text2687-8-0-6-61"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-06" + x="530.73169" + y="779.57532" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="660.25952" + y="538.42389" + id="text5905"><tspan + sodipodi:role="line" + id="tspan5903" + x="660.25952" + y="538.42389" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32.3691597px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="726.49359" + y="770.78754" + id="text5909" + transform="scale(0.90621245,1.103494)"><tspan + sodipodi:role="line" + id="tspan5907" + x="726.49359" + y="770.78754" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36221,822.51969 v 37.7953" + id="path5940-3" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 520,822.51969 v 37.7953" + id="path5940-5" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 520,712.51969 v 37.79528" + id="path5940-2" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36221,712.51969 v 37.79528" + id="path5940-57" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 822.36218,521.33853 v 37.79528" + id="path5940-18" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + d="m 519.99997,521.33853 v 37.79528" + id="path5940-59" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="660.01294" + y="733.22003" + id="text5905-6"><tspan + sodipodi:role="line" + id="tspan5903-4" + x="660.01294" + y="733.22003" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.99999994px">...</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-6" + width="37.795277" + height="37.795277" + x="557.79529" + y="559.13385" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52698" + y="588.3941" + id="text2687-8-6-7-0"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-6" + x="568.52698" + y="588.3941" + style="fill:#0000ff;stroke-width:0.99999994px">1</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-8-0" + width="37.795277" + height="37.795277" + x="520" + y="559.13385" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="588.3941" + id="text2687-8-6-7-8-2"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-4-3" + x="530.73169" + y="588.3941" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32233" + y="779.75433" + id="text2687-80-3-4"><tspan + sodipodi:role="line" + id="tspan2685-4-5-4" + x="606.32233" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11761" + y="779.75433" + id="text2687-80-3-3"><tspan + sodipodi:role="line" + id="tspan2685-4-5-0" + x="644.11761" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91284" + y="779.75433" + id="text2687-80-3-7"><tspan + sodipodi:role="line" + id="tspan2685-4-5-86" + x="681.91284" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70813" + y="779.75433" + id="text2687-80-3-8"><tspan + sodipodi:role="line" + id="tspan2685-4-5-84" + x="719.70813" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29871" + y="779.75433" + id="text2687-80-3-31"><tspan + sodipodi:role="line" + id="tspan2685-4-5-49" + x="795.29871" + y="779.75433" + style="fill:#ff0000;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73181" + y="817.54968" + id="text2687-80-3-20"><tspan + sodipodi:role="line" + id="tspan2685-4-5-6" + x="530.73181" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91284" + y="817.54968" + id="text2687-80-3-89"><tspan + sodipodi:role="line" + id="tspan2685-4-5-2" + x="681.91284" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70813" + y="817.54968" + id="text2687-80-3-6"><tspan + sodipodi:role="line" + id="tspan2685-4-5-64" + x="719.70813" + y="817.54968" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.50336" + y="817.37054" + id="text2687-8-0-6-6-9"><tspan + sodipodi:role="line" + id="tspan2685-7-9-7-1-50" + x="757.50336" + y="817.37054" + style="fill:#ff0000;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-30" + width="37.795277" + height="37.795277" + x="595.59045" + y="559.13385" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-92" + width="37.795277" + height="37.795277" + x="633.38574" + y="559.13385" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-5" + width="37.795277" + height="37.795277" + x="633.38574" + y="559.13385" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-4" + width="37.795277" + height="37.795277" + x="671.18103" + y="559.13385" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-0" + width="37.795277" + height="37.795277" + x="708.97632" + y="559.13385" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-5" + width="37.795277" + height="37.795277" + x="746.77161" + y="559.13385" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-94" + width="37.795277" + height="37.795277" + x="784.56677" + y="559.13385" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="588.3941" + id="text2687-8-6-7-9-7-3-96"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-9" + x="606.32227" + y="588.3941" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11743" + y="588.3941" + id="text2687-8-6-7-9-7-3-33"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-8" + x="644.11743" + y="588.3941" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91272" + y="588.3941" + id="text2687-8-6-7-9-7-3-05"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-6" + x="681.91272" + y="588.3941" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70801" + y="588.3941" + id="text2687-8-6-7-9-7-3-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-40" + x="719.70801" + y="588.3941" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.5033" + y="588.3941" + id="text2687-8-6-7-9-7-3-04"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-62" + x="757.5033" + y="588.3941" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29858" + y="588.3941" + id="text2687-8-6-7-9-7-3-67"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-5" + x="795.29858" + y="588.3941" + style="fill:#0000ff;stroke-width:0.99999994px">1</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="18.471584" + y="610.22858" + id="text2900"><tspan + sodipodi:role="line" + x="18.471584" + y="610.22858" + id="tspan2902">char <tspan + style="fill:#ff0000;stroke:#ff0000" + id="tspan970">c</tspan> = <tspan + style="fill:#0000ff;stroke:#0000ff" + id="tspan978">65</tspan>; </tspan><tspan + sodipodi:role="line" + x="18.471584" + y="646.89526" + id="tspan2904">System.out.println(<tspan + style="fill:#ff0000;stroke:#ff0000" + id="tspan974">c</tspan>);</tspan><tspan + sodipodi:role="line" + x="18.471584" + y="683.56189" + id="tspan2906" /></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-6-3" + width="37.795277" + height="37.795277" + x="557.79529" + y="596.92914" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52698" + y="626.18939" + id="text2687-8-6-7-0-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-6-7" + x="568.52698" + y="626.18939" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-8-0-5" + width="37.795277" + height="37.795277" + x="520" + y="596.92914" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="626.18939" + id="text2687-8-6-7-8-2-3"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-4-3-5" + x="530.73169" + y="626.18939" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-30-6" + width="37.795277" + height="37.795277" + x="595.59045" + y="596.92914" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-92-2" + width="37.795277" + height="37.795277" + x="633.38574" + y="596.92914" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-5-9" + width="37.795277" + height="37.795277" + x="633.38574" + y="596.92914" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-4-1" + width="37.795277" + height="37.795277" + x="671.18103" + y="596.92914" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-0-2" + width="37.795277" + height="37.795277" + x="708.97632" + y="596.92914" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-5-7" + width="37.795277" + height="37.795277" + x="746.77161" + y="596.92914" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-94-0" + width="37.795277" + height="37.795277" + x="784.56677" + y="596.92914" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="626.18939" + id="text2687-8-6-7-9-7-3-96-9"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-9-3" + x="606.32227" + y="626.18939" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11743" + y="626.18939" + id="text2687-8-6-7-9-7-3-33-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-8-0" + x="644.11743" + y="626.18939" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91272" + y="626.18939" + id="text2687-8-6-7-9-7-3-05-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-6-2" + x="681.91272" + y="626.18939" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70801" + y="626.18939" + id="text2687-8-6-7-9-7-3-6-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-40-1" + x="719.70801" + y="626.18939" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.5033" + y="626.18939" + id="text2687-8-6-7-9-7-3-04-8"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-62-7" + x="757.5033" + y="626.18939" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29858" + y="626.18939" + id="text2687-8-6-7-9-7-3-67-9"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-5-2" + x="795.29858" + y="626.18939" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-6-3-30" + width="37.795277" + height="37.795277" + x="557.79529" + y="634.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52698" + y="663.98468" + id="text2687-8-6-7-0-6-7"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-6-7-8" + x="568.52698" + y="663.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-8-0-5-6" + width="37.795277" + height="37.795277" + x="520" + y="634.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="663.98468" + id="text2687-8-6-7-8-2-3-8"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-4-3-5-8" + x="530.73169" + y="663.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-30-6-4" + width="37.795277" + height="37.795277" + x="595.59045" + y="634.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-92-2-3" + width="37.795277" + height="37.795277" + x="633.38574" + y="634.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-5-9-14" + width="37.795277" + height="37.795277" + x="633.38574" + y="634.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-4-1-92" + width="37.795277" + height="37.795277" + x="671.18103" + y="634.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-0-2-0" + width="37.795277" + height="37.795277" + x="708.97632" + y="634.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-5-7-6" + width="37.795277" + height="37.795277" + x="746.77161" + y="634.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-94-0-8" + width="37.795277" + height="37.795277" + x="784.56677" + y="634.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="663.98468" + id="text2687-8-6-7-9-7-3-96-9-9"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-9-3-26" + x="606.32227" + y="663.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11743" + y="663.98468" + id="text2687-8-6-7-9-7-3-33-6-64"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-8-0-95" + x="644.11743" + y="663.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91272" + y="663.98468" + id="text2687-8-6-7-9-7-3-05-6-0"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-6-2-4" + x="681.91272" + y="663.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70801" + y="663.98468" + id="text2687-8-6-7-9-7-3-6-6-8"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-40-1-71" + x="719.70801" + y="663.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.5033" + y="663.98468" + id="text2687-8-6-7-9-7-3-04-8-7"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-62-7-2" + x="757.5033" + y="663.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29858" + y="663.98468" + id="text2687-8-6-7-9-7-3-67-9-7"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-5-2-2" + x="795.29858" + y="663.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-6-3-2" + width="37.795277" + height="37.795277" + x="557.79529" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="568.52698" + y="703.98468" + id="text2687-8-6-7-0-6-61"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-6-7-0" + x="568.52698" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-9-4-8-0-5-61" + width="37.795277" + height="37.795277" + x="520" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="530.73169" + y="703.98468" + id="text2687-8-6-7-8-2-3-59"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-4-3-5-4" + x="530.73169" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-30-6-9" + width="37.795277" + height="37.795277" + x="595.59045" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-92-2-0" + width="37.795277" + height="37.795277" + x="633.38574" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-5-9-9" + width="37.795277" + height="37.795277" + x="633.38574" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-4-1-1" + width="37.795277" + height="37.795277" + x="671.18103" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-0-2-77" + width="37.795277" + height="37.795277" + x="708.97632" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-0-7-5-7-1" + width="37.795277" + height="37.795277" + x="746.77161" + y="674.72443" + ry="0" /> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect1590-0-5-4-1-94-0-1" + width="37.795277" + height="37.795277" + x="784.56677" + y="674.72443" + ry="0" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="606.32227" + y="703.98468" + id="text2687-8-6-7-9-7-3-96-9-5"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-9-3-9" + x="606.32227" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="644.11743" + y="703.98468" + id="text2687-8-6-7-9-7-3-33-6-7"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-8-0-7" + x="644.11743" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="681.91272" + y="703.98468" + id="text2687-8-6-7-9-7-3-05-6-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-6-2-73" + x="681.91272" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="719.70801" + y="703.98468" + id="text2687-8-6-7-9-7-3-6-6-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-40-1-5" + x="719.70801" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="757.5033" + y="703.98468" + id="text2687-8-6-7-9-7-3-04-8-6"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-62-7-3" + x="757.5033" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="795.29858" + y="703.98468" + id="text2687-8-6-7-9-7-3-67-9-9"><tspan + sodipodi:role="line" + id="tspan2685-7-25-4-5-5-1-5-2-48" + x="795.29858" + y="703.98468" + style="fill:#0000ff;stroke-width:0.99999994px">0</tspan></text> + </g> + <script + ns1:version="14.10-05142318" + id="sozi-script">function namespace(b,d,a){var c=b;d.split(".").forEach(function(e){if(typeof c[e]==="undefined"){c[e]={}}c=c[e]});if(a){a(c,b)}return c}namespace(this,"sozi.events",function(b){var a={};b.listen=function(c,d){if(!a.hasOwnProperty(c)){a[c]=[]}a[c].push(d)};b.fire=function(d){var c=Array.prototype.slice.call(arguments,1);if(a.hasOwnProperty(d)){a[d].forEach(function(e){e.apply(null,c)})}}});namespace(this,"sozi.proto",function(a){a.Object={installConstructors:function(){function b(){}b.prototype=this;this.instance=function(){var c=new b();c.construct.apply(c,arguments);return c};this.subtype=function(d){var c=new b();c.augment(d);c.installConstructors();return c}},construct:function(){},augment:function(c){for(var b in c){if(c.hasOwnProperty(b)){this[b]=c[b]}}return this},bind:function(c){var b=this;return function(){return c.apply(b,arguments)}}};a.Object.installConstructors()});namespace(this,"sozi.actions",function(A,g){var u=namespace(g,"sozi.player");var v=namespace(g,"sozi.display");var n=g.document;var o=0;var w=1;var t=1.05;var y=5;var m=5;var r=false;var i=0;var h=0;function a(C,B,D){u.stop();v.viewPorts.player.zoom(C>0?t:1/t,B,D)}function x(B){u.stop();v.viewPorts.player.rotate(B>0?y:-y)}function s(){if(sozi.framelist.isVisible()){sozi.framelist.hide();u.restart()}else{u.stop();sozi.framelist.show()}}function d(B){return v.viewPorts.player.contains(B.clientX,B.clientY)}function f(B){if(!d(B)){return}if(B.button===o){n.documentElement.addEventListener("mousemove",q,false);r=false;i=B.clientX;h=B.clientY}else{if(B.button===w){s()}}B.stopPropagation();B.preventDefault()}function q(B){if(!d(B)){return}u.stop();if(!r&&(Math.abs(B.clientX-i)>m||Math.abs(B.clientY-h)>m)){r=true}if(r){sozi.events.fire("sozi.player.cleanup");v.viewPorts.player.drag(B.clientX-i,B.clientY-h);i=B.clientX;h=B.clientY}B.stopPropagation()}function c(B){if(!d(B)){return}if(B.button===o){n.documentElement.removeEventListener("mousemove",q,false)}B.stopPropagation();B.preventDefault()}function p(B){if(!d(B)){return}u.moveToPrevious();B.stopPropagation();B.preventDefault()}function e(B){if(!d(B)){return}if(!r&&B.button!==w){u.moveToNext()}B.stopPropagation();B.preventDefault()}function j(B){if(!d(B)){return}if(!B){B=g.event}var C=0;if(B.wheelDelta){C=B.wheelDelta}else{if(B.detail){C=-B.detail}}if(C!==0){if(B.shiftKey){x(C)}else{a(C,B.clientX,B.clientY)}}B.stopPropagation();B.preventDefault()}function l(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.charCode||B.which){case 43:a(1,g.innerWidth/2,g.innerHeight/2);break;case 45:a(-1,g.innerWidth/2,g.innerHeight/2);break;case 61:u.moveToCurrent();break;case 70:case 102:u.showAll();break;case 84:case 116:s();break;case 82:x(-1);break;case 114:x(1);break;default:return}B.stopPropagation();B.preventDefault()}function b(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.keyCode){case 36:if(B.shiftKey){u.jumpToFirst()}else{u.moveToFirst()}break;case 35:if(B.shiftKey){u.jumpToLast()}else{u.moveToLast()}break;case 38:case 33:case 37:if(B.shiftKey){u.jumpToPrevious()}else{u.moveToPrevious()}break;case 40:case 34:case 39:case 13:case 32:if(B.shiftKey){u.jumpToNext()}else{u.moveToNext()}break;default:return}B.stopPropagation();B.preventDefault()}function z(B){B.stopPropagation()}function k(){var C=n.getElementsByTagName("a");for(var D=0;D<C.length;D+=1){C[D].addEventListener("click",z,false);C[D].addEventListener("contextmenu",z,false)}var B=n.documentElement;B.addEventListener("click",e,false);B.addEventListener("mousedown",f,false);B.addEventListener("mouseup",c,false);B.addEventListener("contextmenu",p,false);B.addEventListener("DOMMouseScroll",j,false);g.onmousewheel=j;B.addEventListener("keypress",l,false);B.addEventListener("keydown",b,false)}sozi.events.listen("sozi.display.ready",k)});namespace(this,"sozi.animation",function(d,g){var h=g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||g.msRequestAnimationFrame||g.oRequestAnimationFrame;var k=function(){return g.performance&&g.performance.now?g.performance.now():Date.now()};d.setAnimationFrameHandlers=function(l,m){h=l;k=m};var i=40;var c;var j=[];function e(){if(j.length>0){if(h){h(e)}j.forEach(function(l){l.step(k())})}else{if(!h){g.clearInterval(c)}}}function b(){if(h){h(e)}else{c=g.setInterval(function(){e(k())},i)}}function a(l){j.push(l);if(j.length===1){b()}}function f(l){j.splice(j.indexOf(l),1)}d.Animator=sozi.proto.Object.subtype({construct:function(){this.durationMs=0;this.data=null;this.initialTime=0;this.started=false},start:function(l,m){this.durationMs=l;this.data=m;this.initialTime=k();this.onStep(0);if(!this.started){this.started=true;a(this)}},stop:function(){if(this.started){f(this);this.started=false}},step:function(m){var l=m-this.initialTime;if(l>=this.durationMs){this.stop();this.onStep(1);this.onDone()}else{this.onStep(l/this.durationMs)}},onStep:function(l){},onDone:function(){}});d.profiles={linear:function(l){return l},accelerate:function(l){return Math.pow(l,3)},"strong-accelerate":function(l){return Math.pow(l,5)},decelerate:function(l){return 1-Math.pow(1-l,3)},"strong-decelerate":function(l){return 1-Math.pow(1-l,5)},"accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,3)/2;return l<=0.5?n:1-n},"strong-accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,5)/2;return l<=0.5?n:1-n},"decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,2))/2;return l<=0.5?n:1-n},"strong-decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,3))/2;return l<=0.5?n:1-n},"immediate-beginning":function(l){return 1},"immediate-end":function(l){return l===1?1:0},"immediate-middle":function(l){return l>=0.5?1:0}}});namespace(this,"sozi.display",function(c,g){var f="http://www.w3.org/2000/svg";var b="http://www.w3.org/1999/xlink";var i=g.document;var k;var h;var j;c.viewPorts={};var e;c.CameraState=sozi.proto.Object.subtype({construct:function(){this.cx=this.cy=0;this.width=this.height=1;this.angle=0;this.clipped=true;this.transitionZoomPercent=0;this.transitionProfile=sozi.animation.profiles.linear;this.transitionPath=null},setCenter:function(l,m){this.cx=l;this.cy=m;return this},setSize:function(m,l){this.width=m;this.height=l;return this},setClipped:function(l){this.clipped=l;return this},setAngle:function(l){this.angle=(l+180)%360-180;return this},setRawAngle:function(l){this.angle=l;return this},setTransitionZoomPercent:function(l){this.transitionZoomPercent=l;return this},setTransitionProfile:function(l){this.transitionProfile=l;return this},setTransitionPath:function(l){this.transitionPath=l;return this},setAtElement:function(p){var s,o,t,m;if(p.nodeName==="rect"){s=p.x.baseVal.value;o=p.y.baseVal.value;t=p.width.baseVal.value;m=p.height.baseVal.value}else{var q=p.getBBox();s=q.x;o=q.y;t=q.width;m=q.height}var n=i.documentElement.createSVGPoint();n.x=s+t/2;n.y=o+m/2;var r=p.getCTM();n=n.matrixTransform(r);var l=Math.sqrt(r.a*r.a+r.b*r.b);return this.setCenter(n.x,n.y).setSize(t*l,m*l).setAngle(Math.atan2(r.b,r.a)*180/Math.PI)},setAtState:function(l){return this.setCenter(l.cx,l.cy).setSize(l.width,l.height).setAngle(l.angle).setClipped(l.clipped).setTransitionZoomPercent(l.transitionZoomPercent).setTransitionProfile(l.transitionProfile).setTransitionPath(l.transitionPath)},interpolatableAttributes:["width","height","angle"],interpolate:function(n,o,t,v,r){var p=1-t;for(var q=0;q<this.interpolatableAttributes.length;q+=1){var s=this.interpolatableAttributes[q];this[s]=o[s]*t+n[s]*p}var l=r?n.transitionPath:o.transitionPath;if(v&&l){var x=l.getTotalLength();if(r){var m=l.getPointAtLength(x);var u=l.getPointAtLength(0);var w=l.getPointAtLength(x*p)}else{var m=l.getPointAtLength(0);var u=l.getPointAtLength(x);var w=l.getPointAtLength(x*t)}this.cx=w.x+(o.cx-u.x)*t+(n.cx-m.x)*p;this.cy=w.y+(o.cy-u.y)*t+(n.cy-m.y)*p}else{this.cx=o.cx*t+n.cx*p;this.cy=o.cy*t+n.cy*p}}});c.Camera=c.CameraState.subtype({construct:function(n,o){c.CameraState.construct.call(this);this.viewPort=n;this.svgClipRect=i.createElementNS(f,"rect");var m=i.createElementNS(f,"clipPath");m.setAttribute("id","sozi-clip-path-"+n.id+"-"+o);m.appendChild(this.svgClipRect);n.svgGroup.appendChild(m);var l=i.createElementNS(f,"g");l.setAttribute("clip-path","url(#sozi-clip-path-"+n.id+"-"+o+")");n.svgGroup.appendChild(l);if(n.isPrimary){this.svgLayer=i.createElementNS(f,"g");this.svgLayer.appendChild(i.getElementById(o))}else{this.svgLayer=i.createElementNS(f,"use");this.svgLayer.setAttributeNS(b,"href","#"+o)}l.appendChild(this.svgLayer)},setAtState:function(l){return c.CameraState.setAtState.call(this,l).update()},getScale:function(){return Math.min(this.viewPort.width/this.width,this.viewPort.height/this.height)},rotate:function(l){return this.setAngle(this.angle+l).update()},zoom:function(m,l,n){return this.setSize(this.width/m,this.height/m).drag((1-m)*(l-this.viewPort.width/2),(1-m)*(n-this.viewPort.height/2))},drag:function(m,l){var q=this.getScale();var o=this.angle*Math.PI/180;var n=Math.sin(o);var p=Math.cos(o);return this.setCenter(this.cx-(m*p-l*n)/q,this.cy-(m*n+l*p)/q).setClipped(false).update()},update:function(){var q=this.getScale();var n=this.width*q;var m=this.height*q;var l=(this.viewPort.width-n)/2;var r=(this.viewPort.height-m)/2;this.svgClipRect.setAttribute("x",this.clipped?l:0);this.svgClipRect.setAttribute("y",this.clipped?r:0);this.svgClipRect.setAttribute("width",this.clipped?n:this.viewPort.width);this.svgClipRect.setAttribute("height",this.clipped?m:this.viewPort.height);var p=-this.cx+this.width/2+l/q;var o=-this.cy+this.height/2+r/q;this.svgLayer.setAttribute("transform","scale("+q+")translate("+p+","+o+")rotate("+(-this.angle)+","+this.cx+","+this.cy+")");return this}});c.ViewPort=sozi.proto.Object.subtype({construct:function(n,m,l){this.id=n;c.viewPorts[n]=this;this.isPrimary=!!l;if(this.isPrimary){if(e){throw"Failed to create a primary viewport. A primary viewport already exists."}else{e=this}}this.svgGroup=i.createElementNS(f,"g");this.svgGroup.setAttribute("class","sozi-viewport");this.svgGroup.setAttribute("id","sozi-viewport-"+n);i.documentElement.appendChild(this.svgGroup);this.setLocation(0,0).setSize(g.innerWidth,g.innerHeight);this.cameras={};m.forEach(function(o){this.cameras[o]=c.Camera.instance(this,o)},this)},setSize:function(m,l){this.width=m;this.height=l;return this},setLocation:function(l,m){this.x=l;this.y=m;return this},contains:function(l,m){return l>=this.x&&l<this.x+this.width&&m>=this.y&&m<this.y+this.height},getDocumentState:function(){var m=c.CameraState.instance().setCenter(k.x+k.width/2,k.y+k.height/2).setSize(k.width,k.height).setClipped(false);var l={};for(var n in this.cameras){l[n]=m}return l},update:function(){this.svgGroup.setAttribute("transform","translate("+this.x+","+this.y+")");for(var l in this.cameras){this.cameras[l].update()}return this},showFrame:function(l){for(var m in l.states){this.cameras[m].setAtState(l.states[m])}return this},drag:function(m,l){for(var n in this.cameras){this.cameras[n].drag(m,l)}return this},zoom:function(m,l,o){for(var n in this.cameras){this.cameras[n].zoom(m,l,o)}return this},rotate:function(l){for(var m in this.cameras){this.cameras[m].rotate(l)}return this},onWindowResize:function(m,l){this.setLocation(this.x*m,this.y*l).setSize(this.width*m,this.height*l).update()}});function d(){var l=i.documentElement;k=l.getBBox();h=g.innerWidth;j=g.innerHeight;l.setAttribute("width",h);l.setAttribute("height",j);sozi.events.fire("sozi.display.ready")}function a(){var l=i.documentElement;l.setAttribute("width",g.innerWidth);l.setAttribute("height",g.innerHeight);for(var m in c.viewPorts){c.viewPorts[m].onWindowResize(g.innerWidth/h,g.innerHeight/j)}h=g.innerWidth;j=g.innerHeight}sozi.events.listen("sozi.document.ready",d);g.addEventListener("resize",a,false)});namespace(this,"sozi.document",function(c,e){var g=e.document;var b="http://sozi.baierouge.fr";var d={title:"Untitled",sequence:"0",hide:"true",clip:"true","show-in-frame-list":"true","timeout-enable":"false","timeout-ms":"5000","transition-duration-ms":"1000","transition-zoom-percent":"0","transition-profile":"linear","transition-path-hide":"true"};var h=["g","image","path","rect","circle","ellipse","line","polyline","polygon","text","clippath"];c.frames=[];c.idLayerList=[];function j(l,k){return l.getAttributeNS(b,k)||d[k]}function i(o,p,k){var l=o.states[p]=o.states[p]||sozi.display.CameraState.instance();if(typeof l.transitionZoomPercent==="undefined"||k.hasAttributeNS(b,"transition-zoom-percent")){l.setTransitionZoomPercent(parseInt(j(k,"transition-zoom-percent"),10))}if(typeof l.transitionProfile==="undefined"||k.hasAttributeNS(b,"transition-profile")){l.setTransitionProfile(sozi.animation.profiles[j(k,"transition-profile")])}if(typeof l.transitionPath==="undefined"||k.hasAttributeNS(b,"transition-path")){var n=g.getElementById(k.getAttributeNS(b,"transition-path"));if(n&&n.nodeName==="path"){l.setTransitionPath(n);if(j(k,"transition-path-hide")==="true"){n.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"refid")){var m=g.getElementById(k.getAttributeNS(b,"refid"));if(m){l.setAtElement(m);if(j(k,"hide")==="true"){m.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"clip")){l.setClipped(j(k,"clip")==="true")}}function a(){var l=[];var p=g.getElementsByTagNameNS(b,"layer");for(var n=0;n<p.length;n+=1){var s=p[n].getAttributeNS(b,"group");if(s&&l.indexOf(s)===-1){l.push(s)}}var r=g.documentElement;var o="http://www.w3.org/2000/svg";var q=g.createElementNS(o,"g");var k=Array.prototype.slice.call(r.childNodes);k.forEach(function(u,t){if(!u.getAttribute){r.removeChild(u)}else{if(l.indexOf(u.getAttribute("id"))!==-1){if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+t);c.idLayerList.push("sozi-wrapper-"+t);r.insertBefore(q,u);q=g.createElementNS(o,"g")}c.idLayerList.push(u.getAttribute("id"))}else{if(h.indexOf(u.localName.toLowerCase())!==-1){r.removeChild(u);q.appendChild(u)}}}});if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+k.length);c.idLayerList.push("sozi-wrapper-"+k.length);r.appendChild(q)}var m=Array.prototype.slice.call(g.getElementsByTagNameNS(b,"frame"));m.sort(function(u,t){var w=parseInt(j(u,"sequence"),10);var v=parseInt(j(t,"sequence"),10);return w-v});m.forEach(function(v,u){var x={id:v.getAttribute("id"),title:j(v,"title"),showInFrameList:j(v,"show-in-frame-list")==="true",sequence:parseInt(j(v,"sequence"),10),timeoutEnable:j(v,"timeout-enable")==="true",timeoutMs:parseInt(j(v,"timeout-ms"),10),transitionDurationMs:parseInt(j(v,"transition-duration-ms"),10),states:{}};c.idLayerList.forEach(function(A){if(u===0||A.search("sozi-wrapper-[0-9]+")!==-1){i(x,A,v)}else{var z=x.states[A]=sozi.display.CameraState.instance();var y=c.frames[c.frames.length-1].states[A];z.setAtState(y)}});var t=Array.prototype.slice.call(v.getElementsByTagNameNS(b,"layer"));t.forEach(function(y){var z=y.getAttributeNS(b,"group");if(z&&c.idLayerList.indexOf(z)!==-1){i(x,z,y)}});for(var w in x.states){if(x.states.hasOwnProperty(w)){c.frames.push(x);break}}})}c.getFrameIndexForId=function(l){for(var k=0;k<c.frames.length;k+=1){if(c.frames[k].id===l){return k}}return -1};function f(){g.documentElement.removeAttribute("viewBox");a();sozi.events.fire("sozi.document.ready")}e.addEventListener("load",f,false)});namespace(this,"sozi.framelist",function(u,k){var o=k.document;var c=5;var i;var p;var j=0;var h;var s;var b;var v;var w;var t;var e=300;var f="decelerate";var a="http://www.w3.org/2000/svg";function n(z){var x=z.relatedTarget,y=o.documentElement;while(x&&x!==i&&x!==y){x=x.parentNode}if(x!==i){u.hide();sozi.player.restart();z.stopPropagation()}}function r(y){var x=p.getCTM().f;if(x<=-k.innerHeight/2){x+=k.innerHeight/2}else{if(x<0){x=0}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function d(y){var x=p.getCTM().f;if(x+j>=k.innerHeight*3/2){x-=k.innerHeight/2}else{if(x+j>k.innerHeight+2*c){x=k.innerHeight-j-4*c}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function g(x){return function(y){sozi.player.previewFrame(x);y.stopPropagation()}}function l(x){x.stopPropagation()}function q(){i=o.createElementNS(a,"g");i.setAttribute("id","sozi-toc");o.documentElement.appendChild(i);p=o.createElementNS(a,"g");i.appendChild(p);var y=o.createElementNS(a,"rect");y.setAttribute("id","sozi-toc-background");y.setAttribute("x",c);y.setAttribute("y",c);y.setAttribute("rx",c);y.setAttribute("ry",c);y.addEventListener("click",l,false);y.addEventListener("mousedown",l,false);y.addEventListener("mouseout",n,false);p.appendChild(y);var A=0;sozi.document.frames.forEach(function(D,E){if(D.showInFrameList){var C=o.createElementNS(a,"text");C.appendChild(o.createTextNode(D.title));C.setAttribute("id","sozi-toc-"+D.id);p.appendChild(C);if(E===sozi.player.currentFrameIndex){C.setAttribute("class","sozi-toc-current")}var B=C.getBBox().width;j+=C.getBBox().height;if(B>A){A=B}C.setAttribute("x",2*c);C.setAttribute("y",j+c);C.addEventListener("click",g(E),false);C.addEventListener("mousedown",l,false)}});var x=o.createElementNS(a,"path");x.setAttribute("class","sozi-toc-arrow");x.setAttribute("d","M"+(A+3*c)+","+(5*c)+" l"+(4*c)+",0 l-"+(2*c)+",-"+(3*c)+" z");x.addEventListener("click",r,false);x.addEventListener("mousedown",l,false);i.appendChild(x);var z=o.createElementNS(a,"path");z.setAttribute("class","sozi-toc-arrow");z.setAttribute("d","M"+(A+3*c)+","+(7*c)+" l"+(4*c)+",0 l-"+(2*c)+","+(3*c)+" z");z.addEventListener("click",d,false);z.addEventListener("mousedown",l,false);i.appendChild(z);y.setAttribute("width",A+7*c);y.setAttribute("height",j+2*c);h=-A-9*c;s=0;w=v=h;i.setAttribute("transform","translate("+h+",0)");t=sozi.animation.Animator.instance().augment({onStep:function(B){var D=sozi.animation.profiles[f](B),C=1-D;w=v*D+b*C;i.setAttribute("transform","translate("+w+",0)")}})}function m(x){var y=Array.prototype.slice.call(o.getElementsByClassName("sozi-toc-current"));y.forEach(function(A){A.removeAttribute("class")});var z=sozi.document.frames[x];if(z.showInFrameList){o.getElementById("sozi-toc-"+z.id).setAttribute("class","sozi-toc-current")}}u.show=function(){o.documentElement.appendChild(i);b=w;v=s;t.start(e)};u.hide=function(){b=w;v=h;t.start(e)};u.isVisible=function(){return v===s};sozi.events.listen("sozi.player.ready",q);sozi.events.listen("sozi.player.cleanup",u.hide);sozi.events.listen("sozi.player.framechange",m)});namespace(this,"sozi.framenumber",function(a,d){var g=d.document;var e;var k,i;var f;var b="http://www.w3.org/2000/svg";function h(){var m=k.getBBox(),n=Math.max(m.width,m.height)*0.75,l=n*1.25;f.setAttribute("r",n);e.setAttribute("transform","translate("+l+","+l+")")}function c(){e=g.createElementNS(b,"g");k=g.createElementNS(b,"text");f=g.createElementNS(b,"circle");e.setAttribute("id","sozi-framenumber");f.setAttribute("cx",0);f.setAttribute("cy",0);e.appendChild(f);i=g.createTextNode(sozi.player.currentFrameIndex+1);k.setAttribute("text-anchor","middle");k.setAttribute("dominant-baseline","central");k.setAttribute("x",0);k.setAttribute("y",0);k.appendChild(i);e.appendChild(k);g.documentElement.appendChild(e);h()}function j(l){i.nodeValue=l+1}sozi.events.listen("sozi.player.ready",c);sozi.events.listen("sozi.player.framechange",j)});namespace(this,"sozi.links",function(c,e){var b="http://www.w3.org/2000/svg";var a="http://www.w3.org/1999/xlink";function f(g){return function(h){sozi.player.moveToFrame(g);h.preventDefault();h.stopPropagation()}}function d(){var h=e.document.getElementsByTagNameNS(b,"a");for(var j=0;j<h.length;j+=1){var g=h[j].getAttributeNS(a,"href");if(g&&g[0]==="#"){h[j].addEventListener("click",f(sozi.location.getFrameIndexForHash(g)),false)}}}sozi.events.listen("sozi.document.ready",d)});namespace(this,"sozi.location",function(a,d){var b=false;a.getFrameIndex=function(){return a.getFrameIndexForHash(d.location.hash)};a.getFrameIndexForHash=function(g){var h=g?g.slice(1):"1";var f;if(/^[0-9]+$/.test(h)){f=parseInt(h,10)-1}else{f=sozi.document.getFrameIndexForId(h)}if(f<0){return 0}else{if(f>=sozi.document.frames.length){return sozi.document.frames.length-1}else{return f}}};function e(){var f=a.getFrameIndex();if(!b){sozi.player.moveToFrame(f)}b=false}function c(f){b=true;d.location.hash="#"+sozi.document.frames[f].id}d.addEventListener("hashchange",e,false);sozi.events.listen("sozi.player.framechange",c)});namespace(this,"sozi.player",function(d,g){var l;var c;var i;var e=500;var n=-10;var j="linear";var f=0;d.currentFrameIndex=0;var k=false;var m=false;function h(){if(sozi.document.frames[d.currentFrameIndex].timeoutEnable){m=true;var o=(d.currentFrameIndex+1)%sozi.document.frames.length;i=g.setTimeout(function(){d.moveToFrame(o)},sozi.document.frames[d.currentFrameIndex].timeoutMs)}}d.startFromIndex=function(o){k=true;m=false;f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);h()};d.restart=function(){d.startFromIndex(d.currentFrameIndex)};d.stop=function(){c.stop();if(m){g.clearTimeout(i);m=false}k=false;f=d.currentFrameIndex};function b(o,y,w){var z={ss:((o<0)?Math.max(y,w):Math.min(y,w))*(100-o)/100,ts:0.5,k:0};if(o!==0){var s=y-w;var r=y-z.ss;var q=w-z.ss;if(s!==0){var p=Math.sqrt(r*q);var x=(r-p)/s;var t=(r+p)/s;z.ts=(x>0&&x<=1)?x:t}z.k=r/z.ts/z.ts}return z}d.jumpToFrame=function(o){d.stop();sozi.events.fire("sozi.player.cleanup");f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);sozi.events.fire("sozi.player.framechange",o)};d.getAnimationData=function(o,q,s,p,v,t){var r={};for(var w in o){r[w]={initialState:sozi.display.CameraState.instance(),finalState:sozi.display.CameraState.instance(),useTransitionPath:v,reverseTransitionPath:t};r[w].profile=p||q[w].transitionProfile;r[w].initialState.setAtState(o[w]);if(q.hasOwnProperty(w)){r[w].finalState.setAtState(q[w])}else{r[w].finalState.setAtState(o[w])}if(r[w].finalState.angle-r[w].initialState.angle>180){r[w].finalState.setRawAngle(r[w].finalState.angle-360)}else{if(r[w].finalState.angle-r[w].initialState.angle<-180){r[w].initialState.setRawAngle(r[w].initialState.angle-360)}}var u=s||q[w].transitionZoomPercent;if(u&&q.hasOwnProperty(w)){r[w].zoomWidth=b(u,o[w].width,q[w].width);r[w].zoomHeight=b(u,o[w].height,q[w].height)}}return r};d.previewFrame=function(o){d.currentFrameIndex=o;c.start(e,d.getAnimationData(l.cameras,sozi.document.frames[o].states,n,sozi.animation.profiles[j]),false,false);sozi.events.fire("sozi.player.framechange",o)};d.moveToFrame=function(r){if(m){g.clearTimeout(i);m=false}var q,t,s,p,o;if(r===(d.currentFrameIndex-1)%sozi.document.frames.length){q=sozi.document.frames[d.currentFrameIndex].transitionDurationMs;t=undefined;s=undefined;p=true;o=true}else{if(r===(d.currentFrameIndex+1)%sozi.document.frames.length){q=sozi.document.frames[r].transitionDurationMs;t=undefined;s=undefined;p=true;o=false}else{q=e;t=n;s=sozi.animation.profiles[j];p=false;o=false}}sozi.events.fire("sozi.player.cleanup");k=true;d.currentFrameIndex=r;c.start(q,d.getAnimationData(l.cameras,sozi.document.frames[r].states,t,s,p,o));sozi.events.fire("sozi.player.framechange",r)};d.jumpToFirst=function(){d.jumpToFrame(0)};d.moveToFirst=function(){d.moveToFrame(0)};d.jumpToPrevious=function(){var o=d.currentFrameIndex;if(!c.started||f<=d.currentFrameIndex){o-=1}if(o>=0){d.jumpToFrame(o)}};d.moveToPrevious=function(){for(var o=d.currentFrameIndex-1;o>=0;o-=1){var p=sozi.document.frames[o];if(!p.timeoutEnable||p.timeoutMs!==0){d.moveToFrame(o);break}}};d.jumpToNext=function(){var o=d.currentFrameIndex;if(!c.started||f>=d.currentFrameIndex){o+=1}if(o<sozi.document.frames.length){d.jumpToFrame(o)}};d.moveToNext=function(){if(d.currentFrameIndex<sozi.document.frames.length-1||sozi.document.frames[d.currentFrameIndex].timeoutEnable){d.moveToFrame((d.currentFrameIndex+1)%sozi.document.frames.length)}};d.jumpToLast=function(){d.jumpToFrame(sozi.document.frames.length-1)};d.moveToLast=function(){d.moveToFrame(sozi.document.frames.length-1)};d.moveToCurrent=function(){d.moveToFrame(d.currentFrameIndex)};d.showAll=function(){d.stop();sozi.events.fire("sozi.player.cleanup");c.start(e,d.getAnimationData(l.cameras,l.getDocumentState(),n,sozi.animation.profiles[j],false,false))};function a(){l=sozi.display.ViewPort.instance("player",sozi.document.idLayerList,true);d.startFromIndex(sozi.location.getFrameIndex());g.setTimeout(l.bind(l.update),1);sozi.events.fire("sozi.player.ready")}d.onAnimationStep=function(o,q){for(var s in q){var p=l.cameras[s];p.interpolate(q[s].initialState,q[s].finalState,q[s].profile(o),q[s].useTransitionPath,q[s].reverseTransitionPath);var r;if(q[s].zoomWidth&&q[s].zoomWidth.k!==0){r=o-q[s].zoomWidth.ts;p.width=q[s].zoomWidth.k*r*r+q[s].zoomWidth.ss}if(q[s].zoomHeight&&q[s].zoomHeight.k!==0){r=o-q[s].zoomHeight.ts;p.height=q[s].zoomHeight.k*r*r+q[s].zoomHeight.ss}p.setClipped(q[s].finalState.clipped)}l.update()};c=sozi.animation.Animator.instance().augment({onStep:function(o){d.onAnimationStep(o,this.data)},onDone:function(){for(var o in this.data){l.cameras[o].setAtState(this.data[o].finalState)}l.update();f=d.currentFrameIndex;if(k){h()}}});sozi.events.listen("sozi.display.ready",a)});</script> + <style + ns1:version="14.10-05142318" + id="sozi-style">#sozi-toc text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}#sozi-toc text:hover{fill:#0cf;cursor:pointer}#sozi-toc text.sozi-toc-current{fill:#fa4}#sozi-toc-background{stroke:#222;stroke-opacity:.1;stroke-width:10;fill:#222;fill-opacity:.9}.sozi-toc-arrow{fill:#eff;fill-opacity:.75;stroke:none}.sozi-toc-arrow:hover{fill:#0cf}#sozi-framenumber circle{stroke:#222;stroke-opacity:.1;stroke-width:4;fill:#222;fill-opacity:.9}#sozi-framenumber text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}</style> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="1" + ns1:title="Gcd implementation" + ns1:refid="rect10351" /> + <ns1:frame + ns1:refid="rect10841" + ns1:title="Gcd maven packaging" + ns1:sequence="2" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="3" + ns1:title="Using Math.getGcd()" + ns1:refid="rect11089" /> + <ns1:frame + ns1:refid="rect11381" + ns1:title="Fraction project" + ns1:sequence="4" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="5" + ns1:title="Maven dependency definition" + ns1:refid="rect11637" /> + <ns1:frame + ns1:refid="rect11895" + ns1:title="Fraction depends on Gcd" + ns1:sequence="6" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000" + ns1:transition-duration-ms="1000" + ns1:transition-zoom-percent="0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> +</svg> diff --git a/Doc/Sd1/Ref/LangFundament/iso8859_1.svg b/Doc/Sd1/Ref/LangFundament/iso8859_1.svg index 02164e054..e38eeec02 100644 --- a/Doc/Sd1/Ref/LangFundament/iso8859_1.svg +++ b/Doc/Sd1/Ref/LangFundament/iso8859_1.svg @@ -11,8 +11,8 @@ 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" - sodipodi:docname="iso8859.svg" - inkscape:version="0.92.1 unknown" + sodipodi:docname="iso8859_1.svg" + inkscape:version="0.92.1 r15371" version="1.2" id="svg2" height="586.66669" @@ -31,9 +31,9 @@ inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1600" - inkscape:window-height="1176" + inkscape:window-height="1090" inkscape:window-x="0" - inkscape:window-y="24" + inkscape:window-y="27" inkscape:window-maximized="1" showguides="false" inkscape:guide-bbox="true"> @@ -696,7 +696,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -706,29 +706,29 @@ id="layer1" transform="translate(0,-535.85302)"> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.0081141;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-7" width="377.95276" - height="566.92914" + height="570" x="226.77162" - y="555.59058" - ry="53.149597" /> + y="552.51971" + ry="9.9999924" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.0081141;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-1" width="113.38585" - height="566.92914" + height="570" x="680.31494" - y="555.59058" - ry="53.149597" /> + y="552.51971" + ry="9.9999924" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.0081141;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289" width="113.38583" - height="566.92914" + height="570" x="-6.3077641e-06" - y="555.59058" - ry="53.149597" /> + y="552.51971" + ry="9.9999924" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672" @@ -946,7 +946,7 @@ height="340.15747" x="226.77165" y="19.737553" /></flowRegion><flowPara - id="flowPara4593"></flowPara></flowRoot> <text + id="flowPara4593" /></flowRoot> <text xml:space="preserve" style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" x="38.623222" @@ -1234,7 +1234,7 @@ height="37.795277" x="340.15747" y="133.12338" /></flowRegion><flowPara - id="flowPara5235"></flowPara></flowRoot> <rect + id="flowPara5235" /></flowRoot> <rect style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect1590-0-4-5-40" width="37.795277" diff --git a/Doc/Sd1/Ref/LangFundament/literalToMemory.svg b/Doc/Sd1/Ref/LangFundament/literalToMemory.svg index 2d3f73c39..cbf714c6f 100644 --- a/Doc/Sd1/Ref/LangFundament/literalToMemory.svg +++ b/Doc/Sd1/Ref/LangFundament/literalToMemory.svg @@ -12,7 +12,7 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="literalToMemory.svg" - inkscape:version="0.92.1 unknown" + inkscape:version="0.92.1 r15371" version="1.2" id="svg2" height="586.66669" @@ -30,10 +30,10 @@ inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" - inkscape:window-width="1535" - inkscape:window-height="1130" - inkscape:window-x="65" - inkscape:window-y="24" + inkscape:window-width="1600" + inkscape:window-height="1090" + inkscape:window-x="0" + inkscape:window-y="27" inkscape:window-maximized="1" showguides="false" inkscape:guide-bbox="true"> @@ -696,7 +696,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -717,13 +717,13 @@ y="415.68225" style="font-size:42.66666794px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"> </tspan></text> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.99999952;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.06339216;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289" width="377.95273" - height="151.18111" + height="157.63777" x="0" - y="668.97638" - ry="14.173226" /> + y="662.51971" + ry="9.9999924" /> <text xml:space="preserve" style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" diff --git a/Doc/Sd1/Ref/LangFundament/operatorSum.svg b/Doc/Sd1/Ref/LangFundament/operatorSum.svg new file mode 100644 index 000000000..7806e64b4 --- /dev/null +++ b/Doc/Sd1/Ref/LangFundament/operatorSum.svg @@ -0,0 +1,957 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:ns1="http://sozi.baierouge.fr" + 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" + sodipodi:docname="operatorSum.svg" + inkscape:version="0.92.1 r15371" + version="1.2" + id="svg2" + height="500.81277" + width="821.33331"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.2077062" + inkscape:cx="375.62375" + inkscape:cy="223.847" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:window-width="1600" + inkscape:window-height="1090" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + showguides="false" + inkscape:guide-bbox="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0"> + <inkscape:grid + type="xygrid" + id="grid1569" + originx="-1.6595903" + originy="-79.187158" /> + </sodipodi:namedview> + <defs + id="defs4"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker11618" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path11616" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker2318" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path2316" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker4887" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path4627" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6797" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + id="path6799" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6793" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + id="path6795" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="marker6778" + style="overflow:visible" + inkscape:isstock="true"> + <path + id="path6514" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;stroke-opacity:1" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lstart" + style="overflow:visible"> + <path + id="path3841" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareM" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareM"> + <path + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path3914" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible"> + <path + id="path3844" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondM" + orient="auto" + refY="0" + refX="0" + id="DiamondM" + style="overflow:visible"> + <path + id="path3923" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMH" + orient="auto" + refY="0" + refX="0" + id="DiamondMH" + style="overflow:visible"> + <path + id="path4656" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendB" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendB" + style="overflow:visible"> + <path + id="path4659" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMU" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMU"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path5221" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend3" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend3" + style="overflow:visible"> + <path + id="path5224" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMo" + orient="auto" + refY="0" + refX="0" + id="DiamondMo" + style="overflow:visible"> + <path + id="path5799" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendO" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendO" + style="overflow:visible"> + <path + id="path5802" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondM1" + orient="auto" + refY="0" + refX="0" + id="DiamondM1" + style="overflow:visible"> + <path + id="path6393" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendV" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendV" + style="overflow:visible"> + <path + id="path6396" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMN" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMN"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path7813" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LstartP" + orient="auto" + refY="0" + refX="0" + id="Arrow1LstartP" + style="overflow:visible"> + <path + id="path7816" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMb" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMb"> + <path + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path9491" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendX" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendX" + style="overflow:visible"> + <path + id="path9494" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareM8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareM8"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path10143" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendT" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendT" + style="overflow:visible"> + <path + id="path10146" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMNT" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMNT"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path12195" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LstartPJ" + orient="auto" + refY="0" + refX="0" + id="Arrow1LstartPJ" + style="overflow:visible"> + <path + id="path12198" + d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="SquareMNTL" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="SquareMNTL"> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.42666668pt" + d="M -2.1333333,-2.1333333 V 2.1333333 H 2.1333333 V -2.1333333 Z" + id="path12907" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Lendx" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lendx" + style="overflow:visible"> + <path + id="path12910" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="DiamondMoY" + orient="auto" + refY="0" + refX="0" + id="DiamondMoY" + style="overflow:visible"> + <path + id="path13187" + d="M 0,-3.0169928 -3.0169981,0 0,3.0169851 3.0169797,0 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.42666668pt" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1LendOe" + orient="auto" + refY="0" + refX="0" + id="Arrow1LendOe" + style="overflow:visible"> + <path + id="path13190" + d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:0.85333335pt" + inkscape:connector-curvature="0" /> + </marker> + <linearGradient + id="linearGradient3928-8"> + <stop + offset="0" + style="stop-color:#7c7c7c" + id="stop3930-2" /> + <stop + offset="1" + style="stop-color:#e6e3e3" + id="stop3932-0" /> + </linearGradient> + <linearGradient + id="linearGradient8877"> + <stop + style="stop-color:#cecece;stop-opacity:1;" + offset="0" + id="stop8879" /> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="1" + id="stop8881" /> + </linearGradient> + <linearGradient + id="linearGradient8869"> + <stop + id="stop8871" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop8873" + offset="1" + style="stop-color:#000000;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient7421"> + <stop + id="stop7423" + offset="0" + style="stop-color:#000000;stop-opacity:1;" /> + <stop + id="stop7425" + offset="1" + style="stop-color:#000000;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient7405"> + <stop + style="stop-color:#9e9e9e;stop-opacity:1;" + offset="0" + id="stop7407" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop7409" /> + </linearGradient> + <linearGradient + id="linearGradient7378"> + <stop + id="stop7380" + offset="0" + style="stop-color:#9e9e9e;stop-opacity:1;" /> + <stop + id="stop7382" + offset="1" + style="stop-color:#ffffff;stop-opacity:1;" /> + </linearGradient> + <inkscape:perspective + id="perspective6864" + inkscape:persp3d-origin="32 : 21.333333 : 1" + inkscape:vp_z="64 : 32 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 32 : 1" + sodipodi:type="inkscape:persp3d" /> + <filter + id="imagebot_16" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-6" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-1" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-8" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-7" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-9" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-2" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-2" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-8" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-9" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-73" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-6" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-1" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + id="imagebot_16-0"> + <feGaussianBlur + id="imagebot_21-7" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-5" + y2="-235.34229" + xlink:href="#linearGradient3928-8" + x2="33.162106" + y1="-192.16943" + x1="32.287571" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + style="color-interpolation-filters:sRGB" + id="imagebot_12-0" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215"> + <feGaussianBlur + id="imagebot_18-4" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-8" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_16-02" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_21-9" + stdDeviation="1.2625" /> + </filter> + <linearGradient + id="imagebot_14-4" + y2="0.73097426" + xlink:href="#linearGradient3928-8" + x2="36.048218" + y1="43.90382" + x1="35.173683" + gradientTransform="scale(0.90019155,1.1108747)" + gradientUnits="userSpaceOnUse" /> + <filter + id="imagebot_12-3" + width="1.0832" + y="-0.1075" + x="-0.041609999" + height="1.215" + style="color-interpolation-filters:sRGB"> + <feGaussianBlur + id="imagebot_18-5" + stdDeviation="0.5375" /> + </filter> + <linearGradient + id="imagebot_9-17" + y2="-245.02541" + xlink:href="#linearGradient3928-8" + x2="34.572056" + y1="-254.4969" + x1="43.709675" + gradientUnits="userSpaceOnUse" /> + </defs> + <metadata + id="metadata7"> + <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="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-1.6595903,-542.51978)"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672" + x="104.51711" + y="415.68225" + id="text3004"><tspan + sodipodi:role="line" + id="tspan3006" + x="104.51711" + y="415.68225" + style="font-size:42.66666794px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"> </tspan></text> + <rect + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.01671386;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + id="rect4289" + width="400" + height="129.99997" + x="160" + y="542.51978" + ry="6.4999943" /> + <text + xml:space="preserve" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + x="189.9418" + y="579.56824" + id="text514"><tspan + sodipodi:role="line" + x="189.9418" + y="579.56824" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial;fill:#000000;stroke:#000000;stroke-width:0.99999994px" + id="tspan528">byte a = 4; </tspan><tspan + sodipodi:role="line" + x="189.9418" + y="616.23492" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial;fill:#000000;stroke:#000000;stroke-width:0.99999994px" + id="tspan2479">int <tspan + style="fill:#00ff00;stroke:#00ff00" + id="tspan2493">result</tspan> = <tspan + style="fill:#ff0000;stroke:#ff0000" + id="tspan2481">a</tspan><tspan + style="fill:#0000ff;stroke:#0000ff" + id="tspan2485">+</tspan><tspan + style="fill:#ff0000;stroke:#ff0000" + id="tspan2489">5</tspan>; </tspan><tspan + sodipodi:role="line" + x="189.9418" + y="652.90155" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial;fill:#000000;stroke:#000000;stroke-width:0.99999994px" + id="tspan2397">System.out.println( <tspan + style="fill:#00ff00;stroke:#00ff00" + id="tspan2497">result</tspan> );</tspan><tspan + sodipodi:role="line" + x="189.9418" + y="689.56824" + style="stroke-width:0.99999994px" + id="tspan524" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none" + x="150.57426" + y="744.1087" + id="text2413"><tspan + sodipodi:role="line" + id="tspan2411" + x="150.57426" + y="744.1087">Operand</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none" + x="307.51743" + y="744.1087" + id="text2417"><tspan + sodipodi:role="line" + id="tspan2415" + x="307.51743" + y="744.1087">Operator</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none" + x="476.24426" + y="744.1087" + id="text2421"><tspan + sodipodi:role="line" + id="tspan2419" + x="476.24426" + y="744.1087">Operand</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="156.56181" + y="778.12451" + id="text2425"><tspan + sodipodi:role="line" + x="156.56181" + y="778.12451" + id="tspan2427">Type: byte</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="312.35492" + y="1032.6444" + id="text2425-3"><tspan + sodipodi:role="line" + x="312.35492" + y="1032.6444" + id="tspan2427-7">Type: int</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="862.55017" + y="-343.65802" + id="text2452" + transform="rotate(92.642343)"><tspan + sodipodi:role="line" + id="tspan2450" + x="862.55017" + y="-318.23856" + style="font-size:192px" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="311.52991" + y="1006.6584" + id="text2456"><tspan + sodipodi:role="line" + id="tspan2454" + x="311.52991" + y="1006.6584"><tspan + style="fill:#00ff00;stroke:#00ff00" + id="tspan2501">result</tspan>: 9</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="480.50748" + y="775.25909" + id="text2425-3-5"><tspan + sodipodi:role="line" + x="480.50748" + y="775.25909" + id="tspan2427-7-5">Type: int</tspan></text> + <flowRoot + xml:space="preserve" + id="flowRoot2511" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:1.25;font-family:'Courier 10 Pitch';-inkscape-font-specification:'Courier 10 Pitch';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + transform="translate(0,535.85302)"><flowRegion + id="flowRegion2513"><rect + id="rect2515" + width="300" + height="160" + x="200" + y="356.66669" /></flowRegion><flowPara + id="flowPara2517" /></flowRoot> <path + style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4887)" + d="m 410,792.51971 v 150" + id="path2519" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> + <script + ns1:version="14.10-05142318" + id="sozi-script">function namespace(b,d,a){var c=b;d.split(".").forEach(function(e){if(typeof c[e]==="undefined"){c[e]={}}c=c[e]});if(a){a(c,b)}return c}namespace(this,"sozi.events",function(b){var a={};b.listen=function(c,d){if(!a.hasOwnProperty(c)){a[c]=[]}a[c].push(d)};b.fire=function(d){var c=Array.prototype.slice.call(arguments,1);if(a.hasOwnProperty(d)){a[d].forEach(function(e){e.apply(null,c)})}}});namespace(this,"sozi.proto",function(a){a.Object={installConstructors:function(){function b(){}b.prototype=this;this.instance=function(){var c=new b();c.construct.apply(c,arguments);return c};this.subtype=function(d){var c=new b();c.augment(d);c.installConstructors();return c}},construct:function(){},augment:function(c){for(var b in c){if(c.hasOwnProperty(b)){this[b]=c[b]}}return this},bind:function(c){var b=this;return function(){return c.apply(b,arguments)}}};a.Object.installConstructors()});namespace(this,"sozi.actions",function(A,g){var u=namespace(g,"sozi.player");var v=namespace(g,"sozi.display");var n=g.document;var o=0;var w=1;var t=1.05;var y=5;var m=5;var r=false;var i=0;var h=0;function a(C,B,D){u.stop();v.viewPorts.player.zoom(C>0?t:1/t,B,D)}function x(B){u.stop();v.viewPorts.player.rotate(B>0?y:-y)}function s(){if(sozi.framelist.isVisible()){sozi.framelist.hide();u.restart()}else{u.stop();sozi.framelist.show()}}function d(B){return v.viewPorts.player.contains(B.clientX,B.clientY)}function f(B){if(!d(B)){return}if(B.button===o){n.documentElement.addEventListener("mousemove",q,false);r=false;i=B.clientX;h=B.clientY}else{if(B.button===w){s()}}B.stopPropagation();B.preventDefault()}function q(B){if(!d(B)){return}u.stop();if(!r&&(Math.abs(B.clientX-i)>m||Math.abs(B.clientY-h)>m)){r=true}if(r){sozi.events.fire("sozi.player.cleanup");v.viewPorts.player.drag(B.clientX-i,B.clientY-h);i=B.clientX;h=B.clientY}B.stopPropagation()}function c(B){if(!d(B)){return}if(B.button===o){n.documentElement.removeEventListener("mousemove",q,false)}B.stopPropagation();B.preventDefault()}function p(B){if(!d(B)){return}u.moveToPrevious();B.stopPropagation();B.preventDefault()}function e(B){if(!d(B)){return}if(!r&&B.button!==w){u.moveToNext()}B.stopPropagation();B.preventDefault()}function j(B){if(!d(B)){return}if(!B){B=g.event}var C=0;if(B.wheelDelta){C=B.wheelDelta}else{if(B.detail){C=-B.detail}}if(C!==0){if(B.shiftKey){x(C)}else{a(C,B.clientX,B.clientY)}}B.stopPropagation();B.preventDefault()}function l(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.charCode||B.which){case 43:a(1,g.innerWidth/2,g.innerHeight/2);break;case 45:a(-1,g.innerWidth/2,g.innerHeight/2);break;case 61:u.moveToCurrent();break;case 70:case 102:u.showAll();break;case 84:case 116:s();break;case 82:x(-1);break;case 114:x(1);break;default:return}B.stopPropagation();B.preventDefault()}function b(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.keyCode){case 36:if(B.shiftKey){u.jumpToFirst()}else{u.moveToFirst()}break;case 35:if(B.shiftKey){u.jumpToLast()}else{u.moveToLast()}break;case 38:case 33:case 37:if(B.shiftKey){u.jumpToPrevious()}else{u.moveToPrevious()}break;case 40:case 34:case 39:case 13:case 32:if(B.shiftKey){u.jumpToNext()}else{u.moveToNext()}break;default:return}B.stopPropagation();B.preventDefault()}function z(B){B.stopPropagation()}function k(){var C=n.getElementsByTagName("a");for(var D=0;D<C.length;D+=1){C[D].addEventListener("click",z,false);C[D].addEventListener("contextmenu",z,false)}var B=n.documentElement;B.addEventListener("click",e,false);B.addEventListener("mousedown",f,false);B.addEventListener("mouseup",c,false);B.addEventListener("contextmenu",p,false);B.addEventListener("DOMMouseScroll",j,false);g.onmousewheel=j;B.addEventListener("keypress",l,false);B.addEventListener("keydown",b,false)}sozi.events.listen("sozi.display.ready",k)});namespace(this,"sozi.animation",function(d,g){var h=g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||g.msRequestAnimationFrame||g.oRequestAnimationFrame;var k=function(){return g.performance&&g.performance.now?g.performance.now():Date.now()};d.setAnimationFrameHandlers=function(l,m){h=l;k=m};var i=40;var c;var j=[];function e(){if(j.length>0){if(h){h(e)}j.forEach(function(l){l.step(k())})}else{if(!h){g.clearInterval(c)}}}function b(){if(h){h(e)}else{c=g.setInterval(function(){e(k())},i)}}function a(l){j.push(l);if(j.length===1){b()}}function f(l){j.splice(j.indexOf(l),1)}d.Animator=sozi.proto.Object.subtype({construct:function(){this.durationMs=0;this.data=null;this.initialTime=0;this.started=false},start:function(l,m){this.durationMs=l;this.data=m;this.initialTime=k();this.onStep(0);if(!this.started){this.started=true;a(this)}},stop:function(){if(this.started){f(this);this.started=false}},step:function(m){var l=m-this.initialTime;if(l>=this.durationMs){this.stop();this.onStep(1);this.onDone()}else{this.onStep(l/this.durationMs)}},onStep:function(l){},onDone:function(){}});d.profiles={linear:function(l){return l},accelerate:function(l){return Math.pow(l,3)},"strong-accelerate":function(l){return Math.pow(l,5)},decelerate:function(l){return 1-Math.pow(1-l,3)},"strong-decelerate":function(l){return 1-Math.pow(1-l,5)},"accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,3)/2;return l<=0.5?n:1-n},"strong-accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,5)/2;return l<=0.5?n:1-n},"decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,2))/2;return l<=0.5?n:1-n},"strong-decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,3))/2;return l<=0.5?n:1-n},"immediate-beginning":function(l){return 1},"immediate-end":function(l){return l===1?1:0},"immediate-middle":function(l){return l>=0.5?1:0}}});namespace(this,"sozi.display",function(c,g){var f="http://www.w3.org/2000/svg";var b="http://www.w3.org/1999/xlink";var i=g.document;var k;var h;var j;c.viewPorts={};var e;c.CameraState=sozi.proto.Object.subtype({construct:function(){this.cx=this.cy=0;this.width=this.height=1;this.angle=0;this.clipped=true;this.transitionZoomPercent=0;this.transitionProfile=sozi.animation.profiles.linear;this.transitionPath=null},setCenter:function(l,m){this.cx=l;this.cy=m;return this},setSize:function(m,l){this.width=m;this.height=l;return this},setClipped:function(l){this.clipped=l;return this},setAngle:function(l){this.angle=(l+180)%360-180;return this},setRawAngle:function(l){this.angle=l;return this},setTransitionZoomPercent:function(l){this.transitionZoomPercent=l;return this},setTransitionProfile:function(l){this.transitionProfile=l;return this},setTransitionPath:function(l){this.transitionPath=l;return this},setAtElement:function(p){var s,o,t,m;if(p.nodeName==="rect"){s=p.x.baseVal.value;o=p.y.baseVal.value;t=p.width.baseVal.value;m=p.height.baseVal.value}else{var q=p.getBBox();s=q.x;o=q.y;t=q.width;m=q.height}var n=i.documentElement.createSVGPoint();n.x=s+t/2;n.y=o+m/2;var r=p.getCTM();n=n.matrixTransform(r);var l=Math.sqrt(r.a*r.a+r.b*r.b);return this.setCenter(n.x,n.y).setSize(t*l,m*l).setAngle(Math.atan2(r.b,r.a)*180/Math.PI)},setAtState:function(l){return this.setCenter(l.cx,l.cy).setSize(l.width,l.height).setAngle(l.angle).setClipped(l.clipped).setTransitionZoomPercent(l.transitionZoomPercent).setTransitionProfile(l.transitionProfile).setTransitionPath(l.transitionPath)},interpolatableAttributes:["width","height","angle"],interpolate:function(n,o,t,v,r){var p=1-t;for(var q=0;q<this.interpolatableAttributes.length;q+=1){var s=this.interpolatableAttributes[q];this[s]=o[s]*t+n[s]*p}var l=r?n.transitionPath:o.transitionPath;if(v&&l){var x=l.getTotalLength();if(r){var m=l.getPointAtLength(x);var u=l.getPointAtLength(0);var w=l.getPointAtLength(x*p)}else{var m=l.getPointAtLength(0);var u=l.getPointAtLength(x);var w=l.getPointAtLength(x*t)}this.cx=w.x+(o.cx-u.x)*t+(n.cx-m.x)*p;this.cy=w.y+(o.cy-u.y)*t+(n.cy-m.y)*p}else{this.cx=o.cx*t+n.cx*p;this.cy=o.cy*t+n.cy*p}}});c.Camera=c.CameraState.subtype({construct:function(n,o){c.CameraState.construct.call(this);this.viewPort=n;this.svgClipRect=i.createElementNS(f,"rect");var m=i.createElementNS(f,"clipPath");m.setAttribute("id","sozi-clip-path-"+n.id+"-"+o);m.appendChild(this.svgClipRect);n.svgGroup.appendChild(m);var l=i.createElementNS(f,"g");l.setAttribute("clip-path","url(#sozi-clip-path-"+n.id+"-"+o+")");n.svgGroup.appendChild(l);if(n.isPrimary){this.svgLayer=i.createElementNS(f,"g");this.svgLayer.appendChild(i.getElementById(o))}else{this.svgLayer=i.createElementNS(f,"use");this.svgLayer.setAttributeNS(b,"href","#"+o)}l.appendChild(this.svgLayer)},setAtState:function(l){return c.CameraState.setAtState.call(this,l).update()},getScale:function(){return Math.min(this.viewPort.width/this.width,this.viewPort.height/this.height)},rotate:function(l){return this.setAngle(this.angle+l).update()},zoom:function(m,l,n){return this.setSize(this.width/m,this.height/m).drag((1-m)*(l-this.viewPort.width/2),(1-m)*(n-this.viewPort.height/2))},drag:function(m,l){var q=this.getScale();var o=this.angle*Math.PI/180;var n=Math.sin(o);var p=Math.cos(o);return this.setCenter(this.cx-(m*p-l*n)/q,this.cy-(m*n+l*p)/q).setClipped(false).update()},update:function(){var q=this.getScale();var n=this.width*q;var m=this.height*q;var l=(this.viewPort.width-n)/2;var r=(this.viewPort.height-m)/2;this.svgClipRect.setAttribute("x",this.clipped?l:0);this.svgClipRect.setAttribute("y",this.clipped?r:0);this.svgClipRect.setAttribute("width",this.clipped?n:this.viewPort.width);this.svgClipRect.setAttribute("height",this.clipped?m:this.viewPort.height);var p=-this.cx+this.width/2+l/q;var o=-this.cy+this.height/2+r/q;this.svgLayer.setAttribute("transform","scale("+q+")translate("+p+","+o+")rotate("+(-this.angle)+","+this.cx+","+this.cy+")");return this}});c.ViewPort=sozi.proto.Object.subtype({construct:function(n,m,l){this.id=n;c.viewPorts[n]=this;this.isPrimary=!!l;if(this.isPrimary){if(e){throw"Failed to create a primary viewport. A primary viewport already exists."}else{e=this}}this.svgGroup=i.createElementNS(f,"g");this.svgGroup.setAttribute("class","sozi-viewport");this.svgGroup.setAttribute("id","sozi-viewport-"+n);i.documentElement.appendChild(this.svgGroup);this.setLocation(0,0).setSize(g.innerWidth,g.innerHeight);this.cameras={};m.forEach(function(o){this.cameras[o]=c.Camera.instance(this,o)},this)},setSize:function(m,l){this.width=m;this.height=l;return this},setLocation:function(l,m){this.x=l;this.y=m;return this},contains:function(l,m){return l>=this.x&&l<this.x+this.width&&m>=this.y&&m<this.y+this.height},getDocumentState:function(){var m=c.CameraState.instance().setCenter(k.x+k.width/2,k.y+k.height/2).setSize(k.width,k.height).setClipped(false);var l={};for(var n in this.cameras){l[n]=m}return l},update:function(){this.svgGroup.setAttribute("transform","translate("+this.x+","+this.y+")");for(var l in this.cameras){this.cameras[l].update()}return this},showFrame:function(l){for(var m in l.states){this.cameras[m].setAtState(l.states[m])}return this},drag:function(m,l){for(var n in this.cameras){this.cameras[n].drag(m,l)}return this},zoom:function(m,l,o){for(var n in this.cameras){this.cameras[n].zoom(m,l,o)}return this},rotate:function(l){for(var m in this.cameras){this.cameras[m].rotate(l)}return this},onWindowResize:function(m,l){this.setLocation(this.x*m,this.y*l).setSize(this.width*m,this.height*l).update()}});function d(){var l=i.documentElement;k=l.getBBox();h=g.innerWidth;j=g.innerHeight;l.setAttribute("width",h);l.setAttribute("height",j);sozi.events.fire("sozi.display.ready")}function a(){var l=i.documentElement;l.setAttribute("width",g.innerWidth);l.setAttribute("height",g.innerHeight);for(var m in c.viewPorts){c.viewPorts[m].onWindowResize(g.innerWidth/h,g.innerHeight/j)}h=g.innerWidth;j=g.innerHeight}sozi.events.listen("sozi.document.ready",d);g.addEventListener("resize",a,false)});namespace(this,"sozi.document",function(c,e){var g=e.document;var b="http://sozi.baierouge.fr";var d={title:"Untitled",sequence:"0",hide:"true",clip:"true","show-in-frame-list":"true","timeout-enable":"false","timeout-ms":"5000","transition-duration-ms":"1000","transition-zoom-percent":"0","transition-profile":"linear","transition-path-hide":"true"};var h=["g","image","path","rect","circle","ellipse","line","polyline","polygon","text","clippath"];c.frames=[];c.idLayerList=[];function j(l,k){return l.getAttributeNS(b,k)||d[k]}function i(o,p,k){var l=o.states[p]=o.states[p]||sozi.display.CameraState.instance();if(typeof l.transitionZoomPercent==="undefined"||k.hasAttributeNS(b,"transition-zoom-percent")){l.setTransitionZoomPercent(parseInt(j(k,"transition-zoom-percent"),10))}if(typeof l.transitionProfile==="undefined"||k.hasAttributeNS(b,"transition-profile")){l.setTransitionProfile(sozi.animation.profiles[j(k,"transition-profile")])}if(typeof l.transitionPath==="undefined"||k.hasAttributeNS(b,"transition-path")){var n=g.getElementById(k.getAttributeNS(b,"transition-path"));if(n&&n.nodeName==="path"){l.setTransitionPath(n);if(j(k,"transition-path-hide")==="true"){n.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"refid")){var m=g.getElementById(k.getAttributeNS(b,"refid"));if(m){l.setAtElement(m);if(j(k,"hide")==="true"){m.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"clip")){l.setClipped(j(k,"clip")==="true")}}function a(){var l=[];var p=g.getElementsByTagNameNS(b,"layer");for(var n=0;n<p.length;n+=1){var s=p[n].getAttributeNS(b,"group");if(s&&l.indexOf(s)===-1){l.push(s)}}var r=g.documentElement;var o="http://www.w3.org/2000/svg";var q=g.createElementNS(o,"g");var k=Array.prototype.slice.call(r.childNodes);k.forEach(function(u,t){if(!u.getAttribute){r.removeChild(u)}else{if(l.indexOf(u.getAttribute("id"))!==-1){if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+t);c.idLayerList.push("sozi-wrapper-"+t);r.insertBefore(q,u);q=g.createElementNS(o,"g")}c.idLayerList.push(u.getAttribute("id"))}else{if(h.indexOf(u.localName.toLowerCase())!==-1){r.removeChild(u);q.appendChild(u)}}}});if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+k.length);c.idLayerList.push("sozi-wrapper-"+k.length);r.appendChild(q)}var m=Array.prototype.slice.call(g.getElementsByTagNameNS(b,"frame"));m.sort(function(u,t){var w=parseInt(j(u,"sequence"),10);var v=parseInt(j(t,"sequence"),10);return w-v});m.forEach(function(v,u){var x={id:v.getAttribute("id"),title:j(v,"title"),showInFrameList:j(v,"show-in-frame-list")==="true",sequence:parseInt(j(v,"sequence"),10),timeoutEnable:j(v,"timeout-enable")==="true",timeoutMs:parseInt(j(v,"timeout-ms"),10),transitionDurationMs:parseInt(j(v,"transition-duration-ms"),10),states:{}};c.idLayerList.forEach(function(A){if(u===0||A.search("sozi-wrapper-[0-9]+")!==-1){i(x,A,v)}else{var z=x.states[A]=sozi.display.CameraState.instance();var y=c.frames[c.frames.length-1].states[A];z.setAtState(y)}});var t=Array.prototype.slice.call(v.getElementsByTagNameNS(b,"layer"));t.forEach(function(y){var z=y.getAttributeNS(b,"group");if(z&&c.idLayerList.indexOf(z)!==-1){i(x,z,y)}});for(var w in x.states){if(x.states.hasOwnProperty(w)){c.frames.push(x);break}}})}c.getFrameIndexForId=function(l){for(var k=0;k<c.frames.length;k+=1){if(c.frames[k].id===l){return k}}return -1};function f(){g.documentElement.removeAttribute("viewBox");a();sozi.events.fire("sozi.document.ready")}e.addEventListener("load",f,false)});namespace(this,"sozi.framelist",function(u,k){var o=k.document;var c=5;var i;var p;var j=0;var h;var s;var b;var v;var w;var t;var e=300;var f="decelerate";var a="http://www.w3.org/2000/svg";function n(z){var x=z.relatedTarget,y=o.documentElement;while(x&&x!==i&&x!==y){x=x.parentNode}if(x!==i){u.hide();sozi.player.restart();z.stopPropagation()}}function r(y){var x=p.getCTM().f;if(x<=-k.innerHeight/2){x+=k.innerHeight/2}else{if(x<0){x=0}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function d(y){var x=p.getCTM().f;if(x+j>=k.innerHeight*3/2){x-=k.innerHeight/2}else{if(x+j>k.innerHeight+2*c){x=k.innerHeight-j-4*c}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function g(x){return function(y){sozi.player.previewFrame(x);y.stopPropagation()}}function l(x){x.stopPropagation()}function q(){i=o.createElementNS(a,"g");i.setAttribute("id","sozi-toc");o.documentElement.appendChild(i);p=o.createElementNS(a,"g");i.appendChild(p);var y=o.createElementNS(a,"rect");y.setAttribute("id","sozi-toc-background");y.setAttribute("x",c);y.setAttribute("y",c);y.setAttribute("rx",c);y.setAttribute("ry",c);y.addEventListener("click",l,false);y.addEventListener("mousedown",l,false);y.addEventListener("mouseout",n,false);p.appendChild(y);var A=0;sozi.document.frames.forEach(function(D,E){if(D.showInFrameList){var C=o.createElementNS(a,"text");C.appendChild(o.createTextNode(D.title));C.setAttribute("id","sozi-toc-"+D.id);p.appendChild(C);if(E===sozi.player.currentFrameIndex){C.setAttribute("class","sozi-toc-current")}var B=C.getBBox().width;j+=C.getBBox().height;if(B>A){A=B}C.setAttribute("x",2*c);C.setAttribute("y",j+c);C.addEventListener("click",g(E),false);C.addEventListener("mousedown",l,false)}});var x=o.createElementNS(a,"path");x.setAttribute("class","sozi-toc-arrow");x.setAttribute("d","M"+(A+3*c)+","+(5*c)+" l"+(4*c)+",0 l-"+(2*c)+",-"+(3*c)+" z");x.addEventListener("click",r,false);x.addEventListener("mousedown",l,false);i.appendChild(x);var z=o.createElementNS(a,"path");z.setAttribute("class","sozi-toc-arrow");z.setAttribute("d","M"+(A+3*c)+","+(7*c)+" l"+(4*c)+",0 l-"+(2*c)+","+(3*c)+" z");z.addEventListener("click",d,false);z.addEventListener("mousedown",l,false);i.appendChild(z);y.setAttribute("width",A+7*c);y.setAttribute("height",j+2*c);h=-A-9*c;s=0;w=v=h;i.setAttribute("transform","translate("+h+",0)");t=sozi.animation.Animator.instance().augment({onStep:function(B){var D=sozi.animation.profiles[f](B),C=1-D;w=v*D+b*C;i.setAttribute("transform","translate("+w+",0)")}})}function m(x){var y=Array.prototype.slice.call(o.getElementsByClassName("sozi-toc-current"));y.forEach(function(A){A.removeAttribute("class")});var z=sozi.document.frames[x];if(z.showInFrameList){o.getElementById("sozi-toc-"+z.id).setAttribute("class","sozi-toc-current")}}u.show=function(){o.documentElement.appendChild(i);b=w;v=s;t.start(e)};u.hide=function(){b=w;v=h;t.start(e)};u.isVisible=function(){return v===s};sozi.events.listen("sozi.player.ready",q);sozi.events.listen("sozi.player.cleanup",u.hide);sozi.events.listen("sozi.player.framechange",m)});namespace(this,"sozi.framenumber",function(a,d){var g=d.document;var e;var k,i;var f;var b="http://www.w3.org/2000/svg";function h(){var m=k.getBBox(),n=Math.max(m.width,m.height)*0.75,l=n*1.25;f.setAttribute("r",n);e.setAttribute("transform","translate("+l+","+l+")")}function c(){e=g.createElementNS(b,"g");k=g.createElementNS(b,"text");f=g.createElementNS(b,"circle");e.setAttribute("id","sozi-framenumber");f.setAttribute("cx",0);f.setAttribute("cy",0);e.appendChild(f);i=g.createTextNode(sozi.player.currentFrameIndex+1);k.setAttribute("text-anchor","middle");k.setAttribute("dominant-baseline","central");k.setAttribute("x",0);k.setAttribute("y",0);k.appendChild(i);e.appendChild(k);g.documentElement.appendChild(e);h()}function j(l){i.nodeValue=l+1}sozi.events.listen("sozi.player.ready",c);sozi.events.listen("sozi.player.framechange",j)});namespace(this,"sozi.links",function(c,e){var b="http://www.w3.org/2000/svg";var a="http://www.w3.org/1999/xlink";function f(g){return function(h){sozi.player.moveToFrame(g);h.preventDefault();h.stopPropagation()}}function d(){var h=e.document.getElementsByTagNameNS(b,"a");for(var j=0;j<h.length;j+=1){var g=h[j].getAttributeNS(a,"href");if(g&&g[0]==="#"){h[j].addEventListener("click",f(sozi.location.getFrameIndexForHash(g)),false)}}}sozi.events.listen("sozi.document.ready",d)});namespace(this,"sozi.location",function(a,d){var b=false;a.getFrameIndex=function(){return a.getFrameIndexForHash(d.location.hash)};a.getFrameIndexForHash=function(g){var h=g?g.slice(1):"1";var f;if(/^[0-9]+$/.test(h)){f=parseInt(h,10)-1}else{f=sozi.document.getFrameIndexForId(h)}if(f<0){return 0}else{if(f>=sozi.document.frames.length){return sozi.document.frames.length-1}else{return f}}};function e(){var f=a.getFrameIndex();if(!b){sozi.player.moveToFrame(f)}b=false}function c(f){b=true;d.location.hash="#"+sozi.document.frames[f].id}d.addEventListener("hashchange",e,false);sozi.events.listen("sozi.player.framechange",c)});namespace(this,"sozi.player",function(d,g){var l;var c;var i;var e=500;var n=-10;var j="linear";var f=0;d.currentFrameIndex=0;var k=false;var m=false;function h(){if(sozi.document.frames[d.currentFrameIndex].timeoutEnable){m=true;var o=(d.currentFrameIndex+1)%sozi.document.frames.length;i=g.setTimeout(function(){d.moveToFrame(o)},sozi.document.frames[d.currentFrameIndex].timeoutMs)}}d.startFromIndex=function(o){k=true;m=false;f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);h()};d.restart=function(){d.startFromIndex(d.currentFrameIndex)};d.stop=function(){c.stop();if(m){g.clearTimeout(i);m=false}k=false;f=d.currentFrameIndex};function b(o,y,w){var z={ss:((o<0)?Math.max(y,w):Math.min(y,w))*(100-o)/100,ts:0.5,k:0};if(o!==0){var s=y-w;var r=y-z.ss;var q=w-z.ss;if(s!==0){var p=Math.sqrt(r*q);var x=(r-p)/s;var t=(r+p)/s;z.ts=(x>0&&x<=1)?x:t}z.k=r/z.ts/z.ts}return z}d.jumpToFrame=function(o){d.stop();sozi.events.fire("sozi.player.cleanup");f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);sozi.events.fire("sozi.player.framechange",o)};d.getAnimationData=function(o,q,s,p,v,t){var r={};for(var w in o){r[w]={initialState:sozi.display.CameraState.instance(),finalState:sozi.display.CameraState.instance(),useTransitionPath:v,reverseTransitionPath:t};r[w].profile=p||q[w].transitionProfile;r[w].initialState.setAtState(o[w]);if(q.hasOwnProperty(w)){r[w].finalState.setAtState(q[w])}else{r[w].finalState.setAtState(o[w])}if(r[w].finalState.angle-r[w].initialState.angle>180){r[w].finalState.setRawAngle(r[w].finalState.angle-360)}else{if(r[w].finalState.angle-r[w].initialState.angle<-180){r[w].initialState.setRawAngle(r[w].initialState.angle-360)}}var u=s||q[w].transitionZoomPercent;if(u&&q.hasOwnProperty(w)){r[w].zoomWidth=b(u,o[w].width,q[w].width);r[w].zoomHeight=b(u,o[w].height,q[w].height)}}return r};d.previewFrame=function(o){d.currentFrameIndex=o;c.start(e,d.getAnimationData(l.cameras,sozi.document.frames[o].states,n,sozi.animation.profiles[j]),false,false);sozi.events.fire("sozi.player.framechange",o)};d.moveToFrame=function(r){if(m){g.clearTimeout(i);m=false}var q,t,s,p,o;if(r===(d.currentFrameIndex-1)%sozi.document.frames.length){q=sozi.document.frames[d.currentFrameIndex].transitionDurationMs;t=undefined;s=undefined;p=true;o=true}else{if(r===(d.currentFrameIndex+1)%sozi.document.frames.length){q=sozi.document.frames[r].transitionDurationMs;t=undefined;s=undefined;p=true;o=false}else{q=e;t=n;s=sozi.animation.profiles[j];p=false;o=false}}sozi.events.fire("sozi.player.cleanup");k=true;d.currentFrameIndex=r;c.start(q,d.getAnimationData(l.cameras,sozi.document.frames[r].states,t,s,p,o));sozi.events.fire("sozi.player.framechange",r)};d.jumpToFirst=function(){d.jumpToFrame(0)};d.moveToFirst=function(){d.moveToFrame(0)};d.jumpToPrevious=function(){var o=d.currentFrameIndex;if(!c.started||f<=d.currentFrameIndex){o-=1}if(o>=0){d.jumpToFrame(o)}};d.moveToPrevious=function(){for(var o=d.currentFrameIndex-1;o>=0;o-=1){var p=sozi.document.frames[o];if(!p.timeoutEnable||p.timeoutMs!==0){d.moveToFrame(o);break}}};d.jumpToNext=function(){var o=d.currentFrameIndex;if(!c.started||f>=d.currentFrameIndex){o+=1}if(o<sozi.document.frames.length){d.jumpToFrame(o)}};d.moveToNext=function(){if(d.currentFrameIndex<sozi.document.frames.length-1||sozi.document.frames[d.currentFrameIndex].timeoutEnable){d.moveToFrame((d.currentFrameIndex+1)%sozi.document.frames.length)}};d.jumpToLast=function(){d.jumpToFrame(sozi.document.frames.length-1)};d.moveToLast=function(){d.moveToFrame(sozi.document.frames.length-1)};d.moveToCurrent=function(){d.moveToFrame(d.currentFrameIndex)};d.showAll=function(){d.stop();sozi.events.fire("sozi.player.cleanup");c.start(e,d.getAnimationData(l.cameras,l.getDocumentState(),n,sozi.animation.profiles[j],false,false))};function a(){l=sozi.display.ViewPort.instance("player",sozi.document.idLayerList,true);d.startFromIndex(sozi.location.getFrameIndex());g.setTimeout(l.bind(l.update),1);sozi.events.fire("sozi.player.ready")}d.onAnimationStep=function(o,q){for(var s in q){var p=l.cameras[s];p.interpolate(q[s].initialState,q[s].finalState,q[s].profile(o),q[s].useTransitionPath,q[s].reverseTransitionPath);var r;if(q[s].zoomWidth&&q[s].zoomWidth.k!==0){r=o-q[s].zoomWidth.ts;p.width=q[s].zoomWidth.k*r*r+q[s].zoomWidth.ss}if(q[s].zoomHeight&&q[s].zoomHeight.k!==0){r=o-q[s].zoomHeight.ts;p.height=q[s].zoomHeight.k*r*r+q[s].zoomHeight.ss}p.setClipped(q[s].finalState.clipped)}l.update()};c=sozi.animation.Animator.instance().augment({onStep:function(o){d.onAnimationStep(o,this.data)},onDone:function(){for(var o in this.data){l.cameras[o].setAtState(this.data[o].finalState)}l.update();f=d.currentFrameIndex;if(k){h()}}});sozi.events.listen("sozi.display.ready",a)});</script> + <style + ns1:version="14.10-05142318" + id="sozi-style">#sozi-toc text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}#sozi-toc text:hover{fill:#0cf;cursor:pointer}#sozi-toc text.sozi-toc-current{fill:#fa4}#sozi-toc-background{stroke:#222;stroke-opacity:.1;stroke-width:10;fill:#222;fill-opacity:.9}.sozi-toc-arrow{fill:#eff;fill-opacity:.75;stroke:none}.sozi-toc-arrow:hover{fill:#0cf}#sozi-framenumber circle{stroke:#222;stroke-opacity:.1;stroke-width:4;fill:#222;fill-opacity:.9}#sozi-framenumber text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}</style> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="1" + ns1:title="Gcd implementation" + ns1:refid="rect10351" /> + <ns1:frame + ns1:refid="rect10841" + ns1:title="Gcd maven packaging" + ns1:sequence="2" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="3" + ns1:title="Using Math.getGcd()" + ns1:refid="rect11089" /> + <ns1:frame + ns1:refid="rect11381" + ns1:title="Fraction project" + ns1:sequence="4" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="5" + ns1:title="Maven dependency definition" + ns1:refid="rect11637" /> + <ns1:frame + ns1:refid="rect11895" + ns1:title="Fraction depends on Gcd" + ns1:sequence="6" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000" + ns1:transition-duration-ms="1000" + ns1:transition-zoom-percent="0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> +</svg> diff --git a/Doc/Sd1/Ref/LangFundament/unicode.svg b/Doc/Sd1/Ref/LangFundament/unicode.svg index 220233087..100651399 100644 --- a/Doc/Sd1/Ref/LangFundament/unicode.svg +++ b/Doc/Sd1/Ref/LangFundament/unicode.svg @@ -15,7 +15,7 @@ viewBox="0 0 216 155" version="1.1" id="svg4948" - inkscape:version="0.92.1 unknown" + inkscape:version="0.92.1 r15371" sodipodi:docname="unicode.svg"> <defs id="defs4942" /> @@ -33,9 +33,9 @@ inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1600" - inkscape:window-height="1176" + inkscape:window-height="1090" inkscape:window-x="0" - inkscape:window-y="24" + inkscape:window-y="27" inkscape:window-maximized="1"> <inkscape:grid type="xygrid" @@ -49,7 +49,7 @@ <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> + <dc:title /> </cc:Work> </rdf:RDF> </metadata> @@ -59,29 +59,29 @@ id="layer1" transform="translate(0,-142)"> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ddff55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79589677;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-7" width="100" - height="150" + height="150.81248" x="50.15493" - y="146.99998" - ry="14.062497" /> + y="146.1875" + ry="2.6458333" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79589683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289-1" width="40.000004" - height="150" + height="150.8125" x="169.99998" - y="147" - ry="14.062497" /> + y="146.1875" + ry="2.6458333" /> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79374999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79589683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289" width="30.000002" - height="150" + height="150.8125" x="-2.0265584e-06" - y="147" - ry="14.062497" /> + y="146.1875" + ry="2.6458333" /> <text xml:space="preserve" style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111126px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" diff --git a/Doc/Sd1/Ref/LangFundament/variableToMemory.svg b/Doc/Sd1/Ref/LangFundament/variableToMemory.svg index b8a050131..2687ed0dc 100644 --- a/Doc/Sd1/Ref/LangFundament/variableToMemory.svg +++ b/Doc/Sd1/Ref/LangFundament/variableToMemory.svg @@ -12,7 +12,7 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="variableToMemory.svg" - inkscape:version="0.92.1 unknown" + inkscape:version="0.92.1 r15371" version="1.2" id="svg2" height="586.66669" @@ -30,10 +30,10 @@ inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" - inkscape:window-width="1535" - inkscape:window-height="1130" - inkscape:window-x="65" - inkscape:window-y="24" + inkscape:window-width="1600" + inkscape:window-height="1090" + inkscape:window-x="0" + inkscape:window-y="27" inkscape:window-maximized="1" showguides="false" inkscape:guide-bbox="true"> @@ -717,13 +717,13 @@ y="415.68225" style="font-size:42.66666794px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672"> </tspan></text> <rect - style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffdd55;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.81735682;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="rect4289" width="226.77165" - height="226.77165" + height="199.99998" x="-2.4930778e-06" - y="668.97638" - ry="21.259838" /> + y="662.51971" + ry="9.9999924" /> <text xml:space="preserve" style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.33333397px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" diff --git a/Doc/Sd1/languageFundamentals.xml b/Doc/Sd1/languageFundamentals.xml index 03cc78bc3..2d6a311db 100644 --- a/Doc/Sd1/languageFundamentals.xml +++ b/Doc/Sd1/languageFundamentals.xml @@ -1,25 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> -<chapter annotations="slide" version="5.1" xml:id="sw1LanguageFundamental" - xmlns="http://docbook.org/ns/docbook" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes" - xmlns:xi="http://www.w3.org/2001/XInclude" - xmlns:trans="http://docbook.org/ns/transclusion" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:m="http://www.w3.org/1998/Math/MathML" - xmlns:html="http://www.w3.org/1999/xhtml" - xmlns:db="http://docbook.org/ns/docbook"> +<chapter annotations="slide" version="5.1" xml:id="sw1LanguageFundamental" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:trans="http://docbook.org/ns/transclusion" xmlns:svg="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook"> <title>Language Fundamentals</title> <section xml:id="sd1_sect_langFundamental_intro"> <title>Introduction</title> <section xml:id="sd1_fig_asciiAndUnicode"> - <title>Integer, <xref linkend="glo_ASCII"/> and <xref - linkend="glo_unicode"/></title> + <title>Integer, <xref linkend="glo_ASCII"/> and <xref linkend="glo_unicode"/></title> - <para>We will deal with computation machines. Having just mechanical - devices at hand this still works:</para> + <para>We will deal with computation machines. Having just mechanical devices at hand this still works:</para> <figure xml:id="sd1_fig_cashier"> <title>Cash register</title> @@ -51,9 +40,7 @@ </mediaobject> </figure> - <para>So far all machines being described are based on non-semiconductor - technologies. Inventing the transistor in the fifties gave rise to a - rapid development of microprocessor chips:</para> + <para>So far all machines being described are based on non-semiconductor technologies. Inventing the transistor in the fifties gave rise to a rapid development of microprocessor chips:</para> <figure xml:id="sd1_fig_microprocessors"> <title>Microprocessor ICs</title> @@ -65,9 +52,7 @@ </mediaobject> </figure> - <para>These sample devices differ heavily with respect to addressable - memory, data size, supported arithmetic operations / speed and other - features. We take a closer look to Zilog's Z80 processor:</para> + <para>These sample devices differ heavily with respect to addressable memory, data size, supported arithmetic operations / speed and other features. We take a closer look to Zilog's Z80 processor:</para> <figure xml:id="sd1_fig_z80"> <title>Zilog Z80 CPU</title> @@ -79,8 +64,7 @@ </mediaobject> </figure> - <para>Following technological advances processors have been categorized - by the length the so called address- and data-bus:</para> + <para>Following technological advances processors have been categorized by the length the so called address- and data-bus:</para> <figure xml:id="sd1_fig_adressDataBus"> <title>Address and data bus sizes</title> @@ -148,9 +132,7 @@ </informaltable> </figure> - <para>We remind the reader to the binary representation of signed - integer values. Details will be discussed in your math lectures. Our - first example features three bit 2-complement:</para> + <para>We remind the reader to the binary representation of signed integer values. Details will be discussed in your math lectures. Our first example features three bit 2-complement:</para> <figure xml:id="sd1_fig_signed3bitIntDual"> <title>Signed 3 bit integer representation</title> @@ -162,8 +144,7 @@ </mediaobject> </figure> - <para>Signed <code>byte</code> values are being represented - accordingly:</para> + <para>Signed <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> values are being represented accordingly:</para> <figure xml:id="sd1_fig_signedIntRepresentBinary"> <title>Signed 8 bit integer binary representation</title> @@ -181,28 +162,21 @@ <qandadiv> <qandaentry> <question> - <para>A hotel supplies the following type of cards for opening - room doors:</para> + <para>A hotel supplies the following type of cards for opening room doors:</para> <mediaobject> <imageobject> - <imagedata fileref="Ref/LangFundament/keycard.jpg" - scale="25"/> + <imagedata fileref="Ref/LangFundament/keycard.jpg" scale="25"/> </imageobject> </mediaobject> - <para>A customer is worried concerning the impact of loosing his - card. For security reasons the corresponding pattern can never - be issued again. Thus the hotel may eventually run out of - combinations.</para> + <para>A customer is worried concerning the impact of loosing his card. For security reasons the corresponding pattern can never be issued again. Thus the hotel may eventually run <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> on available combinations.</para> - <para>Discuss this argument by estimating the number of distinct - patterns.</para> + <para>Discuss this argument by estimating the number of distinct patterns.</para> </question> <answer> - <para>The customer should not be too worried: Judging the image - a card probably offers 39 grid positions:</para> + <para>No need to be worried: Judging the image a card probably offers 39 grid positions:</para> <programlisting language="none">X X X X X X X X X X X @@ -212,8 +186,7 @@ X X X X X X X X X X X X X X X X X</programlisting> - <para>Since each position may either contain a hole or be solid - we have <inlineequation> + <para>Since each position may either contain a hole or be solid we have <inlineequation> <m:math display="inline"> <m:mrow> <m:msup> @@ -233,8 +206,7 @@ X X X X X X</programlisting> </qandadiv> </qandaset> - <para>Regarding language characters we start with one of the oldest and - widespread character encoding schemes:</para> + <para>Regarding language characters we start with one of the oldest and widespread character encoding schemes:</para> <figure xml:id="sd1_fig_7bitASCII"> <title>7-bit <xref linkend="glo_ASCII"/></title> @@ -246,10 +218,7 @@ X X X X X X</programlisting> </mediaobject> </figure> - <para><xref linkend="glo_ASCII"/> by design is limited to US characters - and does not include characters from non-English languages. Since <xref - linkend="glo_ASCII"/> only uses seven bits we may a parity bit to form - one byte per character:</para> + <para><xref linkend="glo_ASCII"/> by design is limited to US characters and does not include characters from non-English languages. Since <xref linkend="glo_ASCII"/> only uses seven bits we may a parity bit to form one byte per character:</para> <figure xml:id="sd1_fig_7bitASCII_andParity"> <title>7-bit <xref linkend="glo_ASCII"/> with even parity bit</title> @@ -261,16 +230,10 @@ X X X X X X</programlisting> </mediaobject> </figure> - <para>A byte's parity bit may instead be used for encoding non- <xref - linkend="glo_ASCII"/> supplementary characters. One such example is the - <link xlink:href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO - 8859-1 (ISO Latin 1)</link> standard representing western European - character sets:</para> + <para>A byte's parity bit may instead be used for encoding non- <xref linkend="glo_ASCII"/> supplementary characters. One such example is the <link xlink:href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO 8859-1 (ISO Latin 1)</link> standard representing western European character sets:</para> <figure xml:id="sd1_fig_iso8859_1"> - <title><link - xlink:href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO Latin - 1</link> encoding</title> + <title><link xlink:href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO Latin 1</link> encoding</title> <mediaobject> <imageobject> @@ -279,13 +242,10 @@ X X X X X X</programlisting> </mediaobject> </figure> - <para>Supporting additional languages comes at a price: We have to - increase the number of bytes representing a single character:</para> + <para>Supporting additional languages comes at a price: We have to increase the number of bytes representing a single character:</para> <figure xml:id="sd1_fig_unicodeSample"> - <title>Some <xref linkend="glo_unicode"/> <link - xlink:href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</link> - samples</title> + <title>Some <xref linkend="glo_unicode"/> <link xlink:href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</link> samples</title> <mediaobject> <imageobject> @@ -294,19 +254,13 @@ X X X X X X</programlisting> </mediaobject> </figure> - <para>Notice the representation's differing byte count: <link - xlink:href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</link> <xref - linkend="glo_unicode"/> encoding allows for one-, two-, three- and four- - byte encodings. See <quote - xlink:href="https://betterexplained.com/articles/unicode">Unicode and - You</quote> for further details.</para> + <para>Notice the representation's differing byte count: <link xlink:href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</link> <xref linkend="glo_unicode"/> encoding allows for one-, two-, three- and four- byte encodings. See <quote xlink:href="https://betterexplained.com/articles/unicode">Unicode and You</quote> for further details.</para> </section> <section xml:id="sd1_sect_variables"> <title>Variables</title> - <para>Variables are convenient handles for accessing memory. We don't - need to mess with memory addresses:</para> + <para>Variables are convenient handles for accessing memory. We don't need to mess with memory addresses:</para> <figure xml:id="sd1_fig_varMemoryHandle"> <title>Handle to memory</title> @@ -318,8 +272,7 @@ X X X X X X</programlisting> </mediaobject> </figure> - <para>Declaring a variable requires a type name like <code>double</code> - and an identifier:</para> + <para>Declaring a variable requires a type name like <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> and an identifier:</para> <figure xml:id="sd1_fig_varDeclare"> <title>Variable declaration</title> @@ -327,8 +280,7 @@ X X X X X X</programlisting> <programlisting language="java">double pi;</programlisting> </figure> - <para>We may assign values to variables or build expressions like - <code>pi * 2.0 * 2.0</code> :</para> + <para>We may assign values to variables or build expressions like <code>pi * 2.0 * 2.0</code> :</para> <figure xml:id="sd1_fig_varDeclareAndUse"> <title>Declare and use</title> @@ -396,13 +348,11 @@ int c;</programlisting> <itemizedlist> <listitem> - <para>Start with a small letter like <code>africa</code> rather - than <code>Africa</code>.</para> + <para>Start with a small letter like <code>africa</code> rather than <code>Africa</code>.</para> </listitem> <listitem> - <para>Use <quote>camel case</quote> e.g. - <code>myFirstCode</code>.</para> + <para>Use <quote>camel case</quote> e.g. <code>myFirstCode</code>.</para> <mediaobject> <imageobject> @@ -521,11 +471,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <qandadiv> <qandaentry> <question> - <para>Which of the following names are legal variable names? - Complete the following table and explain your decision with - respect to the <quote - xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc4_html_3">variables</quote> - section.</para> + <para>Which of the following names are legal variable names? Complete the following table and explain your decision with respect to the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc4_html_3">variables</quote> section.</para> <informaltable border="1"> <colgroup width="19%"/> @@ -648,24 +594,20 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> </informaltable> <tip> - <para>You may want to prepare a simple <xref - linkend="glo_Java"/> program testing the above names.</para> + <para>You may want to prepare a simple <xref linkend="glo_Java"/> program testing the above names.</para> </tip> </question> <answer> - <para>We may write a small <xref linkend="glo_Java"/> - program:</para> + <para>Consider:</para> <programlisting language="java">public static void main(String[] args) { int 42isThesolution = 6; // <emphasis role="bold">Syntax error on token "42", delete this token</emphasis> }</programlisting> - <para>Unfortunately the error explanation is not too helpful - with respect to <xref linkend="glo_Java"/> beginners. It does - not immediately point towards an illegal identifier problem. One - indication of a sound compiler is its ability to provide - meaningful, self explanatory error messages.</para> + <para>Unfortunately this message does not explain the underlying cause: It does not hint towards an illegal identifier name.</para> + + <para>One indication of a sound compiler implementation is its ability to provide meaningful, self explanatory error messages.</para> <informaltable border="1"> <colgroup width="19%"/> @@ -711,8 +653,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <td>no</td> - <td>Operators like <quote>-</quote> or <quote>+</quote> must - not appear in variable names.</td> + <td>Operators like <quote>-</quote> or <quote>+</quote> must not appear in variable names.</td> </tr> <tr> @@ -720,8 +661,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <td>yes</td> - <td>Best practices: Discouraged variable name, non-constant - variables should start with lowercase letters.</td> + <td>Best practices: Discouraged variable name, non-constant variables should start with lowercase letters.</td> </tr> <tr> @@ -737,9 +677,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <td>yes</td> - <td><code>println</code> is a method of - <code>System.out.println(...)</code> but is no <xref - linkend="glo_Java"/> keyword.</td> + <td><code>println</code> is a method of <code>System.out.println(...)</code> but is no <xref linkend="glo_Java"/> keyword.</td> </tr> <tr> @@ -747,8 +685,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <td>yes</td> - <td>Best practices: Discouraged variable name, non-constant - variables should start with lowercase letters.</td> + <td>Best practices: Discouraged variable name, non-constant variables should start with lowercase letters.</td> </tr> <tr> @@ -756,9 +693,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <td>yes</td> - <td>Best practices: Legal but discouraged variable name: - Non-constant variables should start with lowercase - letters.</td> + <td>Best practices: Legal but discouraged variable name: Non-constant variables should start with lowercase letters.</td> </tr> <tr> @@ -766,8 +701,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <td>no</td> - <td>String delimiters must not be part of an - identifier.</td> + <td>String delimiters must not be part of an identifier.</td> </tr> <tr> @@ -783,8 +717,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <td>yes</td> - <td>Perfectly legal Greek <orgname>Unicode</orgname> - characters.</td> + <td>Perfectly legal Greek <orgname>Unicode</orgname> characters.</td> </tr> <tr> @@ -792,8 +725,7 @@ System.out.println(count + ":" + Count); // This yields "32:44"</programlisting> <td>yes</td> - <td>Best practices: Using the <quote>$</quote> sign should - be reserved for system code.</td> + <td>Best practices: Using the <quote>$</quote> sign should be reserved for system code.</td> </tr> </informaltable> </answer> @@ -837,8 +769,56 @@ i = b; // Error: int and boolean are incompatible types i = "Hello"; // Even worse: Assigning a String to an int</programlisting> </figure> - <para><xref linkend="glo_Java"/> provides meta information on - types:</para> + <qandaset defaultlabel="qanda" xml:id="sd1_qanda_typeAssignCompat"> + <title>Assignment and type safety</title> + + <qandadiv> + <qandaentry> + <question> + <para>We consider:</para> + + <programlisting language="java">int i = -21; +double d = i;</programlisting> + + <para>This snippet shows perfectly correct <xref linkend="glo_Java"/> code. However <xref linkend="sd1_fig_typeSafety"/> suggests we should not be allowed to assign an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value due to type safety.</para> + + <para>Even worse: Swapping types yields a compile time error:</para> + + <programlisting language="java">double d = 2.4; +int i = d; // Error: Incompatible types</programlisting> + + <para>Why is this? Make an educated guess.</para> + </question> + + <answer> + <para>The first snippet compiles by using the widening conversion: When assigning <code>d = i</code> the <xref linkend="glo_Java"/> compiler implicitly converts the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> into a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value.</para> + + <para>Turning a double into an int is more cumbersome: The expression <code>i = 3.5</code> could be evaluated by agreeing on a specific rounding prescription. But what about i = 3457357385783573478955345.45? A <xref linkend="glo_Java"/> <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s maximum value is <inlineequation> + <m:math display="inline"> + <m:mrow> + <m:msup> + <m:mi>2</m:mi> + + <m:mi>31</m:mi> + </m:msup> + + <m:mo>-</m:mo> + + <m:mi>1</m:mi> + </m:mrow> + </m:math> + </inlineequation>exceeding the former <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value.</para> + + <para>Conclusion: <xref linkend="glo_Java"/> disallows double to int assignments unless using a so called cast (explicit type conversion):</para> + + <programlisting language="java">double d = 2.4; +int i = (int) d; // Explicit cast double to int</programlisting> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + + <para><xref linkend="glo_Java"/> provides meta information on types:</para> <figure xml:id="sd1_fig_intTypeMaxMin"> <title>Maximum and minimum values</title> @@ -857,11 +837,9 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> <tr> <td>byte</td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#BYTES">1</link></td> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#BYTES">1</link></td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Byte.MIN_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Byte.MIN_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:mo>-</m:mo> @@ -875,8 +853,7 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> </m:math> </inlineequation></link></td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Byte.MAX_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Byte.MAX_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:msup> @@ -896,13 +873,11 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> <tr> <td>char</td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#BYTES">2</link></td> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#BYTES">2</link></td> <td>0</td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Character.MAX_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Character.MAX_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:msup> @@ -922,11 +897,9 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> <tr> <td>short</td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.BYTES">2</link></td> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.BYTES">2</link></td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.MIN_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.MIN_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:mo>-</m:mo> @@ -940,8 +913,7 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> </m:math> </inlineequation></link></td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.MAX_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.MAX_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:msup> @@ -961,11 +933,9 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> <tr> <td>int</td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.BYTES">4</link></td> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.BYTES">4</link></td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MIN_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MIN_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:mo>-</m:mo> @@ -979,8 +949,7 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> </m:math> </inlineequation></link></td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:msup> @@ -1000,11 +969,9 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> <tr> <td>long</td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.BYTES">8</link></td> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.BYTES">8</link></td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MIN_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MIN_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:mo>-</m:mo> @@ -1018,8 +985,7 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> </m:math> </inlineequation></link></td> - <td><link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE"><inlineequation> + <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE"><inlineequation> <m:math display="inline"> <m:mrow> <m:msup> @@ -1038,102 +1004,15 @@ i = "Hello"; // Even worse: Assigning a String to an int</programlisting> </informaltable> </figure> - <figure xml:id="sd1_fig_variableCategories"> - <title>Two categories of variables</title> - - <glosslist> - <glossentry> - <glossterm>Primitive type</glossterm> - - <glossdef> - <programlisting language="java">int a = -15;</programlisting> - - <para>Possible types: All eight primitive <xref - linkend="glo_Java"/> types.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Reference type</glossterm> - - <glossdef> - <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829);</programlisting> - - <para>Possible types: Arbitrary built in or user defined - classes.</para> - </glossdef> - </glossentry> - </glosslist> - </figure> - - <figure xml:id="sd1_fig_refTypeVariants"> - <title>Reference type variants</title> - - <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829); -String name = "Simon"; -LocalDate birtday = LocalDate.of(1990, Month.JULY, 5);</programlisting> - </figure> - </section> - - <section xml:id="sd1_sect_literals"> - <title>Literals</title> - - <figure xml:id="sd1_fig_literal2memory"> - <title><code>float</code> and <code>double</code></title> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/LangFundament/literalToMemory.svg"/> - </imageobject> - </mediaobject> - </figure> - - <figure xml:id="sd1_fig_equivalentIntRepresentations"> - <title>Four ways representing 35</title> - - <informaltable border="1"> - <tr> - <th>Code</th> - - <th>Result</th> - </tr> - - <tr> - <td><programlisting language="java">System.out.println("Decimal "+ <emphasis - role="bold">35</emphasis>); -System.out.println("Binary " + <emphasis role="bold">0b10_0011</emphasis>); -System.out.println("Hex " + <emphasis role="bold">0x23</emphasis>); -System.out.println("Octal " + <emphasis role="bold">043</emphasis>); </programlisting></td> - - <td><screen>Decimal 35 -Binary 35 -Hex 35 -Octal 35</screen></td> - </tr> - </informaltable> - </figure> - - <figure xml:id="sd1_fig_intLiteralLimitExcess"> - <title>Know your limits!</title> - - <programlisting language="java">System.out.println(10000000000<emphasis - role="bold">L</emphasis>); // o.K. -System.out.println(10000000000 ); // Compile time error: Integer number too large</programlisting> - </figure> - <qandaset defaultlabel="qanda" xml:id="sw1QandaMaxMinInt"> - <title>An <code>int</code>'s minimum and maximum value</title> + <title>An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s minimum and maximum value</title> <qandadiv> <qandaentry> <question> - <para>In this exercise we look at an <code>int</code>'s the - largest and smallest possible value.</para> + <para>In this exercise we look at an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s the largest and smallest possible value.</para> - <para>A <xref linkend="glo_Java"/> <code - xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html">int</code> - is internally being represented by 4 <link - linkend="glo_byte">bytes</link>. <inlineequation> + <para>A <xref linkend="glo_Java"/> <code xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html">int</code> is internally being represented by 4 <link linkend="glo_byte">bytes</link>. <inlineequation> <m:math display="inline"> <m:msub> <m:mi>00000000000000000000000000000101</m:mi> @@ -1141,19 +1020,12 @@ System.out.println(10000000000 ); // Compile time error: Integer number too lar <m:mi>2</m:mi> </m:msub> </m:math> - </inlineequation> for example represents the decimal value - 5.</para> + </inlineequation> for example represents the decimal value 5.</para> - <para>In order to represent negative values as well <xref - linkend="glo_Java"/> uses <link - xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's - complement</link> representation. We provide some values:</para> + <para>In order to represent negative values as well <xref linkend="glo_Java"/> uses <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation. We provide some values:</para> <table border="1" xml:id="sw1Table4ByteIntegerRepresentation"> - <caption>4 Byte <link - xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's - complement</link> representation of <code>int</code> - values.</caption> + <caption>4 Byte <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation of <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values.</caption> <tr> <th>Two complement representation</th> @@ -1224,15 +1096,7 @@ System.out.println(10000000000 ); // Compile time error: Integer number too lar </tr> </table> - <para>Use <link - xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.1"><code>int</code> - literals</link> in <link - xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-BinaryNumeral">binary - representation</link> like e.g. <code>0B1100</code> in section - <quote - xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc6_html_2">Literals</quote> - in order to write an <code>int</code>'s minimum and maximum - possible value to standard output.</para> + <para>Use <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.1"><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literals</link> in <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-BinaryNumeral">binary representation</link> like e.g. <code>0B1100</code> in section <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc6_html_2">Literals</quote> in order to write an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s minimum and maximum possible value to standard output.</para> <programlisting language="java"> public static void main(String[] args) { @@ -1245,11 +1109,7 @@ System.out.println(10000000000 ); // Compile time error: Integer number too lar </question> <answer> - <para>We insert <link - xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's - complement</link> representations of minimum and maximum int - values according to <xref - linkend="sw1Table4ByteIntegerRepresentation"/>.</para> + <para>We insert <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representations of minimum and maximum int values according to <xref linkend="sw1Table4ByteIntegerRepresentation"/>.</para> <programlisting language="java">public static void main(String[] args) { @@ -1260,18 +1120,7 @@ System.out.println(10000000000 ); // Compile time error: Integer number too lar System.out.println("Maximum int value:" + maximum); }</programlisting> - <para>BTW: The <xref linkend="glo_JDK"/> does provide maximum - value, minimum value and related information for - <code>char</code>, <code>byte</code>, <code>short</code> and - <code>int</code> data types int its related <classname - xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html">Character</classname>, - <classname - xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html">Byte</classname>, - <classname - xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html">Short</classname> - and <classname - xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</classname> - classes. You may want to execute:</para> + <para>BTW: The <xref linkend="glo_JDK"/> does provide maximum value, minimum value and related information for <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> data types int its related <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html">Character</classname>, <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html">Byte</classname>, <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html">Short</classname> and <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</classname> classes. You may want to execute:</para> <programlisting language="java"> System.out.println("int minimum:" + Integer.MIN_VALUE); System.out.println("int minimum:" + Integer.MAX_VALUE); @@ -1284,264 +1133,141 @@ System.out.println(10000000000 ); // Compile time error: Integer number too lar </qandadiv> </qandaset> - <qandaset defaultlabel="qanda" xml:id="sw1QandaIntLimitShort"> - <title>Testing the limits (Difficult)</title> + <figure xml:id="sd1_fig_variableCategories"> + <title>Two categories of variables</title> - <qandadiv> - <qandaentry> - <question> - <para>A careful programmer is worried whether a short variable - is <emphasis role="bold">always</emphasis> large enough to hold - color intensity values ranging from 0 to 255. Give an answer - being based on the <link - xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.2.1">specification</link> - and not just by <acronym>try-and-error</acronym>.</para> + <glosslist> + <glossentry> + <glossterm>Primitive type</glossterm> - <para>The programmer tries to adopt the <link - linkend="sw1QandaMaxMinInt">related int example</link> - accordingly:</para> + <glossdef> + <programlisting language="java">int a = -15;</programlisting> - <programlisting language="java">short minumum = 0B10000000_00000000, - maximum = 0B01111111_11111111; + <para>Possible types: All eight primitive <xref linkend="glo_Java"/> types.</para> + </glossdef> + </glossentry> -System.out.println("Minimum short value:" + minumum); -System.out.println("Maximum short value:" + maximum</programlisting> + <glossentry> + <glossterm>Reference type</glossterm> - <para>Our programmer is baffled:</para> + <glossdef> + <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829);</programlisting> - <itemizedlist> - <listitem> - <para>The first assignment <code language="java">minumum = - 0B10000000_00000000</code> is being flagged as a compile - time error:</para> + <para>Possible types: Arbitrary built in or user defined classes.</para> + </glossdef> + </glossentry> + </glosslist> + </figure> - <para><computeroutput>Type mismatch: cannot convert from int - to short</computeroutput></para> - </listitem> + <figure xml:id="sd1_fig_refTypeVariants"> + <title>Reference type variants</title> - <listitem> - <para>On contrary the second assignment <code - language="java">maximum = 0B01111111_11111111</code> gets - smoothly accepted.</para> - </listitem> - </itemizedlist> + <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829); +String name = "Simon"; +LocalDate birtday = LocalDate.of(1990, Month.JULY, 5);</programlisting> + </figure> + </section> - <tip> - <para>Which integer literal types do exist according to the - <xref linkend="glo_Java"/> <link - xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.1">standard</link>?</para> - </tip> - </question> + <section xml:id="sd1_sect_literals"> + <title>Literals</title> - <answer> - <para>Since variables of type <code>short</code> have a two - bytes representation their corresponding range is - <inlineequation> - <m:math display="inline"> - <m:mrow> - <m:mo>[</m:mo> + <figure xml:id="sd1_fig_literal2memory"> + <title><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code></title> - <m:mrow> - <m:mrow> - <m:mo>-</m:mo> + <mediaobject> + <imageobject> + <imagedata fileref="Ref/LangFundament/literalToMemory.svg"/> + </imageobject> + </mediaobject> + </figure> - <m:msup> - <m:mi>2</m:mi> + <figure xml:id="sd1_fig_equivalentIntRepresentations"> + <title>Four ways representing 35</title> - <m:mi>15</m:mi> - </m:msup> - </m:mrow> + <informaltable border="1"> + <tr> + <th>Code</th> - <m:mo>,</m:mo> + <th>Result</th> + </tr> - <m:mrow> - <m:msup> - <m:mi>2</m:mi> + <tr> + <td><programlisting language="java">System.out.println("Decimal "+ <emphasis role="bold">35</emphasis>); +System.out.println("Binary " + <emphasis role="bold">0b10_0011</emphasis>); +System.out.println("Hex " + <emphasis role="bold">0x23</emphasis>); +System.out.println("Octal " + <emphasis role="bold">043</emphasis>); </programlisting></td> - <m:mi>15</m:mi> - </m:msup> + <td><screen>Decimal 35 +Binary 35 +Hex 35 +Octal 35</screen></td> + </tr> + </informaltable> + </figure> - <m:mo>-</m:mo> + <figure xml:id="sd1_fig_intLiteralLimitExcess"> + <title>Know your limits!</title> - <m:mi>1</m:mi> - </m:mrow> - </m:mrow> + <programlisting language="java">System.out.println(10000000000<emphasis role="bold">L</emphasis>); // o.K. +System.out.println(10000000000 ); // Compile time error: Integer number too large</programlisting> + </figure> - <m:mo>]</m:mo> - </m:mrow> - </m:math> - </inlineequation>. Thus intensity values ranging from 0 to 255 - will be easily accommodated.</para> + <figure xml:id="sd1_fig_javaLiterals"> + <title><xref linkend="glo_Java"/> literals</title> - <para>The second question is more difficult to explain: The - <xref linkend="glo_Java"/> standard only defines - <code>int</code> literals. It does however not define - <code>short</code> (or <code>byte</code>) literals.</para> + <informaltable border="1"> + <tr> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></td> - <para>Thus the 0B01111111_11111111 literal will be treated as an - <code>int</code> value being compatible with a - <code>short</code> variable and is thus assignable.</para> + <td>-</td> + </tr> - <para>On the contrary the binary value - <code>10000000_00000000</code> evaluates to <inlineequation> - <m:math display="inline"> - <m:msup> - <m:mn>2</m:mn> + <tr> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code></td> - <m:mi>15</m:mi> - </m:msup> - </m:math> - </inlineequation> (equal to 32768) exceeding a two-byte - (signed) short variable's upper limit.</para> + <td><code>'A'</code>, <code>'\u0041'</code></td> + </tr> - <para>Even worse: A <code>short</code> variable containing - binary <code>10000000_00000000</code> due to its two byte <link - xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's - complement</link> representation has got a value <inlineequation> - <m:math display="inline"> - <m:mrow> - <m:mo>-</m:mo> + <tr> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code></td> - <m:msup> - <m:mn>2</m:mn> + <td><code>29</code>, <code>0b1_1101</code>, <code>0x1D</code>, <code>035</code>, <code>-29</code>,</td> + </tr> - <m:mi>15</m:mi> - </m:msup> - </m:mrow> - </m:math> - </inlineequation> (or -32768).</para> + <tr> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code></td> - <para>In order to avoid this error we need an explicit type - conversion (a so called cast):</para> + <td><code>35L</code>, <code>0b10_0011L</code>, <code>0x23L</code>, <code>043L</code>, <code>-35L</code>,...</td> + </tr> - <programlisting language="java">short minumum = (short) 0B10000000_00000000;</programlisting> + <tr> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code></td> - <para>Since a <code>short</code> variable's range is - <inlineequation> - <m:math display="inline"> - <m:mrow> - <m:mo>[</m:mo> - - <m:mrow> - <m:mrow> - <m:mo>-</m:mo> - - <m:msup> - <m:mi>2</m:mi> - - <m:mi>15</m:mi> - </m:msup> - </m:mrow> - - <m:mo>,</m:mo> - - <m:mrow> - <m:msup> - <m:mi>2</m:mi> - - <m:mi>15</m:mi> - </m:msup> - - <m:mo>-</m:mo> - - <m:mi>1</m:mi> - </m:mrow> - </m:mrow> - - <m:mo>]</m:mo> - </m:mrow> - </m:math> - </inlineequation> we may as well use a unary minus sign - instead:</para> - - <programlisting language="java">short minumum = -0B10000000_00000000;</programlisting> - - <para>Both variants are syntactically correct and will thus - compile. However they are likely not being intended by our - programmer.</para> - - <para>The error in the first place is probably assigning a value - of <inlineequation> - <m:math display="inline"> - <m:mrow> - <m:mo>+</m:mo> - - <m:msup> - <m:mi>2</m:mi> - - <m:mi>15</m:mi> - </m:msup> - </m:mrow> - </m:math> - </inlineequation> to a <code>short</code> variable at - all.</para> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - - <figure xml:id="sd1_fig_javaLiterals"> - <title><xref linkend="glo_Java"/> literals</title> - - <informaltable border="1"> - <tr> - <td><code>byte</code>, <code>short</code></td> - - <td>-</td> - </tr> - - <tr> - <td><code>char</code></td> - - <td><code>'A'</code>, <code>'\u0041'</code></td> - </tr> - - <tr> - <td><code>int</code></td> - - <td><code>29</code>, <code>0b1_1101</code>, <code>0x1D</code>, - <code>035</code>, <code>-29</code>,</td> - </tr> + <td><code>55.43F</code>, <code>1.7E-23F</code>, <code>-17.F, 100_342.334_113</code></td> + </tr> <tr> - <td><code>long</code></td> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code></td> - <td><code>35L</code>, <code>0b10_0011L</code>, <code>0x23L</code>, - <code>043L</code>, <code>-35L</code>,...</td> - </tr> - - <tr> - <td><code>float</code></td> - - <td><code>55.43F</code>, <code>1.7E-23F</code>, <code>-17.F, - 100_342.334_113</code></td> - </tr> - - <tr> - <td><code>double</code></td> - - <td><code>55.43</code>, <code>1.7 E -23</code>, - <code>-17.</code></td> + <td><code>55.43</code>, <code>1.7 E -23</code>, <code>-17.</code></td> </tr> <tr> <td><code>String</code></td> - <td><code>"Hello"</code>, <code>"Greek Δ"</code>, <code>"Greek - <link - xlink:href="https://www.fileformat.info/info/unicode/char/0394/index.htm">\u0394</link>"</code></td> + <td><code>"Hello"</code>, <code>"Greek Δ"</code>, <code>"Greek <link xlink:href="https://www.fileformat.info/info/unicode/char/0394/index.htm">\u0394</link>"</code></td> </tr> <tr> - <td><code>boolean</code></td> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">boolean</code></td> - <td><code>true</code>, <code>false</code></td> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">true</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">false</code></td> </tr> <tr> <td/> - <td><code>null</code></td> + <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.1-200">null</code></td> </tr> </informaltable> </figure> @@ -1552,13 +1278,7 @@ System.out.println("Maximum short value:" + maximum</programlisting> <qandadiv> <qandaentry> <question> - <para>We want to construct a list of <link - xlink:href="http://www.rapidtables.com/code/text/ascii-table.htm#print">printable - ASCII characters</link>. Write a <xref linkend="glo_Java"/> - application by starting just from from character literals - <code>' '</code>, <code>'!'</code>, <code>'"'</code>, - <code>'#'</code> and so on to show their corresponding decimal - values. The intended output is:</para> + <para>We want to construct a list of <link xlink:href="http://www.rapidtables.com/code/text/ascii-table.htm#print">printable ASCII characters</link>. Write a <xref linkend="glo_Java"/> application by starting just from from character literals <code>' '</code>, <code>'!'</code>, <code>'"'</code>, <code>'#'</code> and so on to show their corresponding decimal values. The intended output is:</para> <screen> : 32 !: 33 @@ -1568,18 +1288,15 @@ $: 36 %: 37 &: 38</screen> - <para>Notice the empty space being represented by decimal - 32.</para> + <para>Notice the empty space being represented by decimal 32.</para> <tip> - <para>A <code>char</code> value being represented by two bytes - may be easily assigned to an <code>int</code> variable.</para> + <para>A <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> value being represented by two bytes may be easily assigned to an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> variable.</para> </tip> </question> <answer> - <para>Since <code>char</code> values may be assigned to - <code>int</code> variables we may code:</para> + <para>Since <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values may be assigned to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> variables we may code:</para> <programlisting language="java">{ char c = ' '; // space @@ -1598,8 +1315,7 @@ $: 36 } ...</programlisting> - <para>Using an explicit type conversion from char to int (a so - called cast) yields an identical result:</para> + <para>Using an explicit type conversion from char to int (a so called cast) yields an identical result:</para> <programlisting language="java">System.out.println(' ' + ": " + ((int) ' ')); System.out.println('!' + ": " + ((int) '!')); @@ -1620,28 +1336,11 @@ System.out.println('&' + ": " + ((int) '&')); <qandadiv> <qandaentry> <question> - <para>As you may know the <xref linkend="glo_RGB"/> color model - uses triplets of numbers to define color value components - representing intensities of its three base colors - <foreignphrase><emphasis - role="bold">R</emphasis>ed</foreignphrase>, - <foreignphrase><emphasis - role="bold">G</emphasis>reen</foreignphrase> and - <foreignphrase><emphasis - role="bold">B</emphasis>lue</foreignphrase>. The component - values range from 0 to 255, the latter defining maximum - intensity.</para> - - <para>The color <quote>red</quote> for example is being - represented by (255, 0, 0). So the red component has maximum - intensity while blue and green are zero.</para> - - <para>It is however common to use <link - xlink:href="http://www.december.com/html/spec/color16codes.html">hexadecimal - in favour of decimal values</link>. Thus the same color - <quote>red</quote> in the subsequent HTML example's heading font - is now being represented by <emphasis - role="bold">(FF,0,0)</emphasis>:</para> + <para>As you may know the <xref linkend="glo_RGB"/> color model uses triplets of numbers to define color value components representing intensities of its three base colors <foreignphrase><emphasis role="bold">R</emphasis>ed</foreignphrase>, <foreignphrase><emphasis role="bold">G</emphasis>reen</foreignphrase> and <foreignphrase><emphasis role="bold">B</emphasis>lue</foreignphrase>. The component values range from 0 to 255, the latter defining maximum intensity.</para> + + <para>The color <quote>red</quote> for example is being represented by (255, 0, 0). So the red component has maximum intensity while blue and green are zero.</para> + + <para>It is however common to use <link xlink:href="http://www.december.com/html/spec/color16codes.html">hexadecimal in favour of decimal values</link>. Thus the same color <quote>red</quote> in the subsequent HTML example's heading font is now being represented by <emphasis role="bold">(FF,0,0)</emphasis>:</para> <programlisting language="html"><!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> @@ -1652,8 +1351,7 @@ System.out.println('&' + ": " + ((int) '&')); <body><h1 style="<emphasis role="bold">color: #FF0000;</emphasis>">My heading</h1></body> </html></programlisting> - <para>Write a program printing the hexadecimal representation - <inlineequation> + <para>Write a program printing the hexadecimal representation <inlineequation> <m:math display="inline"> <m:msub> <m:mi>C0</m:mi> @@ -1663,8 +1361,7 @@ System.out.println('&' + ": " + ((int) '&')); </m:math> </inlineequation> as a decimal value.</para> - <para>Complete the following code by assigning the hexadecimal - value <inlineequation> + <para>Complete the following code by assigning the hexadecimal value <inlineequation> <m:math display="inline"> <m:msub> <m:mi>C0</m:mi> @@ -1672,10 +1369,7 @@ System.out.println('&' + ": " + ((int) '&')); <m:mi>16</m:mi> </m:msub> </m:math> - </inlineequation> (The <quote>silver</quote> color's all three - component's intensity in <uri - xlink:href="http://www.december.com/html/spec/color16codes.html">http://www.december.com/html/spec/color16codes.html</uri>) - to get the output in decimal representation.</para> + </inlineequation> (The <quote>silver</quote> color's all three component's intensity in <uri xlink:href="http://www.december.com/html/spec/color16codes.html">http://www.december.com/html/spec/color16codes.html</uri>) to get the output in decimal representation.</para> <programlisting language="java">public static void main(String[] args) { short intensity = ...; @@ -1684,10 +1378,7 @@ System.out.println('&' + ": " + ((int) '&')); }</programlisting> <tip> - <para>You may want to consider the <quote - xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc6_html_2">Literals</quote> - section of <xref linkend="bib_Kurniawan2015"/> learning about - hexadecimal integer value representation.</para> + <para>You may want to consider the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc6_html_2">Literals</quote> section of <xref linkend="bib_Kurniawan2015"/> learning about hexadecimal integer value representation.</para> </tip> </question> @@ -1712,9 +1403,7 @@ System.out.println(intensity);</programlisting> <programlisting language="java">System.out.println(048);</programlisting> - <para>This yields a compile time error <quote>Integer number too - large</quote>. On contrary the following code will compile and - run perfectly well:</para> + <para>This yields a compile time error <quote>Integer number too large</quote>. On contrary the following code will compile and run perfectly well:</para> <programlisting language="java">System.out.println(047);</programlisting> @@ -1722,27 +1411,12 @@ System.out.println(intensity);</programlisting> </question> <answer> - <para>The literal <quote>048</quote> is meant to be octal - representation. Unfortunately the only digits in octal - representations range from 0 to 7. So <quote>047</quote> is fine - but <quote>048</quote> simply is no valid literal in <xref - linkend="glo_Java"/>.</para> + <para>The literal <quote>048</quote> denotes <link xlink:href="https://en.wikipedia.org/wiki/Octal">octal representation</link>. Digits in octal representation range from 0 to 7. So <quote>047</quote> is fine but <quote>048</quote> simply is invalid.</para> </answer> </qandaentry> </qandadiv> </qandaset> - <figure xml:id="sd1_fig_romanNumerals"> - <title>Just kidding ...</title> - - <programlisting language="java">int year = MMXIV; // <link - xlink:href="https://en.wikipedia.org/wiki/Roman_numerals">Roman numerals</link> representation - -System.out.println("Olympic winter games: " + year);</programlisting> - - <screen>Olympic winter games: 2014</screen> - </figure> - <qandaset defaultlabel="qanda" xml:id="sd1QandaBinaryIntLiteral"> <title>Binary literals</title> @@ -1751,10 +1425,7 @@ System.out.println("Olympic winter games: " + year);</programlisting> <question> <orderedlist> <listitem> - <para>Using the decimal system to represent integer values - we tend to ignore other important numbering systems. Write - an application which prints the decimal value of - <inlineequation> + <para>Using the decimal system to represent integer values we tend to ignore other important numbering systems. Write an application which prints the decimal value of <inlineequation> <m:math display="inline"> <m:msub> <m:mi>1110100100</m:mi> @@ -1762,18 +1433,14 @@ System.out.println("Olympic winter games: " + year);</programlisting> <m:mi>2</m:mi> </m:msub> </m:math> - </inlineequation> by writing the former as a binary int - literal. Verify the printed value by an independent - calculation.</para> + </inlineequation> by writing the former as a binary int literal. Verify the printed value by an independent calculation.</para> </listitem> <listitem> - <para>Construct a second binary literal representing a - negative value of your choice.</para> + <para>Construct a second binary literal representing a negative value of your choice.</para> <tip> - <para>An <code>int</code> is being represented by four - bytes in <xref linkend="glo_Java"/>.</para> + <para>An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> is being represented by four bytes in <xref linkend="glo_Java"/>.</para> </tip> </listitem> </orderedlist> @@ -1799,16 +1466,7 @@ Decimal:932</screen> </listitem> <listitem> - <para>A negative value in <link - xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's - complement</link> representation starts with a - <quote>1</quote> at its highest bit. Binary literals in - <xref linkend="glo_Java"/> represent <code>int</code> - values. An <code>int</code> in <xref linkend="glo_Java"/> - uses 4 bytes and thus occupies 4 x 8=32 bits. Therefore - choosing a negative value is a simple task: Start with - <quote>1</quote> and let it follow by 32 - 1 = 31 random bit - values:</para> + <para>A negative value in <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation starts with a <quote>1</quote> at its highest bit. Binary literals in <xref linkend="glo_Java"/> represent <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values. An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> in <xref linkend="glo_Java"/> uses 4 bytes and thus occupies 4 x 8=32 bits. Therefore choosing a negative value is a simple task: Start with <quote>1</quote> and let it follow by 32 - 1 = 31 random bit values:</para> <programlisting language="java">public static void main(String[] args) { System.out.println(0B10000000_00111001_01101001_01110100); @@ -1820,15 +1478,175 @@ Decimal:932</screen> </qandadiv> </qandaset> + <qandaset defaultlabel="qanda" xml:id="sw1QandaIntLimitShort"> + <title>Testing the limits (Difficult)</title> + + <qandadiv> + <qandaentry> + <question> + <para>A careful programmer is worried whether a short variable is <emphasis role="bold">always</emphasis> large enough to hold color intensity values ranging from 0 to 255. Give an answer being based on the <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.2.1">specification</link> and not just by <acronym>try-and-error</acronym>.</para> + + <para>The programmer tries to adopt the <link linkend="sw1QandaMaxMinInt">related int example</link> accordingly:</para> + + <programlisting language="java">short minumum = 0B10000000_00000000, + maximum = 0B01111111_11111111; + +System.out.println("Minimum short value:" + minumum); +System.out.println("Maximum short value:" + maximum</programlisting> + + <para>Our programmer is baffled:</para> + + <itemizedlist> + <listitem> + <para>The first assignment <code language="java">minumum = 0B10000000_00000000</code> is being flagged as a compile time error:</para> + + <para><computeroutput>Type mismatch: cannot convert from int to short</computeroutput></para> + </listitem> + + <listitem> + <para>On contrary the second assignment <code language="java">maximum = 0B01111111_11111111</code> gets smoothly accepted.</para> + </listitem> + </itemizedlist> + + <tip> + <para>Which integer literal types do exist according to the <xref linkend="glo_Java"/> <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.1">standard</link>?</para> + </tip> + </question> + + <answer> + <para>Since variables of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> have a two bytes representation their corresponding range is <inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mo>[</m:mo> + + <m:mrow> + <m:mrow> + <m:mo>-</m:mo> + + <m:msup> + <m:mi>2</m:mi> + + <m:mi>15</m:mi> + </m:msup> + </m:mrow> + + <m:mo>,</m:mo> + + <m:mrow> + <m:msup> + <m:mi>2</m:mi> + + <m:mi>15</m:mi> + </m:msup> + + <m:mo>-</m:mo> + + <m:mi>1</m:mi> + </m:mrow> + </m:mrow> + + <m:mo>]</m:mo> + </m:mrow> + </m:math> + </inlineequation>. Thus intensity values ranging from 0 to 255 will be easily accommodated.</para> + + <para>The second question is more difficult to explain: The <xref linkend="glo_Java"/> standard only defines <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literals. It does however not define <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> (or <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>) literals.</para> + + <para>Thus the 0B01111111_11111111 literal will be treated as an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value being compatible with a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable and is thus assignable.</para> + + <para>On the contrary the binary value <code>10000000_00000000</code> evaluates to <inlineequation> + <m:math display="inline"> + <m:msup> + <m:mn>2</m:mn> + + <m:mi>15</m:mi> + </m:msup> + </m:math> + </inlineequation> (equal to 32768) exceeding a two-byte (signed) short variable's upper limit.</para> + + <para>Even worse: A <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable containing binary <code>10000000_00000000</code> due to its two byte <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation has got a value <inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mo>-</m:mo> + + <m:msup> + <m:mn>2</m:mn> + + <m:mi>15</m:mi> + </m:msup> + </m:mrow> + </m:math> + </inlineequation> (or -32768).</para> + + <para>In order to avoid this error we need an explicit type conversion (a so called cast):</para> + + <programlisting language="java">short minumum = (short) 0B10000000_00000000;</programlisting> + + <para>Since a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable's range is <inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mo>[</m:mo> + + <m:mrow> + <m:mrow> + <m:mo>-</m:mo> + + <m:msup> + <m:mi>2</m:mi> + + <m:mi>15</m:mi> + </m:msup> + </m:mrow> + + <m:mo>,</m:mo> + + <m:mrow> + <m:msup> + <m:mi>2</m:mi> + + <m:mi>15</m:mi> + </m:msup> + + <m:mo>-</m:mo> + + <m:mi>1</m:mi> + </m:mrow> + </m:mrow> + + <m:mo>]</m:mo> + </m:mrow> + </m:math> + </inlineequation> we may as well use a unary minus sign instead:</para> + + <programlisting language="java">short minumum = -0B10000000_00000000;</programlisting> + + <para>Both variants are syntactically correct and will thus compile. However they are likely not being intended by our programmer.</para> + + <para>The error in the first place is probably assigning a value of <inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mo>+</m:mo> + + <m:msup> + <m:mi>2</m:mi> + + <m:mi>15</m:mi> + </m:msup> + </m:mrow> + </m:math> + </inlineequation> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable at all.</para> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + <qandaset defaultlabel="qanda" xml:id="sd1QandaBracesInPrintln"> - <title>Why using braces inside <code>System.out.println(...)</code> - ?</title> + <title>Why using braces inside <code>System.out.println(...)</code> ?</title> <qandadiv> <qandaentry> <question> - <para>Solution <xref linkend="sd1QandaBinaryIntLiteral"/> - contains:</para> + <para>Solution <xref linkend="sd1QandaBinaryIntLiteral"/> contains:</para> <programlisting language="java">... System.out.println("Decimal:" + (512 + @@ -1837,20 +1655,16 @@ System.out.println("Decimal:" + (512 + 32 + 4)); ...</programlisting> - <para>Why are the <quote>inner</quote> braces immediately - preceding 512 and following 4 are being required?</para> + <para>Why are the <quote>inner</quote> braces immediately preceding 512 and following 4 are being required?</para> <tip> <itemizedlist> <listitem> - <para>Execute the above code omitting the - <quote>inner</quote> braces.</para> + <para>Execute the above code omitting the <quote>inner</quote> braces.</para> </listitem> <listitem> - <para>Read about the <quote>+</quote> operator's role e.g. - in <code>System.out.println("Some" + " - string").</code></para> + <para>Read about the <quote>+</quote> operator's role e.g. in <code>System.out.println("Some" + " string").</code></para> </listitem> </itemizedlist> </tip> @@ -1871,8 +1685,7 @@ System.out.println("Decimal:" + 512 + <screen>... Decimal:512256128324</screen> - <para>The numbers are being treated as strings rather than - integer values The above code is equivalent to:</para> + <para>The numbers are being treated as strings rather than integer values The above code is equivalent to:</para> <programlisting language="java">... System.out.println("Decimal:" + "512" + @@ -1881,46 +1694,24 @@ System.out.println("Decimal:" + "512" + "32" + "4"); ...</programlisting> - <para>The <quote>+</quote> operator between two strings defines - their concatenation. So all six components get joined into a - single result string.</para> + <para>The <quote>+</quote> operator between two strings defines their concatenation. So all six components get joined into a single result string.</para> - <para>Supplying additional inner braces defines an expression - (512 + 256 + 128 + 32 + 4) solely involving integer values. In - this context each <quote>+</quote> operator effects the usual - integer arithmetic:</para> + <para>Supplying additional inner braces defines an expression (512 + 256 + 128 + 32 + 4) solely involving integer values. In this context each <quote>+</quote> operator effects the usual integer arithmetic:</para> <programlisting language="java">... -System.out.println("Decimal:" +<co linkends="sd1ListingPlusOpDuplicate-1" - xml:id="sd1ListingPlusOpDuplicate-1-co"/> (512 +<co - linkends="sd1ListingPlusOpDuplicate-2" - xml:id="sd1ListingPlusOpDuplicate-2-co"/> - 256 +<co - linkends="sd1ListingPlusOpDuplicate-2" - xml:id="sd1ListingPlusOpDuplicate-3-co"/> - 128 +<co - linkends="sd1ListingPlusOpDuplicate-2" - xml:id="sd1ListingPlusOpDuplicate-4-co"/> - 32 +<co - linkends="sd1ListingPlusOpDuplicate-2" - xml:id="sd1ListingPlusOpDuplicate-5-co"/> +System.out.println("Decimal:" +<co linkends="sd1ListingPlusOpDuplicate-1" xml:id="sd1ListingPlusOpDuplicate-1-co"/> (512 +<co linkends="sd1ListingPlusOpDuplicate-2" xml:id="sd1ListingPlusOpDuplicate-2-co"/> + 256 +<co linkends="sd1ListingPlusOpDuplicate-2" xml:id="sd1ListingPlusOpDuplicate-3-co"/> + 128 +<co linkends="sd1ListingPlusOpDuplicate-2" xml:id="sd1ListingPlusOpDuplicate-4-co"/> + 32 +<co linkends="sd1ListingPlusOpDuplicate-2" xml:id="sd1ListingPlusOpDuplicate-5-co"/> 4)); ...</programlisting> <calloutlist> - <callout arearefs="sd1ListingPlusOpDuplicate-1-co" - xml:id="sd1ListingPlusOpDuplicate-1"> - <para><quote>+</quote> operator concatenating the two - strings <code>"Decimal:"</code> and - <code>"932"</code>.</para> + <callout arearefs="sd1ListingPlusOpDuplicate-1-co" xml:id="sd1ListingPlusOpDuplicate-1"> + <para><quote>+</quote> operator concatenating the two strings <code>"Decimal:"</code> and <code>"932"</code>.</para> </callout> - <callout arearefs="sd1ListingPlusOpDuplicate-2-co sd1ListingPlusOpDuplicate-3-co sd1ListingPlusOpDuplicate-4-co sd1ListingPlusOpDuplicate-5-co" - xml:id="sd1ListingPlusOpDuplicate-2"> - <para><quote>+</quote> operators computing the integer sum - of 512, 256, 128, 32 and 4 yielding a value of 932. This - value subsequently gets transformed into the String - <code>"932"</code> in order to be compatible with the - preceding <code>"Decimal:"</code> string.</para> + <callout arearefs="sd1ListingPlusOpDuplicate-2-co sd1ListingPlusOpDuplicate-3-co sd1ListingPlusOpDuplicate-4-co sd1ListingPlusOpDuplicate-5-co" xml:id="sd1ListingPlusOpDuplicate-2"> + <para><quote>+</quote> operators computing the integer sum of 512, 256, 128, 32 and 4 yielding a value of 932. This value subsequently gets transformed into the String <code>"932"</code> in order to be compatible with the preceding <code>"Decimal:"</code> string.</para> </callout> </calloutlist> </answer> @@ -1934,18 +1725,12 @@ System.out.println("Decimal:" +<co linkends="sd1ListingPlusOpDuplicate-1" <qandadiv> <qandaentry> <question> - <para>Referring to <xref linkend="sd1_fig_unicodeSample"/> we - may use a corresponding <link - xlink:href="https://en.wikibooks.org/wiki/Java_Programming/Literals#Character_Literals">character - literal</link> representing Arabic:</para> + <para>Referring to <xref linkend="sd1_fig_unicodeSample"/> we may use a corresponding <link xlink:href="https://en.wikibooks.org/wiki/Java_Programming/Literals#Character_Literals">character literal</link> representing Arabic:</para> - <programlisting language="java">final char arabicChar = 'ڜ'; // A <link - xlink:href="https://en.wikibooks.org/wiki/Java_Programming/Literals#Character_Literals">character literal</link> + <programlisting language="java">final char arabicChar = 'ڜ'; // A <link xlink:href="https://en.wikibooks.org/wiki/Java_Programming/Literals#Character_Literals">character literal</link> System.out.println("Character: " + arabicChar);</programlisting> - <para>Execution yields the expected output. On contrary the - following code snippet using the smiley instead does not even - compile:</para> + <para>Execution yields the expected output. On contrary the following code snippet using the smiley instead does not even compile:</para> <mediaobject> <imageobject> @@ -1956,20 +1741,14 @@ System.out.println("Character: " + arabicChar);</programlisting> <para>Explain the underlying problem.</para> <tip> - <para>Consider the number of bytes being allocated for - <code>char</code> values in <xref linkend="glo_Java"/>.</para> + <para>Consider the number of bytes being allocated for representing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values in <xref linkend="glo_Java"/>.</para> </tip> </question> <answer> - <para>According to the <link - xlink:href="https://en.wikipedia.org/wiki/Arabic_(Unicode_block)#Block">Arabic - block</link> table the code point of <code>'ڜ'</code> is U+069C - having a decimal equivalent of 1692.</para> - - <para><xref linkend="glo_Java"/> uses two bytes equivalent to 16 - bits for representing positive <code>char</code> values. Thus - the largest representable code point value is <inlineequation> + <para>According to the <link xlink:href="https://en.wikipedia.org/wiki/Arabic_(Unicode_block)#Block">Arabic block</link> table the code point of <code>'ڜ'</code> is U+069C having a decimal equivalent of 1692.</para> + + <para><xref linkend="glo_Java"/> uses two bytes equivalent to 16 bits for representing positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values. Thus the largest representable code point value is <inlineequation> <m:math display="inline"> <m:mrow> <m:mrow> @@ -1989,18 +1768,23 @@ System.out.println("Character: " + arabicChar);</programlisting> <m:mi>65535</m:mi> </m:mrow> </m:math> - </inlineequation>. So <code>'ڜ'</code> fits well into this - range.</para> - - <para>According to the <link - xlink:href="https://en.wikipedia.org/wiki/Emoticons_(Unicode_block)">Emoticons - table</link> the smiley's code point value is U+1F60E being - equivalent to 128526 decimal. This exceeds the limit of 65535 - and thus prohibits the character literal in question.</para> + </inlineequation>. So <code>'ڜ'</code> fits well into this range.</para> + + <para>According to the <link xlink:href="https://en.wikipedia.org/wiki/Emoticons_(Unicode_block)">Emoticons table</link> the smiley's code point value is U+1F60E being equivalent to 128526 decimal. This exceeds the limit of 65535 and thus prohibits the character literal in question.</para> </answer> </qandaentry> </qandadiv> </qandaset> + + <figure xml:id="sd1_fig_romanNumerals"> + <title>Just kidding ...</title> + + <programlisting language="java">int year = MMXIV; // <link xlink:href="https://en.wikipedia.org/wiki/Roman_numerals">Roman numerals</link> representation + +System.out.println("Olympic winter games: " + year);</programlisting> + + <screen>Olympic winter games: 2014</screen> + </figure> </section> <section xml:id="sd1_sect_arithmeticLimitations"> @@ -2040,9 +1824,7 @@ _____________________________________ </informaltable> </figure> - <para>Why not using float / double in favour of bounded - <code>byte</code>, <code>short</code>, <code>int</code>, - <code>long</code> for arithmetics?</para> + <para>Why not using float / double in favour of bounded <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> for arithmetics?</para> <figure xml:id="sd1_fig_floatPrecision"> <title>Limited precision</title> @@ -2061,8 +1843,7 @@ Expected value: 9223372036854775807</screen> </figure> <figure xml:id="sd1_fig_floatConverter"> - <title><uri - xlink:href="https://www.h-schmidt.net/FloatConverter">https://www.h-schmidt.net/FloatConverter</uri></title> + <title><uri xlink:href="https://www.h-schmidt.net/FloatConverter">FloatConverter</uri></title> <mediaobject> <imageobject> @@ -2071,432 +1852,124 @@ Expected value: 9223372036854775807</screen> </mediaobject> </figure> </section> - </section> - - <section xml:id="sd1_sect_langFundamental_exercises"> - <title>Exercises</title> - <section xml:id="sw1SectSimpleExpressions"> - <title>Simple expressions</title> + <section xml:id="sectConversions"> + <title>Conversions</title> - <qandaset defaultlabel="qanda" xml:id="sw1QandaGuessingResults"> - <title>Guessing results</title> + <figure xml:id="fig_WideningByte2Short"> + <title>Widening from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></title> - <qandadiv> - <qandaentry> - <question> - <para>Consider the following code segment:</para> + <mediaobject> + <imageobject> + <imagedata fileref="Ref/LangFundament/byte2short.svg"/> + </imageobject> + </mediaobject> + </figure> - <programlisting language="java"> int a = 3; - a++; //Incrementing a by 1 --> a==4 + <figure xml:id="fig_WideningChar2Short"> + <title>Widening from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></title> - int b = a; // TODO - - b--; // TODO - --b; // TODO - - int c = b; // TODO - - b = ++a; // TODO - int e = a++; // TODO - - a *= b; // TODO - - System.out.println("a=" + a); - System.out.println("b=" + b); - System.out.println("c=" + c); - System.out.println("e=" + e);</programlisting> - - <para>We want to guess the expected result. Copy/paste the above - code into a main() method body within your IDE of choice - (probably Eclipse).</para> - - <para><emphasis role="bold">Do not execute this code - yet</emphasis> but replace the <quote>// TODO</quote> comments - by guessing the respective variable's value beforehand:</para> - - <para><computeroutput>a=...</computeroutput></para> - - <para><computeroutput>b=...</computeroutput></para> - - <para><computeroutput>c=...</computeroutput></para> - - <para><computeroutput>e=...</computeroutput></para> - - <para>After finishing your guesses execute your code and - (possibly) start wailing about your success rate.</para> - - <tip> - <para>Both <code>x++</code> (postfix notation) and - <code>++x</code> (infix notation) are expressions themselves - which might even be rewritten as <code>(x++)</code> and - <code>(++x)</code> for the sake of clarity. The difference is - not about operator precedence rules but simply about the - values of these expressions when being assigned to other - variables.</para> - </tip> - </question> - - <answer> - <para>As inferred by the hint the biggest problem is about - understanding postfix and infix notation of the operators - <code>++</code> and <code>--</code>. A corresponding expression - evaluates to:</para> - - <itemizedlist> - <listitem> - <para><code>a = x++</code> yields a ==x: The value of x - <emphasis role="bold">before</emphasis> incrementing - it.</para> - </listitem> - - <listitem> - <para><code>a = ++x</code> yields a ==(x + 1): The value of - x <emphasis role="bold">after</emphasis> incrementing - it.</para> - </listitem> - </itemizedlist> - - <para>The rest is just obeying the <quote>due diligence</quote> - rule set:</para> - - <programlisting language="java"> int a = 3; - a++; //Incrementing a by 1 --> a==4 - - int b = a; // Assigning value of a --> b==4 - - b--; // Decrementing b by 1 --> b==3 - --b; // Decrementing b by 1 --> b==2 - - int c = b; // c == 2; - - b = ++a; // Incrementing a by 1 -->a==5, then assigning to b --> b == 5 - int e = a++; // Assigning a to e --> e==5, then incrementing a --> a==6 - - a *= b; // Multiplying a with b and assigning the result to a --> a==30 - - System.out.println("a=" + a); - System.out.println("b=" + b); - System.out.println("c=" + c); - System.out.println("e=" + e);</programlisting> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - - <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleArea"> - <title>Calculating a circle area</title> - - <qandadiv> - <qandaentry> - <question> - <para>The area <inlineequation> - <m:math display="inline"> - <m:mi>a</m:mi> - </m:math> - </inlineequation> of a given circle having radius - <inlineequation> - <m:math display="inline"> - <m:mi>r</m:mi> - </m:math> - </inlineequation> is being obtained by <inlineequation> - <m:math display="inline"> - <m:mrow> - <m:mi>a</m:mi> - - <m:mo>=</m:mo> - - <m:mrow> - <m:mi>π</m:mi> - - <m:mo>×</m:mo> - - <m:msup> - <m:mi>r</m:mi> - - <m:mi>2</m:mi> - </m:msup> - </m:mrow> - </m:mrow> - </m:math> - </inlineequation>. Complete the following code to calculate - the result and write it to standard output using - <code>System.out.println(...)</code>:</para> - - <programlisting language="java">public static void main(String[] args) { - - double radius = 2.31; // A circle having a radius (given e.g. in mm). - double pi = 3.1415926; // Constant relating a circle's radius, - //perimeter and area. - - // TODO: Write the circle's area to standard output -}</programlisting> - - <tip> - <para>You may want to read the <link - xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc1_html_4">overview - section</link> on statements.</para> - </tip> - </question> - - <answer> - <glosslist> - <glossentry> - <glossterm>Using a mere expression</glossterm> - - <glossdef> - <programlisting language="java">public static void main(String[] args) { - - double radius = 2.31; // A circle having a radius (given e.g. in mm). - double pi = 3.1415926; // Constant relating a circle's radius, - //perimeter and area. - - System.out.println(pi * radius * radius); -}</programlisting> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Using a variable</glossterm> - - <glossdef> - <para>Instead of immediately using the expression as an - argument to <code>System.out.println(...)</code> we may - assign its value to a variable prior to output - creation:</para> - - <programlisting language="java">public static void main(String[] args) { - - double radius = 2.31; // A circle having a radius (given e.g. in mm). - double pi = 3.1415926; // Constant relating a circle's radius, - //perimeter and area. - - double area = pi * radius * radius; - System.out.println(area); -}</programlisting> - </glossdef> - </glossentry> - </glosslist> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - - <qandaset defaultlabel="qanda" xml:id="sd1QandaTemperatureConvert"> - <title>Converting temperature values</title> - - <qandadiv> - <qandaentry> - <question> - <para>Write an application converting temperature values being - represented as degree centigrade to kelvin and - Fahrenheit:</para> - - <programlisting language="java"> public static void main(String[] args) { - - double temperatureCelsius = 23.2; - - ... - - System.out.println("Celsius: " + temperatureCelsius); - System.out.println("Kelvin: " + temperatureKelvin); - System.out.println("Fahrenheit: " + temperatureFahrenheit); - }</programlisting> - </question> + <mediaobject> + <imageobject> + <imagedata fileref="Ref/LangFundament/char2short.svg"/> + </imageobject> + </mediaobject> + </figure> - <answer> - <programlisting language="java"> public static void main(String[] args) { + <figure xml:id="fig_NarrowingInt2Char"> + <title>Narrowing from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code></title> - double temperatureCelsius = 23.2; - - double - temperatureKelvin = temperatureCelsius + 273.15, - temperatureFahrenheit = 9 * temperatureCelsius / 5 + 32; - - System.out.println("Celsius: " + temperatureCelsius); - System.out.println("Kelvin: " + temperatureKelvin); - System.out.println("Fahrenheit: " + temperatureFahrenheit); - }</programlisting> - </answer> - </qandaentry> - </qandadiv> - </qandaset> + <mediaobject> + <imageobject> + <imagedata fileref="Ref/LangFundament/int2char.svg"/> + </imageobject> + </mediaobject> + </figure> - <qandaset defaultlabel="qanda" xml:id="sd1QandaTimeUnits"> - <title>Time unit conversion</title> + <qandaset defaultlabel="qanda" xml:id="qandaNarrowingInt2Char"> + <title><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> narrowing problems</title> <qandadiv> <qandaentry> <question> - <para>This exercise consists of two parts:</para> + <para>Reconsidering <xref linkend="fig_NarrowingInt2Char"/> we observe the following two related snippets yielding compile time errors</para> <orderedlist> <listitem> - <para>Write an application converting a (seconds, minutes - ,hours) time specification to seconds:</para> - - <programlisting language="java"> public static void main(String[] args) { - - final int - seconds = 31, - minutes = 16, - hours = 4; - - int timeInSeconds ... - - System.out.println("Time in seconds:" + timeInSeconds); - }</programlisting> - - <para>The expected output reads:</para> - - <screen>Time in seconds:15391</screen> + <programlisting language="java">int i = 65; +char c = i;</programlisting> </listitem> <listitem> - <para>Reverse the previous part of this exercise: Convert a - time specification in seconds to (seconds, minutes ,hours) - as in:</para> + <programlisting language="java">char c = 66200;</programlisting> - <programlisting language="java"> public static void main(String[] args) { + <para>On contrary the following code compiles well:</para> - final int timeInSeconds = 15391; - - ... - - System.out.println("Hours:" + hours); - System.out.println("Minutes:" + minutes); - System.out.println("Seconds:" + seconds); - }</programlisting> - - <para>The expected output reads:</para> - - <screen>Hours:4 -Minutes:16 -Seconds:31</screen> - - <tip> - <para>Consider the <link - xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html">remainder - operator <quote>%</quote></link> (modulo operator).</para> - </tip> + <programlisting language="java">char c = 64200;</programlisting> </listitem> </orderedlist> + + <para>Explain these errors and their underlying reasons and provide a solution if possible.</para> + + <tip> + <para>Which data types are involved? Think about narrowing conversions and <link xlink:href="http://www.studytonight.com/java/type-casting-in-java">type casting</link>.</para> + </tip> </question> <answer> - <orderedlist> + <itemizedlist> <listitem> - <para>A straightforward solution reads:</para> + <para>Assigning an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> variable effectively narrows from four to two bytes and is thus prohibited. A fix requires an explicit type cast:</para> - <para><programlisting language="java"> public static void main(String[] args) { - - final int - seconds = 31, - minutes = 16, - hours = 4; - - final int timeInSeconds = seconds + 60 * (minutes + 60 * hours); - - System.out.println("Time in seconds:" + timeInSeconds); - }</programlisting></para> + <programlisting language="java">int i = 65; +char c = (char) i;</programlisting> </listitem> <listitem> - <programlisting language="java"> public static void main(String[] args) { - - final int timeInSeconds = 15391; - - final int minutesRemaining = timeInSeconds / 60; - final int seconds = timeInSeconds % 60; - - final int hours = minutesRemaining / 60; - final int minutes = minutesRemaining % 60; - - System.out.println("Hours:" + hours); - System.out.println("Minutes:" + minutes); - System.out.println("Seconds:" + seconds); - }</programlisting> + <para>We consider the binary representations of 66200 and 64200:</para> + + <programlisting language="java">System.out.println(Integer.toBinaryString(66200)); // Yields 1_00000010_10011000 +System.out.println(Integer.toBinaryString(64200)); // Yields 11111010_11001000</programlisting> + + <para>Thus 64200 fits into a two byte <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> whereas 66200 does not.</para> </listitem> - </orderedlist> + </itemizedlist> </answer> </qandaentry> </qandadiv> </qandaset> - <qandaset defaultlabel="qanda" xml:id="sd1_qanda_typeAssignCompat"> - <title>Assignment and type safety</title> + <qandaset defaultlabel="qanda" xml:id="qandaNarrowing137toByte"> + <title><code>Get a byte from 137</code></title> <qandadiv> <qandaentry> <question> - <para>We consider:</para> - - <programlisting language="java">int i = -21; -double d = i;</programlisting> - - <para>This snippet shows perfectly correct <xref - linkend="glo_Java"/> code. However <xref - linkend="sd1_fig_typeSafety"/> suggests we should not be allowed - to assign an <code>int</code> to a <code>double</code> value due - to type safety.</para> - - <para>Even worse: Swapping types yields a compile time - error:</para> + <para>Consider:</para> - <programlisting language="java">double d = 2.4; -int i = d; // Error: Incompatible types</programlisting> + <programlisting language="java">int i = 139; +byte b = (byte) i; +System.out.println(b);</programlisting> - <para>Why is this? Make an educated guess.</para> + <para>Explain in detail why execution results in a value of <computeroutput>-117</computeroutput>.</para> </question> <answer> - <para>The first snippet compiles by using the widening - conversion: When assigning <code>d = i</code> the <xref - linkend="glo_Java"/> compiler implicitly converts the - <code>int</code> into a <code>double</code> value.</para> - - <para>Turning a double into an int is more cumbersome: The - expression <code>i = 3.5</code> could be evaluated by agreeing - on a specific rounding prescription. But what about i = - 3457357385783573478955345.45? A <xref linkend="glo_Java"/> - <code>int</code>'s maximum value is <inlineequation> - <m:math display="inline"> - <m:mrow> - <m:msup> - <m:mi>2</m:mi> - - <m:mi>31</m:mi> - </m:msup> - - <m:mo>-</m:mo> - - <m:mi>1</m:mi> - </m:mrow> - </m:math> - </inlineequation>exceeding the former <code>double</code> - value.</para> - - <para>Conclusion: <xref linkend="glo_Java"/> disallows double to - int assignments unless using a so called cast (explicit type - conversion):</para> + <para>A four byte <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> representation of 139 reads <code>00000000_00000000_00000000_10001011</code>. The cast <code>b = (byte) i</code> will strip the leading three bytes leaving <code>b</code> containing <code>10001011</code>.</para> - <programlisting language="java">double d = 2.4; -int i = (int) d; // Explicit cast double to int</programlisting> + <para>Since byte values in <xref linkend="glo_Java"/> are being represented as signed values using two-complement notation the result is -117.</para> </answer> </qandaentry> </qandadiv> </qandaset> <qandaset defaultlabel="qanda" xml:id="sd1QandaLong2Float"> - <title>Reducing <code>long</code> to <code>int</code></title> + <title>Reducing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> (difficult)</title> <qandadiv> <qandaentry> <question> - <para>Joe programmer intends to map positive <code>long</code> - values to <code>int</code> values. This requires scaling down - <quote>half</quote> the <code>long</code> data type's range - <inlineequation> + <para>For changing a map's scale from fine to coarse Joe programmer intends to map positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> values to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values. This requires scaling down <quote>half</quote> the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> data type's range <inlineequation> <m:math display="inline"> <m:mrow> <m:mo>[</m:mo> @@ -2522,8 +1995,7 @@ int i = (int) d; // Explicit cast double to int</programlisting> <m:mo>]</m:mo> </m:mrow> </m:math> - </inlineequation> to the <code>int</code>'s range of - <inlineequation> + </inlineequation> to the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s range of <inlineequation> <m:math display="inline"> <m:mrow> <m:mo>[</m:mo> @@ -2567,11 +2039,11 @@ int i = (int) d; // Explicit cast double to int</programlisting> </tr> <tr> - <th><code>long</code></th> + <th><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code></th> <th><code>remark</code></th> - <th><code>int</code></th> + <th><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code></th> <th>remark</th> </tr> @@ -2691,10 +2163,7 @@ int i = (int) d; // Explicit cast double to int</programlisting> <m:mi>2</m:mi> </m:mrow> </m:math> - </inlineequation> or <code - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE"><varname - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE">Long.MAX_VALUE</varname></code> - - 1</td> + </inlineequation> or <code xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE"><varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE">Long.MAX_VALUE</varname></code> - 1</td> <td align="right">2147483647</td> @@ -2712,8 +2181,7 @@ int i = (int) d; // Explicit cast double to int</programlisting> <m:mi>1</m:mi> </m:mrow> </m:math> - </inlineequation> or <varname - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</varname></td> + </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</varname></td> </tr> <tr> @@ -2733,8 +2201,7 @@ int i = (int) d; // Explicit cast double to int</programlisting> <m:mi>1</m:mi> </m:mrow> </m:math> - </inlineequation> or <varname - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE">Long.MAX_VALUE</varname></td> + </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE">Long.MAX_VALUE</varname></td> <td align="right">2147483647</td> @@ -2752,13 +2219,11 @@ int i = (int) d; // Explicit cast double to int</programlisting> <m:mi>1</m:mi> </m:mrow> </m:math> - </inlineequation> or <varname - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</varname></td> + </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</varname></td> </tr> </informaltable> - <para>Joe's idea is dividing <code>long</code> values by - <inlineequation> + <para>Joe's idea is dividing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> values by <inlineequation> <m:math display="inline"> <m:msup> <m:mi>2</m:mi> @@ -2778,8 +2243,7 @@ int i = (int) d; // Explicit cast double to int</programlisting> </m:msup> </m:mrow> </m:math> - </inlineequation> will be reduced to the intended value of - <inlineequation> + </inlineequation> will be reduced to the intended value of <inlineequation> <m:math display="inline"> <m:mrow> <m:mo>-</m:mo> @@ -2799,17 +2263,13 @@ int i = (int) d; // Explicit cast double to int</programlisting> <m:mi>32</m:mi> </m:msup> </m:math> - </inlineequation> seems to be equal to <code>2 * (<link - xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</link> - + 1))</code> (why?) Joe's first attempt reads:</para> + </inlineequation> seems to be equal to <code>2 * (<link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</link> + 1))</code> (why?) Joe's first attempt reads:</para> - <programlisting language="java" linenumbering="numbered" - startinglinenumber="26">final long longValue = 2147483648L; + <programlisting language="java" linenumbering="numbered" startinglinenumber="26">final long longValue = 2147483648L; final int reducedValue = (int) (longValue / (2 * (Integer.MAX_VALUE + 1))); System.out.println(reducedValue);</programlisting> - <para>Unfortunately the results are not promising. This code - merely results in a runtime error:</para> + <para>Unfortunately the results are not promising. This code merely results in a runtime error:</para> <screen>/usr/lib/jvm/java-8-oracle/bin/java ... Exception in thread "main" java.lang.ArithmeticException: / by zero @@ -2817,21 +2277,15 @@ Exception in thread "main" java.lang.ArithmeticException: / by zero Process finished with exit code 1</screen> - <para>Explain the underlying problem and correct Joe's - error.</para> + <para>Explain the underlying problem and correct Joe's error.</para> <tip> - <para>It may be helpful thinking of a smaller example before. - Consider hypothetic integer types <quote>TinyLong</quote> and - <quote>TinyInt</quote> requiring 4 and 2 bits - respectively.</para> + <para>It may be helpful thinking of a smaller example before. Consider hypothetic integer types <quote>TinyLong</quote> and <quote>TinyInt</quote> requiring four and two bits respectively.</para> </tip> </question> <answer> - <para>As a prerequisite we represent the scaling of a hypothetic - integer type <quote>TinyLong</quote> to a smaller type - <quote>TinyInt</quote> of 4 and 2 bits respectively:</para> + <para>As a prerequisite we represent the scaling of a hypothetic integer type <quote>TinyLong</quote> of four bits to a smaller type <quote>TinyInt</quote> of two bits:</para> <informaltable border="1"> <colgroup width="20%"/> @@ -2856,158 +2310,563 @@ Process finished with exit code 1</screen> <colgroup width="5%"/> - <colgroup width="5%"/> + <colgroup width="5%"/> + + <colgroup width="5%"/> + + <colgroup width="5%"/> + + <colgroup width="5%"/> + + <colgroup width="5%"/> + + <colgroup width="5%"/> + + <tr> + <td><quote>TinyLong</quote>, n = 4</td> + + <td>-8</td> + + <td>-7</td> + + <td>-6</td> + + <td>-5</td> + + <td>-4</td> + + <td>-3</td> + + <td>-2</td> + + <td>-1</td> + + <td>0</td> + + <td>1</td> + + <td>2</td> + + <td>3</td> + + <td>4</td> + + <td>5</td> + + <td>6</td> + + <td>7</td> + </tr> + + <tr> + <td><quote>TinyInt</quote>, n = 2</td> + + <td colspan="4">-2</td> + + <td colspan="4">-1</td> + + <td colspan="4">0</td> + + <td colspan="4">1</td> + </tr> + </informaltable> + + <para>Joe's assumption for these particular values implies dividing <quote>TinyLong</quote> values by <inlineequation> + <m:math display="inline"> + <m:msup> + <m:mi>2</m:mi> + + <m:mi>2</m:mi> + </m:msup> + </m:math> + </inlineequation> (truncating). This indeed yields the desired result for non-negative values. So why does Joe encounter a division by zero runtime exception when executing <code>longValue / (2 * (Integer.MAX_VALUE + 1))</code> ?</para> + + <para>Unfortunately Joe's implementation is seriously flawed for even two reasons:</para> + + <orderedlist> + <listitem> + <para>The constant <code>Integer.MAX_VALUE</code> already suggests we will not be able to increase its value while staying as an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>. The expression <code>Integer.MAX_VALUE + 1</code> will be evaluated using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> rather than <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic thus returning <code>Integer.MIN_VALUE</code> (negative!) due to an arithmetic overflow:</para> + + <programlisting language="java"> 01111111_11111111_11111111_11111111 ++ 00000000_00000000_00000000_00000001 +_____________________________________ + 10000000_00000000_00000000_00000000</programlisting> + + <para>The expression <code>2 * (Integer.MAX_VALUE + 1)</code> then gives rise to a second overflow error:</para> + + <programlisting language="java"> 10000000_00000000_00000000_00000000 ++ 10000000_00000000_00000000_00000000 +_____________________________________ + 00000000_00000000_00000000_00000000</programlisting> + </listitem> + </orderedlist> + + <para>Both errors combined (surprisingly) result in a value of <code>0</code> explaining the <quote>division by zero</quote> error message. There are two possible solutions:</para> + + <glosslist> + <glossentry> + <glossterm><code>(int) (longValue / (2L * (Integer.MAX_VALUE + 1L)))</code></glossterm> + + <glossdef> + <para>Introducing <code>2L</code> or <code>1L</code> (one is sufficient) in favour of simply using 2 and 1 turns both addition and multiplication into operations involving at least one long argument. Thus for both operations the <xref linkend="glo_Java"/> runtime will use <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic returning the desired <quote>reducing</quote> factor of <inlineequation> + <m:math display="inline"> + <m:msup> + <m:mi>2</m:mi> + + <m:mi>32</m:mi> + </m:msup> + </m:math> + </inlineequation> of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><code>(int) (longValue / 2 / (Integer.MAX_VALUE + 1L))</code></glossterm> + + <glossdef> + <para>Same result as before.</para> + + <note> + <para>This time the expression starts with <code>longValue / 2 ...</code> Since the variable <code>longValue</code> is of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> the expression <code>longValue / 2</code> will be evaluated by the <xref linkend="glo_Java"/> runtime using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetics. The result will subsequently be multiplied with <code>Integer.MAX_VALUE + 1L</code> again using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic.</para> + </note> + </glossdef> + </glossentry> + </glosslist> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + </section> + </section> + + <section xml:id="sd1SectOperator"> + <title>Operators and expressions</title> + + <figure xml:id="sd1_fig_binaryPlusOperator"> + <title>The binary plus operator</title> + + <mediaobject> + <imageobject> + <imagedata fileref="Ref/LangFundament/operatorSum.svg"/> + </imageobject> + </mediaobject> + </figure> + + <qandaset defaultlabel="qanda" xml:id="sd1_qanda_expressionTypes"> + <title>Expressions and type</title> + + <qandadiv> + <qandaentry> + <question> + <para>Consider the following code segment:</para> + + <programlisting language="java">short a = 4; <co linkends="sd1_co_expressionTypeIntToShort-1" xml:id="sd1_co_expressionTypeIntToShort-1-co"/> +short sum = a + 7; <co linkends="sd1_co_expressionTypeIntToShort-2" xml:id="sd1_co_expressionTypeIntToShort-2-co"/></programlisting> + + <calloutlist> + <callout arearefs="sd1_co_expressionTypeIntToShort-1-co" xml:id="sd1_co_expressionTypeIntToShort-1"> + <para>Declaring a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable <code>a</code> assigning 4.</para> + </callout> + + <callout arearefs="sd1_co_expressionTypeIntToShort-2-co" xml:id="sd1_co_expressionTypeIntToShort-2"> + <para>Declaring a short variable <code>sum</code> assigning 4 + 7. This yields a compile time error <computeroutput>Type mismatch: cannot convert from int to short</computeroutput>.</para> + </callout> + </calloutlist> + + <para>On contrary the following snippet will compile flawlessly:</para> + + <programlisting language="java">short sum = 4 + 7; </programlisting> + + <para>Explain this strange behaviour.</para> + </question> + + <answer> + <para>The expression <code>a + 7</code> contains an operand of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> to the left of the plus operator and an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literal <code>7</code> to its right. Thus the plus operator yields an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> result (the <quote>biggest</quote> type of both operands) which cannot be assigned to the variable <code>sum</code> of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code>.</para> + + <para>The very same argument seems to apply for the expression <code>4 + 7</code> even better: This time the plus operator acts on two <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> operands. However the <xref linkend="glo_Java"/> compiler is <quote>clever</quote> enough casting the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> result 11 to the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable <code>sum</code> without any loss of information.</para> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + + <qandaset defaultlabel="qanda" xml:id="sd1_qanda_integerDivision"> + <title>Dividing values</title> + + <qandadiv> + <qandaentry> + <question> + <para>Consider the following statement:</para> + + <programlisting language="java">System.out.println(8 / 9);</programlisting> + + <para>The output is <computeroutput>0</computeroutput> rather than <code>0.888888...</code> . Explain this result.</para> + </question> + + <answer> + <para>The divide operator acts on two <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literal values 8 an 9. Thus irrespective of the underlying floating point result the resulting type is int .</para> + + <para>According to <uri xlink:href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-300-A-2">http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-300-A-2</uri> the floating point value 0.88888... will be <quote>rounded toward zero</quote> yielding an int value of <code>0</code> rather than <code>1</code>.</para> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + + <qandaset defaultlabel="qanda" xml:id="sd1_qanda_integerSumOverflow"> + <title>Adding values</title> + + <qandadiv> + <qandaentry> + <question> + <para>Consider the following code:</para> + + <programlisting language="java">System.out.println(2147483647 + 1); +System.out.println(2147483647 + 1L);</programlisting> + + <para>This yields:</para> + + <screen>-2147483648 +2147483648</screen> + + <para>Explain this result. Please refrain from answering <quote>Thats what bankers do!</quote></para> + </question> + + <answer> + <para>The value 2147483647 is actually the largest possible <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</classname>.<property xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#MAX_VALUE">MAX_VALUE</property>. The plus operator in the first expression <code>2147483647 + 1</code> acts on two operands of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>. Thus the resulting sum will be of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> as well irrespective of its value.</para> + + <para>On binary level adding an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value of <code>1</code> results in:</para> + + <screen> 01111111_11111111_11111111_11111111 2147483647 ++ 00000000_00000000_00000000_00000001 + 1 +------------------------------------- ------------ + 10000000_00000000_00000000_00000000 -2147483648</screen> + + <para>With respect to two-complement representation of signed <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values this is actually an overflow error: There simply is no positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value of 2147483648 in <xref linkend="glo_Java"/>. See <uri xlink:href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-220">http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-220</uri> for details.</para> + + <para>On contrary the plus operator in the expression <code>2147483647 + 1L</code> acts on an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to its left and a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> to its right. The result will thus be of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>:</para> + + <screen> 01111111_11111111_11111111_11111111 2147483647 ++ 00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001 + 1 +------------------------------------------------------------------------- ------------ + 00000000_00000000_00000000_00000000_10000000_00000000_00000000_00000000 2147483648</screen> + + <para>Due to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>'s larger allocation of eight rather than four bytes execution reveals no overflow problem thus yielding the expected result.</para> + </answer> + </qandaentry> + </qandadiv> + </qandaset> + </section> + + <section xml:id="sd1_sect_langFundamental_exercises"> + <title>Exercises</title> + + <section xml:id="sw1SectSimpleExpressions"> + <title>Simple expressions</title> + + <qandaset defaultlabel="qanda" xml:id="sw1QandaGuessingResults"> + <title>Guessing results</title> + + <qandadiv> + <qandaentry> + <question> + <para>Consider the following code segment:</para> + + <programlisting language="java"> int a = 3; + a++; //Incrementing a by 1 --> a==4 + + int b = a; // TODO + + b--; // TODO + --b; // TODO + + int c = b; // TODO + + b = ++a; // TODO + int e = a++; // TODO + + a *= b; // TODO + + System.out.println("a=" + a); + System.out.println("b=" + b); + System.out.println("c=" + c); + System.out.println("e=" + e);</programlisting> + + <para>We want to guess the expected result. Copy/paste the above code into a main() method body within your IDE of choice (probably Eclipse).</para> + + <para><emphasis role="bold">Do not execute this code yet</emphasis> but replace the <quote>// TODO</quote> comments by guessing the respective variable's value beforehand:</para> + + <para><computeroutput>a=...</computeroutput></para> + + <para><computeroutput>b=...</computeroutput></para> + + <para><computeroutput>c=...</computeroutput></para> + + <para><computeroutput>e=...</computeroutput></para> + + <para>After finishing your guesses execute your code and (possibly) start wailing about your success rate.</para> + + <tip> + <para>Both <code>x++</code> (postfix notation) and <code>++x</code> (infix notation) are expressions themselves which might even be rewritten as <code>(x++)</code> and <code>(++x)</code> for the sake of clarity. The difference is not about operator precedence rules but simply about the values of these expressions when being assigned to other variables.</para> + </tip> + </question> + + <answer> + <para>As inferred by the hint the biggest problem is about understanding postfix and infix notation of the operators <code>++</code> and <code>--</code>. A corresponding expression evaluates to:</para> + + <itemizedlist> + <listitem> + <para><code>a = x++</code> yields a ==x: The value of x <emphasis role="bold">before</emphasis> incrementing it.</para> + </listitem> + + <listitem> + <para><code>a = ++x</code> yields a ==(x + 1): The value of x <emphasis role="bold">after</emphasis> incrementing it.</para> + </listitem> + </itemizedlist> + + <para>The rest is just obeying the <quote>due diligence</quote> rule set:</para> + + <programlisting language="java"> int a = 3; + a++; //Incrementing a by 1 --> a==4 + + int b = a; // Assigning value of a --> b==4 + + b--; // Decrementing b by 1 --> b==3 + --b; // Decrementing b by 1 --> b==2 + + int c = b; // c == 2; + + b = ++a; // Incrementing a by 1 -->a==5, then assigning to b --> b == 5 + int e = a++; // Assigning a to e --> e==5, then incrementing a --> a==6 + + a *= b; // Multiplying a with b and assigning the result to a --> a==30 - <colgroup width="5%"/> + System.out.println("a=" + a); + System.out.println("b=" + b); + System.out.println("c=" + c); + System.out.println("e=" + e);</programlisting> + </answer> + </qandaentry> + </qandadiv> + </qandaset> - <colgroup width="5%"/> + <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleArea"> + <title>Calculating a circle area</title> - <colgroup width="5%"/> + <qandadiv> + <qandaentry> + <question> + <para>The area <inlineequation> + <m:math display="inline"> + <m:mi>a</m:mi> + </m:math> + </inlineequation> of a given circle having radius <inlineequation> + <m:math display="inline"> + <m:mi>r</m:mi> + </m:math> + </inlineequation> is being obtained by <inlineequation> + <m:math display="inline"> + <m:mrow> + <m:mi>a</m:mi> - <colgroup width="5%"/> + <m:mo>=</m:mo> - <colgroup width="5%"/> + <m:mrow> + <m:mi>π</m:mi> - <tr> - <td><quote>TinyLong</quote>, n = 4</td> + <m:mo>×</m:mo> - <td>-8</td> + <m:msup> + <m:mi>r</m:mi> - <td>-7</td> + <m:mi>2</m:mi> + </m:msup> + </m:mrow> + </m:mrow> + </m:math> + </inlineequation>. Complete the following code to calculate the result and write it to standard output using <code>System.out.println(...)</code>:</para> - <td>-6</td> + <programlisting language="java">public static void main(String[] args) { + + double radius = 2.31; // A circle having a radius (given e.g. in mm). + double pi = 3.1415926; // Constant relating a circle's radius, + //perimeter and area. + + // TODO: Write the circle's area to standard output +}</programlisting> - <td>-5</td> + <tip> + <para>You may want to read the <link xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc1_html_4">overview section</link> on statements.</para> + </tip> + </question> - <td>-4</td> + <answer> + <glosslist> + <glossentry> + <glossterm>Using a mere expression</glossterm> - <td>-3</td> + <glossdef> + <programlisting language="java">public static void main(String[] args) { + + double radius = 2.31; // A circle having a radius (given e.g. in mm). + double pi = 3.1415926; // Constant relating a circle's radius, + //perimeter and area. + + System.out.println(pi * radius * radius); +}</programlisting> + </glossdef> + </glossentry> - <td>-2</td> + <glossentry> + <glossterm>Using a variable</glossterm> - <td>-1</td> + <glossdef> + <para>Instead of immediately using the expression as an argument to <code>System.out.println(...)</code> we may assign its value to a variable prior to output creation:</para> - <td>0</td> + <programlisting language="java">public static void main(String[] args) { + + double radius = 2.31; // A circle having a radius (given e.g. in mm). + double pi = 3.1415926; // Constant relating a circle's radius, + //perimeter and area. + + double area = pi * radius * radius; + System.out.println(area); +}</programlisting> + </glossdef> + </glossentry> + </glosslist> + </answer> + </qandaentry> + </qandadiv> + </qandaset> - <td>1</td> + <qandaset defaultlabel="qanda" xml:id="sd1QandaTemperatureConvert"> + <title>Converting temperature values</title> - <td>2</td> + <qandadiv> + <qandaentry> + <question> + <para>Write an application converting temperature values being represented as degree centigrade to kelvin and Fahrenheit:</para> - <td>3</td> + <programlisting language="java"> public static void main(String[] args) { - <td>4</td> + double temperatureCelsius = 23.2; + + ... + + System.out.println("Celsius: " + temperatureCelsius); + System.out.println("Kelvin: " + temperatureKelvin); + System.out.println("Fahrenheit: " + temperatureFahrenheit); + }</programlisting> + </question> - <td>5</td> + <answer> + <programlisting language="java"> public static void main(String[] args) { - <td>6</td> + double temperatureCelsius = 23.2; + + double + temperatureKelvin = temperatureCelsius + 273.15, + temperatureFahrenheit = 9 * temperatureCelsius / 5 + 32; + + System.out.println("Celsius: " + temperatureCelsius); + System.out.println("Kelvin: " + temperatureKelvin); + System.out.println("Fahrenheit: " + temperatureFahrenheit); + }</programlisting> + </answer> + </qandaentry> + </qandadiv> + </qandaset> - <td>7</td> - </tr> + <qandaset defaultlabel="qanda" xml:id="sd1QandaTimeUnits"> + <title>Time unit conversion</title> - <tr> - <td><quote>TinyInt</quote>, n = 2</td> + <qandadiv> + <qandaentry> + <question> + <para>This exercise consists of two parts:</para> - <td colspan="4">-2</td> + <orderedlist> + <listitem> + <para>Write an application converting a (seconds, minutes ,hours) time specification to seconds:</para> - <td colspan="4">-1</td> + <programlisting language="java"> public static void main(String[] args) { - <td colspan="4">0</td> + final int + seconds = 31, + minutes = 16, + hours = 4; + + int timeInSeconds ... + + System.out.println("Time in seconds:" + timeInSeconds); + }</programlisting> - <td colspan="4">1</td> - </tr> - </informaltable> + <para>The expected output reads:</para> - <para>Joe's assumption for these particular values implies - dividing <quote>TinyLong</quote> values by <inlineequation> - <m:math display="inline"> - <m:msup> - <m:mi>2</m:mi> + <screen>Time in seconds:15391</screen> + </listitem> - <m:mi>2</m:mi> - </m:msup> - </m:math> - </inlineequation> (truncating). This indeed yields the desired - result for non-negative values. So why does Joe encounter a - division by zero runtime exception when executing - <code>longValue / (2 * (Integer.MAX_VALUE + 1))</code> ?</para> + <listitem> + <para>Reverse the previous part of this exercise: Convert a time specification in seconds to (seconds, minutes ,hours) as in:</para> - <para>Unfortunately Joe's implementation is seriously flawed for - even two reasons:</para> + <programlisting language="java"> public static void main(String[] args) { - <orderedlist> - <listitem> - <para>The constant <code>Integer.MAX_VALUE</code> already - suggests we will not be able to increase its value while - staying as an <code>int</code>. The expression - <code>Integer.MAX_VALUE + 1</code> will be evaluated using - <code>int</code> rather than <code>long</code> arithmetic - thus returning <code>Integer.MIN_VALUE</code> (negative!) - due to an arithmetic overflow:</para> + final int timeInSeconds = 15391; + + ... + + System.out.println("Hours:" + hours); + System.out.println("Minutes:" + minutes); + System.out.println("Seconds:" + seconds); + }</programlisting> - <programlisting language="java"> 01111111_11111111_11111111_11111111 -+ 00000000_00000000_00000000_00000001 -_____________________________________ - 10000000_00000000_00000000_00000000</programlisting> + <para>The expected output reads:</para> - <para>The expression <code>2 * (Integer.MAX_VALUE + - 1)</code> then gives rise to a second overflow error:</para> + <screen>Hours:4 +Minutes:16 +Seconds:31</screen> - <programlisting language="java"> 10000000_00000000_00000000_00000000 -+ 10000000_00000000_00000000_00000000 -_____________________________________ - 00000000_00000000_00000000_00000000</programlisting> + <tip> + <para>Consider the <link xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html">remainder operator <quote>%</quote></link> (modulo operator).</para> + </tip> </listitem> </orderedlist> + </question> - <para>Both errors combined (surprisingly) result in a value of - <code>0</code> explaining the <quote>division by zero</quote> - error message. There are two possible solutions:</para> - - <glosslist> - <glossentry> - <glossterm><code>(int) (longValue / (2L * (Integer.MAX_VALUE - + 1L)))</code></glossterm> - - <glossdef> - <para>Introducing <code>2L</code> or <code>1L</code> (one - is sufficient) in favour of simply using 2 and 1 turns - both addition and multiplication into operations involving - at least one long argument. Thus for both operations the - <xref linkend="glo_Java"/> runtime will use - <code>long</code> arithmetic returning the desired - <quote>reducing</quote> factor of <inlineequation> - <m:math display="inline"> - <m:msup> - <m:mi>2</m:mi> + <answer> + <orderedlist> + <listitem> + <para>A straightforward solution reads:</para> - <m:mi>32</m:mi> - </m:msup> - </m:math> - </inlineequation> of type <code>long</code>.</para> - </glossdef> - </glossentry> + <para><programlisting language="java"> public static void main(String[] args) { - <glossentry> - <glossterm><code>(int) (longValue / 2 / (Integer.MAX_VALUE + - 1L))</code></glossterm> + final int + seconds = 31, + minutes = 16, + hours = 4; + + final int timeInSeconds = seconds + 60 * (minutes + 60 * hours); + + System.out.println("Time in seconds:" + timeInSeconds); + }</programlisting></para> + </listitem> - <glossdef> - <para>Same result as before.</para> + <listitem> + <programlisting language="java"> public static void main(String[] args) { - <note> - <para>This time the expression starts with - <code>longValue / 2 ...</code> Since the variable - <code>longValue</code> is of type <code>long</code> the - expression <code>longValue / 2</code> will be evaluated - by the <xref linkend="glo_Java"/> runtime using - <code>long</code> arithmetics. The result will - subsequently be multiplied with <code>Integer.MAX_VALUE - + 1L</code> again using <code>long</code> - arithmetic.</para> - </note> - </glossdef> - </glossentry> - </glosslist> + final int timeInSeconds = 15391; + + final int minutesRemaining = timeInSeconds / 60; + final int seconds = timeInSeconds % 60; + + final int hours = minutesRemaining / 60; + final int minutes = minutesRemaining % 60; + + System.out.println("Hours:" + hours); + System.out.println("Minutes:" + minutes); + System.out.println("Seconds:" + seconds); + }</programlisting> + </listitem> + </orderedlist> </answer> </qandaentry> </qandadiv> @@ -3033,28 +2892,19 @@ _____________________________________ </question> <answer> - <para>The expression <code>x == y</code> evaluates to - <code>false</code>. This surprising result is due to limited - precision regarding both <code>float</code> and - <code>double</code> IEEE representations: A given value will be - approximated as close as possible.</para> + <para>The expression <code>x == y</code> evaluates to <code>false</code>. This surprising result is due to limited precision regarding both <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> IEEE representations: A given value will be approximated as close as possible.</para> - <para>Adding <code>System.out.println(x - y)</code> yields a - value of -1.1102230246251565E-16 denoting the representational - deviation of <code>x</code> and <code>y</code>.</para> + <para>Adding <code>System.out.println(x - y)</code> yields a value of -1.1102230246251565E-16 denoting the representational deviation of <code>x</code> and <code>y</code>.</para> - <para>So we may compare <code>float</code> and - <code>double</code> values by providing a representational error - limit:</para> + <para>Compare <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> values thus requires providing a representational error limit below which two values will be regarded as equal:</para> <programlisting language="java">final double a = 0.7; final double b = 0.9; final double x = a + 0.1; final double y = b - 0.1; -System.out.println(<link - xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#abs-double-">Math.abs</link>(x - y) < 1.E-14);</programlisting> +System.out.println(<link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#abs-double-">Math.abs</link>(x - y) < 1.E-14);</programlisting> - <para>This implements the boolean expression <inlineequation> + <para>This represents the boolean expression <inlineequation> <m:math display="inline"> <m:mrow> <m:mrow> @@ -3096,9 +2946,7 @@ System.out.println(<link <qandadiv> <qandaentry> <question> - <para>We want to calculate the compounded interest starting from - an initial capital, a given annual interest rate and a duration - of three years. Consider the following code fragment:</para> + <para>We want to calculate the compounded interest starting from an initial capital, a given annual interest rate and a duration of three years. Consider the following code fragment:</para> <programlisting language="java"> public static void main(String[] args) { @@ -3120,14 +2968,12 @@ Annual interest rate:1.5 Capital after three years:233.31175902999993</screen> <tip> - <para>In case you are unsure read about calculating the - compounded interest.</para> + <para>In case you are unsure read about calculating the compounded interest.</para> </tip> </question> <answer> - <para>We obtain the compounded interest by multiplying the - initial capital by <inlineequation> + <para>We obtain the compounded interest by multiplying the initial capital by <inlineequation> <m:math display="inline"> <m:mrow> <m:mn>1</m:mn> @@ -3143,11 +2989,9 @@ Capital after three years:233.31175902999993</screen> </m:mrow> </m:mrow> </m:math> - </inlineequation> for each year where r represents the given - interest rate.</para> + </inlineequation> for each year where r represents the given interest rate.</para> - <para>Since we have not yet introduced loops this multiplication - has to be repeated three times:</para> + <para>Since we have not yet introduced loops this multiplication has to be repeated three times:</para> <programlisting language="java"> public static void main(String[] args) { @@ -3167,8 +3011,7 @@ Capital after three years:233.31175902999993</screen> System.out.println("Capital after three years:" + capitalAtThreeYears); }</programlisting> - <para>We might as well use a single arithmetic expression to - achieve the same result:</para> + <para>We might as well use a single arithmetic expression to achieve the same result:</para> <programlisting language="java"> public static void main(String[] args) { @@ -3185,9 +3028,7 @@ Capital after three years:233.31175902999993</screen> System.out.println("Capital after three years:" + capitalAtThreeYears); }</programlisting> - <para>In <xref linkend="sd1InterestCalculator"/> we will present - a more elaborate solution based on loops and class - methods.</para> + <para>In <xref linkend="sd1InterestCalculator"/> we will present a more elaborate solution based on loops and class methods.</para> </answer> </qandaentry> </qandadiv> @@ -3204,8 +3045,7 @@ Capital after three years:233.31175902999993</screen> <programlisting language="java">byte a = 127; System.out.println("value=" + a); a++; -System.out.println("New value=" + a); -</programlisting> +System.out.println("New value=" + a);</programlisting> <para>This will produce the following output:</para> @@ -3214,8 +3054,7 @@ New value=-128</screen> <para>Explain this strange behaviour.</para> - <para>Moreover you'll find the following code snippet yields a - compile time error:</para> + <para>Moreover you'll find the following code snippet yields a compile time error:</para> <programlisting language="java">byte a = 127; System.out.println("value=" + a); @@ -3225,20 +3064,14 @@ System.out.println("New value=" + a);</programlisting> <para>Explain this error's cause.</para> <tip> - <para>You may want to read the <link - xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc1_html_4">overview - section</link> on statements.</para> + <para>You may want to read the <link xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc1_html_4">overview section</link> on statements.</para> </tip> </question> <answer> - <para>A byte variable ranges from -128 to +127. Thus - incrementing 127 by 1 yields -128 and thus an overflow - error.</para> + <para>A byte variable ranges from -128 to +127. Thus incrementing 127 by 1 yields -128 and thus an overflow error.</para> - <para>Since <xref linkend="glo_Java"/> uses <link - xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's - complement</link> representation we have:</para> + <para>Since <xref linkend="glo_Java"/> uses <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation we have:</para> <informaltable border="1"> <tr> @@ -3260,25 +3093,18 @@ System.out.println("New value=" + a);</programlisting> </tr> </informaltable> - <para>On machine level the above calculation is just an ordinary - addition.</para> + <para>On machine level the above calculation is just an ordinary addition.</para> - <para>Conclusion: Watch out when doing (integer) - arithmetic!</para> + <para>Conclusion: Watch out when doing (integer) arithmetic!</para> - <para>The compile time error is due to the definition of the - <quote>+</quote> operator in Java always returning an - <code>int</code> rather than a byte. Consider:</para> + <para>The compile time error is due to the definition of the <quote>+</quote> operator in Java always returning an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> rather than a byte. Consider:</para> <programlisting language="java"> byte a = 120, b = 10; System.out.println(a + b);</programlisting> - <para>This yields the expected output of 130 and corresponds to - an <code>int</code> value.</para> + <para>This yields the expected output of 130 and corresponds to an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value.</para> - <para>If the expression <code>a + b</code> was of data type - <code>byte</code> an arithmetic overflow as in the subsequent - code example would occur:</para> + <para>If the expression <code>a + b</code> was of data type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> an arithmetic overflow as in the subsequent code example would occur:</para> <programlisting language="java"> byte a = 120, b = 10; @@ -3286,18 +3112,11 @@ System.out.println("New value=" + a);</programlisting> System.out.println(sum);</programlisting> - <para>The explicit type conversion (a so called type cast or - cast for short) forces the 4-byte integer into a one-byte - variable <code>sum</code> thereby loosing the original value and - returning -126 instead.</para> + <para>The explicit type conversion (a so called type cast or cast for short) forces the 4-byte integer into a one-byte variable <code>sum</code> thereby loosing the original value and returning -126 instead.</para> </answer> </qandaentry> </qandadiv> </qandaset> - - <section xml:id="sw1SectAssignArithmetics"> - <title>Assignments and simple arithmetics</title> - </section> </section> <section xml:id="sw1StringLiterals"> @@ -3318,10 +3137,11 @@ System.out.println("New value=" + a);</programlisting> }</programlisting> - <para>Complete the above snippet to produce the following - output:</para> + <para>Complete the above snippet by adding code to produce the following output:</para> <screen>3 Games having 22 players each results in 66 players altogether.</screen> + + <para>Write your code in a way that changing i.e. <code>final int games = 4</code> will result in a corresponding change of output.</para> </question> <answer> @@ -3350,17 +3170,10 @@ System.out.println("New value=" + a);</programlisting> System.out.println("Some 'special' words."); }</programlisting> - <para>The corresponding output will be <computeroutput>Some - 'special' words.</computeroutput>. Change the above code to - replace the single quotes by double quotes producing the output - <computeroutput>Some "special" words.</computeroutput> - instead.</para> + <para>The corresponding output will be <computeroutput>Some 'special' words.</computeroutput>. Change the above code to replace the single quotes by double quotes producing the output <computeroutput>Some "special" words.</computeroutput> instead.</para> <tip> - <para>Hunt for <quote>java escape double quote</quote> and - read about <link - xlink:href="https://proquest.safaribooksonline.com/book/programming/java/9780992133047/chapter-2-language-fundamentals/toc6_html_2#readertoolbar2">character - literals</link>.</para> + <para>Hunt for <quote>java escape double quote</quote> and read about <link xlink:href="https://proquest.safaribooksonline.com/book/programming/java/9780992133047/chapter-2-language-fundamentals/toc6_html_2#readertoolbar2">character literals</link>.</para> </tip> </question> @@ -3372,8 +3185,7 @@ System.out.println("New value=" + a);</programlisting> <glossterm>Perfectly obvious</glossterm> <glossdef> - <para>Inside a string literal the string terminating - character (") may be escaped using backslashes:</para> + <para>Inside a string literal the string terminating character (") may be escaped using backslashes:</para> <programlisting language="java">System.out.println("Some \"special\" words.");</programlisting> </glossdef> @@ -3383,8 +3195,7 @@ System.out.println("New value=" + a);</programlisting> <glossterm>Even more clumsy</glossterm> <glossdef> - <para>Double quotes may be also represented by their char - (not string!) literal:</para> + <para>Double quotes may be also represented by their char (not string!) literal:</para> <programlisting language="java">System.out.println("Some " + '"' + "special" + '"' + " words.");</programlisting> </glossdef> @@ -3401,23 +3212,19 @@ System.out.println("New value=" + a);</programlisting> <qandadiv> <qandaentry> <question> - <para xml:id="sw1QandaStringCodingBatExtra">Solve the following - external exercises:</para> + <para xml:id="sw1QandaStringCodingBatExtra">Solve the following external exercises:</para> <itemizedlist> <listitem> - <para - xlink:href="http://codingbat.com/prob/p171896">helloName</para> + <para xlink:href="http://codingbat.com/prob/p171896">helloName</para> </listitem> <listitem> - <para - xlink:href="http://codingbat.com/prob/p161056">makeAbba</para> + <para xlink:href="http://codingbat.com/prob/p161056">makeAbba</para> </listitem> <listitem> - <para - xlink:href="http://codingbat.com/prob/p147483">makeTags</para> + <para xlink:href="http://codingbat.com/prob/p147483">makeTags</para> </listitem> </itemizedlist> </question> @@ -3427,17 +3234,15 @@ System.out.println("New value=" + a);</programlisting> </section> <section xml:id="sw1LanguageFundamentalUsingFinal"> - <title>Using <code>final</code></title> + <title>Using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code></title> <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleAreaFinal"> - <title>Calculating the area of a circle avoiding accidental - redefinition</title> + <title>Calculating the area of a circle avoiding accidental redefinition</title> <qandadiv> <qandaentry> <question> - <para>In Exercise <xref linkend="sw1QandaCircleArea"/> you - calculated a given circle's area:</para> + <para>In Exercise <xref linkend="sw1QandaCircleArea"/> you calculated a given circle's area:</para> <programlisting language="java"> public static void main(String[] args) { @@ -3449,9 +3254,7 @@ System.out.println("New value=" + a);</programlisting> System.out.println(area); }</programlisting> - <para>Though there is nothing wrong with this approach it - actually is error prone: A careless programmer may accidentally - redefine the value of <code>pi</code>:</para> + <para>Though there is nothing wrong with this approach it actually is error prone: A careless programmer may accidentally redefine the value of <code>pi</code>:</para> <programlisting language="java"> public static void main(String[] args) { @@ -3471,20 +3274,15 @@ System.out.println("New value=" + a);</programlisting> System.out.println(area); }</programlisting> - <para>Modify the original code to avoid this type of - error.</para> + <para>Modify the original code to avoid this type of error.</para> <tip> - <para>You may want to read the <quote - xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc5_html_2">Constants</quote> - section of <xref linkend="bib_Kurniawan2015"/>.</para> + <para>You may want to read the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc5_html_2">Constants</quote> section of <xref linkend="bib_Kurniawan2015"/>.</para> </tip> </question> <answer> - <para>The solution is straightforward. We add the - <code>final</code> modifier to the definition of our variable - <code>pi</code>:</para> + <para>The solution is straightforward. We add the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> modifier to the definition of our variable <code>pi</code>:</para> <programlisting language="java" linenumbering="numbered">public static void main(String[] args) { @@ -3504,20 +3302,13 @@ System.out.println("New value=" + a);</programlisting> System.out.println(area); }</programlisting> - <para>Now our flawed assignment at line 9 will be flagged as a - compile time error:</para> + <para>Now our flawed assignment at line 9 will be flagged as a compile time error:</para> - <para><computeroutput>The final local variable pi cannot be - assigned. It must be blank and not using a compound - assignment</computeroutput></para> + <para><computeroutput>The final local variable pi cannot be assigned. It must be blank and not using a compound assignment</computeroutput></para> - <para>Note the second <code>final</code> modification in the - definition of our variable <code>area</code> to avoid erroneous - redefinitions as well.</para> + <para>Note the second <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> modification in the definition of our variable <code>area</code> to avoid erroneous redefinitions as well.</para> - <para>As a rule of thumb: Whenever you intend a variable not to - change after an initial assignment use <code>final</code> - declaring it to remain constant.</para> + <para>As a rule of thumb: Whenever you intend a variable not to change after an initial assignment use <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> declaring it to remain constant.</para> </answer> </qandaentry> </qandadiv> @@ -3543,14 +3334,11 @@ System.out.println("New value=" + a);</programlisting> }</programlisting> - <para>This will run smoothly producing the expected - output:</para> + <para>This will run smoothly producing the expected output:</para> <screen>20 + 3 + 9 = 32</screen> - <para>We now prettify our variable definitions by introducing - right aligning numbers thereby padding leading positions with - zeros:</para> + <para>We now prettify our variable definitions by introducing right aligning numbers thereby padding leading positions with zeros:</para> <programlisting language="java"> public static void main(String[] args) { @@ -3561,24 +3349,17 @@ System.out.println("New value=" + a);</programlisting> System.out.println(a + " + " + b + " + " + c + " = " + (a + b + c)); }</programlisting> - <para>The above code does not compile due to the compiler error - when defining variable <code>c</code>.</para> + <para>The above code does not compile due to the compiler error when defining variable <code>c</code>.</para> - <para>Explain the underlying cause of this error message. Why is - <code>b = 03</code> just fine in contrast to <code>c = 09</code> - ?</para> + <para>Explain the underlying cause of this error message. Why is <code>b = 03</code> just fine in contrast to <code>c = 09</code> ?</para> <tip> - <para>Re-read the section on integer literal - representations.</para> + <para>Re-read the section on integer literal representations.</para> </tip> </question> <answer> - <para>Integer literals starting with <quote>0</quote> are being - interpreted as octal representation. Since the octal system's - set of digits is {0,1,2,3,4,5,6,7} the value <quote>09</quote> - is simply not valid.</para> + <para>Integer literals starting with <quote>0</quote> are being interpreted as octal representation. Since the octal system's set of digits is {0,1,2,3,4,5,6,7} the value <quote>09</quote> is simply not valid.</para> </answer> </qandaentry> </qandadiv> @@ -3598,19 +3379,13 @@ System.out.println("New value=" + a);</programlisting> System.out.println("Value = " + a); }</programlisting> - <para>On execution we receive the output <code>Value = - 33</code>. Explain this result</para> + <para>On execution we receive the output <code>Value = 33</code>. Explain this result</para> </question> <answer> - <para>This problem is related to the previous exercise: The - integer literal 041 defines octal representation. Changing from - octal to decimal representation takes us to 4 * 8 + 1 = - 33.</para> - - <para>There are 11 types of people: Those, who know can read - binary codes, those who know what binary is and those who don't - have a clue what binary is.</para> + <para>This problem is related to the previous exercise: The integer literal 041 defines octal representation. Changing from octal to decimal representation takes us to 4 * 8 + 1 = 33.</para> + + <para>There are 11 types of people: Those, who know can read binary codes, those who know what binary is and those who don't have a clue what binary is.</para> </answer> </qandaentry> </qandadiv> -- GitLab