Extend HMI:JsonTable, create Edit CSV POU, create example, add some doc (#41)
* Extend Jsontable widget, create Edit CSV POU, create example for both
* Add doc for HMI:Image and HMI:JsonTable
* Expand example to include HMI:Image
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/svghmi/widgets.rst Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,145 @@
+| It is an SVG Image element with label +| ``HMI:Image:variable`` +| where ``variable`` contains the HTTP GET path to the image it should display. +| It is a SVG (group) element with label +| ``HMI:JsonTable:path@notify_var@range_var@position_var@visible_var@filter_var`` +* ``path`` is HTTP POST path used to fetch JSON list response +* ``range_var`` is a variable containing number of elements in a list +* ``position_var`` is a variable containing index of the first element from the list shown in the table +* ``visible_var`` is a variable with number of elements to be displayed in the table +* ``filter_var`` is a variable containing the string which is posted in a request for JSON response, and it's used to filter the results +| On render request, the widget does a POST request to the path. That request contains all the variables listed above. +| Handler for the request should be written in such manner that it returns a JSON list containing defined number of elements. +| Elements are objects with keys and values defined by a user. +| SVG element itself contains another element group ``data``. All of the elements in that group are also groups, with name ``[i]`` where ``i`` goes from 0 to ``visible_var - 1``. Only the last one is actually created, others are just copy of it. +| Elements from ``data`` can be placed in such manner to depict table rows. +| Elements in ``[i]`` can emulate columns. They can be: +* HMI:TextStyleList (label dictates the style and text content) +* Image (label dictates path to the image) +| Any of the above elements can have label with ``onClick[acknowledge]=var`` which means that on a click on such element, the same POST request is invoked, but among ``options`` posted now there is a variable ``onClick[acknowledge]`` and its value is ``var`` +| Beside ``data`` element, there can also be ``action_reset`` group element with similar behavior as stated above: click invokes POST with ``action_reset`` among ``options``. +| If it's needed to display images in a table, and those images should be loaded dynamically, one may use GET handler to load and return appropriate image. --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/beremiz.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?> +<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="LOCAL://"> + <Libraries Enable_SVGHMI_Library="true"/> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/plc.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,337 @@
+<?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"> + <pou name="MainStuff" pouType="program"> + <variable name="csv_read_by_int0"> + <derived name="csv_read_by_int"/> + <variable name="CSV_ROWIDX"> + <derived name="HMI_INT"/> + <simpleValue value="1"/> + <variable name="CSV_COLIDX"> + <derived name="HMI_INT"/> + <simpleValue value="1"/> + <derived name="HMI_INT"/> + <simpleValue value="0"/> + <variable name="CSV_ACK"> + <derived name="HMI_BOOL"/> + <variable name="SEC_ACK"> + <derived name="HMI_BOOL"/> + <variable name="CSV_RES"> + <derived name="HMI_STRING"/> + <variable name="SEC_RES"> + <derived name="HMI_STRING"/> + <variable name="FILENAME"> + <derived name="HMI_STRING"/> + <variable name="CONTENT"> + <derived name="HMI_STRING"/> + <variable name="csv_write_by_int0"> + <derived name="csv_write_by_int"/> + <inVariable localId="4" executionOrderId="0" height="30" width="110" negated="false"> + <position x="35" y="55"/> + <relPosition x="110" y="15"/> + <expression>FILENAME</expression> + <inVariable localId="5" executionOrderId="0" height="27" width="110" negated="false"> + <position x="35" y="85"/> + <relPosition x="110" y="15"/> + <expression>CSV_ROWIDX</expression> + <inVariable localId="6" executionOrderId="0" height="27" width="110" negated="false"> + <position x="35" y="110"/> + <relPosition x="110" y="15"/> + <expression>CSV_COLIDX</expression> + <block localId="2" typeName="csv_read_by_int" instanceName="csv_read_by_int0" executionOrderId="0" height="100" width="155"> + <position x="205" y="35"/> + <variable formalParameter="FILE_NAME"> + <relPosition x="0" y="35"/> + <connection refLocalId="4"> + <position x="205" y="70"/> + <position x="145" y="70"/> + <variable formalParameter="ROW"> + <relPosition x="0" y="60"/> + <connection refLocalId="5"> + <position x="205" y="95"/> + <position x="175" y="95"/> + <position x="175" y="100"/> + <position x="145" y="100"/> + <variable formalParameter="COLUMN"> + <relPosition x="0" y="85"/> + <connection refLocalId="6"> + <position x="205" y="120"/> + <position x="175" y="120"/> + <position x="175" y="125"/> + <position x="145" y="125"/> + <variable formalParameter="ACK"> + <relPosition x="155" y="35"/> + <variable formalParameter="RESULT"> + <relPosition x="155" y="60"/> + <outVariable localId="11" executionOrderId="0" height="27" width="82" negated="false"> + <position x="400" y="60"/> + <relPosition x="0" y="15"/> + <connection refLocalId="2" formalParameter="ACK"> + <position x="400" y="75"/> + <position x="380" y="75"/> + <position x="380" y="70"/> + <position x="360" y="70"/> + <expression>CSV_ACK</expression> + <outVariable localId="10" executionOrderId="0" height="27" width="82" negated="false"> + <position x="400" y="85"/> + <relPosition x="0" y="15"/> + <connection refLocalId="2" formalParameter="RESULT"> + <position x="400" y="100"/> + <position x="380" y="100"/> + <position x="380" y="95"/> + <position x="360" y="95"/> + <expression>CSV_RES</expression> + <block localId="12" typeName="csv_write_by_int" instanceName="csv_write_by_int0" executionOrderId="0" width="140" height="120"> + <position x="240" y="195"/> + <variable formalParameter="FILE_NAME"> + <relPosition x="0" y="30"/> + <connection refLocalId="13"> + <position x="240" y="225"/> + <position x="185" y="225"/> + <position x="185" y="175"/> + <position x="150" y="175"/> + <variable formalParameter="ROW"> + <relPosition x="0" y="50"/> + <connection refLocalId="14"> + <position x="240" y="245"/> + <position x="177" y="245"/> + <position x="177" y="225"/> + <position x="115" y="225"/> + <variable formalParameter="COLUMN"> + <relPosition x="0" y="70"/> + <connection refLocalId="15"> + <position x="240" y="265"/> + <position x="115" y="265"/> + <variable formalParameter="CONTENT"> + <relPosition x="0" y="90"/> + <connection refLocalId="16"> + <position x="240" y="285"/> + <position x="190" y="285"/> + <position x="190" y="305"/> + <position x="115" y="305"/> + <variable formalParameter="SAVE"> + <relPosition x="0" y="110"/> + <connection refLocalId="17"> + <position x="240" y="305"/> + <position x="215" y="305"/> + <position x="215" y="335"/> + <position x="185" y="335"/> + <variable formalParameter="ACK"> + <relPosition x="140" y="30"/> + <variable formalParameter="RESULT"> + <relPosition x="140" y="50"/> + <inVariable localId="13" executionOrderId="0" width="75" height="30" negated="false"> + <position x="75" y="160"/> + <relPosition x="75" y="15"/> + <expression>FILENAME</expression> + <inVariable localId="14" executionOrderId="0" width="90" height="30" negated="false"> + <position x="25" y="210"/> + <relPosition x="90" y="15"/> + <expression>CSV_ROWIDX</expression> + <inVariable localId="15" executionOrderId="0" width="90" height="30" negated="false"> + <position x="25" y="250"/> + <relPosition x="90" y="15"/> + <expression>CSV_COLIDX</expression> + <inVariable localId="16" executionOrderId="0" width="70" height="30" negated="false"> + <position x="45" y="290"/> + <relPosition x="70" y="15"/> + <expression>CONTENT</expression> + <inVariable localId="17" executionOrderId="0" width="45" height="30" negated="false"> + <position x="140" y="320"/> + <relPosition x="45" y="15"/> + <expression>SAVE</expression> + <outVariable localId="18" executionOrderId="0" width="70" height="30" negated="false"> + <position x="435" y="210"/> + <relPosition x="0" y="15"/> + <connection refLocalId="12" formalParameter="ACK"> + <position x="435" y="225"/> + <position x="380" y="225"/> + <expression>SEC_ACK</expression> + <outVariable localId="19" executionOrderId="0" width="70" height="30" negated="false"> + <position x="435" y="240"/> + <relPosition x="0" y="15"/> + <connection refLocalId="12" formalParameter="RESULT"> + <position x="435" y="255"/> + <position x="407" y="255"/> + <position x="407" y="245"/> + <position x="380" y="245"/> + <expression>SEC_RES</expression> + <configuration name="config"> + <resource name="resource1"> + <task name="task0" priority="0" interval="T#20ms"> + <pouInstance name="instance0" typeName="MainStuff"/> Binary file exemples/svghmi_csv_json_img_table/project_files/beremiz.png has changed
Binary file exemples/svghmi_csv_json_img_table/project_files/file.png has changed
Binary file exemples/svghmi_csv_json_img_table/project_files/folder.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/project_files/test1.csv Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,4 @@
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/project_files/test2.csv Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,4 @@
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/baseconfnode.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="py_ext_0"/> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/py_ext_0@py_ext/pyfile.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,144 @@
+<?xml version='1.0' encoding='utf-8'?> +<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <variable name="FileNotify" type="HMI_INT"/> + <variable name="CurrentPath" type="HMI_STRING" initial="..."/> + <variable name="FileName" type="HMI_STRING"/> +from twisted.web.resource import Resource +from os import getcwd, listdir +from os.path import dirname, isfile, join +import collections, json +class FilesJsonResource(Resource): + def render_GET(self, request): + request.setHeader('content-type', 'image/png') + img_name = request.args[b'name'][0].decode('utf-8') + p = getcwd() + '/' + img_name + if p not in self.image_cache: + with open(p, 'rb') as image_file: + img_bytes = image_file.read() + self.image_cache[p] = img_bytes + img_bytes = self.image_cache[p] + def render_POST(self, request): + newstr = request.content.getvalue() + newdata = json.loads(newstr) + range_feedback = newdata['range'] + slider_position = newdata['position'] + visible = newdata['visible'] + extra = newdata['extra'] + options = newdata['options'] + path = PLCGlobals.CurrentPath + PLCGlobals.CurrentPath = path = getcwd() + if action == 'action_reset': + PLCGlobals.CurrentPath = path = getcwd() + elif len(options) == 2 : + action, sent_path = options + if action == 'onClick[acknowledge]': + if sent_path.endswith('.csv'): + PLCGlobals.FileName = sent_path + PLCGlobals.CurrentPath = path = sent_path + 'thumbnail': '/files?name=folder.png' + 'thumbnail': '/files?name=folder.png' + if not (isfile(join(path, f)) + 'thumbnail': '/files?name=file.png' + if isfile(join(path, f)) + answer = self.renderTable( + FileList, range_feedback, slider_position, visible, extra + janswer = json.dumps(answer) + return janswer.encode() + def renderTable(self, FileList, old_range, old_position, visible, extra): + if len(extra) > 0 and extra[0] != "": + fFiles = [fl for fl in FileList if extra[0] in fl] + new_range = len(fFiles) + delta = new_range - visible + new_position = 0 if delta <= 0 else delta if old_position > delta else old_position + new_visible = new_range if delta <= 0 else visible + for desc in fFiles[new_position:new_position + new_visible]: + visible_files.append(desc) + return new_range, new_position, visible_files +AddPathToSVGHMIServers(b"files", FilesJsonResource) --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/baseconfnode.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?> +<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/confnode.xml Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?> +<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" WatchdogInitial="10" WatchdogInterval="5" EnableWatchdog="true" Path="{name}"/> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/exemples/svghmi_csv_json_img_table/svghmi_0@svghmi/svghmi.svg Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,1802 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="svghmi.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + 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 +hmi_widgets["g443-3"].off_action = function(){ + console.log("Hello from Inkscape"); + PushButtonWidget.prototype.off_action.call(this); + console.log("Bye from Inkscape"); + 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 + id="defs2"><linearGradient + id="linearGradient34303" + inkscape:swatch="solid"><stop + style="stop-color:#000000;stop-opacity:1;" + id="stop34301" /></linearGradient><linearGradient + id="linearGradient20537" + inkscape:swatch="solid"><stop + style="stop-color:#000000;stop-opacity:1;" + id="stop20535" /></linearGradient><marker + inkscape:isstock="true" + style="overflow:visible" + inkscape:stockid="Arrow2Lend"><path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + inkscape:connector-curvature="0" /></marker><marker + inkscape:isstock="true" + style="overflow:visible" + inkscape:stockid="Arrow2Lend"><path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + inkscape:connector-curvature="0" /></marker><clipPath + clipPathUnits="userSpaceOnUse" + inkscape:label="HMI:List" + clip-path="url(#clipPath1364)" + transform="matrix(0.749317,0,0,0.76861649,240.55429,-46.943052)"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.91658;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="folder" /><rect + style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="file" /></g></g></clipPath></defs><sodipodi:namedview + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:document-units="px" + inkscape:current-layer="hmi0" + inkscape:zoom="0.80184806" + inkscape:cx="612.33546" + inkscape:cy="267.50704" + inkscape:window-width="1854" + inkscape:window-height="1011" + inkscape:window-maximized="1" + inkscape:guide-bbox="true" + inkscape:snap-global="true" + inkscape:snap-bbox="true" + inkscape:bbox-nodes="true" + inkscape:pagecheckerboard="0" + inkscape:showpageshadow="0" + inkscape:deskcolor="#505050" /><g + inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL" + 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" + 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 + 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 + 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" + inkscape:label="Value"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47691px" + sodipodi:role="line">number</tspan></text><g + style="fill-rule:evenodd;stroke-width:0.135852" + 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" + 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)" + inkscape:connector-curvature="0" /></g><g + style="fill-rule:evenodd;stroke-width:0.135852" + transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">7</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">4</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">1</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">8</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">5</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">2</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">9</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">6</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">3</text></g><g + style="stroke-width:0.135852" + 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" + 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" + transform="scale(1.0007154,0.99928514)">0</text></g></g><g + 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" + 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 + 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 + 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" + 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)" + inkscape:connector-curvature="0" /></g><g + 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" + 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 + 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 + 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" + transform="scale(0.96824589,1.0327955)" + inkscape:label="Info"><tspan + 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" + 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" + 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" + 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" + 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" + 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" + 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 + style="stroke-width:0.476314" + transform="translate(0,-19.076386)"><g + 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" + 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 + 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 + 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" + 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 + 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 + 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" + 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 + 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 + 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" + 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 + 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 + 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" + 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 + 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 + 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" + 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 + 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 + 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" + 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 + 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 + 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" + 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 + 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 + 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" + 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 + 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 + 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" + 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 + 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" + 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" + 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" + transform="scale(1.0007154,0.99928514)">A</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">S</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">D</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">F</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">G</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">H</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">J</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">K</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">L</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">Z</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">X</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">C</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">V</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">B</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">N</text></g><g + style="fill-rule:evenodd;stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928514)">M</text></g><g + 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" + 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" + x="359.58276">.</text><text + 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 + 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" + 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" + 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" + transform="scale(1.0007154,0.99928512)" + id="text4826">,</text></g><g + style="stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928513)">1</text></g><g + style="stroke-width:0.476314" + 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" + 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" + transform="scale(1.0007154,0.99928513)">2</text></g><g + 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" + 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" + transform="scale(1.0007154,0.99928514)">3</text></g><g + 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" + 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" + transform="scale(1.0007154,0.99928514)">4</text></g><g + 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" + 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" + transform="scale(1.0007154,0.99928514)">5</text></g><g + 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" + 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" + transform="scale(1.0007154,0.99928514)">6</text></g><g + 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" + 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" + transform="scale(1.0007154,0.99928514)">7</text></g><g + 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" + 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" + transform="scale(1.0007154,0.99928514)">8</text></g><g + 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" + 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" + transform="scale(1.0007154,0.99928514)">9</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">-</text></g><g + 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" + 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" + 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" + x="365.30151">+</text></g></g><g + transform="translate(335.89988,-58.934803)" + 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" + 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" + x="59.288635">Esc</text></g><g + 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" + 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)" + inkscape:connector-curvature="0" /></g><g + inkscape:label="BackSpace" + 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" + 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)" + inkscape:connector-curvature="0" /></g><g + inkscape:label="CapsLock"><g + inkscape:label="inactive" + 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" + 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 + 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 + 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" + 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" + 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" + 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" + 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" + inkscape:label="Field" /><text + 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" + inkscape:label="Value"><tspan + style="text-align:start;text-anchor:start;stroke-width:0.47691px">text</tspan></text><g + inkscape:label="Shift"><g + 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" + 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" + 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" + 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 + 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 + 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" + 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)" + 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" + 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" + x="75.85218">Shift</text></g></g><text + transform="scale(0.96824588,1.0327955)" + 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" + inkscape:label="Info"><tspan + style="stroke-width:0.307844px" + sodipodi:role="line">information</tspan></text></g><text + 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" + style="text-align:center;text-anchor:middle;stroke-width:0.589932">Lists of items</tspan><tspan + style="text-align:center;text-anchor:middle;stroke-width:0.589932" + id="tspan8889">HMI:TextStylList</tspan></text><text + 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" + style="text-align:center;text-anchor:middle;stroke-width:0.589932">Lists of items</tspan><tspan + style="text-align:center;text-anchor:middle;stroke-width:0.589932" + id="tspan8889-7">HMI:List</tspan></text><rect + style="color:#000000;font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.544984;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker:none;stop-color:#000000;stop-opacity:1" + inkscape:label="HMI:Page:Home" /><image + preserveAspectRatio="none" + xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAGyAzQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+7Ik5 PJ6nufWkyfU/maG6n6n+dJQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT 6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8 zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n 8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zS UUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8z Rk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUU ALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk +p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUAL k+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p /M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+ p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M 0lFAC5PqfzNGT6n8zSUUASoSQcnPP+FFCdD9f6CigCNup+p/nSUrdT9T/OkoAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/wA6SgAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAoorz/AOIvxL8L/DDQn1vxLdlA5aLT9Ot9smoapcqA fIs4WZQdoKmaeRkggUgyyKWRWAPQKK/LXxf+2H8StYupR4Xj03wnp4c/Z1jtLbVdRaPPH2m51KGe 1ZiOSILGALkrliN54n/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCG o/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7 AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8 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 /lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/ AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oS H/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH /oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/ AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDl xR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/ +XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh /wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hI f/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8 MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR /wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcU AeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8A B74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH /wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMw fHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/w zB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFA HgVFe+H9mD44gEnwQ+ACT/xPfDR4HsNYzXg8sTwSyQyrtkido5FyDtdGKsMqSDggjIJB7GgCOiii gAr71/Yc/wCP74if9enhz/0dq9fBVfev7Dn/AB/fET/r08Of+jtXoA/QuiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/zpKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKOqf8g3Uf+vG7/wDSeSvwQk/1kn++3/oR r979U/5Buo/9eN3/AOk8lfghJ/rJP99v/QjQAyiiigAr9Ef2Hf8AkE/ED/r/ANA/9EapX53V+iP7 Dv8AyCfiB/1/6B/6I1SgD7vooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAa/3G/wB1v5GvwQ1X/kJ6h/1+3X/o56/e9/uN/ut/I1+CGq/8hPUP+v26/wDRz0AUKKKKACvv X9hz/j++In/Xp4c/9HavXwVX3r+w5/x/fET/AK9PDn/o7V6AP0LooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAlTofr/QUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqn/IN1H/rxu//AEnkr8EJP9ZJ/vt/6Ea/e/VP +QbqP/Xjd/8ApPJX4ISf6yT/AH2/9CNADKKKKACv0R/Yd/5BPxA/6/8AQP8A0RqlfndX6I/sO/8A IJ+IH/X/AKB/6I1SgD7vooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo Aa/3G/3W/ka/BDVf+QnqH/X7df8Ao56/e9/uN/ut/I1+CGq/8hPUP+v26/8ARz0AUKKKKACvvX9h z/j++In/AF6eHP8A0dq9fBVfev7Dn/H98RP+vTw5/wCjtXoA/QuiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/wA6SgAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqn/IN1H/AK8bv/0nkr8EJP8AWSf77f8AoRr9 79U/5Buo/wDXjd/+k8lfghJ/rJP99v8A0I0AMooooAK/RH9h3/kE/ED/AK/9A/8ARGqV+d1foj+w 7/yCfiB/1/6B/wCiNUoA+76KKKACiiigAooooAKKKKACiiigAoork/FXjvwf4ItftnirxDpmixMr NFHdXA+1XAX7wtbKISXl0w7rbwSEdxQB1lFfHHiP9tHwBpzyQ+HtD13xE6EhbiUQaPYy/wB0xyTG 6vAD382wjIBGFY5FeaXP7cOrs5Np4A06FOy3GuXNwwGe7R6fbAnHog+lAH6JUV+fmn/txSb1XVfh 8hjJG6Ww19ldR3Ihn0t1c+gM0Y969p8J/tZfCfxI8Vvf3moeFbuQqgXXbUCzMhIGFv7GS7gjjGc+ befZF4OccZAPpqiqdhqFhqtpDf6Ze2mo2Vwgkt7yyuIrq2mQ9Hingd4pFPqrEVcoAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 9xv91v5GvwQ1X/kJ6h/1+3X/AKOev3vf7jf7rfyNfghqv/IT1D/r9uv/AEc9AFCiiigAr71/Yc/4 /viJ/wBenhz/ANHavXwVX3r+w5/x/fET/r08Of8Ao7V6AP0LooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAlTofr/QUUJ0P1/oKKAI26n6n+dJSt1P1P8AOkoAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAo6p/yDdR/wCvG7/9J5K/BCT/AFkn++3/AKEa/e/V P+QbqP8A143f/pPJX4ISf6yT/fb/ANCNADKKKKACv0R/Yd/5BPxA/wCv/QP/AERqlfndX6I/sO/8 gn4gf9f+gf8AojVKAPu+iiigAooooAKKKKACiiigApksscMck00iRRRI0kksjKkccaAs7u7EKqKo JZmIAAJJAp9fm7+1D8e5tZvb34ceEL1o9FsZWtvEmpW0hU6reRMVl0yGRDn+z7VwUuSDi8uFKf8A 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 P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B/ /CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+ B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/ cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0 T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8A wldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/h U/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5C o/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE /wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu /wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4V P8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDk KgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCi c+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv +ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8 P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B/ /CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+ B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6UA noCfpzX7f/8ACp/hd/0TnwP/AOEron/yFU1v8L/htaTR3Fr4A8GW88TBo5ofDOjRyxsOjI6WQZWH YqQR60AflZ8JfgN4x+KOoW0qWdxo/hdZVN94hvIHjgMKn95FpqSBTf3TAFVWLMMTYNxLEMBv1v8A C/hrSfB+gaX4a0O2Frpek2qWttHwXbGWlnmfA8y4uJmee4lIBkmkdzy1biIkaqkaLGiAKqIoVVUD AVVUAAAAAAAADgU6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAlTofr /QUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAJU6H6 /wBBRQnQ/X+gooAjbqfqf50lK3U/U/zpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAlTo fr/QUUJ0P1/oKKAHYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoP yFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQA YHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoP yFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQA YHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAuAOg xRRRQB//2Q== " + inkscape:label="HMI:Image@.pic" + inkscape:svg-dpi="1" /><g + style="stroke-width:1.04185" + inkscape:label="HMI:Input@/SAVE" + transform="translate(30.061944,26.296906)"><g + 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" + inkscape:label="button" + rx="20.045269" /></g><g + style="stroke-width:1.04185"><text + inkscape:label="setting_jmp" + 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" + sodipodi:role="line">Update</tspan></text></g></g></g><g + inkscape:label="HMI:ScrollBar@.range@.position@.visibleFiles" + transform="matrix(1,0,0,0.92215078,1380,-74.361686)"><path + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + d="m -234.01097,332.35504 21.18736,28.36866 h -42.37471 z" + 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" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + inkscape:label="pagedown" /><rect + 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" + inkscape:label="range" /><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:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11429px;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="cursor" /></g><g + inkscape:label="HMI:JsonTable:/files@/FILENOTIFY@.range@.position@.visibleFiles@.filter" + transform="matrix(0.5,0,0,0.5,-400.67639,302.56557)"><g + inkscape:label="data"><g + 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" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" + inkscape:label="# separation line" /><image + preserveAspectRatio="none" + xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAGyAzQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+7Ik5 PJ6nufWkyfU/maG6n6n+dJQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT 6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8 zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n 8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zS UUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8z Rk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUU ALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk +p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUAL k+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p /M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+ p/M0ZPqfzNJRQAuT6n8zRk+p/M0lFAC5PqfzNGT6n8zSUUALk+p/M0ZPqfzNJRQAuT6n8zRk+p/M 0lFAC5PqfzNGT6n8zSUUASoSQcnPP+FFCdD9f6CigCNup+p/nSUrdT9T/OkoAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/wA6SgAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAoorz/AOIvxL8L/DDQn1vxLdlA5aLT9Ot9smoapcqA fIs4WZQdoKmaeRkggUgyyKWRWAPQKK/LXxf+2H8StYupR4Xj03wnp4c/Z1jtLbVdRaPPH2m51KGe 1ZiOSILGALkrliN54n/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCG o/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7 AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8 t/wx/wDKaj/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBD r/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8A w1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDK aj/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/ AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8A odf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKaj/hqP45 f9Dr/wCW/wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/AOU1AH7A UV+P/wDw1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8Aodf/AC3/ AAx/8pqP+Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKaj/hqP45f9Dr/wCW /wCGP/lNQB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw 1H8cv+h1/wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP +Go/jl/0Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKaj/hqP45f9Dr/wCW/wCGP/lN QB+wFFfj/wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1 /wDLf8Mf/Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0 Ov8A5b/hj/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKaj/hqP45f9Dr/wCW/wCGP/lNQB+wFFfj /wD8NR/HL/odf/Lf8Mf/ACmo/wCGo/jl/wBDr/5b/hj/AOU1AH7AUV+P/wDw1H8cv+h1/wDLf8Mf /Kaj/hqP45f9Dr/5b/hj/wCU1AH7AUV+P/8Aw1H8cv8Aodf/AC3/AAx/8pqP+Go/jl/0Ov8A5b/h j/5TUAfsBRX4/wD/AA1H8cv+h1/8t/wx/wDKap7b9qj43wTRyyeLYbpEYFrefQPDwhlH91zb6XBM FPcxyxt6MKAP15or4v8AhF+1vpfiq9tfD/j6ztPD2q3TpBaazaO66JdTudqRXUc7yS6bJI2FSVp5 7VnJ3vbDaD9oAggEEEEZBHIIPQg9waACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigCVOh+v8AQUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigBCQoJPAAJJ9gMmvxf+OHxHvPiV4+1fVmnd9HsbibTfD1tuPkwaXayskUy JnAlvmDXlw3Lb5vLDGOKMD9ldRYpp9+6nDLZ3TAjqCsDkH8CK/A6T/WSf77f+hGgBlFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAAkHIOCOQ R1B9a/V79lL4j3fjfwDLo+rTvc6z4Ont9NkuJGLy3OlXMcj6TNM7HLSxrb3VkWOS8dnHI7NI7mvy hr73/YbYi8+IqZ+Vrbw2xHYlZdZAP4B2/M0AfoTRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQBKnQ/X+gooTofr/QUUARt1P1P86Slbqfqf50lABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFAFHVP+QbqP8A143f/pPJX4ISf6yT/fb/ANCNfvfqn/IN1H/rxu// AEnkr8EJP9ZJ/vt/6EaAGUUUUAFFFeh+CPhV48+I0WoTeDdCbWItLkgivmF/pdl5D3KytApGoXto ZN6wyHMQcLt+YjIyAeeUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVF e+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv /lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/ AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oS H/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH /oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/ AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDl xR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/ +XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh /wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hI f/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8 MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR /wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcU AeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8A B74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH /wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/wzB8cf+hIf/we+Gv/AJcUAeBUV77/AMMw fHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFAHgVFe+/8MwfHH/oSH/8AB74a/wDlxR/w zB8cf+hIf/we+Gv/AJcUAeBUV77/AMMwfHH/AKEh/wDwe+Gv/lxR/wAMwfHH/oSH/wDB74a/+XFA HgVFe+H9mD44gEnwQ+ACT/xPfDR4HsNYzXg8sTwSyQyrtkido5FyDtdGKsMqSDggjIJB7GgCOiii gAr71/Yc/wCP74if9enhz/0dq9fBVfev7Dn/AB/fET/r08Of+jtXoA/QuiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/zpKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKOqf8g3Uf+vG7/wDSeSvwQk/1kn++3/oR r979U/5Buo/9eN3/AOk8lfghJ/rJP99v/QjQAyiiigAr9Ef2Hf8AkE/ED/r/ANA/9EapX53V+iP7 Dv8AyCfiB/1/6B/6I1SgD7vooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAa/3G/wB1v5GvwQ1X/kJ6h/1+3X/o56/e9/uN/ut/I1+CGq/8hPUP+v26/wDRz0AUKKKKACvv X9hz/j++In/Xp4c/9HavXwVX3r+w5/x/fET/AK9PDn/o7V6AP0LooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAlTofr/QUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqn/IN1H/rxu//AEnkr8EJP9ZJ/vt/6Ea/e/VP +QbqP/Xjd/8ApPJX4ISf6yT/AH2/9CNADKKKKACv0R/Yd/5BPxA/6/8AQP8A0RqlfndX6I/sO/8A IJ+IH/X/AKB/6I1SgD7vooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo Aa/3G/3W/ka/BDVf+QnqH/X7df8Ao56/e9/uN/ut/I1+CGq/8hPUP+v26/8ARz0AUKKKKACvvX9h z/j++In/AF6eHP8A0dq9fBVfev7Dn/H98RP+vTw5/wCjtXoA/QuiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigCVOh+v9BRQnQ/X+gooAjbqfqf50lK3U/U/wA6SgAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqn/IN1H/AK8bv/0nkr8EJP8AWSf77f8AoRr9 79U/5Buo/wDXjd/+k8lfghJ/rJP99v8A0I0AMooooAK/RH9h3/kE/ED/AK/9A/8ARGqV+d1foj+w 7/yCfiB/1/6B/wCiNUoA+76KKKACiiigAooooAKKKKACiiigAoork/FXjvwf4ItftnirxDpmixMr NFHdXA+1XAX7wtbKISXl0w7rbwSEdxQB1lFfHHiP9tHwBpzyQ+HtD13xE6EhbiUQaPYy/wB0xyTG 6vAD382wjIBGFY5FeaXP7cOrs5Np4A06FOy3GuXNwwGe7R6fbAnHog+lAH6JUV+fmn/txSb1XVfh 8hjJG6Ww19ldR3Ihn0t1c+gM0Y969p8J/tZfCfxI8Vvf3moeFbuQqgXXbUCzMhIGFv7GS7gjjGc+ befZF4OccZAPpqiqdhqFhqtpDf6Ze2mo2Vwgkt7yyuIrq2mQ9Hingd4pFPqrEVcoAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGv 9xv91v5GvwQ1X/kJ6h/1+3X/AKOev3vf7jf7rfyNfghqv/IT1D/r9uv/AEc9AFCiiigAr71/Yc/4 /viJ/wBenhz/ANHavXwVX3r+w5/x/fET/r08Of8Ao7V6AP0LooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAlTofr/QUUJ0P1/oKKAI26n6n+dJSt1P1P8AOkoAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAo6p/yDdR/wCvG7/9J5K/BCT/AFkn++3/AKEa/e/V P+QbqP8A143f/pPJX4ISf6yT/fb/ANCNADKKKKACv0R/Yd/5BPxA/wCv/QP/AERqlfndX6I/sO/8 gn4gf9f+gf8AojVKAPu+iiigAooooAKKKKACiiigApksscMck00iRRRI0kksjKkccaAs7u7EKqKo JZmIAAJJAp9fm7+1D8e5tZvb34ceEL1o9FsZWtvEmpW0hU6reRMVl0yGRDn+z7VwUuSDi8uFKf8A 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 P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B/ /CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+ B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/ cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0 T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8A wldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/h U/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5C o/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE /wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu /wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4V P8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDk KgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCi c+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv +ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8 P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B/ /CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+ B/8AwldE/wDkKgD8P6K/cD/hU/wu/wCic+B//CV0T/5Co/4VP8Lv+ic+B/8AwldE/wDkKgD8P6UA noCfpzX7f/8ACp/hd/0TnwP/AOEron/yFU1v8L/htaTR3Fr4A8GW88TBo5ofDOjRyxsOjI6WQZWH YqQR60AflZ8JfgN4x+KOoW0qWdxo/hdZVN94hvIHjgMKn95FpqSBTf3TAFVWLMMTYNxLEMBv1v8A C/hrSfB+gaX4a0O2Frpek2qWttHwXbGWlnmfA8y4uJmee4lIBkmkdzy1biIkaqkaLGiAKqIoVVUD AVVUAAAAAAAADgU6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAlTofr /QUUJ0P1/oKKAI26n6n+dJSt1P1P86SgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAJU6H6 /wBBRQnQ/X+gooAjbqfqf50lK3U/U/zpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAlTo fr/QUUJ0P1/oKKAHYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoP yFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQA YHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoP yFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQA YHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8h RRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB 6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAYHoPyFGB6D8hRRQAuAOg xRRRQB//2Q== " + inkscape:label=".thumbnail onClick[acknowledge]=.path" + inkscape:svg-dpi="1" /><use + inkscape:label=".status textContent=.name" + transform="translate(618.72609,85.207084)" /></g><use + transform="translate(0,-62.914773)" + transform="translate(0,-125.82955)" /><use + transform="translate(0,-188.74432)" + transform="translate(0,-251.65909)" + inkscape:label="[2]" /><use + transform="translate(0,-314.57387)" + transform="translate(-1.2276309,-371.84741)" + inkscape:label="[0]" /></g><g + style="stroke-width:1.04185" + inkscape:label="action_reset" + transform="matrix(2,0,0,2,-181.39997,-864.49004)"><g + style="stroke-width:1.04185" + inkscape:label="button" + 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="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" + inkscape:label="setting_jmp"><tspan + 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" + style="stroke-width:0.755943"><text + 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" + inkscape:label="value"><tspan + style="stroke-width:0.755943px">8888</tspan></text><path + transform="scale(1,-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: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: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: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 + 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:transform-center-y="-14.95636" + d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:randomized="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" + 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" + style="stroke-width:0.755943"><text + 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" + inkscape:label="value"><tspan + style="stroke-width:0.755943px">8888</tspan></text><path + transform="scale(1,-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: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: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: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 + 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:transform-center-y="-14.95636" + d="m 672.4771,142.08535 -103.62071,0 51.81036,-89.738163 z" + inkscape:randomized="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" + 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" + inkscape:label="HMI:Input@.filter" + transform="matrix(0.33436432,0,0,0.33436432,91.2297,130.8185)"><rect + 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" + 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" + 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" + inkscape:label="edit" /></g><g + style="stroke-width:0.755943" + inkscape:label="HMI:Input@/CONTENT" + transform="matrix(0.33436432,0,0,0.33436432,733.64703,614.97645)"><rect + 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" + 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" + 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" + inkscape:label="edit" /></g><text + 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" + style="fill:#ffffff;stroke-width:0.5px">HMI:JsonTable</tspan></text><text + 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" + style="fill:#ffffff;stroke-width:1px">range</tspan></text><text + 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" + sodipodi:role="line">position</tspan></text><text + 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" + sodipodi:role="line">filter</tspan></text><text + 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" + style="fill:#ffffff;stroke-width:0.25px">In this example, JsonTable widget is used as a list of CSV files.</tspan><tspan + 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 + inkscape:label="HMI:VarInit:0@.position" + transform="translate(1380)" /><g + inkscape:label="HMI:VarInit:100@.range" + transform="translate(1380)" /><g + inkscape:label="HMI:VarInit:7@.visibleFiles" + transform="translate(1380)" /><g + inkscape:label="HMI:VarInit:""@.filter" + transform="translate(1380)" /><g + inkscape:label="HMI:VarInit:"/files?name=beremiz.png"@.pic" + transform="translate(1380)" /><text + 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" + inkscape:label="DISCARD: comments"><tspan + 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" + inkscape:label="DISCARD: boudaries" /><g + inkscape:label="HMI:List" + transform="matrix(0.29835868,0,0,0.36118863,633.13137,-111.5583)"><use + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + transform="translate(-69.76703,100)" + inkscape:label="file" /><use + inkscape:transform-center-x="0.14620371" + inkscape:transform-center-y="2.9995242" + transform="translate(-186.33351,100)" + inkscape:label="folder" /></g><g + inkscape:label="polygons" + transform="matrix(0.29835868,0,0,0.36118863,585.39398,-104.33453)"><path + inkscape:transform-center-y="2.9995242" + inkscape:transform-center-x="0.14620371" + d="m 1081.9632,-246.81598 -27.9274,5.51725 -27.9273,5.51724 9.1856,-26.94439 9.1856,-26.94439 18.7417,21.42715 z" + inkscape:randomized="0" + inkscape:flatsided="false" + sodipodi:arg2="1.3757507" + sodipodi:arg1="0.32855317" + sodipodi:cy="-257.42258" + sodipodi:cx="1050.8505" + style="fill:#8fbc8f;fill-opacity:1;stroke:#ff0000" + inkscape:label="three" /><path + inkscape:transform-center-y="2.9995242" + inkscape:transform-center-x="0.14620371" + d="m 1201.9632,-246.81598 -21.6446,2.82766 -9.9413,19.4333 -9.3778,-19.7114 -21.5541,-3.44949 15.8487,-15.00997 -3.3799,-21.5652 19.1728,10.43473 19.4653,-9.87854 -3.9993,21.45898 z" + inkscape:randomized="0" + inkscape:flatsided="false" + sodipodi:arg2="0.9568717" + sodipodi:arg1="0.32855317" + sodipodi:cy="-257.42258" + sodipodi:cx="1170.8505" + style="fill:#bc8f8f;fill-opacity:1;stroke:#ff0000" + inkscape:label="five" /></g><rect + 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;vector-effect:none;fill:#ffffff;fill-opacity:0.282258;fill-rule:nonzero;stroke:#212121;stroke-width:1.50335;stroke-linecap:round;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" + transform="matrix(0.49097749,0,0,0.41976614,231.93893,556.08411)" + inkscape:label="HMI:Input@/CSV_ROWIDX" + style="stroke-width:0.377115"><text + 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" + inkscape:label="value"><tspan + 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)" + 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: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: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 + 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:transform-center-y="-7.4781804" + d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z" + inkscape:randomized="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" + 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: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: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" + 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" + inkscape:transform-center-x="1.0089177e-06" /></g><g + transform="matrix(0.49138036,0,0,0.41346312,411.60568,558.46632)" + inkscape:label="HMI:Input@/CSV_COLIDX" + style="stroke-width:0.377115"><text + 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" + inkscape:label="value"><tspan + 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)" + 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: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: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 + 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:transform-center-y="-7.4781804" + d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z" + inkscape:randomized="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" + 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: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: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" + 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" + inkscape:transform-center-x="1.0089177e-06" /></g><text + 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" + inkscape:label="HMI:Display@/CSV_RES"><tspan + style="font-size:26.6667px;text-align:end;text-anchor:end;fill:#ff8c00;stroke-width:0.285903px" + sodipodi:role="line">8</tspan></text><g + style="stroke-width:0.380665" + transform="matrix(5.4620443,0,0,5.6582581,-24.547351,237.06866)" + inkscape:label="HMI:Switch@/CSV_ACK"><text + 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" + style="fill:#008000;stroke-width:0.100718px">✔</tspan></text><text + 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" + sodipodi:role="line">✕</tspan></text></g><text + 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 + style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Row#</tspan></text><text + 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" + style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Column#</tspan></text><text + 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 + style="font-size:26.6667px;fill:#ffffff;fill-opacity:1">Content:</tspan></text> + inkscape:label="HMI:TextStyleList" + transform="translate(661.37126,-141.55377)"><text + inkscape:label="active" + 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 + style="fill:#00ff00;stroke-width:1">value</tspan></text></g></svg> --- a/py_ext/pous.xml Fri Nov 15 14:27:55 2024 +0100
+++ b/py_ext/pous.xml Mon Dec 02 11:33:19 2024 +0100
@@ -1657,6 +1657,810 @@
+ <pou name="csv_write_by_int" pouType="functionBlock"> + <variable name="pyext_csv_update"> + <variable name="RESULT"> + <variable name="FILE_NAME"> + <variable name="COLUMN"> + <variable name="CONTENT"> + <variable name="OLDCODE"> + <variable name="py_eval0"> + <derived name="python_eval"/> + <variable name="R_TRIG1"> + <derived name="R_TRIG"/> + <variable name="R_TRIG2"> + <derived name="R_TRIG"/> + <block localId="7" typeName="CONCAT" executionOrderId="0" height="192" width="64"> + <position x="520" y="112"/> + <variable formalParameter="IN1"> + <relPosition x="0" y="32"/> + <connection refLocalId="8"> + <position x="520" y="144"/> + <position x="480" y="144"/> + <variable formalParameter="IN2"> + <relPosition x="0" y="56"/> + <connection refLocalId="9"> + <position x="520" y="168"/> + <position x="312" y="168"/> + <variable formalParameter="IN3"> + <relPosition x="0" y="80"/> + <connection refLocalId="10"> + <position x="520" y="192"/> + <position x="480" y="192"/> + <variable formalParameter="IN4"> + <relPosition x="0" y="104"/> + <connection refLocalId="31" formalParameter="OUT"> + <position x="520" y="216"/> + <position x="320" y="216"/> + <variable formalParameter="IN5"> + <relPosition x="0" y="128"/> + <connection refLocalId="12"> + <position x="520" y="240"/> + <position x="480" y="240"/> + <variable formalParameter="IN6"> + <relPosition x="0" y="152"/> + <connection refLocalId="2" formalParameter="OUT"> + <position x="520" y="264"/> + <position x="320" y="264"/> + <variable formalParameter="IN7"> + <relPosition x="0" y="128"/> + <connection refLocalId="51"> + <position x="520" y="240"/> + <position x="480" y="240"/> + <variable formalParameter="IN8"> + <relPosition x="0" y="128"/> + <connection refLocalId="52"> + <position x="520" y="240"/> + <position x="480" y="240"/> + <variable formalParameter="IN9"> + <relPosition x="0" y="128"/> + <connection refLocalId="53"> + <position x="520" y="240"/> + <position x="480" y="240"/> + <variable formalParameter="IN10"> + <relPosition x="0" y="152"/> + <connection refLocalId="55" formalParameter="OUT"> + <position x="520" y="264"/> + <position x="320" y="264"/> + <variable formalParameter="IN11"> + <relPosition x="0" y="176"/> + <connection refLocalId="14"> + <position x="520" y="288"/> + <position x="480" y="288"/> + <variable formalParameter="OUT"> + <relPosition x="64" y="32"/> + <inVariable localId="8" executionOrderId="0" height="24" width="160" negated="false"> + <position x="320" y="128"/> + <relPosition x="160" y="16"/> + <expression>'CSVWrInt("'</expression> + <inVariable localId="9" executionOrderId="0" height="32" width="112" negated="false"> + <position x="200" y="152"/> + <relPosition x="112" y="16"/> + <expression>FILE_NAME</expression> + <inVariable localId="10" executionOrderId="0" height="24" width="112" negated="false"> + <position x="368" y="184"/> + <relPosition x="112" y="8"/> + <expression>'",'</expression> + <inVariable localId="11" executionOrderId="0" height="32" width="112" negated="false"> + <position x="40" y="200"/> + <relPosition x="112" y="16"/> + <expression>ROW</expression> + <inVariable localId="12" executionOrderId="0" height="24" width="112" negated="false"> + <position x="368" y="224"/> + <relPosition x="112" y="16"/> + <expression>','</expression> + <inVariable localId="13" executionOrderId="0" height="32" width="112" negated="false"> + <position x="40" y="248"/> + <relPosition x="112" y="16"/> + <expression>COLUMN</expression> + <inVariable localId="51" executionOrderId="0" height="24" width="112" negated="false"> + <position x="368" y="224"/> + <relPosition x="112" y="16"/> + <expression>',"'</expression> + <inVariable localId="52" executionOrderId="0" height="32" width="112" negated="false"> + <position x="40" y="248"/> + <relPosition x="112" y="16"/> + <expression>CONTENT</expression> + <inVariable localId="53" executionOrderId="0" height="24" width="112" negated="false"> + <position x="368" y="224"/> + <relPosition x="112" y="16"/> + <expression>'",'</expression> + <inVariable localId="54" executionOrderId="0" height="32" width="112" negated="false"> + <position x="40" y="248"/> + <relPosition x="112" y="16"/> + <expression>SAVE</expression> + <inVariable localId="14" executionOrderId="0" height="24" width="112" negated="false"> + <position x="368" y="272"/> + <relPosition x="112" y="16"/> + <expression>')'</expression> + <continuation name="Code" localId="4" height="24" width="128"> + <position x="504" y="496"/> + <relPosition x="128" y="16"/> + <block localId="16" typeName="NE" executionOrderId="0" height="64" width="64"> + <position x="208" y="456"/> + <variable formalParameter="IN1"> + <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"/> + <variable formalParameter="IN2"> + <relPosition x="0" y="56"/> + <connection refLocalId="21"> + <position x="208" y="512"/> + <position x="168" y="512"/> + <variable formalParameter="OUT"> + <relPosition x="64" y="32"/> + <outVariable localId="17" executionOrderId="0" height="32" width="66" negated="false"> + <position x="784" y="440"/> + <relPosition x="0" y="16"/> + <connection refLocalId="18" formalParameter="OUT"> + <position x="784" y="456"/> + <position x="744" y="456"/> + <expression>OLDCODE</expression> + <block localId="18" typeName="SEL" executionOrderId="0" height="96" width="64"> + <position x="680" y="424"/> + <variable formalParameter="G"> + <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"/> + <variable formalParameter="IN0"> + <relPosition x="0" y="56"/> + <connection refLocalId="20"> + <position x="680" y="480"/> + <position x="632" y="480"/> + <variable formalParameter="IN1"> + <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"/> + <variable formalParameter="OUT"> + <relPosition x="64" y="32"/> + <inVariable localId="20" executionOrderId="0" height="32" width="72" negated="false"> + <position x="560" y="464"/> + <relPosition x="72" y="16"/> + <expression>OLDCODE</expression> + <inVariable localId="21" executionOrderId="0" height="32" width="72" negated="false"> + <position x="96" y="496"/> + <relPosition x="72" y="16"/> + <expression>OLDCODE</expression> + <continuation name="Code" localId="22" height="24" width="128"> + <position x="40" y="472"/> + <relPosition x="128" y="8"/> + <connector name="CodeChange" localId="23" height="24" width="120"> + <position x="328" y="480"/> + <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"/> + <continuation name="CodeChange" localId="25" height="24" width="120"> + <position x="504" y="440"/> + <relPosition x="120" y="8"/> + <comment localId="27" height="48" width="312"> + <position x="40" y="376"/> + <xhtml:p><![CDATA[Detect changes in generated code line]]></xhtml:p> + <comment localId="28" height="48" width="520"> + <position x="48" y="560"/> + <xhtml:p><![CDATA[Execute python code on change or globally when CSV is updated]]></xhtml:p> + <comment localId="29" height="40" width="232"> + <position x="64" y="32"/> + <xhtml:p><![CDATA[Generate python code line]]></xhtml:p> + <connector name="Code" localId="30" height="24" width="128"> + <position x="632" y="128"/> + <relPosition x="0" y="16"/> + <connection refLocalId="7" formalParameter="OUT"> + <position x="632" y="144"/> + <position x="584" y="144"/> + <block localId="31" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120"> + <position x="200" y="184"/> + <variable formalParameter="IN"> + <relPosition x="0" y="32"/> + <connection refLocalId="11"> + <position x="200" y="216"/> + <position x="152" y="216"/> + <variable formalParameter="OUT"> + <relPosition x="120" y="32"/> + <block localId="2" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120"> + <position x="200" y="232"/> + <variable formalParameter="IN"> + <relPosition x="0" y="32"/> + <connection refLocalId="13"> + <position x="200" y="264"/> + <position x="152" y="264"/> + <variable formalParameter="OUT"> + <relPosition x="120" y="32"/> + <block localId="55" typeName="INT_TO_STRING" executionOrderId="0" height="48" width="120"> + <position x="200" y="232"/> + <variable formalParameter="IN"> + <relPosition x="0" y="32"/> + <connection refLocalId="54"> + <position x="200" y="264"/> + <position x="152" y="264"/> + <variable formalParameter="OUT"> + <relPosition x="120" y="32"/> + <block localId="40" width="104" height="80" typeName="python_eval" instanceName="py_eval0" executionOrderId="0"> + <position x="552" y="640"/> + <variable formalParameter="TRIG"> + <relPosition x="0" y="32"/> + <connection refLocalId="15" formalParameter="OUT"> + <position x="552" y="672"/> + <position x="360" y="672"/> + <variable formalParameter="CODE"> + <relPosition x="0" y="64"/> + <connection refLocalId="41"> + <position x="552" y="704"/> + <position x="528" y="704"/> + <variable formalParameter="ACK"> + <relPosition x="104" y="32"/> + <variable formalParameter="RESULT"> + <relPosition x="104" y="64"/> + <continuation name="Code" localId="41" height="24" width="128"> + <position x="400" y="688"/> + <relPosition x="128" y="16"/> + <inVariable localId="42" height="24" width="152" executionOrderId="0" negated="false"> + <position x="32" y="656"/> + <relPosition x="152" y="16"/> + <expression>pyext_csv_update</expression> + <outVariable localId="43" height="24" width="40" executionOrderId="0" negated="false"> + <position x="1216" y="672"/> + <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"/> + <expression>ACK</expression> + <outVariable localId="44" height="24" width="64" executionOrderId="0" negated="false"> + <position x="688" y="744"/> + <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"/> + <expression>RESULT</expression> + <block localId="15" typeName="OR" executionOrderId="0" height="64" width="64"> + <position x="296" y="640"/> + <variable formalParameter="IN1"> + <relPosition x="0" y="32"/> + <connection refLocalId="46" formalParameter="Q"> + <position x="296" y="672"/> + <position x="272" y="672"/> + <variable formalParameter="IN2"> + <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"/> + <variable formalParameter="OUT"> + <relPosition x="64" y="32"/> + <continuation name="CodeChange" localId="45" height="24" width="120"> + <position x="64" y="688"/> + <relPosition x="120" y="16"/> + <block localId="46" typeName="R_TRIG" instanceName="R_TRIG1" executionOrderId="0" height="48" width="64"> + <position x="208" y="640"/> + <variable formalParameter="CLK"> + <relPosition x="0" y="32"/> + <connection refLocalId="42"> + <position x="208" y="672"/> + <position x="184" y="672"/> + <variable formalParameter="Q"> + <relPosition x="64" y="32"/> + <block localId="33" typeName="LEFT" executionOrderId="0" height="64" width="56"> + <position x="736" y="672"/> + <variable formalParameter="IN"> + <relPosition x="0" y="32"/> + <connection refLocalId="40" formalParameter="RESULT"> + <position x="736" y="704"/> + <position x="656" y="704"/> + <variable formalParameter="L"> + <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"/> + <variable formalParameter="OUT"> + <relPosition x="56" y="32"/> + <block localId="34" typeName="NE" executionOrderId="0" height="64" width="64"> + <position x="880" y="672"/> + <variable formalParameter="IN1"> + <relPosition x="0" y="32"/> + <connection refLocalId="33" formalParameter="OUT"> + <position x="880" y="704"/> + <position x="792" y="704"/> + <variable formalParameter="IN2"> + <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"/> + <variable formalParameter="OUT"> + <relPosition x="64" y="32"/> + <inVariable localId="35" executionOrderId="0" height="24" width="24" negated="false"> + <position x="688" y="712"/> + <relPosition x="24" y="8"/> + <expression>1</expression> + <inVariable localId="36" executionOrderId="0" height="24" width="40" negated="false"> + <position x="816" y="712"/> + <relPosition x="40" y="8"/> + <expression>'#'</expression> + <block localId="37" typeName="R_TRIG" instanceName="R_TRIG2" executionOrderId="0" height="48" width="64"> + <position x="880" y="616"/> + <variable formalParameter="CLK"> + <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"/> + <variable formalParameter="Q"> + <relPosition x="64" y="32"/> + <block localId="38" typeName="SR" instanceName="SR0" executionOrderId="0" height="64" width="48"> + <position x="1120" y="648"/> + <variable formalParameter="S1"> + <relPosition x="0" y="32"/> + <connection refLocalId="39" formalParameter="OUT"> + <position x="1120" y="680"/> + <position x="1056" y="680"/> + <variable formalParameter="R" edge="rising"> + <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"/> + <variable formalParameter="Q1"> + <relPosition x="48" y="32"/> + <block localId="39" typeName="AND" executionOrderId="0" height="64" width="64"> + <position x="992" y="648"/> + <variable formalParameter="IN1"> + <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"/> + <variable formalParameter="IN2"> + <relPosition x="0" y="56"/> + <connection refLocalId="34" formalParameter="OUT"> + <position x="992" y="704"/> + <position x="944" y="704"/> + <variable formalParameter="OUT"> + <relPosition x="64" y="32"/> <pou name="python_eval" pouType="functionBlock">
--- a/py_ext/py_ext.py Fri Nov 15 14:27:55 2024 +0100
+++ b/py_ext/py_ext.py Mon Dec 02 11:33:19 2024 +0100
@@ -116,6 +116,56 @@
+def CSVWrInt(fname, rowidx, colidx, content, save): + Update value at row/column pointed by integer indexes + Assumes data starts at first row and first column, no headers. + data = csv_int_files.get(fname, None) + csvfile = open(fname, 'rb') + return "#FILE_NOT_FOUND" + dialect = csv.Sniffer().sniff(csvfile.read(1024)) + reader = csv.reader(csvfile, dialect) + csv_int_files[fname] = data + return "#ROW_NOT_FOUND" + return "#COL_NOT_FOUND" + wfile = open(fname, 'rt+', encoding='utf-8') + wdialect = csv.Sniffer().sniff(wfile.read(1024)) + writer = csv.writer(wfile, wdialect) global csv_int_files, csv_str_files
--- a/svghmi/analyse_widget.xslt Fri Nov 15 14:27:55 2024 +0100
+++ b/svghmi/analyse_widget.xslt Mon Dec 02 11:33:19 2024 +0100
@@ -546,6 +546,20 @@
<xsl:text> where to find HMI_NODEs whose HMI_CLASS is class_name</xsl:text>
+ <xsl:template match="widget[@type='Image']" mode="widget_desc"> + <xsl:value-of select="@type"/> + <xsl:text>If Image widget is a svg:image element, then href content is replaced by + <xsl:text>value of given variable. + <xsl:text>Image display</xsl:text> <xsl:template match="widget[@type='Input']" mode="widget_desc">
<xsl:value-of select="@type"/>
@@ -589,7 +603,7 @@
- <xsl:text>Documentation to be written. see svghmi exemple.
+ <xsl:text>Documentation to be written. see svghmi example. --- a/svghmi/gen_index_xhtml.xslt Fri Nov 15 14:27:55 2024 +0100
+++ b/svghmi/gen_index_xhtml.xslt Mon Dec 02 11:33:19 2024 +0100
@@ -4816,6 +4816,76 @@
+ <xsl:template match="widget[@type='Image']" mode="widget_desc"> + <xsl:value-of select="@type"/> + <xsl:text>If Image widget is a svg:image element, then href content is replaced by + <xsl:text>value of given variable. + <xsl:text>Image display</xsl:text> + <xsl:template match="widget[@type='Image']" mode="widget_class"> + <xsl:text>class </xsl:text> + <xsl:text>ImageWidget</xsl:text> + <xsl:text> extends Widget{ + <xsl:text> frequency = 5; + <xsl:text> dispatch(value, oldval, index) { + <xsl:text> if (index == 0) { + <xsl:text> this.given_url = value; + <xsl:text> this.ready = true; + <xsl:text> this.request_animate(); + <xsl:template match="widget[@type='Image']" mode="widget_defs"> + <xsl:param name="hmi_element"/> + <xsl:variable name="disability"> + <xsl:call-template name="defs_by_labels"> + <xsl:with-param name="hmi_element" select="$hmi_element"/> + <xsl:with-param name="labels"> + <xsl:text>/disabled</xsl:text> + <xsl:with-param name="mandatory" select="'no'"/> + <xsl:value-of select="$disability"/> + <xsl:variable name="has_disability" select="string-length($disability)>0"/> + <xsl:text> given_url: "", + <xsl:text> ready: false, + <xsl:text> animate: function(){ + <xsl:text> this.element.setAttribute('href', this.given_url); + <xsl:text> init: function() { + <xsl:text> this.animate(); <xsl:template match="widget[@type='Input']" mode="widget_desc">
<xsl:value-of select="@type"/>
@@ -5042,7 +5112,7 @@
- <xsl:text>Documentation to be written. see svghmi exemple.
+ <xsl:text>Documentation to be written. see svghmi example. @@ -5247,7 +5317,7 @@
<xsl:variable name="name" select="substring-before($suffix,'=')"/>
<xsl:if test="$expr/@name[. != $name]">
<xsl:message terminate="yes">
- <xsl:text>JsonTable : missplaced '=' or inconsistent names in Json data expressions.</xsl:text>
+ <xsl:text>JsonTable : misplaced '=' or inconsistent names in Json data expressions.</xsl:text> <xsl:attribute name="name">
@@ -5320,7 +5390,7 @@
<xsl:variable name="content_expr" select="$expressions/expression[2]/@content"/>
<xsl:if test="string-length($content_expr) = 0 or $expressions/expression[2]/@name != 'textContent'">
<xsl:message terminate="yes">
- <xsl:text>Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignement following value expression in label.</xsl:text>
+ <xsl:text>Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignment following value expression in label.</xsl:text> @@ -5352,6 +5422,16 @@
+ <xsl:template mode="json_table_elt_render" match="svg:image"> + <xsl:param name="expressions"/> + <xsl:variable name="value_expr" select="$expressions/expression[1]/@content"/> + <xsl:text> id("</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>").setAttribute('href', String(</xsl:text> + <xsl:value-of select="$value_expr"/> <func:function name="func:filter_non_widget_label">
<xsl:param name="widget_elts"/>
@@ -10142,8 +10222,6 @@
<xsl:text> let widget = hmi_widgets[id];
- <xsl:text> if(widget.curr_value != undefined) return;
<xsl:text> widget.do_init();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_image.ysl2 Mon Dec 02 11:33:19 2024 +0100
@@ -0,0 +1,35 @@
+ If Image widget is a svg:image element, then href content is replaced by + value of given variable. + shortdesc > Image display + dispatch(value, oldval, index) { + this.given_url = value; + this.request_animate(); + | this.element.setAttribute('href', this.given_url); --- a/svghmi/widget_jsontable.ysl2 Fri Nov 15 14:27:55 2024 +0100
+++ b/svghmi/widget_jsontable.ysl2 Mon Dec 02 11:33:19 2024 +0100
@@ -6,7 +6,7 @@
Send given variables as POST to http URL argument, spread returned JSON in
SVG sub-elements of "data" labeled element.
- Documentation to be written. see svghmi exemple.
+ Documentation to be written. see svghmi example. shortdesc > Http POST variables, spread JSON back
@@ -113,7 +113,7 @@
// compute javascript expressions to access JSON data
- // desscribed in given svg element's "label"
+ // described in given svg element's "label" // knowing that parent element already has given "expressions".
@@ -128,7 +128,7 @@
when "contains($suffix,'=')" {
const "name", "substring-before($suffix,'=')";
if "$expr/@name[. != $name]"
- error > JsonTable : missplaced '=' or inconsistent names in Json data expressions.
+ error > JsonTable : misplaced '=' or inconsistent names in Json data expressions. attrib "name" value "$name";
attrib "content" > «$expr/@content»«substring-after($suffix,'=')»
@@ -176,7 +176,7 @@
when "count($from_textstylelist) > 0" {
const "content_expr", "$expressions/expression[2]/@content";
if "string-length($content_expr) = 0 or $expressions/expression[2]/@name != 'textContent'"
- error > Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignement following value expression in label.
+ error > Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignment following value expression in label. | elt.textContent = String(«$content_expr»);
@@ -189,8 +189,13 @@
+template "svg:image", mode="json_table_elt_render" { + const "value_expr", "$expressions/expression[1]/@content"; + | id("«@id»").setAttribute('href', String(«$value_expr»)); -// only labels comming from Json widget are counted in
+// only labels coming from Json widget are counted in def "func:filter_non_widget_label" {