diff --git a/221018-pipe-example/build.ninja b/221018-pipe-example/build.ninja index d688166ca806a7fa9246fc515d82e8f418d7599c..5f22979f3b05625ecff2ab643fae16f7ad8bd633 100644 --- a/221018-pipe-example/build.ninja +++ b/221018-pipe-example/build.ninja @@ -4,7 +4,7 @@ rule svg_to_pdf rule tex_to_pdf command = pdflatex -interaction=nonstopmode $in -build slides.pdf slides.aux slides.log slides.nav slides.out slides.snm slides.toc: tex_to_pdf slides.tex | fig/00-parent-begin.pdf fig/01-parent-pipe.pdf fig/02-parent-fork.pdf fig/03-parent-fork-focus-pipe.pdf fig/04-parent-switch.pdf fig/05-parent-close.pdf fig/06-parent-close-done.pdf fig/07-parent-read-blocked.pdf fig/08-child-switch.pdf fig/09-child-close.pdf fig/10-child-close-done.pdf fig/11-child-dup2.pdf fig/12-child-dup2-done.pdf fig/13-child-dup2-done2.pdf fig/14-child-exec.pdf fig/15-child-exec-done.pdf fig/16-parent-read-loop.pdf fig/17-child-exit.pdf fig/18-child-exit-done.pdf fig/19-parent-close.pdf fig/20-parent-close-done.pdf +build slides.pdf slides.aux slides.log slides.nav slides.out slides.snm slides.toc: tex_to_pdf slides.tex | fig/00-parent-begin.pdf fig/01-parent-pipe.pdf fig/02-parent-fork.pdf fig/03-parent-fork-focus-pipe.pdf fig/04-parent-switch.pdf fig/05-parent-close.pdf fig/06-parent-close-done.pdf fig/07-parent-read-blocked.pdf fig/08-child-switch.pdf fig/09-child-close.pdf fig/10-child-close-done.pdf fig/11-child-dup2.pdf fig/12-child-dup2-done.pdf fig/13-child-dup2-done2.pdf fig/14-child-exec.pdf fig/15-child-exec-done.pdf fig/16-parent-read-loop.pdf fig/17-child-exit.pdf fig/18-child-exit-done.pdf fig/18b-child-exit-done-deadlock-note.pdf fig/19-parent-close.pdf fig/20-parent-close-done.pdf build fig/00-parent-begin.pdf: svg_to_pdf fig/00-parent-begin.svg build fig/01-parent-pipe.pdf: svg_to_pdf fig/01-parent-pipe.svg @@ -25,6 +25,6 @@ build fig/15-child-exec-done.pdf: svg_to_pdf fig/15-child-exec-done.svg build fig/16-parent-read-loop.pdf: svg_to_pdf fig/16-parent-read-loop.svg build fig/17-child-exit.pdf: svg_to_pdf fig/17-child-exit.svg build fig/18-child-exit-done.pdf: svg_to_pdf fig/18-child-exit-done.svg +build fig/18b-child-exit-done-deadlock-note.pdf: svg_to_pdf fig/18b-child-exit-done-deadlock-note.svg build fig/19-parent-close.pdf: svg_to_pdf fig/19-parent-close.svg build fig/20-parent-close-done.pdf: svg_to_pdf fig/20-parent-close-done.svg - diff --git a/221018-pipe-example/fig/00-parent-begin.svg b/221018-pipe-example/fig/00-parent-begin.svg index dbc7676399b37e77bcb9ef1502cc9a48a6c9bade..822700f78aa97384dad43120359210f63aa86bc2 100644 --- a/221018-pipe-example/fig/00-parent-begin.svg +++ b/221018-pipe-example/fig/00-parent-begin.svg @@ -25,12 +25,12 @@ inkscape:deskcolor="#d1d1d1" inkscape:document-units="mm" showgrid="false" - inkscape:zoom="0.96143793" - inkscape:cx="362.4779" - inkscape:cy="331.27464" + inkscape:zoom="1.2526438" + inkscape:cx="463.41986" + inkscape:cy="259.0521" inkscape:window-width="1916" inkscape:window-height="1032" - inkscape:window-x="1920" + inkscape:window-x="0" inkscape:window-y="22" inkscape:window-maximized="1" inkscape:current-layer="layer1" @@ -4231,18 +4231,11 @@ id="tspan11967" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:0.264583" x="136.24358" - y="7.129312">les fds pointent au <tspan - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start" - id="tspan11971">bon endroit dès le</tspan></tspan><tspan + y="7.129312">les fds pointent au bon endroit dès le</tspan><tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:0.264583" x="136.24358" y="13.302937" - id="tspan11973">lancement du processus</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:0.264583" - x="136.24358" - y="19.476562" - id="tspan11975">(c'est fait par le shell avant exec)</tspan></text> + id="tspan11975">lancement du processus</tspan></text> </g> </svg> diff --git a/221018-pipe-example/fig/07-parent-read-blocked.svg b/221018-pipe-example/fig/07-parent-read-blocked.svg index 1ffb1bf3f3c3f8c46ff33e07003a9c73c5e94933..cf55a6774520d5c8f32d1585bed51e3c556d74e2 100644 --- a/221018-pipe-example/fig/07-parent-read-blocked.svg +++ b/221018-pipe-example/fig/07-parent-read-blocked.svg @@ -26,11 +26,11 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="1.6478153" - inkscape:cx="518.56539" - inkscape:cy="349.2503" + inkscape:cx="511.28303" + inkscape:cy="140.48905" inkscape:window-width="1916" inkscape:window-height="1032" - inkscape:window-x="1920" + inkscape:window-x="0" inkscape:window-y="22" inkscape:window-maximized="1" inkscape:current-layer="layer1" @@ -4202,11 +4202,11 @@ id="tspan136866" style="stroke-width:0.264583" x="129.45743" - y="11.614304">le tube est vide.</tspan><tspan + y="11.614304">tentative de lecture, mais le tube est vide.</tspan><tspan sodipodi:role="line" style="stroke-width:0.264583" x="129.45743" y="17.78793" - id="tspan144095">read bloque donc le père</tspan></text> + id="tspan144095">le processus est donc bloqué.</tspan></text> </g> </svg> diff --git a/221018-pipe-example/fig/14-child-exec.svg b/221018-pipe-example/fig/14-child-exec.svg index 311232471ebb6a8ea12ca07cb9ed20a34baa8987..9650c758d58d7eed52e79f882a66fd4148951d91 100644 --- a/221018-pipe-example/fig/14-child-exec.svg +++ b/221018-pipe-example/fig/14-child-exec.svg @@ -26,11 +26,11 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.9968396" - inkscape:cx="275.37028" - inkscape:cy="499.07728" + inkscape:cx="276.37345" + inkscape:cy="500.08045" inkscape:window-width="1916" inkscape:window-height="1032" - inkscape:window-x="1920" + inkscape:window-x="0" inkscape:window-y="22" inkscape:window-maximized="1" inkscape:current-layer="layer1" @@ -4174,12 +4174,12 @@ xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" x="130.58521" - y="178.95015" + y="172.95015" id="text145051"><tspan sodipodi:role="line" id="tspan145049" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;stroke-width:0.264583" x="130.58521" - y="178.95015">la table des fds est conservée par exec !</tspan></text> + y="172.95015">la table des fds est conservée par exec !</tspan></text> </g> </svg> diff --git a/221018-pipe-example/fig/15-child-exec-done.svg b/221018-pipe-example/fig/15-child-exec-done.svg index 919444784080fe31cf15e2c965882077b37d90fe..c9a22df34cc4a435e1128eae81d596e3a7862da3 100644 --- a/221018-pipe-example/fig/15-child-exec-done.svg +++ b/221018-pipe-example/fig/15-child-exec-done.svg @@ -26,11 +26,11 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="1.0072646" - inkscape:cx="395.62594" - inkscape:cy="507.81096" + inkscape:cx="545.53689" + inkscape:cy="456.18599" inkscape:window-width="1916" inkscape:window-height="1032" - inkscape:window-x="1920" + inkscape:window-x="0" inkscape:window-y="22" inkscape:window-maximized="1" inkscape:current-layer="layer1" @@ -2220,7 +2220,7 @@ d="m 166.87657,142.08 h 31.08361 v -33.16707 h 6.43865" id="path80935" /> <path - style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" d="m 161.99024,152.34976 h 25.54065 v -6.69074 h 15.01428" id="path80939" /> <rect @@ -2330,12 +2330,22 @@ xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" x="130.58521" - y="178.95015" + y="172.95015" id="text145051"><tspan sodipodi:role="line" id="tspan145049" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;stroke-width:0.264583" x="130.58521" - y="178.95015">la table des fds est conservée par exec !</tspan></text> + y="172.95015">la table des fds est conservée par exec !</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;stroke-width:0.264583" + x="130.58521" + y="179.12376" + id="tspan11374">fermer le fd 4 aurait d'ailleurs été mieux</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;stroke-width:0.264583" + x="130.58521" + y="185.29738" + id="tspan14177">avant d'exec, afin de le libérer</tspan></text> </g> </svg> diff --git a/221018-pipe-example/fig/16-parent-read-loop.svg b/221018-pipe-example/fig/16-parent-read-loop.svg index 64b2213c09dca50b8688ec9123a43fa7c2c02e46..c0c3eb5d5426f6faae12ca3ae756262efff75765 100644 --- a/221018-pipe-example/fig/16-parent-read-loop.svg +++ b/221018-pipe-example/fig/16-parent-read-loop.svg @@ -25,12 +25,12 @@ inkscape:deskcolor="#d1d1d1" inkscape:document-units="mm" showgrid="false" - inkscape:zoom="1.1350534" - inkscape:cx="381.92036" - inkscape:cy="324.65433" + inkscape:zoom="1.4360808" + inkscape:cx="504.49808" + inkscape:cy="349.91068" inkscape:window-width="1916" inkscape:window-height="1032" - inkscape:window-x="1920" + inkscape:window-x="0" inkscape:window-y="22" inkscape:window-maximized="1" inkscape:current-layer="layer1" @@ -171,13 +171,13 @@ transform="translate(137.74393,53.769179)"> <text xml:space="preserve" - style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Bold';text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#ff0000;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal" x="79.995087" y="30.468422" id="text26903"><tspan sodipodi:role="line" id="tspan26901" - style="text-align:center;text-anchor:middle;stroke-width:0.264583" + style="text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#ff0000;-inkscape-font-specification:'monospace Bold';font-family:monospace;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal" x="79.995087" y="30.468422">output-file.txt</tspan></text> <path @@ -2112,7 +2112,7 @@ id="path52862" sodipodi:nodetypes="cccc" /> <path - style="fill:none;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + style="fill:none;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#marker11169)" d="m 164.95174,41.699899 h 22.9205 v 27.123834 h 20.11199" id="path52911" /> <path @@ -2120,8 +2120,8 @@ d="m 164.76942,37.039298 h 38.48161" id="path52913" /> <path - style="fill:none;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" - d="m 161.02013,52.048272 h 21.77513 v 75.725918 h 58.15801 v 12.77337 H 230.4018" + style="fill:none;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker11169)" + d="M 168.38883,52.048272 H 184.141 v 75.725918 h 58.15801 v 12.77337 h -10.55147" id="path70938" sodipodi:nodetypes="cccccc" /> <text @@ -2217,7 +2217,7 @@ d="m 165.47167,131.42037 h 27.57058 V 42.641205 h 10.0746" id="path80931" /> <path - style="fill:none;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker11169)" d="m 166.71704,136.72533 h 28.71969 v 6.91204 l 6.95214,0" id="path80933" sodipodi:nodetypes="cccc" /> @@ -2346,18 +2346,51 @@ <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" - x="134.81325" - y="11.451879" + x="123.53039" + y="5.9572926" id="text166698"><tspan sodipodi:role="line" - id="tspan166696" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" - x="134.81325" - y="11.451879">tout le contenu du pipe est affiché</tspan><tspan + x="123.53039" + y="5.9572926" + id="tspan153681">tout le contenu du pipe est transféré,</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" + x="123.53039" + y="12.130917" + id="tspan25008">caractère par caractère, depuis le pipe (fd=3)</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" + x="123.53039" + y="18.304543" + id="tspan25010">vers la sortie standard (fd=1).</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" + x="123.53039" + y="24.478167" + id="tspan88406">ici, dans le fichier <tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:monospace;-inkscape-font-specification:'monospace Bold'" + id="tspan26130">output-file.txt</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" + x="123.53039" + y="30.651793" + id="tspan25006" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" + x="123.53039" + y="173.76324" + id="text166698-6"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" + x="123.53039" + y="173.76324" + id="tspan25006-1">les écritures sont réalisées sur la sortie</tspan><tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.264583" - x="134.81325" - y="17.625504" - id="tspan153681">(caractère par caractère)</tspan></text> + x="123.53039" + y="179.93687" + id="tspan80530">standard (fd=1). ici, dans le pipe</tspan></text> </g> </svg> diff --git a/221018-pipe-example/fig/18-child-exit-done.svg b/221018-pipe-example/fig/18-child-exit-done.svg index f3ff75d454f752b010c1c05ca1e527f0c0da4a95..95e528446504dc8f1c5034b80e25aca2c0212d48 100644 --- a/221018-pipe-example/fig/18-child-exit-done.svg +++ b/221018-pipe-example/fig/18-child-exit-done.svg @@ -26,11 +26,11 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="1.0261534" - inkscape:cx="384.44544" - inkscape:cy="373.7258" + inkscape:cx="385.41996" + inkscape:cy="374.70031" inkscape:window-width="1916" inkscape:window-height="1032" - inkscape:window-x="1920" + inkscape:window-x="0" inkscape:window-y="22" inkscape:window-maximized="1" inkscape:current-layer="layer1" @@ -2265,18 +2265,23 @@ <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;stroke-width:0.264583" - x="125.92122" - y="168.80058" + x="123.32431" + y="8.7281952" id="text172306"><tspan sodipodi:role="line" id="tspan172304" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;stroke-width:0.264583" - x="125.92122" - y="168.80058">il n'y a plus aucune référence vers l'écriture</tspan><tspan + x="123.32431" + y="8.7281952">il n'y a plus aucune référence vers l'écriture</tspan><tspan sodipodi:role="line" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;stroke-width:0.264583" - x="125.92122" - y="174.97421" - id="tspan117161">dans le pipe. donc read renvoie 0 (EOF)</tspan></text> + x="123.32431" + y="14.90182" + id="tspan45158">dans le pipe. read renverra 0 (EOF) dès que</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;stroke-width:0.264583" + x="123.32431" + y="21.075445" + id="tspan45162">tous les octets (écrits par echo) auront été lus.</tspan></text> </g> </svg> diff --git a/221018-pipe-example/fig/18b-child-exit-done-deadlock-note.svg b/221018-pipe-example/fig/18b-child-exit-done-deadlock-note.svg new file mode 100644 index 0000000000000000000000000000000000000000..61669053fd493df663f4eaa2a48625ad6033815a --- /dev/null +++ b/221018-pipe-example/fig/18b-child-exit-done-deadlock-note.svg @@ -0,0 +1,2289 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="256mm" + height="192mm" + viewBox="0 0 256.00004 192" + version="1.1" + id="svg5" + inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" + sodipodi:docname="18b-child-exit-done-deadlock-note.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview7" + pagecolor="#ffffff" + bordercolor="#999999" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.1855882" + inkscape:cx="405.28408" + inkscape:cy="356.36321" + inkscape:window-width="1916" + inkscape:window-height="1032" + inkscape:window-x="0" + inkscape:window-y="22" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" + showguides="true" /> + <defs + id="defs2"> + <marker + style="overflow:visible" + id="marker11169" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="5.3244081" + markerHeight="6.155385" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path11167" /> + </marker> + <marker + style="overflow:visible" + id="marker11169-4" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="5.3244081" + markerHeight="6.155385" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path11167-9" /> + </marker> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stroke-opacity:1" + id="rect44272" + width="255.14482" + height="190.89871" + x="0" + y="0" /> + <rect + style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-dasharray:none;stroke-opacity:1" + id="rect7477-21" + width="116.3065" + height="4.9126296" + x="6.2387352" + y="66.312271" /> + <g + id="g166678"> + <rect + style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-dasharray:none;stroke-opacity:1" + id="rect7477" + width="116.3065" + height="4.9126296" + x="6.2387352" + y="61.399639" /> + <path + style="fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker11169)" + d="M 1.2680729,63.855953 H 9.6921927" + id="path10742" /> + </g> + <g + id="g149355" + transform="translate(0,13.824507)"> + <rect + style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-dasharray:none;stroke-opacity:1" + id="rect7477-2" + width="116.3065" + height="4.9126296" + x="6.2387352" + y="135.72678" /> + <path + style="fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker11169-4)" + d="M 1.2680729,138.18309 H 9.6921927" + id="path10742-0" /> + </g> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="13.537429" + y="75.969765" + id="text6968"><tspan + sodipodi:role="line" + id="tspan6966" + style="stroke-width:0.264583" + x="13.537429" + y="75.969765" /></text> + <g + id="g40148" + transform="translate(136.24874,56.979904)"> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583" + x="80.146606" + y="63.671707" + id="text21058"><tspan + sodipodi:role="line" + id="tspan21056" + style="text-align:center;text-anchor:middle;stroke-width:0.264583" + x="80.146606" + y="63.671707">/dev/null</tspan></text> + <g + id="g20674" + transform="matrix(0.03,0,0,0.03,72.366356,42.460154)" + style="stroke-width:8.81943"> + <path + d="m 89.4,100 26.2,347.9 c 2.5,32.5 29.6,58.1 60.7,58.1 h 159.3 c 31.1,0 58.2,-25.6 60.7,-58.1 L 422.6,100 Z m 100.7,360.8 c 0.3,7.1 -5.1,12.7 -12,12.7 -6.9,0 -12.7,-5.7 -13.1,-12.7 L 150.4,164.2 c -0.5,-9.6 5.7,-17.4 13.8,-17.4 8.1,0 14.9,7.8 15.3,17.4 z m 78.4,0 c 0,7.1 -5.7,12.7 -12.5,12.7 -6.8,0 -12.5,-5.7 -12.5,-12.7 l -2,-296.6 c -0.1,-9.6 6.4,-17.4 14.5,-17.4 8.1,0 14.6,7.8 14.5,17.4 z m 78.4,0 c -0.3,7.1 -6.2,12.7 -13.1,12.7 -6.9,0 -12.2,-5.7 -12,-12.7 l 10.6,-296.6 c 0.3,-9.6 7.2,-17.4 15.3,-17.4 8.1,0 14.3,7.8 13.8,17.4 z" + id="path20670" + style="stroke-width:8.81943" /> + <path + d="M 445.3,82.8 H 66.7 v 0 C 64.9,61.7 77.4,44.4 94.6,44.4 h 322.9 c 17.1,0 29.6,17.4 27.8,38.4 z" + id="XMLID_2_" + style="stroke-width:8.81943" /> + <path + d="M 324.3,58.6 H 187.7 l -0.2,-7.8 C 186.7,26.3 202.1,6 221.9,6 h 68.3 c 19.7,0 35.1,20.3 34.4,44.7 z" + id="XMLID_1_" + style="stroke-width:8.81943" /> + </g> + </g> + <g + id="g40140" + transform="translate(137.74393,53.769179)"> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583" + x="79.995087" + y="30.468422" + id="text26903"><tspan + sodipodi:role="line" + id="tspan26901" + style="text-align:center;text-anchor:middle;stroke-width:0.264583" + x="79.995087" + y="30.468422">output-file.txt</tspan></text> + <path + d="m 81.04275,12.538612 h -5.35716 v 1.071429 h 5.35716 z M 83.18559,9.3243281 H 73.54275 V 24.324328 H 86.39988 V 12.538612 Z M 85.32846,23.252899 H 74.61417 V 10.395758 h 7.5 l 3.21429,3.214284 z m -9.64287,-2.142852 h 8.57142 v -1.071435 h -8.57142 z m 0,-2.142861 h 8.57142 v -1.071429 h -8.57142 z m 0,-2.142858 h 8.57142 v -1.071429 h -8.57142 z" + id="path28774" + style="stroke-width:0.264582" /> + </g> + <g + id="g40135" + transform="translate(134.99289,-39.014568)"> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583" + x="81.060715" + y="93.460579" + id="text31353"><tspan + sodipodi:role="line" + id="tspan31351" + style="text-align:center;text-anchor:middle;stroke-width:0.264583" + x="81.060715" + y="93.460579">/dev/pts/1</tspan></text> + <path + d="M 88.522475,72.111689 H 73.522474 c -0.690429,0 -1.25,0.55957 -1.25,1.25 v 12.5 c 0,0.69043 0.559571,1.250001 1.25,1.250001 h 15.000001 c 0.690429,0 1.249999,-0.559571 1.249999,-1.250001 v -12.5 c 0,-0.69043 -0.55957,-1.25 -1.249999,-1.25 z m -13.750001,8.75 2.5,-2.5 -2.5,-2.5 1.25,-1.25 3.750001,3.75 -3.750001,3.75 z m 10,1.25 h -4.999999 v -1.25 h 4.999999 z" + id="path39739" + style="stroke-width:0.264583" /> + </g> + <g + id="g1820" + transform="matrix(1.6847932,0,0,1.6847932,-43.381689,-51.837942)"> + <rect + style="fill:none;stroke:#000000;stroke-width:0.1;stroke-dasharray:none;stroke-opacity:1" + id="rect9440" + width="69.003769" + height="53.319019" + x="29.444935" + y="32.705105" /> + <g + id="g2448" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,34.065749)"> + <text + xml:space="preserve" + transform="translate(0,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2452"><tspan + x="0" + y="0" + id="tspan2450">i</tspan></text> + <text + xml:space="preserve" + transform="translate(7.7856445,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2456"><tspan + x="0" + y="0" + id="tspan2454">n</tspan></text> + <text + xml:space="preserve" + transform="translate(15.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2460"><tspan + x="0" + y="0" + id="tspan2458">t</tspan></text> + <text + xml:space="preserve" + transform="translate(32,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0184bc;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2464"><tspan + x="0" + y="0" + id="tspan2462">m</tspan></text> + <text + xml:space="preserve" + transform="translate(39.857098,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0184bc;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2468"><tspan + x="0" + y="0" + id="tspan2466">a</tspan></text> + <text + xml:space="preserve" + transform="translate(47.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0184bc;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2472"><tspan + x="0" + y="0" + id="tspan2470">i</tspan></text> + <text + xml:space="preserve" + transform="translate(55.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0184bc;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2476"><tspan + x="0" + y="0" + id="tspan2474">n</tspan></text> + <text + xml:space="preserve" + transform="translate(64,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2480"><tspan + x="0" + y="0" + id="tspan2478">(</tspan></text> + <text + xml:space="preserve" + transform="translate(71.857094,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2484"><tspan + x="0" + y="0" + id="tspan2482">)</tspan></text> + <text + xml:space="preserve" + transform="translate(87.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2488"><tspan + x="0" + y="0" + id="tspan2486">{</tspan></text> + </g> + <g + id="g2490" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,37.064362)"> + <text + xml:space="preserve" + transform="translate(16,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2494"><tspan + x="0" + y="0" + id="tspan2492">c</tspan></text> + <text + xml:space="preserve" + transform="translate(23.857096,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2498"><tspan + x="0" + y="0" + id="tspan2496">h</tspan></text> + <text + xml:space="preserve" + transform="translate(31.714193,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2502"><tspan + x="0" + y="0" + id="tspan2500">a</tspan></text> + <text + xml:space="preserve" + transform="translate(39.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2506"><tspan + x="0" + y="0" + id="tspan2504">r</tspan></text> + <text + xml:space="preserve" + transform="translate(55.857098,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2510"><tspan + x="0" + y="0" + id="tspan2508">c</tspan></text> + <text + xml:space="preserve" + transform="translate(63.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2514"><tspan + x="0" + y="0" + id="tspan2512">;</tspan></text> + <text + xml:space="preserve" + transform="translate(80,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2518"><tspan + x="0" + y="0" + id="tspan2516">i</tspan></text> + <text + xml:space="preserve" + transform="translate(87.785645,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2522"><tspan + x="0" + y="0" + id="tspan2520">n</tspan></text> + <text + xml:space="preserve" + transform="translate(95.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2526"><tspan + x="0" + y="0" + id="tspan2524">t</tspan></text> + <text + xml:space="preserve" + transform="translate(111.78565,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2530"><tspan + x="0" + y="0" + id="tspan2528">p</tspan></text> + <text + xml:space="preserve" + transform="translate(119.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2534"><tspan + x="0" + y="0" + id="tspan2532">[</tspan></text> + <text + xml:space="preserve" + transform="translate(128,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2538"><tspan + x="0" + y="0" + id="tspan2536">2</tspan></text> + <text + xml:space="preserve" + transform="translate(136,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2542"><tspan + x="0" + y="0" + id="tspan2540">]</tspan></text> + <text + xml:space="preserve" + transform="translate(143.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2546"><tspan + x="0" + y="0" + id="tspan2544">;</tspan></text> + </g> + <g + id="g2548" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,40.062969)"> + <text + xml:space="preserve" + transform="translate(15.904731,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2552"><tspan + x="0" + y="0" + id="tspan2550">p</tspan></text> + <text + xml:space="preserve" + transform="translate(23.857096,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2556"><tspan + x="0" + y="0" + id="tspan2554">i</tspan></text> + <text + xml:space="preserve" + transform="translate(31.809462,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2560"><tspan + x="0" + y="0" + id="tspan2558">p</tspan></text> + <text + xml:space="preserve" + transform="translate(39.761826,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2564"><tspan + x="0" + y="0" + id="tspan2562">e</tspan></text> + <text + xml:space="preserve" + transform="translate(47.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2568"><tspan + x="0" + y="0" + id="tspan2566">(</tspan></text> + <text + xml:space="preserve" + transform="translate(55.666557,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2572"><tspan + x="0" + y="0" + id="tspan2570">p</tspan></text> + <text + xml:space="preserve" + transform="translate(63.618923,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2576"><tspan + x="0" + y="0" + id="tspan2574">)</tspan></text> + <text + xml:space="preserve" + transform="translate(71.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2580"><tspan + x="0" + y="0" + id="tspan2578">;</tspan></text> + </g> + <g + id="g2582" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,43.061581)"> + <text + xml:space="preserve" + transform="translate(16,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2586"><tspan + x="0" + y="0" + id="tspan2584">s</tspan></text> + <text + xml:space="preserve" + transform="translate(23.914257,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2590"><tspan + x="0" + y="0" + id="tspan2588">w</tspan></text> + <text + xml:space="preserve" + transform="translate(31.828516,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2594"><tspan + x="0" + y="0" + id="tspan2592">i</tspan></text> + <text + xml:space="preserve" + transform="translate(39.742775,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2598"><tspan + x="0" + y="0" + id="tspan2596">t</tspan></text> + <text + xml:space="preserve" + transform="translate(47.657032,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2602"><tspan + x="0" + y="0" + id="tspan2600">c</tspan></text> + <text + xml:space="preserve" + transform="translate(55.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2606"><tspan + x="0" + y="0" + id="tspan2604">h</tspan></text> + <text + xml:space="preserve" + transform="translate(64,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2610"><tspan + x="0" + y="0" + id="tspan2608">(</tspan></text> + <text + xml:space="preserve" + transform="translate(71.952362,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2614"><tspan + x="0" + y="0" + id="tspan2612">f</tspan></text> + <text + xml:space="preserve" + transform="translate(79.904732,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2618"><tspan + x="0" + y="0" + id="tspan2616">o</tspan></text> + <text + xml:space="preserve" + transform="translate(87.857094,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2622"><tspan + x="0" + y="0" + id="tspan2620">r</tspan></text> + <text + xml:space="preserve" + transform="translate(95.809464,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2626"><tspan + x="0" + y="0" + id="tspan2624">k</tspan></text> + <text + xml:space="preserve" + transform="translate(103.76183,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2630"><tspan + x="0" + y="0" + id="tspan2628">(</tspan></text> + <text + xml:space="preserve" + transform="translate(111.7142,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2634"><tspan + x="0" + y="0" + id="tspan2632">)</tspan></text> + <text + xml:space="preserve" + transform="translate(119.66656,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2638"><tspan + x="0" + y="0" + id="tspan2636">)</tspan></text> + <text + xml:space="preserve" + transform="translate(135.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2642"><tspan + x="0" + y="0" + id="tspan2640">{</tspan></text> + </g> + <g + id="g2644" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,46.060192)"> + <text + xml:space="preserve" + transform="translate(32,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2648"><tspan + x="0" + y="0" + id="tspan2646">c</tspan></text> + <text + xml:space="preserve" + transform="translate(39.857098,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2652"><tspan + x="0" + y="0" + id="tspan2650">a</tspan></text> + <text + xml:space="preserve" + transform="translate(47.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2656"><tspan + x="0" + y="0" + id="tspan2654">s</tspan></text> + <text + xml:space="preserve" + transform="translate(55.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2660"><tspan + x="0" + y="0" + id="tspan2658">e</tspan></text> + <text + xml:space="preserve" + transform="translate(72,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2664"><tspan + x="0" + y="0" + id="tspan2662">0</tspan></text> + <text + xml:space="preserve" + transform="translate(80,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2668"><tspan + x="0" + y="0" + id="tspan2666">:</tspan></text> + </g> + <g + id="g2670" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,49.058805)"> + <text + xml:space="preserve" + transform="translate(47.802132,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2674"><tspan + x="0" + y="0" + id="tspan2672">c</tspan></text> + <text + xml:space="preserve" + transform="translate(55.769157,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2678"><tspan + x="0" + y="0" + id="tspan2676">l</tspan></text> + <text + xml:space="preserve" + transform="translate(63.736179,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2682"><tspan + x="0" + y="0" + id="tspan2680">o</tspan></text> + <text + xml:space="preserve" + transform="translate(71.703201,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2686"><tspan + x="0" + y="0" + id="tspan2684">s</tspan></text> + <text + xml:space="preserve" + transform="translate(79.670219,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2690"><tspan + x="0" + y="0" + id="tspan2688">e</tspan></text> + <text + xml:space="preserve" + transform="translate(87.637245,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2694"><tspan + x="0" + y="0" + id="tspan2692">(</tspan></text> + <text + xml:space="preserve" + transform="translate(95.604263,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2698"><tspan + x="0" + y="0" + id="tspan2696">p</tspan></text> + <text + xml:space="preserve" + transform="translate(103.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2702"><tspan + x="0" + y="0" + id="tspan2700">[</tspan></text> + <text + xml:space="preserve" + transform="translate(112,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2706"><tspan + x="0" + y="0" + id="tspan2704">0</tspan></text> + <text + xml:space="preserve" + transform="translate(120,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2710"><tspan + x="0" + y="0" + id="tspan2708">]</tspan></text> + <text + xml:space="preserve" + transform="translate(127.78565,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2714"><tspan + x="0" + y="0" + id="tspan2712">)</tspan></text> + <text + xml:space="preserve" + transform="translate(135.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2718"><tspan + x="0" + y="0" + id="tspan2716">;</tspan></text> + </g> + <g + id="g2720" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,52.057419)"> + <text + xml:space="preserve" + transform="translate(47.785645,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2724"><tspan + x="0" + y="0" + id="tspan2722">d</tspan></text> + <text + xml:space="preserve" + transform="translate(55.74992,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2728"><tspan + x="0" + y="0" + id="tspan2726">u</tspan></text> + <text + xml:space="preserve" + transform="translate(63.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2732"><tspan + x="0" + y="0" + id="tspan2730">p</tspan></text> + <text + xml:space="preserve" + transform="translate(71.678467,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2736"><tspan + x="0" + y="0" + id="tspan2734">2</tspan></text> + <text + xml:space="preserve" + transform="translate(79.642738,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2740"><tspan + x="0" + y="0" + id="tspan2738">(</tspan></text> + <text + xml:space="preserve" + transform="translate(87.607018,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2744"><tspan + x="0" + y="0" + id="tspan2742">p</tspan></text> + <text + xml:space="preserve" + transform="translate(95.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2748"><tspan + x="0" + y="0" + id="tspan2746">[</tspan></text> + <text + xml:space="preserve" + transform="translate(104,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2752"><tspan + x="0" + y="0" + id="tspan2750">1</tspan></text> + <text + xml:space="preserve" + transform="translate(112,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2756"><tspan + x="0" + y="0" + id="tspan2754">]</tspan></text> + <text + xml:space="preserve" + transform="translate(119.78565,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2760"><tspan + x="0" + y="0" + id="tspan2758">,</tspan></text> + <text + xml:space="preserve" + transform="translate(136,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2764"><tspan + x="0" + y="0" + id="tspan2762">1</tspan></text> + <text + xml:space="preserve" + transform="translate(144,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2768"><tspan + x="0" + y="0" + id="tspan2766">)</tspan></text> + <text + xml:space="preserve" + transform="translate(151.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2772"><tspan + x="0" + y="0" + id="tspan2770">;</tspan></text> + </g> + <g + id="g2774" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,55.056024)"> + <text + xml:space="preserve" + transform="translate(47.785645,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2778"><tspan + x="0" + y="0" + id="tspan2776">e</tspan></text> + <text + xml:space="preserve" + transform="translate(55.74992,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2782"><tspan + x="0" + y="0" + id="tspan2780">x</tspan></text> + <text + xml:space="preserve" + transform="translate(63.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2786"><tspan + x="0" + y="0" + id="tspan2784">e</tspan></text> + <text + xml:space="preserve" + transform="translate(71.678467,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2790"><tspan + x="0" + y="0" + id="tspan2788">c</tspan></text> + <text + xml:space="preserve" + transform="translate(79.642738,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2794"><tspan + x="0" + y="0" + id="tspan2792">l</tspan></text> + <text + xml:space="preserve" + transform="translate(87.607018,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2798"><tspan + x="0" + y="0" + id="tspan2796">p</tspan></text> + <text + xml:space="preserve" + transform="translate(95.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2802"><tspan + x="0" + y="0" + id="tspan2800">(</tspan></text> + <text + xml:space="preserve" + transform="translate(104,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2806"><tspan + x="0" + y="0" + id="tspan2804">"</tspan></text> + <text + xml:space="preserve" + transform="translate(111.91426,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2810"><tspan + x="0" + y="0" + id="tspan2808">e</tspan></text> + <text + xml:space="preserve" + transform="translate(119.82851,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2814"><tspan + x="0" + y="0" + id="tspan2812">c</tspan></text> + <text + xml:space="preserve" + transform="translate(127.74277,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2818"><tspan + x="0" + y="0" + id="tspan2816">h</tspan></text> + <text + xml:space="preserve" + transform="translate(135.65703,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2822"><tspan + x="0" + y="0" + id="tspan2820">o</tspan></text> + <text + xml:space="preserve" + transform="translate(143.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2826"><tspan + x="0" + y="0" + id="tspan2824">"</tspan></text> + <text + xml:space="preserve" + transform="translate(152,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2830"><tspan + x="0" + y="0" + id="tspan2828">,</tspan></text> + <text + xml:space="preserve" + transform="translate(168,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2834"><tspan + x="0" + y="0" + id="tspan2832">"</tspan></text> + <text + xml:space="preserve" + transform="translate(175.91426,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2838"><tspan + x="0" + y="0" + id="tspan2836">e</tspan></text> + <text + xml:space="preserve" + transform="translate(183.82852,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2842"><tspan + x="0" + y="0" + id="tspan2840">c</tspan></text> + <text + xml:space="preserve" + transform="translate(191.74277,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2846"><tspan + x="0" + y="0" + id="tspan2844">h</tspan></text> + <text + xml:space="preserve" + transform="translate(199.65703,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2850"><tspan + x="0" + y="0" + id="tspan2848">o</tspan></text> + <text + xml:space="preserve" + transform="translate(207.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2854"><tspan + x="0" + y="0" + id="tspan2852">"</tspan></text> + <text + xml:space="preserve" + transform="translate(216,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2858"><tspan + x="0" + y="0" + id="tspan2856">,</tspan></text> + <text + xml:space="preserve" + transform="translate(232,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2862"><tspan + x="0" + y="0" + id="tspan2860">"</tspan></text> + <text + xml:space="preserve" + transform="translate(239.93875,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2866"><tspan + x="0" + y="0" + id="tspan2864">h</tspan></text> + <text + xml:space="preserve" + transform="translate(247.87752,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2870"><tspan + x="0" + y="0" + id="tspan2868">e</tspan></text> + <text + xml:space="preserve" + transform="translate(255.81627,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2874"><tspan + x="0" + y="0" + id="tspan2872">l</tspan></text> + <text + xml:space="preserve" + transform="translate(263.75504,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2878"><tspan + x="0" + y="0" + id="tspan2876">l</tspan></text> + <text + xml:space="preserve" + transform="translate(271.69379,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2882"><tspan + x="0" + y="0" + id="tspan2880">o</tspan></text> + <text + xml:space="preserve" + transform="translate(279.63254,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2886"><tspan + x="0" + y="0" + id="tspan2884">!</tspan></text> + <text + xml:space="preserve" + transform="translate(287.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#40a14f;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2890"><tspan + x="0" + y="0" + id="tspan2888">"</tspan></text> + <text + xml:space="preserve" + transform="translate(296,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2894"><tspan + x="0" + y="0" + id="tspan2892">,</tspan></text> + <text + xml:space="preserve" + transform="translate(312,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2898"><tspan + x="0" + y="0" + id="tspan2896">N</tspan></text> + <text + xml:space="preserve" + transform="translate(319.85709,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2902"><tspan + x="0" + y="0" + id="tspan2900">U</tspan></text> + <text + xml:space="preserve" + transform="translate(327.7142,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2906"><tspan + x="0" + y="0" + id="tspan2904">L</tspan></text> + <text + xml:space="preserve" + transform="translate(335.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2910"><tspan + x="0" + y="0" + id="tspan2908">L</tspan></text> + <text + xml:space="preserve" + transform="translate(344,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2914"><tspan + x="0" + y="0" + id="tspan2912">)</tspan></text> + <text + xml:space="preserve" + transform="translate(351.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2918"><tspan + x="0" + y="0" + id="tspan2916">;</tspan></text> + </g> + <g + id="g2920" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,58.054638)"> + <text + xml:space="preserve" + transform="translate(48,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0997b3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2924"><tspan + x="0" + y="0" + id="tspan2922">e</tspan></text> + <text + xml:space="preserve" + transform="translate(55.857098,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0997b3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2928"><tspan + x="0" + y="0" + id="tspan2926">x</tspan></text> + <text + xml:space="preserve" + transform="translate(63.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0997b3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2932"><tspan + x="0" + y="0" + id="tspan2930">i</tspan></text> + <text + xml:space="preserve" + transform="translate(71.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0997b3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2936"><tspan + x="0" + y="0" + id="tspan2934">t</tspan></text> + <text + xml:space="preserve" + transform="translate(80,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2940"><tspan + x="0" + y="0" + id="tspan2938">(</tspan></text> + <text + xml:space="preserve" + transform="translate(88,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2944"><tspan + x="0" + y="0" + id="tspan2942">1</tspan></text> + <text + xml:space="preserve" + transform="translate(96,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2948"><tspan + x="0" + y="0" + id="tspan2946">)</tspan></text> + <text + xml:space="preserve" + transform="translate(103.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2952"><tspan + x="0" + y="0" + id="tspan2950">;</tspan></text> + </g> + <g + id="g2954" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,61.053252)"> + <text + xml:space="preserve" + transform="translate(32,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2958"><tspan + x="0" + y="0" + id="tspan2956">d</tspan></text> + <text + xml:space="preserve" + transform="translate(39.928547,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2962"><tspan + x="0" + y="0" + id="tspan2960">e</tspan></text> + <text + xml:space="preserve" + transform="translate(47.857098,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2966"><tspan + x="0" + y="0" + id="tspan2964">f</tspan></text> + <text + xml:space="preserve" + transform="translate(55.785645,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2970"><tspan + x="0" + y="0" + id="tspan2968">a</tspan></text> + <text + xml:space="preserve" + transform="translate(63.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2974"><tspan + x="0" + y="0" + id="tspan2972">u</tspan></text> + <text + xml:space="preserve" + transform="translate(71.642738,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2978"><tspan + x="0" + y="0" + id="tspan2976">l</tspan></text> + <text + xml:space="preserve" + transform="translate(79.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2982"><tspan + x="0" + y="0" + id="tspan2980">t</tspan></text> + <text + xml:space="preserve" + transform="translate(88,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2986"><tspan + x="0" + y="0" + id="tspan2984">:</tspan></text> + </g> + <g + id="g2988" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,64.051857)"> + <text + xml:space="preserve" + transform="translate(47.802132,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2992"><tspan + x="0" + y="0" + id="tspan2990">c</tspan></text> + <text + xml:space="preserve" + transform="translate(55.769157,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text2996"><tspan + x="0" + y="0" + id="tspan2994">l</tspan></text> + <text + xml:space="preserve" + transform="translate(63.736179,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3000"><tspan + x="0" + y="0" + id="tspan2998">o</tspan></text> + <text + xml:space="preserve" + transform="translate(71.703201,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3004"><tspan + x="0" + y="0" + id="tspan3002">s</tspan></text> + <text + xml:space="preserve" + transform="translate(79.670219,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3008"><tspan + x="0" + y="0" + id="tspan3006">e</tspan></text> + <text + xml:space="preserve" + transform="translate(87.637245,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3012"><tspan + x="0" + y="0" + id="tspan3010">(</tspan></text> + <text + xml:space="preserve" + transform="translate(95.604263,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3016"><tspan + x="0" + y="0" + id="tspan3014">p</tspan></text> + <text + xml:space="preserve" + transform="translate(103.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3020"><tspan + x="0" + y="0" + id="tspan3018">[</tspan></text> + <text + xml:space="preserve" + transform="translate(112,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3024"><tspan + x="0" + y="0" + id="tspan3022">1</tspan></text> + <text + xml:space="preserve" + transform="translate(120,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3028"><tspan + x="0" + y="0" + id="tspan3026">]</tspan></text> + <text + xml:space="preserve" + transform="translate(127.78565,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3032"><tspan + x="0" + y="0" + id="tspan3030">)</tspan></text> + <text + xml:space="preserve" + transform="translate(135.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3036"><tspan + x="0" + y="0" + id="tspan3034">;</tspan></text> + </g> + <g + id="g3038" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,67.050471)"> + <text + xml:space="preserve" + transform="translate(48,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3042"><tspan + x="0" + y="0" + id="tspan3040">w</tspan></text> + <text + xml:space="preserve" + transform="translate(55.892822,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3046"><tspan + x="0" + y="0" + id="tspan3044">h</tspan></text> + <text + xml:space="preserve" + transform="translate(63.785645,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3050"><tspan + x="0" + y="0" + id="tspan3048">i</tspan></text> + <text + xml:space="preserve" + transform="translate(71.678467,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3054"><tspan + x="0" + y="0" + id="tspan3052">l</tspan></text> + <text + xml:space="preserve" + transform="translate(79.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3058"><tspan + x="0" + y="0" + id="tspan3056">e</tspan></text> + <text + xml:space="preserve" + transform="translate(95.946411,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3062"><tspan + x="0" + y="0" + id="tspan3060">(</tspan></text> + <text + xml:space="preserve" + transform="translate(103.89282,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3066"><tspan + x="0" + y="0" + id="tspan3064" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';fill:#ff0000">r</tspan></text> + <text + xml:space="preserve" + transform="translate(111.83923,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3070"><tspan + x="0" + y="0" + id="tspan3068" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';fill:#ff0000">e</tspan></text> + <text + xml:space="preserve" + transform="translate(119.78565,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3074"><tspan + x="0" + y="0" + id="tspan3072" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';fill:#ff0000">a</tspan></text> + <text + xml:space="preserve" + transform="translate(127.73206,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3078"><tspan + x="0" + y="0" + id="tspan3076" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';fill:#ff0000">d</tspan></text> + <text + xml:space="preserve" + transform="translate(135.67847,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3082"><tspan + x="0" + y="0" + id="tspan3080" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';fill:#ff0000">(</tspan></text> + <text + xml:space="preserve" + transform="translate(143.62488,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3086"><tspan + x="0" + y="0" + id="tspan3084">p</tspan></text> + <text + xml:space="preserve" + transform="translate(151.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3090"><tspan + x="0" + y="0" + id="tspan3088">[</tspan></text> + <text + xml:space="preserve" + transform="translate(160,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3094"><tspan + x="0" + y="0" + id="tspan3092">0</tspan></text> + <text + xml:space="preserve" + transform="translate(168,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3098"><tspan + x="0" + y="0" + id="tspan3096">]</tspan></text> + <text + xml:space="preserve" + transform="translate(175.78564,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3102"><tspan + x="0" + y="0" + id="tspan3100">,</tspan></text> + <text + xml:space="preserve" + transform="translate(192,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3106"><tspan + x="0" + y="0" + id="tspan3104">&</tspan></text> + <text + xml:space="preserve" + transform="translate(200,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3110"><tspan + x="0" + y="0" + id="tspan3108">c</tspan></text> + <text + xml:space="preserve" + transform="translate(207.78564,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3114"><tspan + x="0" + y="0" + id="tspan3112">,</tspan></text> + <text + xml:space="preserve" + transform="translate(224,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3118"><tspan + x="0" + y="0" + id="tspan3116">s</tspan></text> + <text + xml:space="preserve" + transform="translate(231.91426,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3122"><tspan + x="0" + y="0" + id="tspan3120">i</tspan></text> + <text + xml:space="preserve" + transform="translate(239.82852,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3126"><tspan + x="0" + y="0" + id="tspan3124">z</tspan></text> + <text + xml:space="preserve" + transform="translate(247.74277,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3130"><tspan + x="0" + y="0" + id="tspan3128">e</tspan></text> + <text + xml:space="preserve" + transform="translate(255.65703,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3134"><tspan + x="0" + y="0" + id="tspan3132">o</tspan></text> + <text + xml:space="preserve" + transform="translate(263.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3138"><tspan + x="0" + y="0" + id="tspan3136">f</tspan></text> + <text + xml:space="preserve" + transform="translate(272,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3142"><tspan + x="0" + y="0" + id="tspan3140">(</tspan></text> + <text + xml:space="preserve" + transform="translate(280,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3146"><tspan + x="0" + y="0" + id="tspan3144">c</tspan></text> + <text + xml:space="preserve" + transform="translate(287.85709,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3150"><tspan + x="0" + y="0" + id="tspan3148">h</tspan></text> + <text + xml:space="preserve" + transform="translate(295.7142,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3154"><tspan + x="0" + y="0" + id="tspan3152">a</tspan></text> + <text + xml:space="preserve" + transform="translate(303.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3158"><tspan + x="0" + y="0" + id="tspan3156">r</tspan></text> + <text + xml:space="preserve" + transform="translate(312,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3162"><tspan + x="0" + y="0" + id="tspan3160">)</tspan></text> + <text + xml:space="preserve" + transform="translate(319.78564,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3166"><tspan + x="0" + y="0" + id="tspan3164" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';fill:#ff0000">)</tspan></text> + <text + xml:space="preserve" + transform="translate(336,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3170"><tspan + x="0" + y="0" + id="tspan3168">></tspan></text> + <text + xml:space="preserve" + transform="translate(352,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3174"><tspan + x="0" + y="0" + id="tspan3172">0</tspan></text> + <text + xml:space="preserve" + transform="translate(360,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3178"><tspan + x="0" + y="0" + id="tspan3176">)</tspan></text> + </g> + <g + id="g3180" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,70.049084)"> + <text + xml:space="preserve" + transform="translate(63.736179,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3184"><tspan + x="0" + y="0" + id="tspan3182">w</tspan></text> + <text + xml:space="preserve" + transform="translate(71.703201,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3188"><tspan + x="0" + y="0" + id="tspan3186">r</tspan></text> + <text + xml:space="preserve" + transform="translate(79.670219,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3192"><tspan + x="0" + y="0" + id="tspan3190">i</tspan></text> + <text + xml:space="preserve" + transform="translate(87.637245,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3196"><tspan + x="0" + y="0" + id="tspan3194">t</tspan></text> + <text + xml:space="preserve" + transform="translate(95.604263,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3200"><tspan + x="0" + y="0" + id="tspan3198">e</tspan></text> + <text + xml:space="preserve" + transform="translate(103.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3204"><tspan + x="0" + y="0" + id="tspan3202">(</tspan></text> + <text + xml:space="preserve" + transform="translate(112,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3208"><tspan + x="0" + y="0" + id="tspan3206">1</tspan></text> + <text + xml:space="preserve" + transform="translate(120,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3212"><tspan + x="0" + y="0" + id="tspan3210">,</tspan></text> + <text + xml:space="preserve" + transform="translate(136,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3216"><tspan + x="0" + y="0" + id="tspan3214">&</tspan></text> + <text + xml:space="preserve" + transform="translate(144,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3220"><tspan + x="0" + y="0" + id="tspan3218">c</tspan></text> + <text + xml:space="preserve" + transform="translate(151.78564,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3224"><tspan + x="0" + y="0" + id="tspan3222">,</tspan></text> + <text + xml:space="preserve" + transform="translate(168,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3228"><tspan + x="0" + y="0" + id="tspan3226">s</tspan></text> + <text + xml:space="preserve" + transform="translate(175.91426,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3232"><tspan + x="0" + y="0" + id="tspan3230">i</tspan></text> + <text + xml:space="preserve" + transform="translate(183.82852,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3236"><tspan + x="0" + y="0" + id="tspan3234">z</tspan></text> + <text + xml:space="preserve" + transform="translate(191.74277,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3240"><tspan + x="0" + y="0" + id="tspan3238">e</tspan></text> + <text + xml:space="preserve" + transform="translate(199.65703,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3244"><tspan + x="0" + y="0" + id="tspan3242">o</tspan></text> + <text + xml:space="preserve" + transform="translate(207.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3248"><tspan + x="0" + y="0" + id="tspan3246">f</tspan></text> + <text + xml:space="preserve" + transform="translate(216,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3252"><tspan + x="0" + y="0" + id="tspan3250">(</tspan></text> + <text + xml:space="preserve" + transform="translate(224,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3256"><tspan + x="0" + y="0" + id="tspan3254">c</tspan></text> + <text + xml:space="preserve" + transform="translate(231.8571,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3260"><tspan + x="0" + y="0" + id="tspan3258">h</tspan></text> + <text + xml:space="preserve" + transform="translate(239.71419,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3264"><tspan + x="0" + y="0" + id="tspan3262">a</tspan></text> + <text + xml:space="preserve" + transform="translate(247.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#a626a4;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3268"><tspan + x="0" + y="0" + id="tspan3266">r</tspan></text> + <text + xml:space="preserve" + transform="translate(256,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3272"><tspan + x="0" + y="0" + id="tspan3270">)</tspan></text> + <text + xml:space="preserve" + transform="translate(263.78564,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3276"><tspan + x="0" + y="0" + id="tspan3274">)</tspan></text> + <text + xml:space="preserve" + transform="translate(271.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3280"><tspan + x="0" + y="0" + id="tspan3278">;</tspan></text> + </g> + <g + id="g3282" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,73.04769)"> + <text + xml:space="preserve" + transform="translate(47.802132,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3286"><tspan + x="0" + y="0" + id="tspan3284">c</tspan></text> + <text + xml:space="preserve" + transform="translate(55.769157,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3290"><tspan + x="0" + y="0" + id="tspan3288">l</tspan></text> + <text + xml:space="preserve" + transform="translate(63.736179,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3294"><tspan + x="0" + y="0" + id="tspan3292">o</tspan></text> + <text + xml:space="preserve" + transform="translate(71.703201,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3298"><tspan + x="0" + y="0" + id="tspan3296">s</tspan></text> + <text + xml:space="preserve" + transform="translate(79.670219,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3302"><tspan + x="0" + y="0" + id="tspan3300">e</tspan></text> + <text + xml:space="preserve" + transform="translate(87.637245,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3306"><tspan + x="0" + y="0" + id="tspan3304">(</tspan></text> + <text + xml:space="preserve" + transform="translate(95.604263,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3310"><tspan + x="0" + y="0" + id="tspan3308">p</tspan></text> + <text + xml:space="preserve" + transform="translate(103.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3314"><tspan + x="0" + y="0" + id="tspan3312">[</tspan></text> + <text + xml:space="preserve" + transform="translate(112,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3318"><tspan + x="0" + y="0" + id="tspan3316">0</tspan></text> + <text + xml:space="preserve" + transform="translate(120,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3322"><tspan + x="0" + y="0" + id="tspan3320">]</tspan></text> + <text + xml:space="preserve" + transform="translate(127.78565,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3326"><tspan + x="0" + y="0" + id="tspan3324">)</tspan></text> + <text + xml:space="preserve" + transform="translate(135.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3330"><tspan + x="0" + y="0" + id="tspan3328">;</tspan></text> + </g> + <g + id="g3332" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,76.046303)"> + <text + xml:space="preserve" + transform="translate(48,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0997b3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3336"><tspan + x="0" + y="0" + id="tspan3334">e</tspan></text> + <text + xml:space="preserve" + transform="translate(55.857098,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0997b3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3340"><tspan + x="0" + y="0" + id="tspan3338">x</tspan></text> + <text + xml:space="preserve" + transform="translate(63.714191,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0997b3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3344"><tspan + x="0" + y="0" + id="tspan3342">i</tspan></text> + <text + xml:space="preserve" + transform="translate(71.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#0997b3;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3348"><tspan + x="0" + y="0" + id="tspan3346">t</tspan></text> + <text + xml:space="preserve" + transform="translate(80,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3352"><tspan + x="0" + y="0" + id="tspan3350">(</tspan></text> + <text + xml:space="preserve" + transform="translate(88,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#c18401;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3356"><tspan + x="0" + y="0" + id="tspan3354">0</tspan></text> + <text + xml:space="preserve" + transform="translate(96,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3360"><tspan + x="0" + y="0" + id="tspan3358">)</tspan></text> + <text + xml:space="preserve" + transform="translate(103.57129,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3364"><tspan + x="0" + y="0" + id="tspan3362">;</tspan></text> + </g> + <g + id="g3366" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,79.044917)"> + <text + xml:space="preserve" + transform="translate(15.571289,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3370"><tspan + x="0" + y="0" + id="tspan3368">}</tspan></text> + </g> + <g + id="g3372" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,82.043522)"> + <text + xml:space="preserve" + transform="translate(0,13)" + style="font-variant:normal;font-weight:normal;font-size:14px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:DejaVuSansMono;writing-mode:lr-tb;fill:#383a42;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text3376"><tspan + x="0" + y="0" + id="tspan3374">}</tspan></text> + </g> + </g> + <g + id="g3484" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,19.072696)" /> + <g + id="g3488" + transform="matrix(0.17638887,0,0,0.17638887,30.396208,88.04075)" /> + <g + id="g83834" + transform="translate(107.58483,23.626053)" + style="fill:#ff0000"> + <image + width="23.225805" + height="15" + preserveAspectRatio="none" + style="stroke-width:0.174978;image-rendering:optimizeSpeed;fill:#ff0000" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAfCAYAAACh+E5kAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9 kT1Iw0AcxV9bRSktFawg4pChOlkQFXHUKhShQqgVWnUwufQLmjQkKS6OgmvBwY/FqoOLs64OroIg +AHi6OSk6CIl/i8ptIjx4Lgf7+497t4B/kaFqWbXOKBqlpFOJoRsblXoeUUQYQygDxGJmfqcKKbg Ob7u4ePrXZxneZ/7c4SVvMkAn0A8y3TDIt4gnt60dM77xFFWkhTic+Ixgy5I/Mh12eU3zkWH/Twz amTS88RRYqHYwXIHs5KhEk8RxxRVo3x/1mWF8xZntVJjrXvyF4by2soy12kOI4lFLEGEABk1lFGB hTitGikm0rSf8PAPOX6RXDK5ymDkWEAVKiTHD/4Hv7s1C5MTblIoAXS/2PbHCNCzCzTrtv19bNvN EyDwDFxpbX+1Acx8kl5va7EjILINXFy3NXkPuNwBBp90yZAcKUDTXygA72f0TTmg/xYIrrm9tfZx +gBkqKvUDXBwCIwWKXvd4929nb39e6bV3w8q3nKKscjFLwAAAAZiS0dEAP8A/wD/oL2nkwAAAAlw SFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+YKDRUYGD+J89cAAAAZdEVYdENvbW1lbnQAQ3JlYXRl ZCB3aXRoIEdJTVBXgQ4XAAABiElEQVRYw+1Y20rEMBA9M826bP0U1wdB9MX/B19E3NX/8GEVL5nj Q9JuWyNNRTHFDZSQZJhhLuckHay0IoDcr7jhhIrN5nZU8Or8Eo8vT8U5oBTLEhSUOZxalSVIALUs CABCgamHUAEQFEKtQgiG9PZMfTxrqlBAsd6eUKM+aUOVa8OZ+uwMXN/dlFdCwev5Ds2tbpbrAGcN Yg0gmXEGpoC4SAem0OghAwca/c80inJLSOftwIFG//o5PSUD65P1fmGdtDCgKb6Ww1lEGCzO3Sh0 5VP6Jthw33pKMGGMiTMOzlLyKX0TbEgtjjt7G3XgWI+w86/llRAgmQVeJgrCTcwfTG+zlkEJ/ZKN AOIuoGwAsAaIEGzvt4XSqPXv5t66ZRGWS6Pbh/HILhfLmf+RFfricNmNLQIXp2dxYRBWYLxpBAJK 6OFQiCYoFIt71vZ6CEKgoHig6QO1+jplmmkjv7ElwDPeZc+olmBZi7Pv7PkEfPxnFvpK34gNDd2x GY9aXFZnegVXpKcfnHHpyinb6ZAAAAAASUVORK5CYII= " + id="image50850" + x="97.006233" + y="111.85227" /> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000" + x="94.883553" + y="133.28987" + id="text54908"><tspan + sodipodi:role="line" + id="tspan54906" + style="stroke-width:0.264583;fill:#000000" + x="94.883553" + y="133.28987">pipe:[1137]</tspan></text> + </g> + <path + style="fill:none;stroke:#cccccc;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + d="m 164.87473,47.220362 h 20.20444 v 60.072908 l 19.85168,0" + id="path52862" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;stroke:#e5e5e5;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + d="m 164.95174,41.699899 h 22.9205 v 27.123834 h 20.11199" + id="path52911" /> + <path + style="fill:none;stroke:#cccccc;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + d="m 164.76942,37.039298 h 38.48161" + id="path52913" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" + d="m 161.02013,52.048272 h 21.77513 v 75.725918 h 58.15801 v 12.77337 H 230.4018" + id="path70938" + sodipodi:nodetypes="cccccc" /> + <rect + style="fill:none;stroke:#000000;stroke-width:0.168479;stroke-dasharray:none;stroke-opacity:1" + id="rect9440-6" + width="116.25708" + height="89.83152" + x="6.2269368" + y="97.798691" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.93888889px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="10.59283" + y="115.12449" + id="text149371"><tspan + sodipodi:role="line" + id="tspan149369" + style="stroke-width:0.264583;font-size:4.93888889px" + x="10.59283" + y="115.12449" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="17.387365" + y="139.6445" + id="text149375"><tspan + sodipodi:role="line" + id="tspan149373" + style="font-size:4.93889px;stroke-width:0.264583" + x="17.387365" + y="139.6445">echo est chargé en mémoire et exécuté</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583" + x="17.387365" + y="146.40823" + id="text166694"><tspan + sodipodi:role="line" + id="tspan166692" + style="stroke-width:0.264583" + x="17.387365" + y="146.40823">echo affiche tout son texte</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583" + x="17.387365" + y="153.69962" + id="text169324"><tspan + sodipodi:role="line" + id="tspan169322" + style="stroke-width:0.264583" + x="17.387365" + y="153.69962">echo termine</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;stroke-width:0.264583" + x="128.64386" + y="8.7281952" + id="text172306"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;stroke-width:0.264583" + x="128.64386" + y="8.7281952" + id="tspan45162">si p[1] était encore ouvert, read bloquerait</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;stroke-width:0.264583" + x="128.64386" + y="14.90182" + id="tspan56573">le processus indéfiniment !</tspan></text> + <path + style="fill:none;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:3;stroke-opacity:1;stroke-dashoffset:0" + d="m 161.444,57.554 h 19.04361 v 83.06921 h 22.05073" + id="path70940" /> + <g + id="g71350"> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583" + x="151.51085" + y="69.661545" + id="text6972"><tspan + sodipodi:role="line" + id="tspan6970" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583" + x="151.51085" + y="69.661545">processus père</tspan></text> + <rect + style="fill:#f2f2f2;stroke:#000000;stroke-width:0.1;stroke-dasharray:none;stroke-opacity:1" + id="rect6964" + width="29.764124" + height="37.809834" + x="136.70837" + y="25.866203" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 139.02258,33.329593 h 25" + id="path169" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 145.22491,61.117913 V 27.471865" + id="path169-3" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:4.23333px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="138.92543" + y="31.60957" + id="text225"><tspan + sodipodi:role="line" + id="tspan223" + style="font-size:4.23333px;stroke-width:0.264583" + x="138.92543" + y="31.60957">fd variable</tspan></text> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="140.22003" + y="38.094936" + id="text4716"><tspan + sodipodi:role="line" + id="tspan4714" + style="stroke-width:0.264583" + x="140.22003" + y="38.094936">0 stdin</tspan></text> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000" + x="139.98645" + y="43.379482" + id="text4720"><tspan + sodipodi:role="line" + id="tspan4718" + style="stroke-width:0.264583;fill:#000000" + x="139.98645" + y="43.379482">1 stdout</tspan></text> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="140.18077" + y="48.664028" + id="text4724"><tspan + sodipodi:role="line" + id="tspan4722" + style="stroke-width:0.264583" + x="140.18077" + y="48.664028">2 stderr</tspan></text> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000" + x="140.21178" + y="53.450417" + id="text4728"><tspan + sodipodi:role="line" + id="tspan4726" + style="stroke-width:0.264583;fill:#000000" + x="140.21178" + y="53.450417">3 p[0]</tspan></text> + </g> + </g> +</svg> diff --git a/221018-pipe-example/fig/20-parent-close-done.svg b/221018-pipe-example/fig/20-parent-close-done.svg index 2117ffd6c4e30abf2d4dd9c04b34529f9f66a0e2..08f6e60be0f4a72d454ffd938c320ad30bafa65f 100644 --- a/221018-pipe-example/fig/20-parent-close-done.svg +++ b/221018-pipe-example/fig/20-parent-close-done.svg @@ -26,11 +26,11 @@ inkscape:document-units="mm" showgrid="false" inkscape:zoom="1.0261534" - inkscape:cx="477.0242" - inkscape:cy="355.21005" + inkscape:cx="468.25358" + inkscape:cy="368.85323" inkscape:window-width="1916" inkscape:window-height="1032" - inkscape:window-x="1920" + inkscape:window-x="0" inkscape:window-y="22" inkscape:window-maximized="1" inkscape:current-layer="layer1" @@ -2090,13 +2090,13 @@ y="111.85227" /> <text xml:space="preserve" - style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000" + style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583;fill:#ff0000;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal" x="94.883553" y="133.28987" id="text54908"><tspan sodipodi:role="line" id="tspan54906" - style="stroke-width:0.264583;fill:#000000" + style="stroke-width:0.264583;fill:#ff0000;-inkscape-font-specification:'monospace Bold';font-family:monospace;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal" x="94.883553" y="133.28987">pipe:[1137]</tspan></text> </g> diff --git a/221018-pipe-example/slides.tex b/221018-pipe-example/slides.tex index 3fbfe2631b9ad643da9015a151167fcc8209ee5f..f24c500d9b38330766d2abae63d5c684cc1b019e 100644 --- a/221018-pipe-example/slides.tex +++ b/221018-pipe-example/slides.tex @@ -34,6 +34,7 @@ \imageframe{fig/16-parent-read-loop.pdf} \imageframe{fig/17-child-exit.pdf} \imageframe{fig/18-child-exit-done.pdf} +\imageframe{fig/18b-child-exit-done-deadlock-note.pdf} \imageframe{fig/19-parent-close.pdf} \imageframe{fig/20-parent-close-done.pdf}