# HG changeset patch # User Edouard Tisserant <edouard@beremiz.fr> # Date 1733403419 -3600 # Node ID d2f5eb3c7d6edd2f45b8501c901630073f52f31e # Parent 03f007a175b5d15199364bf269d50cf9e3477f1d py_ext: fix CSV Writer fix POU logic : - SAVE is a BOOL - invocation of py_eval on rising edge of SAVE - remove save python argument fix python: - use no encoding for file open (python2) - re-use detected dialect if any - use no "rt+" and truncate since no need to re-sniff dialect for output file - return "OK" instead of "#SUCCESS", preventing POU logic to ACK result - support creating new line if writing just after last line - support appending data on short rows fix example: - use a HMI:Button to trigger CSV write instead of HMI:Input +1 - reload CSVs on on each new CSV opened in file browser - add display of CSV write output diff -r 03f007a175b5 -r d2f5eb3c7d6e exemples/svghmi_csv_json_img_table/plc.xml --- a/exemples/svghmi_csv_json_img_table/plc.xml Wed Dec 04 12:00:37 2024 +0100 +++ b/exemples/svghmi_csv_json_img_table/plc.xml Thu Dec 05 13:56:59 2024 +0100 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='utf-8'?> <project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201"> <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/> - <contentHeader name="Unnamed" modificationDateTime="2024-11-18T09:37:56"> + <contentHeader name="Unnamed" modificationDateTime="2024-12-05T12:05:23"> <coordinateInfo> <fbd> <scaling x="5" y="5"/> @@ -43,7 +43,7 @@ </variable> <variable name="SAVE"> <type> - <derived name="HMI_INT"/> + <derived name="HMI_BOOL"/> </type> <initialValue> <simpleValue value="0"/> diff -r 03f007a175b5 -r d2f5eb3c7d6e exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/pyfile.xml --- a/exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/pyfile.xml Wed Dec 04 12:00:37 2024 +0100 +++ b/exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/pyfile.xml Thu Dec 05 13:56:59 2024 +0100 @@ -52,6 +52,7 @@ if action == 'onClick[acknowledge]': if sent_path.endswith('.csv'): PLCGlobals.FileName = sent_path + pyext_csv_reload() else: PLCGlobals.CurrentPath = path = sent_path diff -r 03f007a175b5 -r d2f5eb3c7d6e exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/svghmi.svg --- a/exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/svghmi.svg Wed Dec 04 12:00:37 2024 +0100 +++ b/exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/svghmi.svg Thu Dec 05 13:56:59 2024 +0100 @@ -2,7 +2,7 @@ <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg - inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" sodipodi:docname="svghmi.svg" id="hmi0" version="1.1" @@ -17,17 +17,10 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><script - id="script1244"> -hmi_widgets["g443-3"].off_action = function(){ - console.log("Hello from Inkscape"); - PushButtonWidget.prototype.off_action.call(this); - fading_page_switch(); - console.log("Bye from Inkscape"); -}</script><metadata + xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata id="metadata4542"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs id="defs2"><linearGradient id="linearGradient34303" inkscape:swatch="solid"><stop @@ -94,11 +87,11 @@ inkscape:current-layer="hmi0" showgrid="false" units="px" - inkscape:zoom="0.80184806" - inkscape:cx="612.33546" - inkscape:cy="267.50704" - inkscape:window-width="1854" - inkscape:window-height="1011" + inkscape:zoom="0.5669922" + inkscape:cx="396.83086" + inkscape:cy="313.05545" + inkscape:window-width="1850" + inkscape:window-height="1016" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" @@ -113,913 +106,1052 @@ fit-margin-right="0" fit-margin-bottom="0" inkscape:showpageshadow="0" - inkscape:deskcolor="#505050" /><g + inkscape:deskcolor="#505050"><sodipodi:guide + position="1229.3641,194.47748" + orientation="1,0" + id="guide5327" /></sodipodi:namedview><g inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL" id="g2432" style="fill-rule:evenodd;stroke-width:0.476314" transform="matrix(3.3549332,0,0,3.14525,-181.8746,1576.0198)"><path - sodipodi:nodetypes="ccccc" - inkscape:label="Background" - inkscape:connector-curvature="0" - id="path2136" - d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16777;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><rect - ry="3.8152773" - rx="3.8152773" - y="15.77106" - x="64.024963" - height="30.150299" - width="361.89996" - id="rect2426" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - inkscape:label="Field" /><text - id="text2430" + sodipodi:nodetypes="ccccc" + inkscape:label="Background" + inkscape:connector-curvature="0" + id="path2136" + d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16777;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><rect + ry="3.8152773" + rx="3.8152773" + y="15.77106" + x="64.024963" + height="30.150299" + width="361.89996" + id="rect2426" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + inkscape:label="Field" /><text + id="text2430" + y="37.408375" + x="72.50132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0764px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47691px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Value"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47691px" y="37.408375" x="72.50132" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0764px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47691px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve" - inkscape:label="Value"><tspan - style="text-align:start;text-anchor:start;stroke-width:0.47691px" - y="37.408375" - x="72.50132" - id="tspan2428" - sodipodi:role="line">number</tspan></text><g - style="fill-rule:evenodd;stroke-width:0.135852" - inkscape:label="Enter" - id="g4947" - transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"><path - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path193" - d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z" - inkscape:connector-curvature="0" /><path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z" - transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)" - id="path6545-4" - inkscape:connector-curvature="0" /></g><g - style="fill-rule:evenodd;stroke-width:0.135852" - inkscape:label="Keys" - id="g4993" - transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"><g - style="stroke-width:0.135852" - inkscape:label="7" - id="g4892"><path - inkscape:connector-curvature="0" - d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" - id="path163" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text331" - y="129.38269" - x="636.4165" - transform="scale(1.0007154,0.99928514)">7</text></g><g - style="stroke-width:0.135852" - inkscape:label="4" - id="g4907"><path - inkscape:connector-curvature="0" - d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path169" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text335" - y="154.10822" - x="636.4165" - transform="scale(1.0007154,0.99928514)">4</text></g><g - style="stroke-width:0.135852" - inkscape:label="1" - id="g4922"><path - inkscape:connector-curvature="0" - d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" - id="path175" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text339" - y="179.82285" - x="636.4165" - transform="scale(1.0007154,0.99928514)">1</text></g><g - style="stroke-width:0.135852" - inkscape:label="8" - id="g4897"><path - inkscape:connector-curvature="0" - d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" - id="path165" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text347" - y="129.38269" - x="667.07562" - transform="scale(1.0007154,0.99928514)">8</text></g><g - style="stroke-width:0.135852" - inkscape:label="5" - id="g4912"><path - inkscape:connector-curvature="0" - d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path171" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text351" - y="154.10822" - x="667.07562" - transform="scale(1.0007154,0.99928514)">5</text></g><g - style="stroke-width:0.135852" - inkscape:label="2" - id="g4927"><path - inkscape:connector-curvature="0" - d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" - id="path177" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text355" - y="179.82285" - x="667.07562" - transform="scale(1.0007154,0.99928514)">2</text></g><g - style="stroke-width:0.135852" - inkscape:label="9" - id="g4902"><path - inkscape:connector-curvature="0" - d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" - id="path167" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text363" - y="129.38269" - x="695.75708" - transform="scale(1.0007154,0.99928514)">9</text></g><g - style="stroke-width:0.135852" - inkscape:label="6" - id="g4917"><path - inkscape:connector-curvature="0" - d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path173" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text367" - y="154.10822" - x="695.75708" - transform="scale(1.0007154,0.99928514)">6</text></g><g - style="stroke-width:0.135852" - inkscape:label="3" - id="g4932"><path - inkscape:connector-curvature="0" - d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" - id="path179" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text371" - y="179.82285" - x="695.75708" - transform="scale(1.0007154,0.99928514)">3</text></g><g - style="stroke-width:0.135852" - inkscape:label="0" - id="g4937"><path - inkscape:connector-curvature="0" - d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z" - id="path373" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text377" - y="205.53712" - x="636.4165" - transform="scale(1.0007154,0.99928514)">0</text></g></g><g - id="g3113" - inkscape:label="Esc" - transform="translate(-318.22576)"><path - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path167-3" - d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" - inkscape:connector-curvature="0" /><text - x="394.42801" - y="78.632088" - id="text469-4" - style="font-weight:normal;font-size:10.6388px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668" - transform="scale(1.0007154,0.99928511)">Esc</text></g><g - id="g3109" - inkscape:label="BackSpace" - transform="translate(0,-43.420332)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path173-1" - d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z" - inkscape:connector-curvature="0" /><path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z" - transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)" - id="path11623-1-0-2" - inkscape:connector-curvature="0" /></g><g - id="g787" - inkscape:label="Sign" - style="fill-rule:evenodd;stroke-width:0.135852" - transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path781" - d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" - inkscape:connector-curvature="0" /><text - x="642.1239" - y="135.09822" - id="text783" - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - transform="scale(1.0007154,0.99928514)">+/-</text></g><text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.3138px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.307844px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="tspan2428" + sodipodi:role="line">number</tspan></text> + +<g + style="fill-rule:evenodd;stroke-width:0.135852" + inkscape:label="Enter" + id="g4947" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"><path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path193" + d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z" + inkscape:connector-curvature="0" /><path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z" + transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)" + id="path6545-4" + inkscape:connector-curvature="0" /></g><g + style="fill-rule:evenodd;stroke-width:0.135852" + inkscape:label="Keys" + id="g4993" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"><g + style="stroke-width:0.135852" + inkscape:label="7" + id="g4892"><path + inkscape:connector-curvature="0" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path163" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text331" + y="129.38269" + x="636.4165" + transform="scale(1.0007154,0.99928514)">7</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="4" + id="g4907"><path + inkscape:connector-curvature="0" + d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path169" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text335" + y="154.10822" + x="636.4165" + transform="scale(1.0007154,0.99928514)">4</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="1" + id="g4922"><path + inkscape:connector-curvature="0" + d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path175" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text339" + y="179.82285" + x="636.4165" + transform="scale(1.0007154,0.99928514)">1</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="8" + id="g4897"><path + inkscape:connector-curvature="0" + d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path165" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text347" + y="129.38269" + x="667.07562" + transform="scale(1.0007154,0.99928514)">8</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="5" + id="g4912"><path + inkscape:connector-curvature="0" + d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path171" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text351" + y="154.10822" + x="667.07562" + transform="scale(1.0007154,0.99928514)">5</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="2" + id="g4927"><path + inkscape:connector-curvature="0" + d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path177" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text355" + y="179.82285" + x="667.07562" + transform="scale(1.0007154,0.99928514)">2</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="9" + id="g4902"><path + inkscape:connector-curvature="0" + d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + id="path167" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text363" + y="129.38269" + x="695.75708" + transform="scale(1.0007154,0.99928514)">9</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="6" + id="g4917"><path + inkscape:connector-curvature="0" + d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path173" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text367" + y="154.10822" + x="695.75708" + transform="scale(1.0007154,0.99928514)">6</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="3" + id="g4932"><path + inkscape:connector-curvature="0" + d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z" + id="path179" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text371" + y="179.82285" + x="695.75708" + transform="scale(1.0007154,0.99928514)">3</text> + +</g><g + style="stroke-width:0.135852" + inkscape:label="0" + id="g4937"><path + inkscape:connector-curvature="0" + d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z" + id="path373" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text377" + y="205.53712" + x="636.4165" + transform="scale(1.0007154,0.99928514)">0</text> + +</g></g><g + id="g3113" + inkscape:label="Esc" + transform="translate(-318.22576)"><path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path167-3" + d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z" + inkscape:connector-curvature="0" /><text + x="394.42801" + y="78.632088" + id="text469-4" + style="font-weight:normal;font-size:10.6388px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668" + transform="scale(1.0007154,0.99928511)">Esc</text> + +</g><g + id="g3109" + inkscape:label="BackSpace" + transform="translate(0,-43.420332)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path173-1" + d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z" + inkscape:connector-curvature="0" /><path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z" + transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)" + id="path11623-1-0-2" + inkscape:connector-curvature="0" /></g><g + id="g787" + inkscape:label="Sign" + style="fill-rule:evenodd;stroke-width:0.135852" + transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path781" + d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z" + inkscape:connector-curvature="0" /><text + x="642.1239" + y="135.09822" + id="text783" + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + transform="scale(1.0007154,0.99928514)">+/-</text> + +</g><text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.3138px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.307844px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="252.9579" + y="12.333653" + id="text509" + transform="scale(0.96824589,1.0327955)" + inkscape:label="Info"><tspan + sodipodi:role="line" + id="tspan507" x="252.9579" y="12.333653" - id="text509" - transform="scale(0.96824589,1.0327955)" - inkscape:label="Info"><tspan - sodipodi:role="line" - id="tspan507" - x="252.9579" - y="12.333653" - style="stroke-width:0.307844px">information</tspan></text><g - transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)" - style="fill-rule:evenodd;stroke-width:0.135852" - id="g4942" - inkscape:label="NumDot"><path - inkscape:connector-curvature="0" - d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path181" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:6.96603px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" - id="text771" - y="204.54802" - x="696.7464" - transform="scale(1.0007154,0.99928514)">.</text></g></g><g + style="stroke-width:0.307844px">information</tspan></text> + +<g + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)" + style="fill-rule:evenodd;stroke-width:0.135852" + id="g4942" + inkscape:label="NumDot"><path + inkscape:connector-curvature="0" + d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path181" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.100744;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:6.96603px;font-family:Arial;fill:#2b2828;stroke-width:0.10515" + id="text771" + y="204.54802" + x="696.7464" + transform="scale(1.0007154,0.99928514)">.</text> + +</g></g><g transform="matrix(3.3549332,0,0,3.14525,-181.8746,796.0198)" style="fill-rule:evenodd;stroke-width:0.476314" id="g4278" inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL"><path - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16777;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z" - id="rect1006-3" - inkscape:connector-curvature="0" - inkscape:label="Background" - sodipodi:nodetypes="ccccc" /><path + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16777;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z" + id="rect1006-3" + inkscape:connector-curvature="0" + inkscape:label="Background" + sodipodi:nodetypes="ccccc" /><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path185" + d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z" + inkscape:connector-curvature="0" + inkscape:label="Space" /><g + id="g4380" + inkscape:label="Keys" + style="stroke-width:0.476314" + transform="translate(0,-19.076386)"><g + id="g4283" + inkscape:label="q Q" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path41" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /><text + x="99.378708" + y="138.28395" + id="text203" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">Q</text> + +</g><g + id="g4337" + inkscape:label="w W" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path43" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /><text + x="127.0709" + y="138.28395" + id="text207" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">W</text> + +</g><g + id="g4332" + inkscape:label="e E" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path45" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /><text + x="159.70854" + y="138.28395" + id="text211" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">E</text> + +</g><g + id="g4326" + inkscape:label="r R" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path47" + d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + inkscape:connector-curvature="0" /><text + x="188.39003" + y="138.28395" + id="text215" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">R</text> + +</g><g + id="g4321" + inkscape:label="t T" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path49" + d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /><text + x="219.04961" + y="138.28395" + id="text219" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">T</text> + +</g><g + id="g4316" + inkscape:label="y Y" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path51" + d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /><text + x="248.72017" + y="138.28395" + id="text223" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">Y</text> + +</g><g + id="g4311" + inkscape:label="u U" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path53" + d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /><text + x="278.39075" + y="138.28395" + id="text227" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">U</text> + +</g><g + id="g4306" + inkscape:label="i I" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path55" + d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /><text + x="311.02859" + y="138.28395" + id="text231" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">I</text> + +</g><g + id="g4301" + inkscape:label="o O" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path57" + d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /><text + x="336.74319" + y="138.28395" + id="text235" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">O</text> + +</g><g + id="g4296" + inkscape:label="p P" + style="stroke-width:0.476314" + transform="translate(0,-9.5381931)"><path + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path59" + d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" + inkscape:connector-curvature="0" /><text + x="367.40256" + y="138.28395" + id="text239" + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928514)">P</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4511" + inkscape:label="a A"><path + inkscape:connector-curvature="0" + d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path65" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text243" + y="163.99854" + x="107.29005" + transform="scale(1.0007154,0.99928514)">A</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4516" + inkscape:label="s S"><path + inkscape:connector-curvature="0" + d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path67" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text247" + y="163.99854" + x="137.95012" + transform="scale(1.0007154,0.99928514)">S</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4521" + inkscape:label="d D"><path + inkscape:connector-curvature="0" + d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path69" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text251" + y="163.99854" + x="166.63159" + transform="scale(1.0007154,0.99928514)">D</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4526" + inkscape:label="f F"><path + inkscape:connector-curvature="0" + d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path71" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text255" + y="163.99854" + x="197.29166" + transform="scale(1.0007154,0.99928514)">F</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4531" + inkscape:label="g G"><path + inkscape:connector-curvature="0" + d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" + id="path73" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text259" + y="163.99854" + x="225.97284" + transform="scale(1.0007154,0.99928514)">G</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4536" + inkscape:label="h H"><path + inkscape:connector-curvature="0" + d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path75" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text263" + y="163.99854" + x="255.64342" + transform="scale(1.0007154,0.99928514)">H</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4541" + inkscape:label="j J"><path + inkscape:connector-curvature="0" + d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path77" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text267" + y="163.99854" + x="287.29208" + transform="scale(1.0007154,0.99928514)">J</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4546" + inkscape:label="k K"><path + inkscape:connector-curvature="0" + d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path79" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text271" + y="163.99854" + x="314.98465" + transform="scale(1.0007154,0.99928514)">K</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4551" + inkscape:label="l L"><path + inkscape:connector-curvature="0" + d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" + id="path81" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text275" + y="163.99854" + x="345.64444" + transform="scale(1.0007154,0.99928514)">L</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4586" + inkscape:label="z Z" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path87-3" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text279" + y="188.72411" + x="119.15855" + transform="scale(1.0007154,0.99928514)">Z</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4581" + inkscape:label="x X" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path89-6" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text283" + y="188.72411" + x="148.82933" + transform="scale(1.0007154,0.99928514)">X</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4576" + inkscape:label="c C" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" + id="path91-7" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text287" + y="188.72411" + x="178.50011" + transform="scale(1.0007154,0.99928514)">C</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4571" + inkscape:label="v V" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z" + id="path195" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text291" + y="188.72411" + x="208.16988" + transform="scale(1.0007154,0.99928514)">V</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4566" + inkscape:label="b B" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path93" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text295" + y="188.72411" + x="237.84096" + transform="scale(1.0007154,0.99928514)">B</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4561" + inkscape:label="n N" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path95" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text299" + y="188.72411" + x="267.51193" + transform="scale(1.0007154,0.99928514)">N</text> + +</g><g + style="fill-rule:evenodd;stroke-width:0.476314" + id="g4556" + inkscape:label="m M" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path97" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text303" + y="188.72411" + x="296.1933" + transform="scale(1.0007154,0.99928514)">M</text> + +</g><g + id="g4818" + inkscape:label=". :" + style="stroke-width:0.476314" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path101" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" + id="text719" + y="189.66107" + x="359.58276">.</text> + +<text + x="359.58276" + y="181.64532" + id="text4834" + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" + transform="scale(1.0007154,0.99928512)">:</text> + +</g><g + id="g4813" + inkscape:label=", ;" + style="stroke-width:0.476314" + transform="translate(0,9.5381929)"><path + inkscape:connector-curvature="0" + d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" + id="path99" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" + id="text727" + y="181.64532" + x="330.00806" + transform="scale(1.0007154,0.99928512)">;</text> + +<text + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" + y="189.66107" + x="330.00806" + transform="scale(1.0007154,0.99928512)" + id="text4826">,</text> + +</g><g + style="stroke-width:0.476314" + inkscape:label="1" + id="g2845" + transform="translate(-13.353469,-45.783327)"><path + inkscape:connector-curvature="0" + d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2839" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2841" + y="138.28395" + x="101.07153" + transform="scale(1.0007154,0.99928513)">1</text> + +</g><g + style="stroke-width:0.476314" + inkscape:label="2" + id="g2853" + transform="translate(-13.353469,-45.783327)"><path + inkscape:connector-curvature="0" + d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2847" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2849" + y="138.28395" + x="130.18704" + transform="scale(1.0007154,0.99928513)">2</text> + +</g><g + inkscape:label="3" + id="g2861" + style="stroke-width:0.476314" + transform="translate(-13.353469,-45.783327)"><path + inkscape:connector-curvature="0" + d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" + id="path2855" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2857" + y="138.28395" + x="159.70854" + transform="scale(1.0007154,0.99928514)">3</text> + +</g><g + id="g2957" + inkscape:label="4" + transform="translate(0,-19.076386)"><path + inkscape:connector-curvature="0" + d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z" + id="path2865" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2867" + y="111.55791" + x="176.39188" + transform="scale(1.0007154,0.99928514)">4</text> + +</g><g + id="g2962" + inkscape:label="5" + transform="translate(0,-19.076386)"><path + inkscape:connector-curvature="0" + d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2873" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2875" + y="111.55791" + x="205.70567" + transform="scale(1.0007154,0.99928514)">5</text> + +</g><g + id="g2967" + inkscape:label="6" + transform="translate(0,-19.076386)"><path + inkscape:connector-curvature="0" + d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2881" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2883" + y="111.55791" + x="236.15851" + transform="scale(1.0007154,0.99928514)">6</text> + +</g><g + id="g2972" + inkscape:label="7" + transform="translate(0,-19.076386)"><path + inkscape:connector-curvature="0" + d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2889" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2891" + y="111.55791" + x="266.06564" + transform="scale(1.0007154,0.99928514)">7</text> + +</g><g + id="g2977" + inkscape:label="8" + transform="translate(0,-19.076386)"><path + inkscape:connector-curvature="0" + d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2897" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2899" + y="111.55791" + x="295.08231" + transform="scale(1.0007154,0.99928514)">8</text> + +</g><g + id="g2982" + inkscape:label="9 -" + transform="translate(0,-19.076386)"><path + inkscape:connector-curvature="0" + d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2905" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2907" + y="111.55791" + x="325.05408" + transform="scale(1.0007154,0.99928514)">9</text> + +<text + transform="scale(1.0007154,0.99928511)" + x="335.72681" + y="102.42173" + id="text806" + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668">-</text> + +</g><g + id="g2987" + inkscape:label="0 +" + transform="translate(0,-19.076386)"><path + inkscape:connector-curvature="0" + d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" + id="path2913" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text + style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text2915" + y="111.55791" + x="355.05984" + transform="scale(1.0007154,0.99928514)">0</text> + +<text + transform="scale(1.0007154,0.99928511)" + style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" + id="text804" + y="102.42173" + x="365.30151">+</text> + +</g></g><g + transform="translate(335.89988,-58.934803)" + id="g3544" + inkscape:label="Esc" + style="stroke-width:0.476314"><path + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path105" + d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssssss" /><text + transform="scale(1.0007154,0.99928512)" + style="font-weight:normal;font-size:9.37966px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668" + id="text469" + y="130.02028" + x="59.288635">Esc</text> + +</g><g + inkscape:label="Enter" + id="g4291" + style="stroke-width:0.476314" + transform="translate(0,-19.076386)"><path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path3616" + d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /><path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)" + id="path6545" + inkscape:connector-curvature="0" /></g><g + inkscape:label="BackSpace" + id="g4287" + style="fill-rule:evenodd;stroke-width:0.476314" + transform="translate(2.3648311e-6,-28.614579)"><path + sodipodi:nodetypes="sssssssss" style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path185" - d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z" - inkscape:connector-curvature="0" - inkscape:label="Space" /><g - id="g4380" - inkscape:label="Keys" - style="stroke-width:0.476314" - transform="translate(0,-19.076386)"><g - id="g4283" - inkscape:label="q Q" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path41" - d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - inkscape:connector-curvature="0" /><text - x="99.378708" - y="138.28395" - id="text203" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">Q</text></g><g - id="g4337" - inkscape:label="w W" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path43" - d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - inkscape:connector-curvature="0" /><text - x="127.0709" - y="138.28395" - id="text207" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">W</text></g><g - id="g4332" - inkscape:label="e E" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path45" - d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - inkscape:connector-curvature="0" /><text - x="159.70854" - y="138.28395" - id="text211" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">E</text></g><g - id="g4326" - inkscape:label="r R" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path47" - d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - inkscape:connector-curvature="0" /><text - x="188.39003" - y="138.28395" - id="text215" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">R</text></g><g - id="g4321" - inkscape:label="t T" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path49" - d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /><text - x="219.04961" - y="138.28395" - id="text219" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">T</text></g><g - id="g4316" - inkscape:label="y Y" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path51" - d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /><text - x="248.72017" - y="138.28395" - id="text223" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">Y</text></g><g - id="g4311" - inkscape:label="u U" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path53" - d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /><text - x="278.39075" - y="138.28395" - id="text227" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">U</text></g><g - id="g4306" - inkscape:label="i I" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path55" - d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /><text - x="311.02859" - y="138.28395" - id="text231" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">I</text></g><g - id="g4301" - inkscape:label="o O" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path57" - d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /><text - x="336.74319" - y="138.28395" - id="text235" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">O</text></g><g - id="g4296" - inkscape:label="p P" - style="stroke-width:0.476314" - transform="translate(0,-9.5381931)"><path - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path59" - d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z" - inkscape:connector-curvature="0" /><text - x="367.40256" - y="138.28395" - id="text239" - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928514)">P</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4511" - inkscape:label="a A"><path - inkscape:connector-curvature="0" - d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path65" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text243" - y="163.99854" - x="107.29005" - transform="scale(1.0007154,0.99928514)">A</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4516" - inkscape:label="s S"><path - inkscape:connector-curvature="0" - d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path67" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text247" - y="163.99854" - x="137.95012" - transform="scale(1.0007154,0.99928514)">S</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4521" - inkscape:label="d D"><path - inkscape:connector-curvature="0" - d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path69" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text251" - y="163.99854" - x="166.63159" - transform="scale(1.0007154,0.99928514)">D</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4526" - inkscape:label="f F"><path - inkscape:connector-curvature="0" - d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path71" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text255" - y="163.99854" - x="197.29166" - transform="scale(1.0007154,0.99928514)">F</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4531" - inkscape:label="g G"><path - inkscape:connector-curvature="0" - d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z" - id="path73" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text259" - y="163.99854" - x="225.97284" - transform="scale(1.0007154,0.99928514)">G</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4536" - inkscape:label="h H"><path - inkscape:connector-curvature="0" - d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path75" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text263" - y="163.99854" - x="255.64342" - transform="scale(1.0007154,0.99928514)">H</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4541" - inkscape:label="j J"><path - inkscape:connector-curvature="0" - d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path77" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text267" - y="163.99854" - x="287.29208" - transform="scale(1.0007154,0.99928514)">J</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4546" - inkscape:label="k K"><path - inkscape:connector-curvature="0" - d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path79" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text271" - y="163.99854" - x="314.98465" - transform="scale(1.0007154,0.99928514)">K</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4551" - inkscape:label="l L"><path - inkscape:connector-curvature="0" - d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z" - id="path81" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text275" - y="163.99854" - x="345.64444" - transform="scale(1.0007154,0.99928514)">L</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4586" - inkscape:label="z Z" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" - id="path87-3" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text279" - y="188.72411" - x="119.15855" - transform="scale(1.0007154,0.99928514)">Z</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4581" - inkscape:label="x X" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" - id="path89-6" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text283" - y="188.72411" - x="148.82933" - transform="scale(1.0007154,0.99928514)">X</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4576" - inkscape:label="c C" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z" - id="path91-7" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text287" - y="188.72411" - x="178.50011" - transform="scale(1.0007154,0.99928514)">C</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4571" - inkscape:label="v V" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z" - id="path195" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text291" - y="188.72411" - x="208.16988" - transform="scale(1.0007154,0.99928514)">V</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4566" - inkscape:label="b B" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path93" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text295" - y="188.72411" - x="237.84096" - transform="scale(1.0007154,0.99928514)">B</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4561" - inkscape:label="n N" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path95" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text299" - y="188.72411" - x="267.51193" - transform="scale(1.0007154,0.99928514)">N</text></g><g - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4556" - inkscape:label="m M" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path97" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text303" - y="188.72411" - x="296.1933" - transform="scale(1.0007154,0.99928514)">M</text></g><g - id="g4818" - inkscape:label=". :" - style="stroke-width:0.476314" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path101" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - transform="scale(1.0007154,0.99928513)" - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" - id="text719" - y="189.66107" - x="359.58276">.</text><text - x="359.58276" - y="181.64532" - id="text4834" - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" - transform="scale(1.0007154,0.99928512)">:</text></g><g - id="g4813" - inkscape:label=", ;" - style="stroke-width:0.476314" - transform="translate(0,9.5381929)"><path - inkscape:connector-curvature="0" - d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z" - id="path99" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" - id="text727" - y="181.64532" - x="330.00806" - transform="scale(1.0007154,0.99928512)">;</text><text - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" - y="189.66107" - x="330.00806" - transform="scale(1.0007154,0.99928512)" - id="text4826">,</text></g><g - style="stroke-width:0.476314" - inkscape:label="1" - id="g2845" - transform="translate(-13.353469,-45.783327)"><path - inkscape:connector-curvature="0" - d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path2839" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2841" - y="138.28395" - x="101.07153" - transform="scale(1.0007154,0.99928513)">1</text></g><g - style="stroke-width:0.476314" - inkscape:label="2" - id="g2853" - transform="translate(-13.353469,-45.783327)"><path - inkscape:connector-curvature="0" - d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path2847" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2849" - y="138.28395" - x="130.18704" - transform="scale(1.0007154,0.99928513)">2</text></g><g - inkscape:label="3" - id="g2861" - style="stroke-width:0.476314" - transform="translate(-13.353469,-45.783327)"><path - inkscape:connector-curvature="0" - d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z" - id="path2855" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2857" - y="138.28395" - x="159.70854" - transform="scale(1.0007154,0.99928514)">3</text></g><g - id="g2957" - inkscape:label="4" - transform="translate(0,-19.076386)"><path - inkscape:connector-curvature="0" - d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z" - id="path2865" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2867" - y="111.55791" - x="176.39188" - transform="scale(1.0007154,0.99928514)">4</text></g><g - id="g2962" - inkscape:label="5" - transform="translate(0,-19.076386)"><path - inkscape:connector-curvature="0" - d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2873" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2875" - y="111.55791" - x="205.70567" - transform="scale(1.0007154,0.99928514)">5</text></g><g - id="g2967" - inkscape:label="6" - transform="translate(0,-19.076386)"><path - inkscape:connector-curvature="0" - d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2881" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2883" - y="111.55791" - x="236.15851" - transform="scale(1.0007154,0.99928514)">6</text></g><g - id="g2972" - inkscape:label="7" - transform="translate(0,-19.076386)"><path - inkscape:connector-curvature="0" - d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2889" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2891" - y="111.55791" - x="266.06564" - transform="scale(1.0007154,0.99928514)">7</text></g><g - id="g2977" - inkscape:label="8" - transform="translate(0,-19.076386)"><path - inkscape:connector-curvature="0" - d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2897" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2899" - y="111.55791" - x="295.08231" - transform="scale(1.0007154,0.99928514)">8</text></g><g - id="g2982" - inkscape:label="9 -" - transform="translate(0,-19.076386)"><path - inkscape:connector-curvature="0" - d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2905" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2907" - y="111.55791" - x="325.05408" - transform="scale(1.0007154,0.99928514)">9</text><text - transform="scale(1.0007154,0.99928511)" - x="335.72681" - y="102.42173" - id="text806" - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668">-</text></g><g - id="g2987" - inkscape:label="0 +" - transform="translate(0,-19.076386)"><path - inkscape:connector-curvature="0" - d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z" - id="path2913" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /><text - style="font-weight:normal;font-size:13.9321px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text2915" - y="111.55791" - x="355.05984" - transform="scale(1.0007154,0.99928514)">0</text><text - transform="scale(1.0007154,0.99928511)" - style="font-weight:normal;font-size:9.28804px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" - id="text804" - y="102.42173" - x="365.30151">+</text></g></g><g - transform="translate(335.89988,-58.934803)" - id="g3544" - inkscape:label="Esc" - style="stroke-width:0.476314"><path - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path105" - d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z" - inkscape:connector-curvature="0" - sodipodi:nodetypes="sssssssss" /><text - transform="scale(1.0007154,0.99928512)" - style="font-weight:normal;font-size:9.37966px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668" - id="text469" - y="130.02028" - x="59.288635">Esc</text></g><g - inkscape:label="Enter" - id="g4291" - style="stroke-width:0.476314" + id="path3624" + d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /><path + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z" + transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)" + id="path11623-1-0" + inkscape:connector-curvature="0" /></g><g + id="g934" + inkscape:label="CapsLock"><g + inkscape:label="inactive" + id="g942" + style="display:inline;fill-rule:evenodd;stroke-width:0.476314" transform="translate(0,-19.076386)"><path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3616" - d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" - inkscape:connector-curvature="0" /><path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z" - transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)" - id="path6545" - inkscape:connector-curvature="0" /></g><g - inkscape:label="BackSpace" - id="g4287" + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path936" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + inkscape:connector-curvature="0" /><text + x="69.789322" + y="156.71973" + id="text938-5" + style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928515)">Caps</text> + +<text + x="69.789322" + y="166.5585" + id="text940" + style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + transform="scale(1.0007154,0.99928515)">Lock</text> + +</g><g + transform="translate(0,-19.076386)" style="fill-rule:evenodd;stroke-width:0.476314" - transform="translate(2.3648311e-6,-28.614579)"><path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3624" - d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" - inkscape:connector-curvature="0" /><path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z" - transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)" - id="path11623-1-0" - inkscape:connector-curvature="0" /></g><g - id="g934" - inkscape:label="CapsLock"><g - inkscape:label="inactive" - id="g942" - style="display:inline;fill-rule:evenodd;stroke-width:0.476314" - transform="translate(0,-19.076386)"><path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path936" - d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" - inkscape:connector-curvature="0" /><text - x="69.789322" - y="156.71973" - id="text938-5" - style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928515)">Caps</text><text - x="69.789322" - y="166.5585" - id="text940" - style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - transform="scale(1.0007154,0.99928515)">Lock</text></g><g - transform="translate(0,-19.076386)" - style="fill-rule:evenodd;stroke-width:0.476314" - id="g4429" - inkscape:label="active"><path - inkscape:connector-curvature="0" - d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" - id="path199" - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:nodetypes="sssssssss" /><text - transform="scale(1.0007154,0.99928515)" - style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#ffffff;stroke-width:0.368668" - id="text647" - y="156.71973" - x="69.789322">Caps</text><text - transform="scale(1.0007154,0.99928515)" - style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#ffffff;stroke-width:0.368668" - id="text651" - y="166.5585" - x="69.789322">Lock</text></g></g><rect - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - id="rect2130" - width="361.89996" - height="30.150299" - x="64.024956" - y="15.771065" - rx="3.8152773" - ry="3.8152773" - inkscape:label="Field" /><text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0764px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47691px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="g4429" + inkscape:label="active"><path + inkscape:connector-curvature="0" + d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z" + id="path199" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /><text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#ffffff;stroke-width:0.368668" + id="text647" + y="156.71973" + x="69.789322">Caps</text> + +<text + transform="scale(1.0007154,0.99928515)" + style="font-weight:normal;font-size:8.66234px;font-family:Arial;fill:#ffffff;stroke-width:0.368668" + id="text651" + y="166.5585" + x="69.789322">Lock</text> + +</g></g><rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect2130" + width="361.89996" + height="30.150299" + x="64.024956" + y="15.771065" + rx="3.8152773" + ry="3.8152773" + inkscape:label="Field" /><text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0764px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47691px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="72.50132" + y="38.296417" + id="text1309" + inkscape:label="Value"><tspan + sodipodi:role="line" + id="tspan1307" x="72.50132" y="38.296417" - id="text1309" - inkscape:label="Value"><tspan - sodipodi:role="line" - id="tspan1307" - x="72.50132" - y="38.296417" - style="text-align:start;text-anchor:start;stroke-width:0.47691px">text</tspan></text><g - id="g437" - inkscape:label="Shift"><g - id="g421" - inkscape:label="inactive"><path - inkscape:connector-curvature="0" - d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" - id="path910" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:nodetypes="sssssssss" /><text - style="font-weight:normal;font-size:8.92099px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" - id="text912" - y="177.90059" - x="392.55679" - transform="scale(1.0007154,0.99928513)">Shift</text><path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path856" - d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" - inkscape:connector-curvature="0" /><text - x="75.85218" - y="177.90059" - id="text858" - style="font-weight:normal;font-size:8.92099px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" - transform="scale(1.0007154,0.99928513)">Shift</text></g><g - id="g413" - inkscape:label="active"><path - sodipodi:nodetypes="sssssssss" - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path551" - d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" - inkscape:connector-curvature="0" /><text - transform="scale(1.0007154,0.99928513)" - x="392.55679" - y="177.90059" - id="text629" - style="font-weight:normal;font-size:8.92099px;font-family:Arial;fill:#ffffff;stroke-width:0.368668">Shift</text><path - inkscape:connector-curvature="0" - d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" - id="path879" - style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:nodetypes="sssssssss" /><text - transform="scale(1.0007154,0.99928513)" - style="font-weight:normal;font-size:8.92099px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668" - id="text881" - y="177.90059" - x="75.85218">Shift</text></g></g><text - transform="scale(0.96824588,1.0327955)" - id="text471" + style="text-align:start;text-anchor:start;stroke-width:0.47691px">text</tspan></text> + +<g + id="g437" + inkscape:label="Shift"><g + id="g421" + inkscape:label="inactive"><path + inkscape:connector-curvature="0" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + id="path910" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /><text + style="font-weight:normal;font-size:8.92099px;font-family:Arial;fill:#2b2828;stroke-width:0.368668" + id="text912" + y="177.90059" + x="392.55679" + transform="scale(1.0007154,0.99928513)">Shift</text> + +<path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path856" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + inkscape:connector-curvature="0" /><text + x="75.85218" + y="177.90059" + id="text858" + style="font-weight:normal;font-size:8.92099px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.368668" + transform="scale(1.0007154,0.99928513)">Shift</text> + +</g><g + id="g413" + inkscape:label="active"><path + sodipodi:nodetypes="sssssssss" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path551" + d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z" + inkscape:connector-curvature="0" /><text + transform="scale(1.0007154,0.99928513)" + x="392.55679" + y="177.90059" + id="text629" + style="font-weight:normal;font-size:8.92099px;font-family:Arial;fill:#ffffff;stroke-width:0.368668">Shift</text> + +<path + inkscape:connector-curvature="0" + d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z" + id="path879" + style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.168243;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:nodetypes="sssssssss" /><text + transform="scale(1.0007154,0.99928513)" + style="font-weight:normal;font-size:8.92099px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.368668" + id="text881" + y="177.90059" + x="75.85218">Shift</text> + +</g></g><text + transform="scale(0.96824588,1.0327955)" + id="text471" + y="12.333657" + x="252.9579" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.3138px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.307844px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="Info"><tspan + style="stroke-width:0.307844px" y="12.333657" x="252.9579" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.3138px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.307844px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve" - inkscape:label="Info"><tspan - style="stroke-width:0.307844px" - y="12.333657" - x="252.9579" - id="tspan469" - sodipodi:role="line">information</tspan></text></g><text + id="tspan469" + sodipodi:role="line">information</tspan></text> + +</g><text xml:space="preserve" style="font-size:23.5967px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;stroke-width:0.589932" x="1164.7662" @@ -1034,7 +1166,9 @@ x="1164.7662" y="-217.64754" style="text-align:center;text-anchor:middle;stroke-width:0.589932" - id="tspan8889">HMI:TextStylList</tspan></text><text + id="tspan8889">HMI:TextStylList</tspan></text> + +<text xml:space="preserve" style="font-size:23.5967px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;stroke-width:0.589932" x="914.47473" @@ -1049,7 +1183,9 @@ x="914.47473" y="-217.22188" style="text-align:center;text-anchor:middle;stroke-width:0.589932" - id="tspan8889-7">HMI:List</tspan></text><rect + id="tspan8889-7">HMI:List</tspan></text> + +<rect y="-0.5992012" x="-0.59920174" height="720" @@ -1067,15 +1203,14 @@ inkscape:label="HMI:Image@.pic" inkscape:svg-dpi="1" /><g style="stroke-width:1.04185" - inkscape:label="HMI:Input@/SAVE" + inkscape:label="HMI:Button@/SAVE" id="g953" - transform="translate(30.061944,26.296906)"><g - id="g1839" - inkscape:label="+1"><g + transform="translate(32.061944,-57.703094)"><g + id="g1839"><g id="g945" inkscape:label="bg" style="stroke-width:1.04185"><rect - style="color:#000000;font-variation-settings:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.83281px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.83281px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect943" width="183.44583" height="71.543915" @@ -1087,20 +1222,22 @@ id="g951" inkscape:label="text" style="stroke-width:1.04185"><text - inkscape:label="setting_jmp" - id="text949" - y="656.98151" - x="1090.7626" - style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.04185px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:1.04185px" - y="656.98151" - x="1090.7626" - id="tspan947" - sodipodi:role="line">Update</tspan></text></g></g></g><g + inkscape:label="setting_jmp" + id="text949" + y="656.98151" + x="1090.7626" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.04185px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:1.04185px" + y="656.98151" + x="1090.7626" + id="tspan947" + sodipodi:role="line">Write</tspan></text> + +</g></g></g><g id="g1766" inkscape:label="HMI:ScrollBar@.range@.position@.visibleFiles" - transform="matrix(1,0,0,0.92215078,1380,-74.361686)"><path + transform="matrix(1,0,0,0.92215078,1000,-90.36169)"><path sodipodi:nodetypes="cccc" inkscape:connector-curvature="0" id="path1266" @@ -1108,7 +1245,7 @@ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.42392px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" inkscape:label="pageup" /><path style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.40073px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m -234.01097,686.72773 21.18736,-27.45222 h -42.37471 z" + d="m -234.01097,615.15592 21.18736,-27.45222 h -42.37471 z" id="path1268" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" @@ -1116,7 +1253,7 @@ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.309524;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.03627px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect1264-3" width="42.374725" - height="276.64423" + height="205.87857" x="-255.19838" y="371.91068" rx="7.6034913" @@ -1133,14 +1270,14 @@ inkscape:label="cursor" /></g><g id="g1289" inkscape:label="HMI:JsonTable:/files@/FILENOTIFY@.range@.position@.visibleFiles@.filter" - transform="matrix(0.5,0,0,0.5,-400.67639,302.56557)"><g + transform="matrix(0.5,0,0,0.5,-100.67639,302.56557)"><g id="g5231" inkscape:label="data"><g id="g1384" inkscape:label="[6]" transform="translate(52.326002,240.30067)"><path style="fill:none;fill-rule:evenodd;stroke:#feffff;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 972.0318,65.34292 H 2780.6604" + d="m 972.0318,65.34292 h 591.4404" id="path2238" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" @@ -1210,267 +1347,108 @@ height="100%" transform="translate(-1.2276309,-371.84741)" inkscape:label="[0]" /></g><g - style="stroke-width:1.04185" + style="stroke-width:1.66489" inkscape:label="action_reset" id="g1839-6" - transform="matrix(2,0,0,2,-181.39997,-864.49004)"><g - style="stroke-width:1.04185" + transform="matrix(1.2515566,0,0,1.2515566,-229.24017,-1009.6661)"><g + style="stroke-width:1.66489" inkscape:label="bg" id="g945-7"><rect - rx="19.608185" + rx="31.334076" inkscape:label="button" - ry="16.945154" + ry="27.078526" y="607.69312" x="1004.9655" height="69.983917" width="179.44583" id="rect943-5" - style="color:#000000;font-variation-settings:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.81465px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1" /></g><g - style="stroke-width:1.04185" + style="color:#000000;font-variation-settings:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.30182px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1" /></g><g + style="stroke-width:1.66489" inkscape:label="text" id="g951-3"><text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.04185px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="1090.7626" - y="656.98151" - id="text949-5" - inkscape:label="setting_jmp"><tspan - sodipodi:role="line" - id="tspan947-6" - x="1090.7626" - y="656.98151" - style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:1.04185px">reset</tspan></text></g></g></g><g - transform="matrix(0.33436432,0,0,0.33436432,567.32884,131.33489)" - inkscape:label="HMI:Input@.position" - id="g5222-6" - style="stroke-width:0.755943"><text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.755943px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="136.32812" - y="218.24219" - id="text5208-2" - inkscape:label="value"><tspan - sodipodi:role="line" - id="tspan5206-9" - x="136.32812" - y="218.24219" - style="stroke-width:0.755943px">8888</tspan></text><path - transform="scale(1,-1)" - sodipodi:type="star" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - id="path5212-1" - sodipodi:sides="3" - sodipodi:cx="608.70374" - sodipodi:cy="-209.2599" - sodipodi:r1="59.825443" - sodipodi:r2="29.912722" - sodipodi:arg1="0.52359878" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0" - inkscape:randomized="0" - d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z" - inkscape:transform-center-y="14.956362" - inkscape:label="-1" /><rect - inkscape:label="edit" - onclick="" - y="95.40741" - x="139.85185" - height="128" - width="407.7037" - id="rect5214-2" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path - inkscape:label="+1" - inkscape:transform-center-y="-14.95636" - d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z" - inkscape:randomized="0" - inkscape:rounded="0" - inkscape:flatsided="true" - sodipodi:arg2="1.5707963" - sodipodi:arg1="0.52359878" - sodipodi:r2="29.912722" - sodipodi:r1="59.825443" - sodipodi:cy="112.17263" - sodipodi:cx="608.70374" - sodipodi:sides="3" - id="path5218-7" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - sodipodi:type="star" /></g><g - transform="matrix(0.33436432,0,0,0.33436432,331.2297,130.8185)" - inkscape:label="HMI:Input@.range" - id="g5222-3" - style="stroke-width:0.755943"><text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.755943px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="136.32812" - y="218.24219" - id="text5208-6" - inkscape:label="value"><tspan - sodipodi:role="line" - id="tspan5206-7" - x="136.32812" - y="218.24219" - style="stroke-width:0.755943px">8888</tspan></text><path - transform="scale(1,-1)" - sodipodi:type="star" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - id="path5212-5" - sodipodi:sides="3" - sodipodi:cx="620.66675" - sodipodi:cy="-209.2599" - sodipodi:r1="59.825443" - sodipodi:r2="29.912722" - sodipodi:arg1="0.52359878" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0" - inkscape:randomized="0" - d="m 672.4771,-179.34718 -103.62071,0 51.81036,-89.73817 z" - inkscape:transform-center-y="14.956362" - inkscape:label="-1" /><rect - inkscape:label="edit" - onclick="" - y="95.40741" - x="139.85185" - height="128" - width="407.7037" - id="rect5214-3" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path - inkscape:label="+1" - inkscape:transform-center-y="-14.95636" - d="m 672.4771,142.08535 -103.62071,0 51.81036,-89.738163 z" - inkscape:randomized="0" - inkscape:rounded="0" - inkscape:flatsided="true" - sodipodi:arg2="1.5707963" - sodipodi:arg1="0.52359878" - sodipodi:r2="29.912722" - sodipodi:r1="59.825443" - sodipodi:cy="112.17263" - sodipodi:cx="620.66675" - sodipodi:sides="3" - id="path5218-5" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - sodipodi:type="star" /></g><g - style="stroke-width:0.755943" - id="g900" - inkscape:label="HMI:Input@.filter" - transform="matrix(0.33436432,0,0,0.33436432,91.2297,130.8185)"><rect - inkscape:label="bg" - onclick="" - y="69.631233" - x="-84.116562" - height="198.39929" - width="847.78894" - id="rect1400-5-7" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.0038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - ry="47.832088" /><text - inkscape:label="value" - id="text892" - y="198.37766" - x="203.09459" - style="font-style:normal;font-weight:normal;font-size:105.725px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.4995px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - style="fill:#000000;fill-opacity:1;stroke-width:0.4995px" - y="198.37766" - x="203.09459" - id="tspan890" - sodipodi:role="line">blah</tspan></text><rect - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - id="rect1232" - width="847.78894" - height="198.39929" - x="-84.116562" - y="69.631233" - onclick="" - inkscape:label="edit" /></g><g + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.66489px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1090.7626" + y="656.98151" + id="text949-5" + inkscape:label="setting_jmp"><tspan + sodipodi:role="line" + id="tspan947-6" + x="1090.7626" + y="656.98151" + style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:1.66489px">Home</tspan></text> + +</g></g></g><g style="stroke-width:0.755943" id="g900-3" inkscape:label="HMI:Input@/CONTENT" - transform="matrix(0.33436432,0,0,0.33436432,733.64703,614.97645)"><rect - inkscape:label="bg" - onclick="" - y="69.631233" - x="-84.116562" - height="198.39929" - width="847.78894" - id="rect1400-5-7-6" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.0038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - ry="47.832088" /><text - inkscape:label="value" - id="text892-7" + transform="matrix(0.33436432,0,0,0.33436432,735.64703,530.97645)"><rect + inkscape:label="bg" + onclick="" + y="69.631233" + x="-84.116562" + height="198.39929" + width="847.78894" + id="rect1400-5-7-6" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.0038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + ry="47.832088" + rx="47.832088" /><text + inkscape:label="value" + id="text892-7" + y="198.37766" + x="203.09459" + style="font-style:normal;font-weight:normal;font-size:105.725px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.4995px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#000000;fill-opacity:1;stroke-width:0.4995px" y="198.37766" x="203.09459" - style="font-style:normal;font-weight:normal;font-size:105.725px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.4995px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - style="fill:#000000;fill-opacity:1;stroke-width:0.4995px" - y="198.37766" - x="203.09459" - id="tspan890-5" - sodipodi:role="line">blah</tspan></text><rect - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - id="rect1232-3" - width="847.78894" - height="198.39929" - x="-84.116562" - y="69.631233" - onclick="" - inkscape:label="edit" /></g><text + id="tspan890-5" + sodipodi:role="line">blah</tspan></text> + +<rect + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="rect1232-3" + width="847.78894" + height="198.39929" + x="-84.116562" + y="69.631233" + onclick="" + inkscape:label="edit" /></g><text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="642.71484" - y="41.22554" + y="61.22554" id="text2019"><tspan sodipodi:role="line" id="tspan2017" x="642.71484" - y="41.22554" - style="fill:#ffffff;stroke-width:0.5px">HMI:JsonTable</tspan></text><text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.457px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="444.4162" - y="143.8042" - id="text887"><tspan - sodipodi:role="line" - id="tspan885" - x="444.4162" - y="143.8042" - style="fill:#ffffff;stroke-width:1px">range</tspan></text><text - id="text891" - y="143.8042" - x="677.12885" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.457px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - style="fill:#ffffff;stroke-width:1px" - y="143.8042" - x="677.12885" - id="tspan889" - sodipodi:role="line">position</tspan></text><text - id="text904" - y="143.8042" - x="204.41626" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.457px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - style="fill:#ffffff;stroke-width:1px" - y="143.8042" - x="204.41626" - id="tspan902" - sodipodi:role="line">filter</tspan></text><text + y="61.22554" + style="fill:#ffffff;stroke-width:0.5px">HMI:JsonTable</tspan></text> + + + + + + + +<text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="643.16406" - y="87.707962" + y="107.70796" id="text6096"><tspan sodipodi:role="line" id="tspan6094" x="643.16406" - y="87.707962" - style="fill:#ffffff;stroke-width:0.25px">In this example, JsonTable widget is used as a list of CSV files.</tspan><tspan + y="107.70796" + style="fill:#ffffff;stroke-width:0.25px">In this example, JsonTable widget is used as a file browser to pick a CSV file</tspan><tspan sodipodi:role="line" x="643.16406" - y="112.70796" + y="132.70796" style="fill:#ffffff;stroke-width:0.25px" - id="tspan6222">JSON data is exchanged with python code in py_ext_0 using HTTP POST</tspan></text><g + id="tspan6222" /></text> + +<g inkscape:label="HMI:VarInit:0@.position" id="g906" transform="translate(1380)" /><g @@ -1485,25 +1463,9 @@ transform="translate(1380)" /><g id="g909-3" inkscape:label="HMI:VarInit:"/files?name=beremiz.png"@.pic" - transform="translate(1380)" /><text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.5719px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ff0001;fill-opacity:1;stroke:none;stroke-width:0.828604px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="167.49794" - y="542.23285" - id="text3225" - inkscape:label="DISCARD: comments"><tspan - sodipodi:role="line" - id="tspan3223" - x="167.49794" - y="542.23285" - style="fill:#ff0001;fill-opacity:1;stroke-width:0.828604px">HMI:JsonTable</tspan></text><rect - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#fe0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1;marker:none;stop-color:#000000;stop-opacity:1" - id="rect13389" - width="984.60046" - height="323.62738" - x="92.52552" - y="232.12688" - inkscape:label="DISCARD: boudaries" /><g + transform="translate(1380)" /> + +<g inkscape:label="HMI:List" id="g1311" transform="matrix(0.29835868,0,0,0.36118863,633.13137,-111.5583)"><use @@ -1570,233 +1532,292 @@ width="333.82678" height="38.496647" x="233.80695" - y="667.22266" /><g + y="627.22266" /><g id="g446" - transform="matrix(0.49097749,0,0,0.41976614,231.93893,556.08411)" + transform="matrix(0.49097749,0,0,0.41976614,231.93893,496.08411)" inkscape:label="HMI:Input@/CSV_ROWIDX" style="stroke-width:0.377115"><text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:35.1742px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.377115px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:58.74px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.377115px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="216.32812" + y="191.44563" + id="text432" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan430" x="216.32812" y="191.44563" - id="text432" - inkscape:label="value"><tspan - sodipodi:role="line" - id="tspan430" - x="216.32812" - y="191.44563" - style="font-size:35.1742px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.377115px">8</tspan></text><path - transform="scale(1,-1)" - sodipodi:type="star" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - id="path436" - sodipodi:sides="3" - sodipodi:cx="276.74072" - sodipodi:cy="-224.98808" - sodipodi:r1="29.912722" - sodipodi:r2="14.956361" - sodipodi:arg1="0.52359878" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0" - inkscape:randomized="0" - d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z" - inkscape:transform-center-y="7.4781812" - inkscape:label="-1" /><rect - inkscape:label="edit" - onclick="" - y="95.40741" - x="1.8178837" - height="128" - width="230.94511" - id="rect438" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path - inkscape:label="+1" - inkscape:transform-center-y="-7.4781804" - d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z" - inkscape:randomized="0" - inkscape:rounded="0" - inkscape:flatsided="true" - sodipodi:arg2="1.5707963" - sodipodi:arg1="0.52359878" - sodipodi:r2="14.956361" - sodipodi:r1="29.912722" - sodipodi:cy="96.444443" - sodipodi:cx="276.74072" - sodipodi:sides="3" - id="path442" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - sodipodi:type="star" /><path - inkscape:label="=0" - inkscape:transform-center-y="-10.828983" - d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z" - inkscape:randomized="0" - inkscape:rounded="0" - inkscape:flatsided="true" - sodipodi:arg2="1.5633284" - sodipodi:arg1="0.77793027" - sodipodi:r2="21.657967" - sodipodi:r1="41.281136" - sodipodi:cy="160.71626" - sodipodi:cx="276.74072" - sodipodi:sides="4" - id="path444" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - sodipodi:type="star" - inkscape:transform-center-x="1.0089177e-06" /></g><g + style="font-size:58.74px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.377115px">8</tspan></text> + +<path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path436" + sodipodi:sides="3" + sodipodi:cx="276.74072" + sodipodi:cy="-224.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="7.4781812" + inkscape:label="-1" /><rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="1.8178837" + height="128" + width="230.94511" + id="rect438" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path + inkscape:label="+1" + inkscape:transform-center-y="-7.4781804" + d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="96.444443" + sodipodi:cx="276.74072" + sodipodi:sides="3" + id="path442" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /><path + inkscape:label="=0" + inkscape:transform-center-y="-10.828983" + d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5633284" + sodipodi:arg1="0.77793027" + sodipodi:r2="21.657967" + sodipodi:r1="41.281136" + sodipodi:cy="160.71626" + sodipodi:cx="276.74072" + sodipodi:sides="4" + id="path444" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + inkscape:transform-center-x="1.0089177e-06" /></g><g id="g446-3" - transform="matrix(0.49138036,0,0,0.41346312,411.60568,558.46632)" + transform="matrix(0.49138036,0,0,0.41346312,411.60568,498.46632)" inkscape:label="HMI:Input@/CSV_COLIDX" style="stroke-width:0.377115"><text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:35.1742px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.377115px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:59.1618px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.377115px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="216.32812" + y="191.44563" + id="text432-6" + inkscape:label="value"><tspan + sodipodi:role="line" + id="tspan430-7" x="216.32812" y="191.44563" - id="text432-6" - inkscape:label="value"><tspan - sodipodi:role="line" - id="tspan430-7" - x="216.32812" - y="191.44563" - style="font-size:35.1742px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.377115px">8</tspan></text><path - transform="scale(1,-1)" - sodipodi:type="star" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - id="path436-5" - sodipodi:sides="3" - sodipodi:cx="276.74072" - sodipodi:cy="-224.98808" - sodipodi:r1="29.912722" - sodipodi:r2="14.956361" - sodipodi:arg1="0.52359878" - sodipodi:arg2="1.5707963" - inkscape:flatsided="true" - inkscape:rounded="0" - inkscape:randomized="0" - d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z" - inkscape:transform-center-y="7.4781812" - inkscape:label="-1" /><rect - inkscape:label="edit" - onclick="" - y="95.40741" - x="1.8178837" - height="128" - width="230.94511" - id="rect438-3" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path - inkscape:label="+1" - inkscape:transform-center-y="-7.4781804" - d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z" - inkscape:randomized="0" - inkscape:rounded="0" - inkscape:flatsided="true" - sodipodi:arg2="1.5707963" - sodipodi:arg1="0.52359878" - sodipodi:r2="14.956361" - sodipodi:r1="29.912722" - sodipodi:cy="96.444443" - sodipodi:cx="276.74072" - sodipodi:sides="3" - id="path442-5" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - sodipodi:type="star" /><path - inkscape:label="=0" - inkscape:transform-center-y="-10.828983" - d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z" - inkscape:randomized="0" - inkscape:rounded="0" - inkscape:flatsided="true" - sodipodi:arg2="1.5633284" - sodipodi:arg1="0.77793027" - sodipodi:r2="21.657967" - sodipodi:r1="41.281136" - sodipodi:cy="160.71626" - sodipodi:cx="276.74072" - sodipodi:sides="4" - id="path444-6" - style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - sodipodi:type="star" - inkscape:transform-center-x="1.0089177e-06" /></g><text + style="font-size:59.1618px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.377115px">8</tspan></text> + +<path + transform="scale(1,-1)" + sodipodi:type="star" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + id="path436-5" + sodipodi:sides="3" + sodipodi:cx="276.74072" + sodipodi:cy="-224.98808" + sodipodi:r1="29.912722" + sodipodi:r2="14.956361" + sodipodi:arg1="0.52359878" + sodipodi:arg2="1.5707963" + inkscape:flatsided="true" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z" + inkscape:transform-center-y="7.4781812" + inkscape:label="-1" /><rect + inkscape:label="edit" + onclick="" + y="95.40741" + x="1.8178837" + height="128" + width="230.94511" + id="rect438-3" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path + inkscape:label="+1" + inkscape:transform-center-y="-7.4781804" + d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5707963" + sodipodi:arg1="0.52359878" + sodipodi:r2="14.956361" + sodipodi:r1="29.912722" + sodipodi:cy="96.444443" + sodipodi:cx="276.74072" + sodipodi:sides="3" + id="path442-5" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" /><path + inkscape:label="=0" + inkscape:transform-center-y="-10.828983" + d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="true" + sodipodi:arg2="1.5633284" + sodipodi:arg1="0.77793027" + sodipodi:r2="21.657967" + sodipodi:r1="41.281136" + sodipodi:cy="160.71626" + sodipodi:cx="276.74072" + sodipodi:sides="4" + id="path444-6" + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:1.88558;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + sodipodi:type="star" + inkscape:transform-center-x="1.0089177e-06" /></g><text id="text432-2" - y="697.93231" + y="657.93231" x="555.56427" style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.285903px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" xml:space="preserve" inkscape:label="HMI:Display@/CSV_RES"><tspan style="font-size:26.6667px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.285903px" - y="697.93231" + y="657.93231" x="555.56427" id="tspan430-9" - sodipodi:role="line">8</tspan></text><g + sodipodi:role="line">8</tspan></text> + +<g style="stroke-width:0.380665" - transform="matrix(5.4620443,0,0,5.6582581,-24.547351,237.06866)" + transform="matrix(5.4620443,0,0,5.6582581,-24.547351,197.06866)" id="g72" inkscape:label="HMI:Switch@/CSV_ACK"><text - inkscape:label="true" - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.100718px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:label="true" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.100718px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="112.6369" + y="83.254463" + id="text62"><tspan + sodipodi:role="line" + id="tspan60" x="112.6369" y="83.254463" - id="text62"><tspan - sodipodi:role="line" - id="tspan60" - x="112.6369" - y="83.254463" - style="fill:#008000;stroke-width:0.100718px">✔</tspan></text><text - inkscape:label="false" - id="text66" + style="fill:#008000;stroke-width:0.100718px">✔</tspan></text> + +<text + inkscape:label="false" + id="text66" + y="83.254463" + x="112.6369" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.100718px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ff0000;stroke-width:0.100718px" y="83.254463" x="112.6369" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.100718px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - style="fill:#ff0000;stroke-width:0.100718px" - y="83.254463" - x="112.6369" - id="tspan64" - sodipodi:role="line">✕</tspan></text></g><text + id="tspan64" + sodipodi:role="line">✕</tspan></text> + +</g><text id="text94" - y="595.9671" + y="521.9671" x="288.55566" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" xml:space="preserve"><tspan - y="595.9671" + y="521.9671" x="288.55566" id="tspan92" sodipodi:role="line" - style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Row#</tspan></text><text + style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Row#</tspan></text> + +<text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="472.55573" - y="597.9671" + y="523.9671" id="text98"><tspan sodipodi:role="line" id="tspan96" x="472.55573" - y="597.9671" - style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Column#</tspan></text><text + y="523.9671" + style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Column#</tspan></text> + +<text id="text1212" - y="693.43469" + y="653.43469" x="159.53084" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" xml:space="preserve"><tspan - y="693.43469" + y="653.43469" x="159.53084" id="tspan1210" sodipodi:role="line" style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Content:</tspan></text> + + <g id="g907" inkscape:label="HMI:TextStyleList" transform="translate(661.37126,-141.55377)"><text - inkscape:label="active" - id="use913" + inkscape:label="active" + id="use913" + y="-32.362888" + x="453.75464" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:1" + xml:space="preserve"><tspan y="-32.362888" x="453.75464" - style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:1" - xml:space="preserve"><tspan - y="-32.362888" - x="453.75464" - id="tspan1850" - sodipodi:role="line" - style="fill:#00ff00;stroke-width:1">value</tspan></text></g></svg> + id="tspan1850" + sodipodi:role="line" + style="fill:#00ff00;stroke-width:1">value</tspan></text> + +</g><text + id="text1173" + y="657.93231" + x="1175.5642" + style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:0.285903px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve" + inkscape:label="HMI:Display@/SEC_RES"><tspan + style="font-size:26.6667px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.285903px" + y="657.93231" + x="1175.5642" + id="tspan1171" + sodipodi:role="line">8</tspan></text><g + style="stroke-width:0.380665" + transform="matrix(5.4620443,0,0,5.6582581,585.45265,197.06866)" + id="g1183" + inkscape:label="HMI:Switch@/SEC_ACK"><text + inkscape:label="true" + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.100718px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="112.6369" + y="83.254463" + id="text1177"><tspan + sodipodi:role="line" + id="tspan1175" + x="112.6369" + y="83.254463" + style="fill:#008000;stroke-width:0.100718px">✔</tspan></text> + +<text + inkscape:label="false" + id="text1181" + y="83.254463" + x="112.6369" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.100718px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="fill:#ff0000;stroke-width:0.100718px" + y="83.254463" + x="112.6369" + id="tspan1179" + sodipodi:role="line">✕</tspan></text> + +</g></svg> diff -r 03f007a175b5 -r d2f5eb3c7d6e py_ext/pous.xml --- a/py_ext/pous.xml Wed Dec 04 12:00:37 2024 +0100 +++ b/py_ext/pous.xml Thu Dec 05 13:56:59 2024 +0100 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='utf-8'?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201"> <fileHeader companyName="Beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:53:26"/> - <contentHeader name="Beremiz non-standard POUs library" modificationDateTime="2022-12-16T11:59:30"> + <contentHeader name="Beremiz non-standard POUs library" modificationDateTime="2024-12-04T16:26:53"> <coordinateInfo> <fbd> <scaling x="8" y="8"/> @@ -1659,13 +1659,6 @@ </pou> <pou name="csv_write_by_int" pouType="functionBlock"> <interface> - <externalVars> - <variable name="pyext_csv_update"> - <type> - <BOOL/> - </type> - </variable> - </externalVars> <outputVars> <variable name="ACK"> <type> @@ -1701,16 +1694,11 @@ </variable> <variable name="SAVE"> <type> - <INT/> + <BOOL/> </type> </variable> </inputVars> <localVars> - <variable name="OLDCODE"> - <type> - <string/> - </type> - </variable> <variable name="py_eval0"> <type> <derived name="python_eval"/> @@ -1735,15 +1723,15 @@ </interface> <body> <FBD> - <block localId="7" typeName="CONCAT" executionOrderId="0" height="192" width="64"> - <position x="520" y="112"/> + <block localId="7" typeName="CONCAT" executionOrderId="0" height="240" width="72"> + <position x="680" y="88"/> <inputVariables> <variable formalParameter="IN1"> <connectionPointIn> <relPosition x="0" y="32"/> <connection refLocalId="8"> - <position x="520" y="144"/> - <position x="480" y="144"/> + <position x="680" y="120"/> + <position x="512" y="120"/> </connection> </connectionPointIn> </variable> @@ -1751,8 +1739,8 @@ <connectionPointIn> <relPosition x="0" y="56"/> <connection refLocalId="9"> - <position x="520" y="168"/> - <position x="312" y="168"/> + <position x="680" y="144"/> + <position x="152" y="144"/> </connection> </connectionPointIn> </variable> @@ -1760,8 +1748,8 @@ <connectionPointIn> <relPosition x="0" y="80"/> <connection refLocalId="10"> - <position x="520" y="192"/> - <position x="480" y="192"/> + <position x="680" y="168"/> + <position x="616" y="168"/> </connection> </connectionPointIn> </variable> @@ -1769,8 +1757,8 @@ <connectionPointIn> <relPosition x="0" y="104"/> <connection refLocalId="31" formalParameter="OUT"> - <position x="520" y="216"/> - <position x="320" y="216"/> + <position x="680" y="192"/> + <position x="320" y="192"/> </connection> </connectionPointIn> </variable> @@ -1778,8 +1766,8 @@ <connectionPointIn> <relPosition x="0" y="128"/> <connection refLocalId="12"> - <position x="520" y="240"/> - <position x="480" y="240"/> + <position x="680" y="216"/> + <position x="616" y="216"/> </connection> </connectionPointIn> </variable> @@ -1787,283 +1775,113 @@ <connectionPointIn> <relPosition x="0" y="152"/> <connection refLocalId="2" formalParameter="OUT"> - <position x="520" y="264"/> - <position x="320" y="264"/> + <position x="680" y="240"/> + <position x="320" y="240"/> </connection> </connectionPointIn> </variable> <variable formalParameter="IN7"> <connectionPointIn> - <relPosition x="0" y="128"/> + <relPosition x="0" y="176"/> <connection refLocalId="51"> - <position x="520" y="240"/> - <position x="480" y="240"/> + <position x="680" y="264"/> + <position x="616" y="264"/> </connection> </connectionPointIn> </variable> <variable formalParameter="IN8"> <connectionPointIn> - <relPosition x="0" y="128"/> + <relPosition x="0" y="200"/> <connection refLocalId="52"> - <position x="520" y="240"/> - <position x="480" y="240"/> + <position x="680" y="288"/> + <position x="448" y="288"/> </connection> </connectionPointIn> </variable> <variable formalParameter="IN9"> <connectionPointIn> - <relPosition x="0" y="128"/> - <connection refLocalId="53"> - <position x="520" y="240"/> - <position x="480" y="240"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN10"> - <connectionPointIn> - <relPosition x="0" y="152"/> - <connection refLocalId="55" formalParameter="OUT"> - <position x="520" y="264"/> - <position x="320" y="264"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN11"> - <connectionPointIn> - <relPosition x="0" y="176"/> + <relPosition x="0" y="224"/> <connection refLocalId="14"> - <position x="520" y="288"/> - <position x="480" y="288"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="64" y="32"/> + <position x="680" y="312"/> + <position x="616" y="312"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="OUT"> + <connectionPointOut> + <relPosition x="72" y="32"/> </connectionPointOut> </variable> </outputVariables> </block> <inVariable localId="8" executionOrderId="0" height="24" width="160" negated="false"> - <position x="320" y="128"/> - <connectionPointOut> - <relPosition x="160" y="16"/> + <position x="352" y="112"/> + <connectionPointOut> + <relPosition x="160" y="8"/> </connectionPointOut> <expression>'CSVWrInt("'</expression> </inVariable> <inVariable localId="9" executionOrderId="0" height="32" width="112" negated="false"> - <position x="200" y="152"/> + <position x="40" y="128"/> <connectionPointOut> <relPosition x="112" y="16"/> </connectionPointOut> <expression>FILE_NAME</expression> </inVariable> <inVariable localId="10" executionOrderId="0" height="24" width="112" negated="false"> - <position x="368" y="184"/> + <position x="504" y="152"/> + <connectionPointOut> + <relPosition x="112" y="16"/> + </connectionPointOut> + <expression>'",'</expression> + </inVariable> + <inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false"> + <position x="40" y="176"/> + <connectionPointOut> + <relPosition x="112" y="16"/> + </connectionPointOut> + <expression>ROW</expression> + </inVariable> + <inVariable localId="12" executionOrderId="0" height="24" width="112" negated="false"> + <position x="504" y="208"/> <connectionPointOut> <relPosition x="112" y="8"/> </connectionPointOut> - <expression>'",'</expression> - </inVariable> - <inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false"> - <position x="40" y="200"/> + <expression>','</expression> + </inVariable> + <inVariable localId="13" executionOrderId="0" height="32" width="112" negated="false"> + <position x="40" y="224"/> <connectionPointOut> <relPosition x="112" y="16"/> </connectionPointOut> - <expression>ROW</expression> - </inVariable> - <inVariable localId="12" executionOrderId="0" height="24" width="112" negated="false"> - <position x="368" y="224"/> + <expression>COLUMN</expression> + </inVariable> + <inVariable localId="51" executionOrderId="0" height="24" width="112" negated="false"> + <position x="504" y="256"/> + <connectionPointOut> + <relPosition x="112" y="8"/> + </connectionPointOut> + <expression>',"'</expression> + </inVariable> + <inVariable localId="52" executionOrderId="0" height="32" width="112" negated="false"> + <position x="336" y="272"/> <connectionPointOut> <relPosition x="112" y="16"/> </connectionPointOut> - <expression>','</expression> - </inVariable> - <inVariable localId="13" executionOrderId="0" height="32" width="112" negated="false"> - <position x="40" y="248"/> + <expression>CONTENT</expression> + </inVariable> + <inVariable localId="14" executionOrderId="0" height="24" width="112" negated="false"> + <position x="504" y="304"/> <connectionPointOut> <relPosition x="112" y="16"/> </connectionPointOut> - <expression>COLUMN</expression> - </inVariable> - <inVariable localId="51" executionOrderId="0" height="24" width="112" negated="false"> - <position x="368" y="224"/> - <connectionPointOut> - <relPosition x="112" y="16"/> - </connectionPointOut> - <expression>',"'</expression> - </inVariable> - <inVariable localId="52" executionOrderId="0" height="32" width="112" negated="false"> - <position x="40" y="248"/> - <connectionPointOut> - <relPosition x="112" y="16"/> - </connectionPointOut> - <expression>CONTENT</expression> - </inVariable> - <inVariable localId="53" executionOrderId="0" height="24" width="112" negated="false"> - <position x="368" y="224"/> - <connectionPointOut> - <relPosition x="112" y="16"/> - </connectionPointOut> - <expression>'",'</expression> - </inVariable> - <inVariable localId="54" executionOrderId="0" height="32" width="112" negated="false"> - <position x="40" y="248"/> - <connectionPointOut> - <relPosition x="112" y="16"/> - </connectionPointOut> - <expression>SAVE</expression> - </inVariable> - <inVariable localId="14" executionOrderId="0" height="24" width="112" negated="false"> - <position x="368" y="272"/> - <connectionPointOut> - <relPosition x="112" y="16"/> - </connectionPointOut> - <expression>')'</expression> - </inVariable> - <continuation name="Code" localId="4" height="24" width="128"> - <position x="504" y="496"/> - <connectionPointOut> - <relPosition x="128" y="16"/> - </connectionPointOut> - </continuation> - <block localId="16" typeName="NE" executionOrderId="0" height="64" width="64"> - <position x="208" y="456"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="32"/> - <connection refLocalId="22"> - <position x="208" y="488"/> - <position x="188" y="488"/> - <position x="188" y="480"/> - <position x="168" y="480"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="56"/> - <connection refLocalId="21"> - <position x="208" y="512"/> - <position x="168" y="512"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="64" y="32"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <outVariable localId="17" executionOrderId="0" height="32" width="66" negated="false"> - <position x="784" y="440"/> - <connectionPointIn> - <relPosition x="0" y="16"/> - <connection refLocalId="18" formalParameter="OUT"> - <position x="784" y="456"/> - <position x="744" y="456"/> - </connection> - </connectionPointIn> - <expression>OLDCODE</expression> - </outVariable> - <block localId="18" typeName="SEL" executionOrderId="0" height="96" width="64"> - <position x="680" y="424"/> - <inputVariables> - <variable formalParameter="G"> - <connectionPointIn> - <relPosition x="0" y="32"/> - <connection refLocalId="25"> - <position x="680" y="456"/> - <position x="652" y="456"/> - <position x="652" y="448"/> - <position x="624" y="448"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN0"> - <connectionPointIn> - <relPosition x="0" y="56"/> - <connection refLocalId="20"> - <position x="680" y="480"/> - <position x="632" y="480"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="80"/> - <connection refLocalId="4"> - <position x="680" y="504"/> - <position x="656" y="504"/> - <position x="656" y="512"/> - <position x="632" y="512"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="64" y="32"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="20" executionOrderId="0" height="32" width="72" negated="false"> - <position x="560" y="464"/> - <connectionPointOut> - <relPosition x="72" y="16"/> - </connectionPointOut> - <expression>OLDCODE</expression> - </inVariable> - <inVariable localId="21" executionOrderId="0" height="32" width="72" negated="false"> - <position x="96" y="496"/> - <connectionPointOut> - <relPosition x="72" y="16"/> - </connectionPointOut> - <expression>OLDCODE</expression> - </inVariable> - <continuation name="Code" localId="22" height="24" width="128"> - <position x="40" y="472"/> - <connectionPointOut> - <relPosition x="128" y="8"/> - </connectionPointOut> - </continuation> - <connector name="CodeChange" localId="23" height="24" width="120"> - <position x="328" y="480"/> - <connectionPointIn> - <relPosition x="0" y="16"/> - <connection refLocalId="16" formalParameter="OUT"> - <position x="328" y="496"/> - <position x="300" y="496"/> - <position x="300" y="488"/> - <position x="272" y="488"/> - </connection> - </connectionPointIn> - </connector> - <continuation name="CodeChange" localId="25" height="24" width="120"> - <position x="504" y="440"/> - <connectionPointOut> - <relPosition x="120" y="8"/> - </connectionPointOut> - </continuation> - <comment localId="27" height="48" width="312"> - <position x="40" y="376"/> - <content> - <xhtml:p><![CDATA[Detect changes in generated code line]]></xhtml:p> - </content> - </comment> + <expression>'")'</expression> + </inVariable> <comment localId="28" height="48" width="520"> - <position x="48" y="560"/> + <position x="48" y="400"/> <content> <xhtml:p><![CDATA[Execute python code on change or globally when CSV is updated]]></xhtml:p> </content> @@ -2075,24 +1893,24 @@ </content> </comment> <connector name="Code" localId="30" height="24" width="128"> - <position x="632" y="128"/> + <position x="856" y="112"/> <connectionPointIn> - <relPosition x="0" y="16"/> + <relPosition x="0" y="8"/> <connection refLocalId="7" formalParameter="OUT"> - <position x="632" y="144"/> - <position x="584" y="144"/> + <position x="856" y="120"/> + <position x="752" y="120"/> </connection> </connectionPointIn> </connector> <block localId="31" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120"> - <position x="200" y="184"/> + <position x="200" y="160"/> <inputVariables> <variable formalParameter="IN"> <connectionPointIn> <relPosition x="0" y="32"/> <connection refLocalId="11"> - <position x="200" y="216"/> - <position x="152" y="216"/> + <position x="200" y="192"/> + <position x="152" y="192"/> </connection> </connectionPointIn> </variable> @@ -2107,14 +1925,14 @@ </outputVariables> </block> <block localId="2" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120"> - <position x="200" y="232"/> + <position x="200" y="208"/> <inputVariables> <variable formalParameter="IN"> <connectionPointIn> <relPosition x="0" y="32"/> <connection refLocalId="13"> - <position x="200" y="264"/> - <position x="152" y="264"/> + <position x="200" y="240"/> + <position x="152" y="240"/> </connection> </connectionPointIn> </variable> @@ -2128,37 +1946,15 @@ </variable> </outputVariables> </block> - <block localId="55" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120"> - <position x="200" y="232"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="32"/> - <connection refLocalId="54"> - <position x="200" y="264"/> - <position x="152" y="264"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="120" y="32"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> <block localId="40" width="104" height="80" typeName="python_eval" instanceName="py_eval0" executionOrderId="0"> - <position x="552" y="640"/> + <position x="552" y="480"/> <inputVariables> <variable formalParameter="TRIG"> <connectionPointIn> <relPosition x="0" y="32"/> - <connection refLocalId="15" formalParameter="OUT"> - <position x="552" y="672"/> - <position x="360" y="672"/> + <connection refLocalId="46" formalParameter="Q"> + <position x="552" y="512"/> + <position x="360" y="512"/> </connection> </connectionPointIn> </variable> @@ -2166,8 +1962,8 @@ <connectionPointIn> <relPosition x="0" y="64"/> <connection refLocalId="41"> - <position x="552" y="704"/> - <position x="528" y="704"/> + <position x="552" y="544"/> + <position x="520" y="544"/> </connection> </connectionPointIn> </variable> @@ -2187,114 +1983,75 @@ </outputVariables> </block> <continuation name="Code" localId="41" height="24" width="128"> - <position x="400" y="688"/> + <position x="392" y="528"/> <connectionPointOut> <relPosition x="128" y="16"/> </connectionPointOut> </continuation> - <inVariable localId="42" height="24" width="152" executionOrderId="0" negated="false"> - <position x="32" y="656"/> - <connectionPointOut> - <relPosition x="152" y="16"/> - </connectionPointOut> - <expression>pyext_csv_update</expression> + <inVariable localId="42" height="24" width="64" executionOrderId="0" negated="false"> + <position x="208" y="496"/> + <connectionPointOut> + <relPosition x="64" y="16"/> + </connectionPointOut> + <expression>SAVE</expression> </inVariable> <outVariable localId="43" height="24" width="40" executionOrderId="0" negated="false"> - <position x="1216" y="672"/> + <position x="1216" y="512"/> <connectionPointIn> <relPosition x="0" y="16"/> <connection refLocalId="38" formalParameter="Q1"> - <position x="1216" y="688"/> - <position x="1192" y="688"/> - <position x="1192" y="680"/> - <position x="1168" y="680"/> + <position x="1216" y="528"/> + <position x="1192" y="528"/> + <position x="1192" y="520"/> + <position x="1168" y="520"/> </connection> </connectionPointIn> <expression>ACK</expression> </outVariable> <outVariable localId="44" height="24" width="64" executionOrderId="0" negated="false"> - <position x="688" y="744"/> + <position x="688" y="584"/> <connectionPointIn> <relPosition x="0" y="8"/> <connection refLocalId="40" formalParameter="RESULT"> - <position x="688" y="752"/> - <position x="672" y="752"/> - <position x="672" y="704"/> - <position x="656" y="704"/> + <position x="688" y="592"/> + <position x="672" y="592"/> + <position x="672" y="544"/> + <position x="656" y="544"/> </connection> </connectionPointIn> <expression>RESULT</expression> </outVariable> - <block localId="15" typeName="OR" executionOrderId="0" height="64" width="64"> - <position x="296" y="640"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="32"/> - <connection refLocalId="46" formalParameter="Q"> - <position x="296" y="672"/> - <position x="272" y="672"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="56"/> - <connection refLocalId="45"> - <position x="296" y="696"/> - <position x="240" y="696"/> - <position x="240" y="704"/> - <position x="184" y="704"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> + <block localId="46" typeName="R_TRIG" instanceName="R_TRIG1" executionOrderId="0" height="48" width="64"> + <position x="296" y="480"/> + <inputVariables> + <variable formalParameter="CLK"> + <connectionPointIn> + <relPosition x="0" y="32"/> + <connection refLocalId="42"> + <position x="296" y="512"/> + <position x="272" y="512"/> + </connection> + </connectionPointIn> + </variable> + </inputVariables> + <inOutVariables/> + <outputVariables> + <variable formalParameter="Q"> <connectionPointOut> <relPosition x="64" y="32"/> </connectionPointOut> </variable> </outputVariables> </block> - <continuation name="CodeChange" localId="45" height="24" width="120"> - <position x="64" y="688"/> - <connectionPointOut> - <relPosition x="120" y="16"/> - </connectionPointOut> - </continuation> - <block localId="46" typeName="R_TRIG" instanceName="R_TRIG1" executionOrderId="0" height="48" width="64"> - <position x="208" y="640"/> - <inputVariables> - <variable formalParameter="CLK"> - <connectionPointIn> - <relPosition x="0" y="32"/> - <connection refLocalId="42"> - <position x="208" y="672"/> - <position x="184" y="672"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="Q"> - <connectionPointOut> - <relPosition x="64" y="32"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> <block localId="33" typeName="LEFT" executionOrderId="0" height="64" width="56"> - <position x="736" y="672"/> + <position x="736" y="512"/> <inputVariables> <variable formalParameter="IN"> <connectionPointIn> <relPosition x="0" y="32"/> <connection refLocalId="40" formalParameter="RESULT"> - <position x="736" y="704"/> - <position x="656" y="704"/> + <position x="736" y="544"/> + <position x="656" y="544"/> </connection> </connectionPointIn> </variable> @@ -2302,10 +2059,10 @@ <connectionPointIn> <relPosition x="0" y="56"/> <connection refLocalId="35"> - <position x="736" y="728"/> - <position x="724" y="728"/> - <position x="724" y="720"/> - <position x="712" y="720"/> + <position x="736" y="568"/> + <position x="724" y="568"/> + <position x="724" y="560"/> + <position x="712" y="560"/> </connection> </connectionPointIn> </variable> @@ -2320,14 +2077,14 @@ </outputVariables> </block> <block localId="34" typeName="NE" executionOrderId="0" height="64" width="64"> - <position x="880" y="672"/> + <position x="880" y="512"/> <inputVariables> <variable formalParameter="IN1"> <connectionPointIn> <relPosition x="0" y="32"/> <connection refLocalId="33" formalParameter="OUT"> - <position x="880" y="704"/> - <position x="792" y="704"/> + <position x="880" y="544"/> + <position x="792" y="544"/> </connection> </connectionPointIn> </variable> @@ -2335,10 +2092,8 @@ <connectionPointIn> <relPosition x="0" y="56"/> <connection refLocalId="36"> - <position x="880" y="728"/> - <position x="868" y="728"/> - <position x="868" y="720"/> - <position x="856" y="720"/> + <position x="880" y="568"/> + <position x="848" y="568"/> </connection> </connectionPointIn> </variable> @@ -2353,30 +2108,30 @@ </outputVariables> </block> <inVariable localId="35" executionOrderId="0" height="24" width="24" negated="false"> - <position x="688" y="712"/> + <position x="688" y="552"/> <connectionPointOut> <relPosition x="24" y="8"/> </connectionPointOut> <expression>1</expression> </inVariable> <inVariable localId="36" executionOrderId="0" height="24" width="40" negated="false"> - <position x="816" y="712"/> + <position x="808" y="560"/> <connectionPointOut> <relPosition x="40" y="8"/> </connectionPointOut> <expression>'#'</expression> </inVariable> <block localId="37" typeName="R_TRIG" instanceName="R_TRIG2" executionOrderId="0" height="48" width="64"> - <position x="880" y="616"/> + <position x="880" y="456"/> <inputVariables> <variable formalParameter="CLK"> <connectionPointIn> <relPosition x="0" y="32"/> <connection refLocalId="40" formalParameter="ACK"> - <position x="880" y="648"/> - <position x="688" y="648"/> - <position x="688" y="672"/> - <position x="656" y="672"/> + <position x="880" y="488"/> + <position x="688" y="488"/> + <position x="688" y="512"/> + <position x="656" y="512"/> </connection> </connectionPointIn> </variable> @@ -2391,27 +2146,27 @@ </outputVariables> </block> <block localId="38" typeName="SR" instanceName="SR0" executionOrderId="0" height="64" width="48"> - <position x="1120" y="648"/> + <position x="1120" y="488"/> <inputVariables> <variable formalParameter="S1"> <connectionPointIn> <relPosition x="0" y="32"/> <connection refLocalId="39" formalParameter="OUT"> - <position x="1120" y="680"/> - <position x="1056" y="680"/> + <position x="1120" y="520"/> + <position x="1056" y="520"/> </connection> </connectionPointIn> </variable> <variable formalParameter="R" edge="rising"> <connectionPointIn> <relPosition x="0" y="56"/> - <connection refLocalId="15" formalParameter="OUT"> - <position x="1120" y="704"/> - <position x="1088" y="704"/> - <position x="1088" y="776"/> - <position x="376" y="776"/> - <position x="376" y="672"/> - <position x="360" y="672"/> + <connection refLocalId="46" formalParameter="Q"> + <position x="1120" y="544"/> + <position x="1088" y="544"/> + <position x="1088" y="616"/> + <position x="376" y="616"/> + <position x="376" y="512"/> + <position x="360" y="512"/> </connection> </connectionPointIn> </variable> @@ -2426,16 +2181,16 @@ </outputVariables> </block> <block localId="39" typeName="AND" executionOrderId="0" height="64" width="64"> - <position x="992" y="648"/> + <position x="992" y="488"/> <inputVariables> <variable formalParameter="IN1"> <connectionPointIn> <relPosition x="0" y="32"/> <connection refLocalId="37" formalParameter="Q"> - <position x="992" y="680"/> - <position x="976" y="680"/> - <position x="976" y="648"/> - <position x="944" y="648"/> + <position x="992" y="520"/> + <position x="976" y="520"/> + <position x="976" y="488"/> + <position x="944" y="488"/> </connection> </connectionPointIn> </variable> @@ -2443,8 +2198,8 @@ <connectionPointIn> <relPosition x="0" y="56"/> <connection refLocalId="34" formalParameter="OUT"> - <position x="992" y="704"/> - <position x="944" y="704"/> + <position x="992" y="544"/> + <position x="944" y="544"/> </connection> </connectionPointIn> </variable> diff -r 03f007a175b5 -r d2f5eb3c7d6e py_ext/py_ext.py --- a/py_ext/py_ext.py Wed Dec 04 12:00:37 2024 +0100 +++ b/py_ext/py_ext.py Thu Dec 05 13:56:59 2024 +0100 @@ -62,6 +62,8 @@ try: row = data[rowidx] + if not row and rowidx == len(data)-1: + raise IndexError except IndexError: return "#ROW_NOT_FOUND" @@ -116,53 +118,61 @@ return "#COL_NOT_FOUND" -csv_int_files = {} -def CSVWrInt(fname, rowidx, colidx, content, save): +def CSVWrInt(fname, rowidx, colidx, content): \"\"\" Update value at row/column pointed by integer indexes Assumes data starts at first row and first column, no headers. \"\"\" - if save > 0: - global csv_int_files - data = csv_int_files.get(fname, None) - if data is None: - data = list() - try: - csvfile = open(fname, 'rt', encoding='utf-8') - except IOError: - return "#FILE_NOT_FOUND" - try: - dialect = csv.Sniffer().sniff(csvfile.read(1024)) - csvfile.seek(0) - reader = csv.reader(csvfile, dialect) - for row in reader: - data.append(row) - except csv.Error as e: - return "#CSV_ERROR" - finally: - csvfile.close() - csv_int_files[fname] = data - - try: + + global csv_int_files + dialect = None + data = csv_int_files.get(fname, None) + if data is None: + data = list() + try: + csvfile = open(fname, 'rt', encoding='utf-8') + except IOError: + return "#FILE_NOT_FOUND" + try: + dialect = csv.Sniffer().sniff(csvfile.read(1024)) + csvfile.seek(0) + reader = csv.reader(csvfile, dialect) + for row in reader: + data.append(row) + except csv.Error as e: + return "#CSV_ERROR" + finally: + csvfile.close() + csv_int_files[fname] = data + + try: + if rowidx == len(data): + row = [] + data.append(row) + else: row = data[rowidx] - except IndexError: - return "#ROW_NOT_FOUND" - - try: + except IndexError: + return "#ROW_NOT_FOUND" + + try: + if rowidx > 0 and colidx >= len(data[0]): + raise IndexError + if colidx >= len(row): + row.extend([""] * (colidx - len(row)) + [content]) + else: row[colidx] = content - except IndexError: - return "#COL_NOT_FOUND" - - wfile = open(fname, 'rt+', encoding='utf-8') - wdialect = csv.Sniffer().sniff(wfile.read(1024)) - wfile.seek(0) - writer = csv.writer(wfile, wdialect) + except IndexError: + return "#COL_NOT_FOUND" + + try: + wfile = open(fname, 'wt') + writer = csv.writer(wfile) if not(dialect) else csv.writer(wfile, dialect) for row in data: writer.writerow(row) - wfile.truncate() + finally: wfile.close() - - return "#SUCCESS" + + return "OK" def pyext_csv_reload(): @@ -210,4 +220,4 @@ class PythonFile(PythonFileCTNMixin): def GetIconName(self): - return "Pyfile" \ No newline at end of file + return "Pyfile"