diff --git a/embed_files.sh b/embed_files.sh new file mode 100644 index 000000000..0eed06092 --- /dev/null +++ b/embed_files.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +# +# This script walks through the assets folder and minifys all JS, HTML, CSS and SVG files. It also generates +# the corresponding constants that are added to the data.h file on esp8266_deauther folder. +# +# @Author Erick B. Tedeschi < erickbt86 [at] gmail [dot] com > +# @Author Wandmalfarbe https://github.com/Wandmalfarbe +# +# See: https://github.com/letscontrolit/ESPEasy/issues/1671#issuecomment-415144898 + +outputfile="$(pwd)/data_h_temp" + +rm $outputfile + +function minify_html_css { + file=$1 + curl -X POST -s --data-urlencode "input@$file" http://html-minifier.com/raw > /tmp/converter.temp +} + +function minify_js { + file=$1 + curl -X POST -s --data-urlencode "input@$file" https://javascript-minifier.com/raw > /tmp/converter.temp +} + +function minify_svg { + file=$1 + svgo -i /Users/User/Desktop/icons/tools.svg -o - > /tmp/converter.temp +} + +function ascii2hexCstyle { + file_name=$(constFileName $1) + result=$(cat /tmp/converter.temp | hexdump -ve '1/1 "0x%.2x,"') + result=$(echo $result | sed 's/,$//') + echo "const char DATA_${file_name}[] PROGMEM = {$result};" +} + +function constFileName { + extension=$(echo $1 | egrep -io "(json|svg|css|js|html)$" | tr "[:lower:]" "[:upper:]") + file=$(echo $1 | sed 's/\.json//' | sed 's/\.svg//' | sed 's/\.css//' | sed 's/\.html//' | sed 's/\.js//' | sed 's/\.\///' | tr '/' '_' | tr '.' '_' | tr '-' '_' | tr "[:lower:]" "[:upper:]") + underscore="_" + echo $file$underscore$extension +} + + +cd static +file_list=$(find . -type f) + +for file in $file_list; do + echo "Processing: $file" + file_name=$(constFileName $file) + echo " Array Name: $file_name" + + if [[ "$file" == *.min.js ]]; then + echo " JS already minified" + cat $file > /tmp/converter.temp + ascii2hexCstyle $file >> $outputfile + elif [[ "$file" == *.js ]]; then + echo " JS minify" + minify_js $file + ascii2hexCstyle $file >> $outputfile + elif [[ "$file" == *.min.css ]]; then + echo " CSS already minified" + cat $file > /tmp/converter.temp + ascii2hexCstyle $file >> $outputfile + elif [[ "$file" == *.html ]] || [[ "$file" == *.css ]]; then + echo " HTML and CSS minify" + minify_html_css $file + ascii2hexCstyle $file >> $outputfile + elif [[ "$file" == *.svg ]]; then + echo " SVG minify" + minify_svg $file + ascii2hexCstyle $file >> $outputfile + else + echo " without minifier" + cat $file > /tmp/converter.temp + ascii2hexCstyle $file >> $outputfile + fi + echo "" + sleep 1 +done + diff --git a/src/WebServer.ino b/src/WebServer.ino index c16c74c5d..691f0bc61 100644 --- a/src/WebServer.ino +++ b/src/WebServer.ino @@ -288,8 +288,10 @@ void sendHeadandTail(const String& tmplName, boolean Tail = false, boolean reboo } } if (shouldReboot) { - //we only add this here as a seperate chucnk to prevent using too much memory at once - TXBuffer += jsReboot; + //we only add this here as a seperate chunk to prevent using too much memory at once + html_add_script(false); + TXBuffer += DATA_REBOOT_JS; + html_add_script_end(); } } @@ -732,7 +734,7 @@ void getWebPageTemplateVar(const String& varName ) { TXBuffer += F(""); } } @@ -783,7 +785,7 @@ void writeDefaultCSS(void) log += F(" bytes)"); addLog(LOG_LEVEL_INFO, log); } - defaultCSS= PGMT(pgDefaultCSS); + defaultCSS= PGMT(DATA_ESPEASY_DEFAULT_MIN_CSS); f.write((const unsigned char*)defaultCSS.c_str(), defaultCSS.length()); //note: content must be in RAM - a write of F("XXX") does not work f.close(); } @@ -2030,7 +2032,9 @@ void handle_devices() { // show all tasks as table if (taskIndexNotSet) { - TXBuffer += jsUpdateSensorValuesDevicePage; + html_add_script(true); + TXBuffer += DATA_UPDATE_SENSOR_VALUES_DEVICE_PAGE_JS; + html_add_script_end(); html_table_class_multirow(); html_TR(); html_table_header("", 70); @@ -3180,6 +3184,19 @@ void html_add_autosubmit_form() { "\n//-->"); } +void html_add_script(bool defer) { + TXBuffer += F(""); +} + +void html_add_script_end() { + TXBuffer += F(""); +} + + //******************************************************************************** // Add a task select dropdown list //******************************************************************************** @@ -3264,7 +3281,9 @@ void handle_log() { addCheckBox(F("autoscroll"), true); TXBuffer += F("
"); - TXBuffer += jsFetchAndParseLog; + html_add_script(true); + TXBuffer += DATA_FETCH_AND_PARSE_LOG_JS; + html_add_script_end(); sendHeadandTail_stdtemplate(_TAIL); TXBuffer.endStream(); @@ -5212,7 +5231,7 @@ void handle_setup() { TXBuffer += F("timedRefresh("); TXBuffer += wait; TXBuffer += F(");"); - TXBuffer += F(""); + html_add_script_end(); TXBuffer += F("seconds while trying to connect"); } refreshCount++; @@ -5389,20 +5408,23 @@ void handle_sysinfo() { int freeMem = ESP.getFreeHeap(); addHeader(true, TXBuffer.buf); - TXBuffer += printWebString; - TXBuffer += F("
"); + TXBuffer += printWebString; + TXBuffer += F(""); - // the table header - html_table_class_normal(); - html_TR(); - html_table_header(F("System Info")); - TXBuffer += F(""); - addCopyButton(F("copyText"), F("\\n"), F("Copy info to clipboard") ); + // the table header + html_table_class_normal(); + html_TR(); + html_table_header(F("System Info")); + TXBuffer += F(""); + addCopyButton(F("copyText"), F("\\n"), F("Copy info to clipboard") ); - TXBuffer += githublogo; + TXBuffer += githublogo; + html_add_script(false); + TXBuffer += DATA_GITHUB_CLIPBOARD_JS; + html_add_script_end(); - addRowLabel(F("Unit")); - TXBuffer += Settings.Unit; + addRowLabel(F("Unit")); + TXBuffer += Settings.Unit; if (Settings.UseNTP) { diff --git a/src/WebStaticData.h b/src/WebStaticData.h index 32fbff547..92c72197d 100644 --- a/src/WebStaticData.h +++ b/src/WebStaticData.h @@ -112,217 +112,17 @@ static const char githublogo[] PROGMEM = { "" "" "" - "" }; -static const char pgDefaultCSS[] PROGMEM = { - //color scheme: #07D #D50 #DB0 #A0D - "* {font-family: sans-serif; font-size: 12pt; margin: 0px; padding: 0px; box-sizing: border-box; }" - "h1 {font-size: 16pt; color: #07D; margin: 8px 0; font-weight: bold; }" - "h2 {font-size: 12pt; margin: 0 -4px; padding: 6px; background-color: #444; color: #FFF; font-weight: bold; }" - "h3 {font-size: 12pt; margin: 16px -4px 0 -4px; padding: 4px; background-color: #EEE; color: #444; font-weight: bold; }" - "h6 {font-size: 10pt; color: #07D; }" - // monospaced - "pre, xmp, code, kbd, samp, tt{ font-family:monospace,monospace; font-size:1em; }" - // buttons - ".button {margin: 4px; padding: 4px 16px; background-color: #07D; color: #FFF; text-decoration: none; border-radius: 4px; border: none;}" - ".button.link { }" - ".button.link.wide {display: inline-block; width: 100%; text-align: center;}" - ".button.link.red {background-color: red;}" - ".button.help {padding: 2px 4px; border-style: solid; border-width: 1px; border-color: gray; border-radius: 50%; }" - ".button:hover {background: #369; }" - // inputs, select, textarea general - "input, select, textarea {margin: 4px; padding: 4px 8px; border-radius: 4px; background-color: #eee; border-style: solid; border-width: 1px; border-color: gray;}" - // inputs - "input:hover {background-color: #ccc; }" - "input.wide {max-width: 500px; width:80%; }" - "input.widenumber {max-width: 500px; width:100px; }" - // select - "#selectwidth {max-width: 500px; width:80%; padding: 4px 8px;}" - "select:hover {background-color: #ccc; }" - // custom checkboxes - ".container {display: block; padding-left: 35px; margin-left: 4px; margin-top: 0px; position: relative; cursor: pointer; font-size: 12pt; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }" - // Hide the browser's default checkbox - ".container input {position: absolute; opacity: 0; cursor: pointer; }" - // Create a custom checkbox - ".checkmark {position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; border-style: solid; border-width: 1px; border-color: gray; border-radius: 4px;}" - // On mouse-over, add a grey background color - ".container:hover input ~ .checkmark {background-color: #ccc; }" - // When the checkbox is checked, add a blue background - ".container input:checked ~ .checkmark { background-color: #07D; }" - // Create the checkmark/indicator (hidden when not checked) - ".checkmark:after {content: ''; position: absolute; display: none; }" - // Show the checkmark when checked - ".container input:checked ~ .checkmark:after {display: block; }" - // Style the checkmark/indicator - ".container .checkmark:after {left: 7px; top: 3px; width: 5px; height: 10px; border: solid white; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }" +const char DATA_GITHUB_CLIPBOARD_JS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x47,0x69,0x74,0x68,0x75,0x62,0x43,0x6c,0x69,0x70,0x62,0x6f,0x61,0x72,0x64,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x22,0x45,0x53,0x50,0x20,0x45,0x61,0x73,0x79,0x20,0x7c,0x20,0x49,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x5c,0x6e,0x20,0x2d,0x2d,0x2d,0x2d,0x2d,0x7c,0x2d,0x2d,0x2d,0x2d,0x2d,0x7c,0x5c,0x6e,0x22,0x3b,0x6d,0x61,0x78,0x5f,0x6c,0x6f,0x6f,0x70,0x3d,0x31,0x30,0x30,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6f,0x3d,0x31,0x3b,0x6f,0x3c,0x6d,0x61,0x78,0x5f,0x6c,0x6f,0x6f,0x70,0x3b,0x6f,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x22,0x2b,0x6f,0x2c,0x74,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x6e,0x29,0x3b,0x69,0x66,0x28,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x74,0x29,0x6f,0x3d,0x6d,0x61,0x78,0x5f,0x6c,0x6f,0x6f,0x70,0x2b,0x31,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x22,0x7c,0x22,0x3b,0x6f,0x25,0x32,0x3d,0x3d,0x30,0x26,0x26,0x28,0x61,0x2b,0x3d,0x22,0x5c,0x6e,0x22,0x29,0x2c,0x65,0x2b,0x3d,0x74,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x3c,0x5b,0x42,0x62,0x5d,0x5b,0x52,0x72,0x5d,0x5c,0x73,0x2a,0x5c,0x2f,0x3f,0x3e,0x2f,0x67,0x69,0x6d,0x2c,0x22,0x5c,0x6e,0x22,0x29,0x2b,0x61,0x7d,0x7d,0x65,0x3d,0x28,0x65,0x3d,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x3c,0x5c,0x2f,0x5b,0x44,0x64,0x5d,0x5b,0x49,0x69,0x5d,0x5b,0x56,0x76,0x5d,0x5c,0x73,0x2a,0x5c,0x2f,0x3f,0x3e,0x2f,0x67,0x69,0x6d,0x2c,0x22,0x5c,0x6e,0x22,0x29,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x3c,0x5b,0x5e,0x3e,0x5d,0x2a,0x3e,0x2f,0x67,0x69,0x6d,0x2c,0x22,0x22,0x29,0x3b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x22,0x29,0x3b,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x20,0x2d,0x31,0x30,0x30,0x30,0x70,0x78,0x3b,0x20,0x74,0x6f,0x70,0x3a,0x20,0x2d,0x31,0x30,0x30,0x30,0x70,0x78,0x22,0x2c,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x65,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x6c,0x29,0x2c,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x65,0x78,0x65,0x63,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x22,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x6f,0x64,0x79,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x6c,0x29,0x2c,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x43,0x6f,0x70,0x69,0x65,0x64,0x3a,0x20,0x22,0x27,0x2b,0x65,0x2b,0x27,0x22,0x20,0x74,0x6f,0x20,0x63,0x6c,0x69,0x70,0x62,0x6f,0x61,0x72,0x64,0x21,0x27,0x29,0x7d}; - // custom radio buttons - ".container2 {display: block; padding-left: 35px; margin-left: 9px; margin-bottom: 20px; position: relative; cursor: pointer; font-size: 12pt; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }" - // Hide the browser's default radio button - ".container2 input {position: absolute; opacity: 0; cursor: pointer; }" - // Create a custom radio button - ".dotmark {position: absolute; top: 0; left: 0; height: 26px; width: 26px; background-color: #eee; border-style: solid; border-width: 1px; border-color: gray; border-radius: 50%;}" - // On mouse-over, add a grey background color - ".container2:hover input ~ .dotmark {background-color: #ccc; }" - // When the radio button is checked, add a blue background - ".container2 input:checked ~ .dotmark { background-color: #07D;}" - // Create the dot/indicator (hidden when not checked) - ".dotmark:after {content: ''; position: absolute; display: none; }" - // Show the dot when checked - ".container2 input:checked ~ .dotmark:after {display: block; }" - // Style the dot/indicator - ".container2 .dotmark:after {top: 8px; left: 8px; width: 8px; height: 8px; border-radius: 50%; background: white; }" - - // toast messsage - "#toastmessage {visibility: hidden; min-width: 250px; margin-left: -125px; background-color: #07D;" - "color: #fff; text-align: center; border-radius: 4px; padding: 16px; position: fixed;" - "z-index: 1; left: 282px; bottom: 30%; font-size: 17px; border-style: solid; border-width: 1px; border-color: gray;}" - "#toastmessage.show {visibility: visible; -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s; animation: fadein 0.5s, fadeout 0.5s 2.5s; }" - // fade in - "@-webkit-keyframes fadein {from {bottom: 20%; opacity: 0;} to {bottom: 30%; opacity: 0.9;} }" - "@keyframes fadein {from {bottom: 20%; opacity: 0;} to {bottom: 30%; opacity: 0.9;} }" - // fade out - "@-webkit-keyframes fadeout {from {bottom: 30%; opacity: 0.9;} to {bottom: 0; opacity: 0;} }" - "@keyframes fadeout {from {bottom: 30%; opacity: 0.9;} to {bottom: 0; opacity: 0;} }" - // web log viewer and log levels - //low level? Not used? white - ".level_0 { color: #F1F1F1; }" - //ERROR yellow - ".level_1 { color: #FCFF95; }" - //INFO blue - ".level_2 { color: #9DCEFE; }" - //DEBUG green - ".level_3 { color: #A4FC79; }" - //DEBUG_MORE orange - ".level_4 { color: #F2AB39; }" - //DEBUG_DEV dark orange - ".level_9 { color: #FF5500; }" - //the cmd window - ".logviewer { color: #F1F1F1; background-color: #272727; font-family: 'Lucida Console', Monaco, monospace; " - " height: 530px; max-width: 1000px; width: 80%; padding: 4px 8px; overflow: auto; border-style: solid; border-color: gray; }" - // text textarea - "textarea {max-width: 1000px; width:80%; padding: 4px 8px; font-family: 'Lucida Console', Monaco, monospace; }" - "textarea:hover {background-color: #ccc; }" - // tables - "table.normal th {padding: 6px; background-color: #444; color: #FFF; border-color: #888; font-weight: bold; }" - "table.normal td {padding: 4px; height: 30px;}" - "table.normal tr {padding: 4px; }" - "table.normal {color: #000; width: 100%; min-width: 420px; border-collapse: collapse; }" - //every second row - "table.multirow th {padding: 6px; background-color: #444; color: #FFF; border-color: #888; font-weight: bold; }" - "table.multirow td {padding: 4px; text-align: center; height: 30px;}" - "table.multirow tr {padding: 4px; }" - "table.multirow tr:nth-child(even){background-color: #DEE6FF; }" - "table.multirow {color: #000; width: 100%; min-width: 420px; border-collapse: collapse; }" - // Highlight row - "tr.highlight td { background-color: #dbff0075; }" - // inside a form - ".note {color: #444; font-style: italic; }" - //header with title and menu - ".headermenu {position: fixed; top: 0; left: 0; right: 0; height: 90px; padding: 8px 12px; background-color: #F8F8F8; border-bottom: 1px solid #DDD; z-index: 1;}" - ".apheader {padding: 8px 12px; background-color: #F8F8F8;}" - ".bodymenu {margin-top: 96px;}" - // menu - ".menubar {position: inherit; top: 55px; }" - ".menu {float: left; padding: 4px 16px 8px 16px; color: #444; white-space: nowrap; border: solid transparent; border-width: 4px 1px 1px; border-radius: 4px 4px 0 0; text-decoration: none; }" - ".menu.active {color: #000; background-color: #FFF; border-color: #07D #DDD #FFF; }" - ".menu:hover {color: #000; background: #DEF; }" - ".menu_button {display: none;}" - // symbols for enabled - ".on {color: green; }" - ".off {color: red; }" - // others - ".div_l {float: left; }" - ".div_r {float: right; margin: 2px; padding: 1px 10px; border-radius: 4px; background-color: #080; color: white; }" - ".div_br {clear: both; }" - // The alert message box - ".alert {padding: 20px; background-color: #f44336; color: white; margin-bottom: 15px; }" - ".warning {padding: 20px; background-color: #ffca17; color: white; margin-bottom: 15px; }" - // The close button - ".closebtn {margin-left: 15px; color: white; font-weight: bold; float: right; font-size: 22px; line-height: 20px; cursor: pointer; transition: 0.3s; }" - // When moving the mouse over the close button - ".closebtn:hover {color: black; }" - "section{overflow-x: auto; width: 100%; }" - // For screens with width less than 960 pixels - "@media screen and (max-width: 960px) {" -// "header:hover .menubar {display: block;}" -// ".menu_button {display: block; text-align: center;}" -// ".bodymenu{ margin-top: 0px; }" -// ".menubar{ display: none; top: 0px; position: relative; float: left; width: 100%;}" -// ".headermenu{ position: relative; height: auto; float: left; width: 100%; padding: 5px; z-index: 1;}" -// ".headermenu h1{ padding: 8px 12px; }" -// ".headermenu a{ text-align: center; width: 100%; padding:7px 10px; height: auto; border: 0px; border-radius:0px; }; }" - "span.showmenulabel { display: none; }" - ".menu { max-width: 11vw; max-width: 48px; }" - - "\0" -}; +const char DATA_ESPEASY_DEFAULT_MIN_CSS[] PROGMEM = {0x2a,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x68,0x31,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x36,0x70,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x38,0x70,0x78,0x20,0x30,0x7d,0x68,0x32,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x20,0x2d,0x34,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x36,0x70,0x78,0x7d,0x68,0x33,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x45,0x45,0x45,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x31,0x36,0x70,0x78,0x20,0x2d,0x34,0x70,0x78,0x20,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x7d,0x68,0x36,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x30,0x70,0x74,0x7d,0x70,0x72,0x65,0x2c,0x78,0x6d,0x70,0x2c,0x63,0x6f,0x64,0x65,0x2c,0x6b,0x62,0x64,0x2c,0x73,0x61,0x6d,0x70,0x2c,0x74,0x74,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x2c,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x65,0x6d,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x34,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x31,0x36,0x70,0x78,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2e,0x6c,0x69,0x6e,0x6b,0x2e,0x77,0x69,0x64,0x65,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2e,0x6c,0x69,0x6e,0x6b,0x2e,0x72,0x65,0x64,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x72,0x65,0x64,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2e,0x68,0x65,0x6c,0x70,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x30,0x25,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x32,0x70,0x78,0x20,0x34,0x70,0x78,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x23,0x33,0x36,0x39,0x7d,0x69,0x6e,0x70,0x75,0x74,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x2c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x65,0x65,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x34,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x7d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x69,0x6e,0x70,0x75,0x74,0x2e,0x77,0x69,0x64,0x65,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x30,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x25,0x7d,0x69,0x6e,0x70,0x75,0x74,0x2e,0x77,0x69,0x64,0x65,0x6e,0x75,0x6d,0x62,0x65,0x72,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x30,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x70,0x78,0x7d,0x23,0x73,0x65,0x6c,0x65,0x63,0x74,0x77,0x69,0x64,0x74,0x68,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x25,0x7d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x7b,0x2d,0x6d,0x6f,0x7a,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x6d,0x73,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x34,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x33,0x35,0x70,0x78,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x65,0x65,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x35,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x35,0x70,0x78,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x7e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x27,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x6d,0x73,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x34,0x35,0x64,0x65,0x67,0x29,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x34,0x35,0x64,0x65,0x67,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x66,0x66,0x66,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x20,0x33,0x70,0x78,0x20,0x33,0x70,0x78,0x20,0x30,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x37,0x70,0x78,0x3b,0x74,0x6f,0x70,0x3a,0x33,0x70,0x78,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x34,0x35,0x64,0x65,0x67,0x29,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x70,0x78,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x7b,0x2d,0x6d,0x6f,0x7a,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x6d,0x73,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x32,0x30,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x39,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x33,0x35,0x70,0x78,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x20,0x69,0x6e,0x70,0x75,0x74,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x65,0x65,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x30,0x25,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x36,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x36,0x70,0x78,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x7e,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x7d,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x27,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x20,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x23,0x66,0x66,0x66,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x30,0x25,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x38,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x38,0x70,0x78,0x3b,0x74,0x6f,0x70,0x3a,0x38,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x70,0x78,0x7d,0x23,0x74,0x6f,0x61,0x73,0x74,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x37,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x32,0x38,0x32,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x2d,0x31,0x32,0x35,0x70,0x78,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x35,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x36,0x70,0x78,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x7d,0x23,0x74,0x6f,0x61,0x73,0x74,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2e,0x73,0x68,0x6f,0x77,0x7b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x61,0x64,0x65,0x69,0x6e,0x20,0x30,0x2e,0x35,0x73,0x2c,0x66,0x61,0x64,0x65,0x6f,0x75,0x74,0x20,0x2e,0x35,0x73,0x20,0x32,0x2e,0x35,0x73,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x61,0x64,0x65,0x69,0x6e,0x20,0x30,0x2e,0x35,0x73,0x2c,0x66,0x61,0x64,0x65,0x6f,0x75,0x74,0x20,0x2e,0x35,0x73,0x20,0x32,0x2e,0x35,0x73,0x3b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7d,0x40,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x61,0x64,0x65,0x69,0x6e,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x32,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x74,0x6f,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x39,0x7d,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x61,0x64,0x65,0x69,0x6e,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x32,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x74,0x6f,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x39,0x7d,0x7d,0x40,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x61,0x64,0x65,0x6f,0x75,0x74,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x39,0x7d,0x74,0x6f,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x61,0x64,0x65,0x6f,0x75,0x74,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x39,0x7d,0x74,0x6f,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x30,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x31,0x46,0x31,0x46,0x31,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x31,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x43,0x46,0x46,0x39,0x35,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x32,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x39,0x44,0x43,0x45,0x46,0x45,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x33,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x41,0x34,0x46,0x43,0x37,0x39,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x34,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x32,0x41,0x42,0x33,0x39,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x39,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x35,0x30,0x7d,0x2e,0x6c,0x6f,0x67,0x76,0x69,0x65,0x77,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x32,0x37,0x32,0x37,0x32,0x37,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x31,0x46,0x31,0x46,0x31,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x27,0x4c,0x75,0x63,0x69,0x64,0x61,0x20,0x43,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x27,0x2c,0x4d,0x6f,0x6e,0x61,0x63,0x6f,0x2c,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x35,0x33,0x30,0x70,0x78,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x30,0x70,0x78,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x25,0x7d,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x27,0x4c,0x75,0x63,0x69,0x64,0x61,0x20,0x43,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x27,0x2c,0x4d,0x6f,0x6e,0x61,0x63,0x6f,0x2c,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x25,0x7d,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x74,0x68,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x38,0x38,0x38,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x36,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x74,0x64,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x74,0x72,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x32,0x30,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x20,0x74,0x68,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x38,0x38,0x38,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x36,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x20,0x74,0x64,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x20,0x74,0x72,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x20,0x74,0x72,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x44,0x45,0x45,0x36,0x46,0x46,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x32,0x30,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x74,0x72,0x2e,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x20,0x74,0x64,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x64,0x62,0x66,0x66,0x30,0x30,0x37,0x35,0x7d,0x2e,0x6e,0x6f,0x74,0x65,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x69,0x74,0x61,0x6c,0x69,0x63,0x7d,0x2e,0x68,0x65,0x61,0x64,0x65,0x72,0x6d,0x65,0x6e,0x75,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x38,0x46,0x38,0x46,0x38,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x44,0x44,0x44,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x39,0x30,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x38,0x70,0x78,0x20,0x31,0x32,0x70,0x78,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x72,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x7d,0x2e,0x61,0x70,0x68,0x65,0x61,0x64,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x38,0x46,0x38,0x46,0x38,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x38,0x70,0x78,0x20,0x31,0x32,0x70,0x78,0x7d,0x2e,0x62,0x6f,0x64,0x79,0x6d,0x65,0x6e,0x75,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x39,0x36,0x70,0x78,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x62,0x61,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x74,0x6f,0x70,0x3a,0x35,0x35,0x70,0x78,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x20,0x34,0x70,0x78,0x20,0x30,0x20,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x70,0x78,0x20,0x31,0x70,0x78,0x20,0x31,0x70,0x78,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x6c,0x65,0x66,0x74,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x31,0x36,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x20,0x23,0x44,0x44,0x44,0x20,0x23,0x46,0x46,0x46,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x23,0x44,0x45,0x46,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x5f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x6f,0x6e,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x65,0x65,0x6e,0x7d,0x2e,0x6f,0x66,0x66,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x72,0x65,0x64,0x7d,0x2e,0x64,0x69,0x76,0x5f,0x6c,0x7b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x6c,0x65,0x66,0x74,0x7d,0x2e,0x64,0x69,0x76,0x5f,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x38,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x72,0x69,0x67,0x68,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x32,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x70,0x78,0x20,0x31,0x30,0x70,0x78,0x7d,0x2e,0x64,0x69,0x76,0x5f,0x62,0x72,0x7b,0x63,0x6c,0x65,0x61,0x72,0x3a,0x62,0x6f,0x74,0x68,0x7d,0x2e,0x61,0x6c,0x65,0x72,0x74,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x34,0x34,0x33,0x33,0x36,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x35,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x32,0x30,0x70,0x78,0x7d,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x63,0x61,0x31,0x37,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x35,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x32,0x30,0x70,0x78,0x7d,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x62,0x74,0x6e,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x72,0x69,0x67,0x68,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x32,0x32,0x70,0x78,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x30,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x35,0x70,0x78,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x33,0x73,0x7d,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x7d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x61,0x6e,0x64,0x20,0x28,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x39,0x36,0x30,0x70,0x78,0x29,0x7b,0x73,0x70,0x61,0x6e,0x2e,0x73,0x68,0x6f,0x77,0x6d,0x65,0x6e,0x75,0x6c,0x61,0x62,0x65,0x6c,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x31,0x76,0x77,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x38,0x70,0x78,0x7d,0x7d,0x0a}; // JavaScript blobs - -static const char jsReboot[] PROGMEM = { - "" -}; +const char DATA_REBOOT_JS[] PROGMEM = {0x69,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x72,0x62,0x74,0x6d,0x73,0x67,0x22,0x29,0x2c,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x72,0x65,0x62,0x6f,0x6f,0x74,0x3a,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x69,0x64,0x3d,0x27,0x72,0x65,0x62,0x6f,0x6f,0x74,0x27,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x27,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x27,0x52,0x65,0x62,0x6f,0x6f,0x74,0x27,0x20,0x74,0x79,0x70,0x65,0x3d,0x27,0x73,0x75,0x62,0x6d,0x69,0x74,0x27,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x27,0x72,0x28,0x29,0x27,0x3e,0x22,0x3b,0x76,0x61,0x72,0x20,0x78,0x3d,0x6e,0x65,0x77,0x20,0x58,0x4d,0x4c,0x48,0x74,0x74,0x70,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x28,0x29,0x7b,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x22,0x2c,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x28,0x29,0x7b,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2b,0x3d,0x22,0x2e,0x22,0x2c,0x78,0x2e,0x6f,0x6e,0x6c,0x6f,0x61,0x64,0x3d,0x64,0x2c,0x78,0x2e,0x6f,0x70,0x65,0x6e,0x28,0x22,0x47,0x45,0x54,0x22,0x2c,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x29,0x2c,0x78,0x2e,0x73,0x65,0x6e,0x64,0x28,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x28,0x29,0x7b,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x52,0x65,0x62,0x6f,0x6f,0x74,0x69,0x6e,0x67,0x2e,0x2e,0x22,0x2c,0x74,0x3d,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x63,0x2c,0x32,0x65,0x33,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x29,0x7b,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2b,0x3d,0x22,0x20,0x28,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x22,0x2c,0x78,0x2e,0x6f,0x6e,0x6c,0x6f,0x61,0x64,0x3d,0x62,0x2c,0x78,0x2e,0x6f,0x70,0x65,0x6e,0x28,0x22,0x47,0x45,0x54,0x22,0x2c,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2b,0x22,0x2f,0x3f,0x63,0x6d,0x64,0x3d,0x72,0x65,0x62,0x6f,0x6f,0x74,0x22,0x29,0x2c,0x78,0x2e,0x73,0x65,0x6e,0x64,0x28,0x29,0x7d}; static const char jsToastMessageBegin[] PROGMEM = { "" }; +const char DATA_UPDATE_SENSOR_VALUES_DEVICE_PAGE_JS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x73,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x2c,0x6c,0x2c,0x6f,0x3d,0x30,0x3b,0x69,0x73,0x4e,0x61,0x4e,0x28,0x73,0x29,0x26,0x26,0x28,0x73,0x3d,0x31,0x29,0x2c,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x65,0x26,0x26,0x28,0x65,0x3d,0x31,0x65,0x33,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x6f,0x3e,0x30,0x3f,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x6e,0x29,0x3a,0x2b,0x2b,0x73,0x3e,0x31,0x3f,0x6f,0x3d,0x31,0x3a,0x28,0x66,0x65,0x74,0x63,0x68,0x28,0x22,0x2f,0x6a,0x73,0x6f,0x6e,0x3f,0x76,0x69,0x65,0x77,0x3d,0x73,0x65,0x6e,0x73,0x6f,0x72,0x75,0x70,0x64,0x61,0x74,0x65,0x22,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x76,0x61,0x72,0x20,0x6f,0x3b,0x32,0x30,0x30,0x3d,0x3d,0x3d,0x73,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x3f,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x66,0x6f,0x72,0x28,0x65,0x3d,0x73,0x2e,0x54,0x54,0x4c,0x2c,0x61,0x3d,0x30,0x3b,0x61,0x3c,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x61,0x2b,0x2b,0x29,0x69,0x66,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x22,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x22,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x3d,0x30,0x3b,0x6c,0x3c,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6c,0x2b,0x2b,0x29,0x74,0x72,0x79,0x7b,0x6f,0x3d,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x56,0x61,0x6c,0x75,0x65,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x6f,0x3d,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x7b,0x69,0x66,0x28,0x22,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x22,0x21,0x3d,0x3d,0x6f,0x29,0x7b,0x74,0x65,0x6d,0x70,0x56,0x61,0x6c,0x75,0x65,0x3d,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x56,0x61,0x6c,0x75,0x65,0x2c,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x73,0x56,0x61,0x6c,0x75,0x65,0x3d,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x4e,0x72,0x44,0x65,0x63,0x69,0x6d,0x61,0x6c,0x73,0x2c,0x74,0x65,0x6d,0x70,0x56,0x61,0x6c,0x75,0x65,0x3d,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x74,0x65,0x6d,0x70,0x56,0x61,0x6c,0x75,0x65,0x29,0x2e,0x74,0x6f,0x46,0x69,0x78,0x65,0x64,0x28,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x73,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x76,0x61,0x72,0x20,0x72,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x5f,0x22,0x2b,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2d,0x31,0x29,0x2b,0x22,0x5f,0x22,0x2b,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x56,0x61,0x6c,0x75,0x65,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2d,0x31,0x29,0x2c,0x74,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x6e,0x61,0x6d,0x65,0x5f,0x22,0x2b,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2d,0x31,0x29,0x2b,0x22,0x5f,0x22,0x2b,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x56,0x61,0x6c,0x75,0x65,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2d,0x31,0x29,0x2c,0x75,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x72,0x29,0x2c,0x63,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x74,0x29,0x3b,0x6e,0x75,0x6c,0x6c,0x21,0x3d,0x3d,0x75,0x26,0x26,0x28,0x75,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x74,0x65,0x6d,0x70,0x56,0x61,0x6c,0x75,0x65,0x29,0x2c,0x6e,0x75,0x6c,0x6c,0x21,0x3d,0x3d,0x63,0x26,0x26,0x28,0x63,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x4e,0x61,0x6d,0x65,0x2b,0x22,0x3a,0x22,0x29,0x7d,0x7d,0x65,0x3d,0x73,0x2e,0x54,0x54,0x4c,0x2c,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x6e,0x29,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x30,0x29,0x7d,0x29,0x3a,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x4c,0x6f,0x6f,0x6b,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x77,0x61,0x73,0x20,0x61,0x20,0x70,0x72,0x6f,0x62,0x6c,0x65,0x6d,0x2e,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x43,0x6f,0x64,0x65,0x3a,0x20,0x22,0x2b,0x73,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x7d,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x2c,0x65,0x3d,0x35,0x65,0x33,0x2c,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x6e,0x29,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x30,0x29,0x7d,0x29,0x2c,0x6f,0x3d,0x31,0x29,0x7d,0x2c,0x65,0x29,0x7d,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x31,0x65,0x33,0x2c,0x30,0x29,0x3b}; -static const char jsUpdateSensorValuesDevicePage[] PROGMEM = { - "" -}; - -static const char jsFetchAndParseLog[] PROGMEM = { - - "" -}; +const char DATA_FETCH_AND_PARSE_LOG_JS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x2c,0x6f,0x3d,0x6e,0x61,0x76,0x69,0x67,0x61,0x74,0x6f,0x72,0x2e,0x75,0x73,0x65,0x72,0x41,0x67,0x65,0x6e,0x74,0x2c,0x74,0x3d,0x6f,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x28,0x6f,0x70,0x65,0x72,0x61,0x7c,0x63,0x68,0x72,0x6f,0x6d,0x65,0x7c,0x73,0x61,0x66,0x61,0x72,0x69,0x7c,0x66,0x69,0x72,0x65,0x66,0x6f,0x78,0x7c,0x6d,0x73,0x69,0x65,0x7c,0x74,0x72,0x69,0x64,0x65,0x6e,0x74,0x28,0x3f,0x3d,0x5c,0x2f,0x29,0x29,0x5c,0x2f,0x3f,0x5c,0x73,0x2a,0x28,0x5c,0x64,0x2b,0x29,0x2f,0x69,0x29,0x7c,0x7c,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x2f,0x74,0x72,0x69,0x64,0x65,0x6e,0x74,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x5b,0x31,0x5d,0x29,0x3f,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x22,0x49,0x45,0x22,0x2c,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x28,0x65,0x3d,0x2f,0x5c,0x62,0x72,0x76,0x5b,0x20,0x3a,0x5d,0x2b,0x28,0x5c,0x64,0x2b,0x29,0x2f,0x67,0x2e,0x65,0x78,0x65,0x63,0x28,0x6f,0x29,0x7c,0x7c,0x5b,0x5d,0x29,0x5b,0x31,0x5d,0x7c,0x7c,0x22,0x22,0x7d,0x3a,0x22,0x43,0x68,0x72,0x6f,0x6d,0x65,0x22,0x3d,0x3d,0x3d,0x74,0x5b,0x31,0x5d,0x26,0x26,0x6e,0x75,0x6c,0x6c,0x21,0x3d,0x28,0x65,0x3d,0x6f,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5c,0x62,0x4f,0x50,0x52,0x7c,0x45,0x64,0x67,0x65,0x5c,0x2f,0x28,0x5c,0x64,0x2b,0x29,0x2f,0x29,0x29,0x3f,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x22,0x4f,0x70,0x65,0x72,0x61,0x22,0x2c,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x65,0x5b,0x31,0x5d,0x7d,0x3a,0x28,0x74,0x3d,0x74,0x5b,0x32,0x5d,0x3f,0x5b,0x74,0x5b,0x31,0x5d,0x2c,0x74,0x5b,0x32,0x5d,0x5d,0x3a,0x5b,0x6e,0x61,0x76,0x69,0x67,0x61,0x74,0x6f,0x72,0x2e,0x61,0x70,0x70,0x4e,0x61,0x6d,0x65,0x2c,0x6e,0x61,0x76,0x69,0x67,0x61,0x74,0x6f,0x72,0x2e,0x61,0x70,0x70,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x22,0x2d,0x3f,0x22,0x5d,0x2c,0x6e,0x75,0x6c,0x6c,0x21,0x3d,0x28,0x65,0x3d,0x6f,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x5c,0x2f,0x28,0x5c,0x64,0x2b,0x29,0x2f,0x69,0x29,0x29,0x26,0x26,0x74,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x31,0x2c,0x65,0x5b,0x31,0x5d,0x29,0x2c,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x74,0x5b,0x30,0x5d,0x2c,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x74,0x5b,0x31,0x5d,0x7d,0x29,0x7d,0x76,0x61,0x72,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x3d,0x67,0x65,0x74,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x28,0x29,0x2c,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x3d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x2b,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3b,0x28,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3c,0x31,0x32,0x29,0x3f,0x74,0x65,0x78,0x74,0x54,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x3d,0x22,0x45,0x72,0x72,0x6f,0x72,0x3a,0x20,0x22,0x2b,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x2b,0x22,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x21,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x74,0x72,0x79,0x20,0x61,0x20,0x6d,0x6f,0x64,0x65,0x72,0x6e,0x20,0x77,0x65,0x62,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x22,0x3a,0x74,0x65,0x78,0x74,0x54,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x3d,0x22,0x46,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x67,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x2e,0x2e,0x2e,0x22,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x74,0x65,0x78,0x74,0x54,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x31,0x65,0x33,0x2c,0x30,0x29,0x3b,0x76,0x61,0x72,0x20,0x6c,0x6f,0x67,0x4c,0x65,0x76,0x65,0x6c,0x3d,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x22,0x55,0x6e,0x75,0x73,0x65,0x64,0x22,0x2c,0x22,0x45,0x72,0x72,0x6f,0x72,0x22,0x2c,0x22,0x49,0x6e,0x66,0x6f,0x22,0x2c,0x22,0x44,0x65,0x62,0x75,0x67,0x22,0x2c,0x22,0x44,0x65,0x62,0x75,0x67,0x20,0x4d,0x6f,0x72,0x65,0x22,0x2c,0x22,0x55,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x22,0x55,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x22,0x55,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x22,0x55,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x22,0x44,0x65,0x62,0x75,0x67,0x20,0x44,0x65,0x76,0x22,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x6f,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x2c,0x6e,0x3b,0x69,0x73,0x4e,0x61,0x4e,0x28,0x6f,0x29,0x26,0x26,0x28,0x6f,0x3d,0x31,0x29,0x2c,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x65,0x26,0x26,0x28,0x65,0x3d,0x31,0x65,0x33,0x29,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x69,0x6e,0x67,0x5f,0x74,0x79,0x70,0x65,0x3d,0x65,0x3c,0x3d,0x35,0x30,0x30,0x3f,0x22,0x61,0x75,0x74,0x6f,0x22,0x3a,0x22,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x22,0x3b,0x76,0x61,0x72,0x20,0x72,0x3d,0x22,0x22,0x2c,0x6c,0x3d,0x30,0x2c,0x73,0x3d,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x6c,0x3e,0x30,0x3f,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x73,0x29,0x3a,0x28,0x2b,0x2b,0x6f,0x3e,0x31,0x3f,0x6c,0x3d,0x31,0x3a,0x66,0x65,0x74,0x63,0x68,0x28,0x22,0x2f,0x6c,0x6f,0x67,0x6a,0x73,0x6f,0x6e,0x22,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x29,0x7b,0x32,0x30,0x30,0x3d,0x3d,0x3d,0x6f,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x3f,0x6f,0x2e,0x6a,0x73,0x6f,0x6e,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x29,0x7b,0x76,0x61,0x72,0x20,0x6c,0x3b,0x66,0x6f,0x72,0x28,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x6e,0x26,0x26,0x28,0x6e,0x3d,0x22,0x22,0x29,0x2c,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x6e,0x72,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x3b,0x2b,0x2b,0x74,0x29,0x74,0x72,0x79,0x7b,0x6c,0x3d,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x6c,0x3d,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x7b,0x22,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x22,0x21,0x3d,0x3d,0x6c,0x26,0x26,0x28,0x72,0x3d,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2c,0x6e,0x2b,0x3d,0x22,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x22,0x2b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x22,0x20,0x69,0x64,0x3d,0x22,0x2b,0x72,0x2b,0x27,0x3e,0x3c,0x66,0x6f,0x6e,0x74,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3d,0x22,0x67,0x72,0x61,0x79,0x22,0x3e,0x27,0x2b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2b,0x22,0x3a,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x20,0x22,0x2b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x65,0x78,0x74,0x2b,0x22,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x22,0x29,0x7d,0x65,0x3d,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x54,0x54,0x4c,0x2c,0x22,0x22,0x21,0x3d,0x3d,0x6e,0x26,0x26,0x28,0x22,0x46,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x67,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x2e,0x2e,0x2e,0x22,0x3d,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x26,0x26,0x28,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x22,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2b,0x3d,0x6e,0x29,0x2c,0x6e,0x3d,0x22,0x22,0x2c,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x6f,0x6e,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x29,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x31,0x3d,0x3d,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x6f,0x6e,0x26,0x26,0x22,0x22,0x21,0x3d,0x3d,0x72,0x26,0x26,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x72,0x29,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x49,0x6e,0x74,0x6f,0x56,0x69,0x65,0x77,0x28,0x7b,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x69,0x6e,0x67,0x5f,0x74,0x79,0x70,0x65,0x7d,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x5f,0x6c,0x6f,0x67,0x6c,0x65,0x76,0x65,0x6c,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x4c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x3a,0x20,0x22,0x2b,0x6c,0x6f,0x67,0x4c,0x65,0x76,0x65,0x6c,0x5b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x57,0x65,0x62,0x4c,0x6f,0x67,0x4c,0x65,0x76,0x65,0x6c,0x5d,0x2b,0x22,0x20,0x28,0x22,0x2b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x57,0x65,0x62,0x4c,0x6f,0x67,0x4c,0x65,0x76,0x65,0x6c,0x2b,0x22,0x29,0x22,0x2c,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x73,0x29,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x30,0x29,0x7d,0x29,0x3a,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x4c,0x6f,0x6f,0x6b,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x77,0x61,0x73,0x20,0x61,0x20,0x70,0x72,0x6f,0x62,0x6c,0x65,0x6d,0x2e,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x43,0x6f,0x64,0x65,0x3a,0x20,0x22,0x2b,0x6f,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x7d,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x29,0x7b,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2b,0x3d,0x22,0x3c,0x64,0x69,0x76,0x3e,0x3e,0x3e,0x20,0x22,0x2b,0x6f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2b,0x22,0x20,0x3c,0x3c,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x22,0x2c,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x6f,0x6e,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x29,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x70,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x65,0x3d,0x35,0x65,0x33,0x2c,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x73,0x29,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x30,0x29,0x7d,0x29,0x2c,0x6c,0x3d,0x31,0x29,0x7d,0x2c,0x65,0x29,0x7d}; #endif // WEBSTATICDATA_h diff --git a/static/data_h_temp b/static/data_h_temp new file mode 100644 index 000000000..5ece96cf7 --- /dev/null +++ b/static/data_h_temp @@ -0,0 +1,8 @@ +const char DATA_ESPEASY_DEFAULT_CSS[] PROGMEM = {0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x3c,0x74,0x69,0x74,0x6c,0x65,0x3e,0x33,0x30,0x31,0x20,0x4d,0x6f,0x76,0x65,0x64,0x20,0x50,0x65,0x72,0x6d,0x61,0x6e,0x65,0x6e,0x74,0x6c,0x79,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x20,0x62,0x67,0x63,0x6f,0x6c,0x6f,0x72,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x22,0x3e,0x0d,0x0a,0x3c,0x63,0x65,0x6e,0x74,0x65,0x72,0x3e,0x3c,0x68,0x31,0x3e,0x33,0x30,0x31,0x20,0x4d,0x6f,0x76,0x65,0x64,0x20,0x50,0x65,0x72,0x6d,0x61,0x6e,0x65,0x6e,0x74,0x6c,0x79,0x3c,0x2f,0x68,0x31,0x3e,0x3c,0x2f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3e,0x0d,0x0a,0x3c,0x68,0x72,0x3e,0x3c,0x63,0x65,0x6e,0x74,0x65,0x72,0x3e,0x6e,0x67,0x69,0x6e,0x78,0x2f,0x31,0x2e,0x31,0x30,0x2e,0x33,0x20,0x28,0x55,0x62,0x75,0x6e,0x74,0x75,0x29,0x3c,0x2f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3e,0x0d,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a}; +const char DATA_ESPEASY_DEFAULT_MIN_CSS[] PROGMEM = {0x2a,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x68,0x31,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x36,0x70,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x38,0x70,0x78,0x20,0x30,0x7d,0x68,0x32,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x20,0x2d,0x34,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x36,0x70,0x78,0x7d,0x68,0x33,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x45,0x45,0x45,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x31,0x36,0x70,0x78,0x20,0x2d,0x34,0x70,0x78,0x20,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x7d,0x68,0x36,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x30,0x70,0x74,0x7d,0x70,0x72,0x65,0x2c,0x78,0x6d,0x70,0x2c,0x63,0x6f,0x64,0x65,0x2c,0x6b,0x62,0x64,0x2c,0x73,0x61,0x6d,0x70,0x2c,0x74,0x74,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x2c,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x65,0x6d,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x34,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x31,0x36,0x70,0x78,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2e,0x6c,0x69,0x6e,0x6b,0x2e,0x77,0x69,0x64,0x65,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2e,0x6c,0x69,0x6e,0x6b,0x2e,0x72,0x65,0x64,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x72,0x65,0x64,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2e,0x68,0x65,0x6c,0x70,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x30,0x25,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x32,0x70,0x78,0x20,0x34,0x70,0x78,0x7d,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x23,0x33,0x36,0x39,0x7d,0x69,0x6e,0x70,0x75,0x74,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x2c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x65,0x65,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x34,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x7d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x69,0x6e,0x70,0x75,0x74,0x2e,0x77,0x69,0x64,0x65,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x30,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x25,0x7d,0x69,0x6e,0x70,0x75,0x74,0x2e,0x77,0x69,0x64,0x65,0x6e,0x75,0x6d,0x62,0x65,0x72,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x30,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x70,0x78,0x7d,0x23,0x73,0x65,0x6c,0x65,0x63,0x74,0x77,0x69,0x64,0x74,0x68,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x25,0x7d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x7b,0x2d,0x6d,0x6f,0x7a,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x6d,0x73,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x34,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x33,0x35,0x70,0x78,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x65,0x65,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x35,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x35,0x70,0x78,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x7e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x27,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x2e,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x6d,0x73,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x34,0x35,0x64,0x65,0x67,0x29,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x34,0x35,0x64,0x65,0x67,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x66,0x66,0x66,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x20,0x33,0x70,0x78,0x20,0x33,0x70,0x78,0x20,0x30,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x37,0x70,0x78,0x3b,0x74,0x6f,0x70,0x3a,0x33,0x70,0x78,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x34,0x35,0x64,0x65,0x67,0x29,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x70,0x78,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x7b,0x2d,0x6d,0x6f,0x7a,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x6d,0x73,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x32,0x70,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x32,0x30,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x39,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x33,0x35,0x70,0x78,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x20,0x69,0x6e,0x70,0x75,0x74,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x65,0x65,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x30,0x25,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x36,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x36,0x70,0x78,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x7e,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x7d,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x27,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x7d,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x20,0x2e,0x64,0x6f,0x74,0x6d,0x61,0x72,0x6b,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x23,0x66,0x66,0x66,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x30,0x25,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x38,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x38,0x70,0x78,0x3b,0x74,0x6f,0x70,0x3a,0x38,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x70,0x78,0x7d,0x23,0x74,0x6f,0x61,0x73,0x74,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x37,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x32,0x38,0x32,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x2d,0x31,0x32,0x35,0x70,0x78,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x35,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x36,0x70,0x78,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x7d,0x23,0x74,0x6f,0x61,0x73,0x74,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2e,0x73,0x68,0x6f,0x77,0x7b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x61,0x64,0x65,0x69,0x6e,0x20,0x30,0x2e,0x35,0x73,0x2c,0x66,0x61,0x64,0x65,0x6f,0x75,0x74,0x20,0x2e,0x35,0x73,0x20,0x32,0x2e,0x35,0x73,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x61,0x64,0x65,0x69,0x6e,0x20,0x30,0x2e,0x35,0x73,0x2c,0x66,0x61,0x64,0x65,0x6f,0x75,0x74,0x20,0x2e,0x35,0x73,0x20,0x32,0x2e,0x35,0x73,0x3b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7d,0x40,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x61,0x64,0x65,0x69,0x6e,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x32,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x74,0x6f,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x39,0x7d,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x61,0x64,0x65,0x69,0x6e,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x32,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x74,0x6f,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x39,0x7d,0x7d,0x40,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x61,0x64,0x65,0x6f,0x75,0x74,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x39,0x7d,0x74,0x6f,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x61,0x64,0x65,0x6f,0x75,0x74,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x33,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x39,0x7d,0x74,0x6f,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x30,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x31,0x46,0x31,0x46,0x31,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x31,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x43,0x46,0x46,0x39,0x35,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x32,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x39,0x44,0x43,0x45,0x46,0x45,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x33,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x41,0x34,0x46,0x43,0x37,0x39,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x34,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x32,0x41,0x42,0x33,0x39,0x7d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x39,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x35,0x30,0x7d,0x2e,0x6c,0x6f,0x67,0x76,0x69,0x65,0x77,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x32,0x37,0x32,0x37,0x32,0x37,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x61,0x79,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x31,0x46,0x31,0x46,0x31,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x27,0x4c,0x75,0x63,0x69,0x64,0x61,0x20,0x43,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x27,0x2c,0x4d,0x6f,0x6e,0x61,0x63,0x6f,0x2c,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x35,0x33,0x30,0x70,0x78,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x30,0x70,0x78,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x25,0x7d,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x27,0x4c,0x75,0x63,0x69,0x64,0x61,0x20,0x43,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x27,0x2c,0x4d,0x6f,0x6e,0x61,0x63,0x6f,0x2c,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x25,0x7d,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x63,0x63,0x63,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x74,0x68,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x38,0x38,0x38,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x36,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x74,0x64,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x74,0x72,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x32,0x30,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x20,0x74,0x68,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x38,0x38,0x38,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x36,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x20,0x74,0x64,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x30,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x20,0x74,0x72,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x20,0x74,0x72,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x44,0x45,0x45,0x36,0x46,0x46,0x7d,0x74,0x61,0x62,0x6c,0x65,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x72,0x6f,0x77,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x32,0x30,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x74,0x72,0x2e,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x20,0x74,0x64,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x64,0x62,0x66,0x66,0x30,0x30,0x37,0x35,0x7d,0x2e,0x6e,0x6f,0x74,0x65,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x69,0x74,0x61,0x6c,0x69,0x63,0x7d,0x2e,0x68,0x65,0x61,0x64,0x65,0x72,0x6d,0x65,0x6e,0x75,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x38,0x46,0x38,0x46,0x38,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x44,0x44,0x44,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x39,0x30,0x70,0x78,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x38,0x70,0x78,0x20,0x31,0x32,0x70,0x78,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x72,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x7d,0x2e,0x61,0x70,0x68,0x65,0x61,0x64,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x38,0x46,0x38,0x46,0x38,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x38,0x70,0x78,0x20,0x31,0x32,0x70,0x78,0x7d,0x2e,0x62,0x6f,0x64,0x79,0x6d,0x65,0x6e,0x75,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x39,0x36,0x70,0x78,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x62,0x61,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x74,0x6f,0x70,0x3a,0x35,0x35,0x70,0x78,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x20,0x34,0x70,0x78,0x20,0x30,0x20,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x70,0x78,0x20,0x31,0x70,0x78,0x20,0x31,0x70,0x78,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x34,0x34,0x3b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x6c,0x65,0x66,0x74,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x34,0x70,0x78,0x20,0x31,0x36,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x46,0x46,0x46,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x37,0x44,0x20,0x23,0x44,0x44,0x44,0x20,0x23,0x46,0x46,0x46,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x23,0x44,0x45,0x46,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x5f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x6f,0x6e,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x67,0x72,0x65,0x65,0x6e,0x7d,0x2e,0x6f,0x66,0x66,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x72,0x65,0x64,0x7d,0x2e,0x64,0x69,0x76,0x5f,0x6c,0x7b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x6c,0x65,0x66,0x74,0x7d,0x2e,0x64,0x69,0x76,0x5f,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x38,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x70,0x78,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x72,0x69,0x67,0x68,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x32,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x70,0x78,0x20,0x31,0x30,0x70,0x78,0x7d,0x2e,0x64,0x69,0x76,0x5f,0x62,0x72,0x7b,0x63,0x6c,0x65,0x61,0x72,0x3a,0x62,0x6f,0x74,0x68,0x7d,0x2e,0x61,0x6c,0x65,0x72,0x74,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x34,0x34,0x33,0x33,0x36,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x35,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x32,0x30,0x70,0x78,0x7d,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x63,0x61,0x31,0x37,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x35,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x32,0x30,0x70,0x78,0x7d,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x62,0x74,0x6e,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x66,0x66,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x72,0x69,0x67,0x68,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x32,0x32,0x70,0x78,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x30,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x35,0x70,0x78,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x33,0x73,0x7d,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x7d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x61,0x6e,0x64,0x20,0x28,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x39,0x36,0x30,0x70,0x78,0x29,0x7b,0x73,0x70,0x61,0x6e,0x2e,0x73,0x68,0x6f,0x77,0x6d,0x65,0x6e,0x75,0x6c,0x61,0x62,0x65,0x6c,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x31,0x76,0x77,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x38,0x70,0x78,0x7d,0x7d,0x0a}; +const char DATA_FAVICON_ICO_[] PROGMEM = {0x00,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x00,0x00,0x01,0x00,0x20,0x00,0x68,0x04,0x00,0x00,0x16,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0xc0,0x89,0x11,0xfe,0xfb,0xf8,0xac,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xf3,0xe9,0xac,0xef,0xc0,0x89,0x11,0xfe,0xfb,0xf8,0xac,0xf1,0xc8,0x95,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xc8,0x95,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xef,0xc2,0x8a,0xff,0xef,0xc2,0x8a,0xff,0xfe,0xfa,0xf5,0xff,0xfc,0xf3,0xe9,0xac,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd9,0x69,0x00,0xff,0xd9,0x69,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd9,0x69,0x00,0xff,0xd9,0x69,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xef,0xbc,0x80,0xff,0xef,0xbc,0x80,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xf1,0xc8,0x95,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xf1,0xc8,0x95,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xc8,0x95,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xf1,0xc8,0x95,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xd8,0x63,0x00,0xff,0xef,0xbc,0x80,0xff,0xff,0xff,0xff,0xff,0xef,0xbc,0x80,0xff,0xd8,0x63,0x00,0xff,0xef,0xc2,0x8a,0xff,0xff,0xff,0xff,0xff,0xfb,0xf1,0xe6,0xac,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xc8,0x95,0xff,0xf1,0xc8,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xf1,0xc8,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xc2,0x8a,0xff,0xf1,0xc8,0x95,0xff,0xfe,0xfb,0xf8,0xac,0xef,0xc0,0x89,0x11,0xfb,0xf1,0xe6,0xac,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfa,0xf5,0xff,0xfe,0xfa,0xf5,0xff,0xff,0xff,0xff,0xff,0xfe,0xfb,0xf8,0xac,0xef,0xc0,0x89,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; +const char DATA_FETCH_AND_PARSE_LOG_JS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x2c,0x6f,0x3d,0x6e,0x61,0x76,0x69,0x67,0x61,0x74,0x6f,0x72,0x2e,0x75,0x73,0x65,0x72,0x41,0x67,0x65,0x6e,0x74,0x2c,0x74,0x3d,0x6f,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x28,0x6f,0x70,0x65,0x72,0x61,0x7c,0x63,0x68,0x72,0x6f,0x6d,0x65,0x7c,0x73,0x61,0x66,0x61,0x72,0x69,0x7c,0x66,0x69,0x72,0x65,0x66,0x6f,0x78,0x7c,0x6d,0x73,0x69,0x65,0x7c,0x74,0x72,0x69,0x64,0x65,0x6e,0x74,0x28,0x3f,0x3d,0x5c,0x2f,0x29,0x29,0x5c,0x2f,0x3f,0x5c,0x73,0x2a,0x28,0x5c,0x64,0x2b,0x29,0x2f,0x69,0x29,0x7c,0x7c,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x2f,0x74,0x72,0x69,0x64,0x65,0x6e,0x74,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x5b,0x31,0x5d,0x29,0x3f,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x22,0x49,0x45,0x22,0x2c,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x28,0x65,0x3d,0x2f,0x5c,0x62,0x72,0x76,0x5b,0x20,0x3a,0x5d,0x2b,0x28,0x5c,0x64,0x2b,0x29,0x2f,0x67,0x2e,0x65,0x78,0x65,0x63,0x28,0x6f,0x29,0x7c,0x7c,0x5b,0x5d,0x29,0x5b,0x31,0x5d,0x7c,0x7c,0x22,0x22,0x7d,0x3a,0x22,0x43,0x68,0x72,0x6f,0x6d,0x65,0x22,0x3d,0x3d,0x3d,0x74,0x5b,0x31,0x5d,0x26,0x26,0x6e,0x75,0x6c,0x6c,0x21,0x3d,0x28,0x65,0x3d,0x6f,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5c,0x62,0x4f,0x50,0x52,0x7c,0x45,0x64,0x67,0x65,0x5c,0x2f,0x28,0x5c,0x64,0x2b,0x29,0x2f,0x29,0x29,0x3f,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x22,0x4f,0x70,0x65,0x72,0x61,0x22,0x2c,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x65,0x5b,0x31,0x5d,0x7d,0x3a,0x28,0x74,0x3d,0x74,0x5b,0x32,0x5d,0x3f,0x5b,0x74,0x5b,0x31,0x5d,0x2c,0x74,0x5b,0x32,0x5d,0x5d,0x3a,0x5b,0x6e,0x61,0x76,0x69,0x67,0x61,0x74,0x6f,0x72,0x2e,0x61,0x70,0x70,0x4e,0x61,0x6d,0x65,0x2c,0x6e,0x61,0x76,0x69,0x67,0x61,0x74,0x6f,0x72,0x2e,0x61,0x70,0x70,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x22,0x2d,0x3f,0x22,0x5d,0x2c,0x6e,0x75,0x6c,0x6c,0x21,0x3d,0x28,0x65,0x3d,0x6f,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x5c,0x2f,0x28,0x5c,0x64,0x2b,0x29,0x2f,0x69,0x29,0x29,0x26,0x26,0x74,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x31,0x2c,0x65,0x5b,0x31,0x5d,0x29,0x2c,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x74,0x5b,0x30,0x5d,0x2c,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x74,0x5b,0x31,0x5d,0x7d,0x29,0x7d,0x76,0x61,0x72,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x3d,0x67,0x65,0x74,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x28,0x29,0x2c,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x3d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x2b,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3b,0x28,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3c,0x31,0x32,0x29,0x3f,0x74,0x65,0x78,0x74,0x54,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x3d,0x22,0x45,0x72,0x72,0x6f,0x72,0x3a,0x20,0x22,0x2b,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x2b,0x22,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x21,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x74,0x72,0x79,0x20,0x61,0x20,0x6d,0x6f,0x64,0x65,0x72,0x6e,0x20,0x77,0x65,0x62,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x22,0x3a,0x74,0x65,0x78,0x74,0x54,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x3d,0x22,0x46,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x67,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x2e,0x2e,0x2e,0x22,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x74,0x65,0x78,0x74,0x54,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x31,0x65,0x33,0x2c,0x30,0x29,0x3b,0x76,0x61,0x72,0x20,0x6c,0x6f,0x67,0x4c,0x65,0x76,0x65,0x6c,0x3d,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x22,0x55,0x6e,0x75,0x73,0x65,0x64,0x22,0x2c,0x22,0x45,0x72,0x72,0x6f,0x72,0x22,0x2c,0x22,0x49,0x6e,0x66,0x6f,0x22,0x2c,0x22,0x44,0x65,0x62,0x75,0x67,0x22,0x2c,0x22,0x44,0x65,0x62,0x75,0x67,0x20,0x4d,0x6f,0x72,0x65,0x22,0x2c,0x22,0x55,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x22,0x55,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x22,0x55,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x22,0x55,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x22,0x44,0x65,0x62,0x75,0x67,0x20,0x44,0x65,0x76,0x22,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x6f,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x2c,0x6e,0x3b,0x69,0x73,0x4e,0x61,0x4e,0x28,0x6f,0x29,0x26,0x26,0x28,0x6f,0x3d,0x31,0x29,0x2c,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x65,0x26,0x26,0x28,0x65,0x3d,0x31,0x65,0x33,0x29,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x69,0x6e,0x67,0x5f,0x74,0x79,0x70,0x65,0x3d,0x65,0x3c,0x3d,0x35,0x30,0x30,0x3f,0x22,0x61,0x75,0x74,0x6f,0x22,0x3a,0x22,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x22,0x3b,0x76,0x61,0x72,0x20,0x72,0x3d,0x22,0x22,0x2c,0x6c,0x3d,0x30,0x2c,0x73,0x3d,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x6c,0x3e,0x30,0x3f,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x73,0x29,0x3a,0x28,0x2b,0x2b,0x6f,0x3e,0x31,0x3f,0x6c,0x3d,0x31,0x3a,0x66,0x65,0x74,0x63,0x68,0x28,0x22,0x2f,0x6c,0x6f,0x67,0x6a,0x73,0x6f,0x6e,0x22,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x29,0x7b,0x32,0x30,0x30,0x3d,0x3d,0x3d,0x6f,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x3f,0x6f,0x2e,0x6a,0x73,0x6f,0x6e,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x29,0x7b,0x76,0x61,0x72,0x20,0x6c,0x3b,0x66,0x6f,0x72,0x28,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x6e,0x26,0x26,0x28,0x6e,0x3d,0x22,0x22,0x29,0x2c,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x6e,0x72,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x3b,0x2b,0x2b,0x74,0x29,0x74,0x72,0x79,0x7b,0x6c,0x3d,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x6c,0x3d,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x7b,0x22,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x22,0x21,0x3d,0x3d,0x6c,0x26,0x26,0x28,0x72,0x3d,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2c,0x6e,0x2b,0x3d,0x22,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x6c,0x65,0x76,0x65,0x6c,0x5f,0x22,0x2b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x22,0x20,0x69,0x64,0x3d,0x22,0x2b,0x72,0x2b,0x27,0x3e,0x3c,0x66,0x6f,0x6e,0x74,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3d,0x22,0x67,0x72,0x61,0x79,0x22,0x3e,0x27,0x2b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2b,0x22,0x3a,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x20,0x22,0x2b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x65,0x78,0x74,0x2b,0x22,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x22,0x29,0x7d,0x65,0x3d,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x54,0x54,0x4c,0x2c,0x22,0x22,0x21,0x3d,0x3d,0x6e,0x26,0x26,0x28,0x22,0x46,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x67,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x2e,0x2e,0x2e,0x22,0x3d,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x26,0x26,0x28,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x22,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2b,0x3d,0x6e,0x29,0x2c,0x6e,0x3d,0x22,0x22,0x2c,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x6f,0x6e,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x29,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x31,0x3d,0x3d,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x6f,0x6e,0x26,0x26,0x22,0x22,0x21,0x3d,0x3d,0x72,0x26,0x26,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x72,0x29,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x49,0x6e,0x74,0x6f,0x56,0x69,0x65,0x77,0x28,0x7b,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x69,0x6e,0x67,0x5f,0x74,0x79,0x70,0x65,0x7d,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x5f,0x6c,0x6f,0x67,0x6c,0x65,0x76,0x65,0x6c,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x4c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x3a,0x20,0x22,0x2b,0x6c,0x6f,0x67,0x4c,0x65,0x76,0x65,0x6c,0x5b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x57,0x65,0x62,0x4c,0x6f,0x67,0x4c,0x65,0x76,0x65,0x6c,0x5d,0x2b,0x22,0x20,0x28,0x22,0x2b,0x6f,0x2e,0x4c,0x6f,0x67,0x2e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x57,0x65,0x62,0x4c,0x6f,0x67,0x4c,0x65,0x76,0x65,0x6c,0x2b,0x22,0x29,0x22,0x2c,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x73,0x29,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x30,0x29,0x7d,0x29,0x3a,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x4c,0x6f,0x6f,0x6b,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x77,0x61,0x73,0x20,0x61,0x20,0x70,0x72,0x6f,0x62,0x6c,0x65,0x6d,0x2e,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x43,0x6f,0x64,0x65,0x3a,0x20,0x22,0x2b,0x6f,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x7d,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x29,0x7b,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2b,0x3d,0x22,0x3c,0x64,0x69,0x76,0x3e,0x3e,0x3e,0x20,0x22,0x2b,0x6f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2b,0x22,0x20,0x3c,0x3c,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x22,0x2c,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x5f,0x6f,0x6e,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x61,0x75,0x74,0x6f,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x29,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x70,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x31,0x22,0x29,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x65,0x3d,0x35,0x65,0x33,0x2c,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x73,0x29,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x30,0x29,0x7d,0x29,0x2c,0x6c,0x3d,0x31,0x29,0x7d,0x2c,0x65,0x29,0x7d}; +const char DATA_GITHUB_CLIPBOARD_JS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x47,0x69,0x74,0x68,0x75,0x62,0x43,0x6c,0x69,0x70,0x62,0x6f,0x61,0x72,0x64,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x22,0x45,0x53,0x50,0x20,0x45,0x61,0x73,0x79,0x20,0x7c,0x20,0x49,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x5c,0x6e,0x20,0x2d,0x2d,0x2d,0x2d,0x2d,0x7c,0x2d,0x2d,0x2d,0x2d,0x2d,0x7c,0x5c,0x6e,0x22,0x3b,0x6d,0x61,0x78,0x5f,0x6c,0x6f,0x6f,0x70,0x3d,0x31,0x30,0x30,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6f,0x3d,0x31,0x3b,0x6f,0x3c,0x6d,0x61,0x78,0x5f,0x6c,0x6f,0x6f,0x70,0x3b,0x6f,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x22,0x63,0x6f,0x70,0x79,0x54,0x65,0x78,0x74,0x5f,0x22,0x2b,0x6f,0x2c,0x74,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x6e,0x29,0x3b,0x69,0x66,0x28,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x74,0x29,0x6f,0x3d,0x6d,0x61,0x78,0x5f,0x6c,0x6f,0x6f,0x70,0x2b,0x31,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x22,0x7c,0x22,0x3b,0x6f,0x25,0x32,0x3d,0x3d,0x30,0x26,0x26,0x28,0x61,0x2b,0x3d,0x22,0x5c,0x6e,0x22,0x29,0x2c,0x65,0x2b,0x3d,0x74,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x3c,0x5b,0x42,0x62,0x5d,0x5b,0x52,0x72,0x5d,0x5c,0x73,0x2a,0x5c,0x2f,0x3f,0x3e,0x2f,0x67,0x69,0x6d,0x2c,0x22,0x5c,0x6e,0x22,0x29,0x2b,0x61,0x7d,0x7d,0x65,0x3d,0x28,0x65,0x3d,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x3c,0x5c,0x2f,0x5b,0x44,0x64,0x5d,0x5b,0x49,0x69,0x5d,0x5b,0x56,0x76,0x5d,0x5c,0x73,0x2a,0x5c,0x2f,0x3f,0x3e,0x2f,0x67,0x69,0x6d,0x2c,0x22,0x5c,0x6e,0x22,0x29,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x3c,0x5b,0x5e,0x3e,0x5d,0x2a,0x3e,0x2f,0x67,0x69,0x6d,0x2c,0x22,0x22,0x29,0x3b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x22,0x29,0x3b,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x20,0x2d,0x31,0x30,0x30,0x30,0x70,0x78,0x3b,0x20,0x74,0x6f,0x70,0x3a,0x20,0x2d,0x31,0x30,0x30,0x30,0x70,0x78,0x22,0x2c,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x65,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x6c,0x29,0x2c,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x65,0x78,0x65,0x63,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x22,0x63,0x6f,0x70,0x79,0x22,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x6f,0x64,0x79,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x6c,0x29,0x2c,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x43,0x6f,0x70,0x69,0x65,0x64,0x3a,0x20,0x22,0x27,0x2b,0x65,0x2b,0x27,0x22,0x20,0x74,0x6f,0x20,0x63,0x6c,0x69,0x70,0x62,0x6f,0x61,0x72,0x64,0x21,0x27,0x29,0x7d}; +const char DATA_REBOOT_JS[] PROGMEM = {0x69,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x72,0x62,0x74,0x6d,0x73,0x67,0x22,0x29,0x2c,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x72,0x65,0x62,0x6f,0x6f,0x74,0x3a,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x69,0x64,0x3d,0x27,0x72,0x65,0x62,0x6f,0x6f,0x74,0x27,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x27,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x27,0x52,0x65,0x62,0x6f,0x6f,0x74,0x27,0x20,0x74,0x79,0x70,0x65,0x3d,0x27,0x73,0x75,0x62,0x6d,0x69,0x74,0x27,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x27,0x72,0x28,0x29,0x27,0x3e,0x22,0x3b,0x76,0x61,0x72,0x20,0x78,0x3d,0x6e,0x65,0x77,0x20,0x58,0x4d,0x4c,0x48,0x74,0x74,0x70,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x28,0x29,0x7b,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x22,0x2c,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x28,0x29,0x7b,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2b,0x3d,0x22,0x2e,0x22,0x2c,0x78,0x2e,0x6f,0x6e,0x6c,0x6f,0x61,0x64,0x3d,0x64,0x2c,0x78,0x2e,0x6f,0x70,0x65,0x6e,0x28,0x22,0x47,0x45,0x54,0x22,0x2c,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x29,0x2c,0x78,0x2e,0x73,0x65,0x6e,0x64,0x28,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x28,0x29,0x7b,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x22,0x52,0x65,0x62,0x6f,0x6f,0x74,0x69,0x6e,0x67,0x2e,0x2e,0x22,0x2c,0x74,0x3d,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x63,0x2c,0x32,0x65,0x33,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x29,0x7b,0x69,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2b,0x3d,0x22,0x20,0x28,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x22,0x2c,0x78,0x2e,0x6f,0x6e,0x6c,0x6f,0x61,0x64,0x3d,0x62,0x2c,0x78,0x2e,0x6f,0x70,0x65,0x6e,0x28,0x22,0x47,0x45,0x54,0x22,0x2c,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2b,0x22,0x2f,0x3f,0x63,0x6d,0x64,0x3d,0x72,0x65,0x62,0x6f,0x6f,0x74,0x22,0x29,0x2c,0x78,0x2e,0x73,0x65,0x6e,0x64,0x28,0x29,0x7d}; +const char DATA_TIMED_REFRESH_JS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x69,0x6d,0x65,0x64,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x6e,0x3e,0x30,0x3f,0x28,0x6e,0x2d,0x3d,0x31,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x22,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x6e,0x2b,0x22,0x2e,0x2e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x22,0x29,0x3a,0x28,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x65,0x29,0x2c,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66,0x3d,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66,0x29,0x7d,0x2c,0x31,0x65,0x33,0x29,0x7d}; +const char DATA_UPDATE_SENSOR_VALUES_DEVICE_PAGE_JS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x73,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x2c,0x6c,0x2c,0x6f,0x3d,0x30,0x3b,0x69,0x73,0x4e,0x61,0x4e,0x28,0x73,0x29,0x26,0x26,0x28,0x73,0x3d,0x31,0x29,0x2c,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x65,0x26,0x26,0x28,0x65,0x3d,0x31,0x65,0x33,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x6f,0x3e,0x30,0x3f,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x6e,0x29,0x3a,0x2b,0x2b,0x73,0x3e,0x31,0x3f,0x6f,0x3d,0x31,0x3a,0x28,0x66,0x65,0x74,0x63,0x68,0x28,0x22,0x2f,0x6a,0x73,0x6f,0x6e,0x3f,0x76,0x69,0x65,0x77,0x3d,0x73,0x65,0x6e,0x73,0x6f,0x72,0x75,0x70,0x64,0x61,0x74,0x65,0x22,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x76,0x61,0x72,0x20,0x6f,0x3b,0x32,0x30,0x30,0x3d,0x3d,0x3d,0x73,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x3f,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x66,0x6f,0x72,0x28,0x65,0x3d,0x73,0x2e,0x54,0x54,0x4c,0x2c,0x61,0x3d,0x30,0x3b,0x61,0x3c,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x61,0x2b,0x2b,0x29,0x69,0x66,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x22,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x22,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x3d,0x30,0x3b,0x6c,0x3c,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6c,0x2b,0x2b,0x29,0x74,0x72,0x79,0x7b,0x6f,0x3d,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x56,0x61,0x6c,0x75,0x65,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x6f,0x3d,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x7b,0x69,0x66,0x28,0x22,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x22,0x21,0x3d,0x3d,0x6f,0x29,0x7b,0x74,0x65,0x6d,0x70,0x56,0x61,0x6c,0x75,0x65,0x3d,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x56,0x61,0x6c,0x75,0x65,0x2c,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x73,0x56,0x61,0x6c,0x75,0x65,0x3d,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x4e,0x72,0x44,0x65,0x63,0x69,0x6d,0x61,0x6c,0x73,0x2c,0x74,0x65,0x6d,0x70,0x56,0x61,0x6c,0x75,0x65,0x3d,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x74,0x65,0x6d,0x70,0x56,0x61,0x6c,0x75,0x65,0x29,0x2e,0x74,0x6f,0x46,0x69,0x78,0x65,0x64,0x28,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x73,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x76,0x61,0x72,0x20,0x72,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x5f,0x22,0x2b,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2d,0x31,0x29,0x2b,0x22,0x5f,0x22,0x2b,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x56,0x61,0x6c,0x75,0x65,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2d,0x31,0x29,0x2c,0x74,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x6e,0x61,0x6d,0x65,0x5f,0x22,0x2b,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2d,0x31,0x29,0x2b,0x22,0x5f,0x22,0x2b,0x28,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x56,0x61,0x6c,0x75,0x65,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2d,0x31,0x29,0x2c,0x75,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x72,0x29,0x2c,0x63,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x74,0x29,0x3b,0x6e,0x75,0x6c,0x6c,0x21,0x3d,0x3d,0x75,0x26,0x26,0x28,0x75,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x74,0x65,0x6d,0x70,0x56,0x61,0x6c,0x75,0x65,0x29,0x2c,0x6e,0x75,0x6c,0x6c,0x21,0x3d,0x3d,0x63,0x26,0x26,0x28,0x63,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3d,0x73,0x2e,0x53,0x65,0x6e,0x73,0x6f,0x72,0x73,0x5b,0x61,0x5d,0x2e,0x54,0x61,0x73,0x6b,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6c,0x5d,0x2e,0x4e,0x61,0x6d,0x65,0x2b,0x22,0x3a,0x22,0x29,0x7d,0x7d,0x65,0x3d,0x73,0x2e,0x54,0x54,0x4c,0x2c,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x6e,0x29,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x30,0x29,0x7d,0x29,0x3a,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x4c,0x6f,0x6f,0x6b,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x77,0x61,0x73,0x20,0x61,0x20,0x70,0x72,0x6f,0x62,0x6c,0x65,0x6d,0x2e,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x43,0x6f,0x64,0x65,0x3a,0x20,0x22,0x2b,0x73,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x7d,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x2c,0x65,0x3d,0x35,0x65,0x33,0x2c,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x6e,0x29,0x2c,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x65,0x2c,0x30,0x29,0x7d,0x29,0x2c,0x6f,0x3d,0x31,0x29,0x7d,0x2c,0x65,0x29,0x7d,0x6c,0x6f,0x6f,0x70,0x44,0x65,0x4c,0x6f,0x6f,0x70,0x28,0x31,0x65,0x33,0x2c,0x30,0x29,0x3b}; diff --git a/static/espeasy_default.css b/static/espeasy_default.css new file mode 100644 index 000000000..36b535855 --- /dev/null +++ b/static/espeasy_default.css @@ -0,0 +1,539 @@ +* { + box-sizing: border-box; + font-family: sans-serif; + font-size: 12pt; + margin: 0; + padding: 0 +} + +h1 { + color: #07D; + font-size: 16pt; + font-weight: 700; + margin: 8px 0 +} + +h2 { + background-color: #444; + color: #FFF; + font-size: 12pt; + font-weight: 700; + margin: 0 -4px; + padding: 6px +} + +h3 { + background-color: #EEE; + color: #444; + font-size: 12pt; + font-weight: 700; + margin: 16px -4px 0; + padding: 4px +} + +h6 { + color: #07D; + font-size: 10pt +} + +pre, +xmp, +code, +kbd, +samp, +tt { + font-family: monospace, monospace; + font-size: 1em +} + +.button { + background-color: #07D; + border: none; + border-radius: 4px; + color: #FFF; + margin: 4px; + padding: 4px 16px; + text-decoration: none +} + +.button.link.wide { + display: inline-block; + text-align: center; + width: 100% +} + +.button.link.red { + background-color: red +} + +.button.help { + border-color: gray; + border-radius: 50%; + border-style: solid; + border-width: 1px; + padding: 2px 4px +} + +.button:hover { + background: #369 +} + +input, +select, +textarea { + background-color: #eee; + border-color: gray; + border-radius: 4px; + border-style: solid; + border-width: 1px; + margin: 4px; + padding: 4px 8px +} + +input:hover { + background-color: #ccc +} + +input.wide { + max-width: 500px; + width: 80% +} + +input.widenumber { + max-width: 500px; + width: 100px +} + +#selectwidth { + max-width: 500px; + padding: 4px 8px; + width: 80% +} + +select:hover { + background-color: #ccc +} + +.container { + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; + cursor: pointer; + display: block; + font-size: 12pt; + margin-left: 4px; + margin-top: 0; + padding-left: 35px; + position: relative; + user-select: none +} + +.container input { + cursor: pointer; + opacity: 0; + position: absolute +} + +.checkmark { + background-color: #eee; + border-color: gray; + border-radius: 4px; + border-style: solid; + border-width: 1px; + height: 25px; + left: 0; + position: absolute; + top: 0; + width: 25px +} + +.container:hover input~.checkmark { + background-color: #ccc +} + +.container input:checked~.checkmark { + background-color: #07D +} + +.checkmark:after { + content: ''; + display: none; + position: absolute +} + +.container input:checked~.checkmark:after { + display: block +} + +.container .checkmark:after { + -ms-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + border: solid #fff; + border-width: 0 3px 3px 0; + height: 10px; + left: 7px; + top: 3px; + transform: rotate(45deg); + width: 5px +} + +.container2 { + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; + cursor: pointer; + display: block; + font-size: 12pt; + margin-bottom: 20px; + margin-left: 9px; + padding-left: 35px; + position: relative; + user-select: none +} + +.container2 input { + cursor: pointer; + opacity: 0; + position: absolute +} + +.dotmark { + background-color: #eee; + border-color: gray; + border-radius: 50%; + border-style: solid; + border-width: 1px; + height: 26px; + left: 0; + position: absolute; + top: 0; + width: 26px +} + +.container2:hover input~.dotmark { + background-color: #ccc +} + +.container2 input:checked~.dotmark { + background-color: #07D +} + +.dotmark:after { + content: ''; + display: none; + position: absolute +} + +.container2 input:checked~.dotmark:after { + display: block +} + +.container2 .dotmark:after { + background: #fff; + border-radius: 50%; + height: 8px; + left: 8px; + top: 8px; + width: 8px +} + +#toastmessage { + background-color: #07D; + border-color: gray; + border-radius: 4px; + border-style: solid; + border-width: 1px; + bottom: 30%; + color: #fff; + font-size: 17px; + left: 282px; + margin-left: -125px; + min-width: 250px; + padding: 16px; + position: fixed; + text-align: center; + visibility: hidden; + z-index: 1 +} + +#toastmessage.show { + -webkit-animation: fadein 0.5s, fadeout .5s 2.5s; + animation: fadein 0.5s, fadeout .5s 2.5s; + visibility: visible +} + +@-webkit-keyframes fadein { + from { + bottom: 20%; + opacity: 0 + } + to { + bottom: 30%; + opacity: .9 + } +} + +@keyframes fadein { + from { + bottom: 20%; + opacity: 0 + } + to { + bottom: 30%; + opacity: .9 + } +} + +@-webkit-keyframes fadeout { + from { + bottom: 30%; + opacity: .9 + } + to { + bottom: 0; + opacity: 0 + } +} + +@keyframes fadeout { + from { + bottom: 30%; + opacity: .9 + } + to { + bottom: 0; + opacity: 0 + } +} + +.level_0 { + color: #F1F1F1 +} + +.level_1 { + color: #FCFF95 +} + +.level_2 { + color: #9DCEFE +} + +.level_3 { + color: #A4FC79 +} + +.level_4 { + color: #F2AB39 +} + +.level_9 { + color: #F50 +} + +.logviewer { + background-color: #272727; + border-color: gray; + border-style: solid; + color: #F1F1F1; + font-family: 'Lucida Console', Monaco, monospace; + height: 530px; + max-width: 1000px; + overflow: auto; + padding: 4px 8px; + width: 80% +} + +textarea { + font-family: 'Lucida Console', Monaco, monospace; + max-width: 1000px; + padding: 4px 8px; + width: 80% +} + +textarea:hover { + background-color: #ccc +} + +table.normal th { + background-color: #444; + border-color: #888; + color: #FFF; + font-weight: 700; + padding: 6px +} + +table.normal td { + height: 30px; + padding: 4px +} + +table.normal tr { + padding: 4px +} + +table.normal { + border-collapse: collapse; + color: #000; + min-width: 420px; + width: 100% +} + +table.multirow th { + background-color: #444; + border-color: #888; + color: #FFF; + font-weight: 700; + padding: 6px +} + +table.multirow td { + height: 30px; + padding: 4px; + text-align: center +} + +table.multirow tr { + padding: 4px +} + +table.multirow tr:nth-child(even) { + background-color: #DEE6FF +} + +table.multirow { + border-collapse: collapse; + color: #000; + min-width: 420px; + width: 100% +} + +tr.highlight td { + background-color: #dbff0075 +} + +.note { + color: #444; + font-style: italic +} + +.headermenu { + background-color: #F8F8F8; + border-bottom: 1px solid #DDD; + height: 90px; + left: 0; + padding: 8px 12px; + position: fixed; + right: 0; + top: 0; + z-index: 1 +} + +.apheader { + background-color: #F8F8F8; + padding: 8px 12px +} + +.bodymenu { + margin-top: 96px +} + +.menubar { + position: inherit; + top: 55px +} + +.menu { + border: solid transparent; + border-radius: 4px 4px 0 0; + border-width: 4px 1px 1px; + color: #444; + float: left; + padding: 4px 16px 8px; + text-decoration: none; + white-space: nowrap +} + +.menu.active { + background-color: #FFF; + border-color: #07D #DDD #FFF; + color: #000 +} + +.menu:hover { + background: #DEF; + color: #000 +} + +.menu_button { + display: none +} + +.on { + color: green +} + +.off { + color: red +} + +.div_l { + float: left +} + +.div_r { + background-color: #080; + border-radius: 4px; + color: #fff; + float: right; + margin: 2px; + padding: 1px 10px +} + +.div_br { + clear: both +} + +.alert { + background-color: #f44336; + color: #fff; + margin-bottom: 15px; + padding: 20px +} + +.warning { + background-color: #ffca17; + color: #fff; + margin-bottom: 15px; + padding: 20px +} + +.closebtn { + color: #fff; + cursor: pointer; + float: right; + font-size: 22px; + font-weight: 700; + line-height: 20px; + margin-left: 15px; + transition: .3s +} + +.closebtn:hover { + color: #000 +} + +section { + overflow-x: auto; + width: 100% +} + +@media screen and (max-width: 960px) { + span.showmenulabel { + display: none + } + .menu { + max-width: 11vw; + max-width: 48px + } +} + diff --git a/static/espeasy_default.min.css b/static/espeasy_default.min.css new file mode 100644 index 000000000..c007a4bc6 --- /dev/null +++ b/static/espeasy_default.min.css @@ -0,0 +1 @@ +*{box-sizing:border-box;font-family:sans-serif;font-size:12pt;margin:0;padding:0}h1{color:#07D;font-size:16pt;font-weight:700;margin:8px 0}h2{background-color:#444;color:#FFF;font-size:12pt;font-weight:700;margin:0 -4px;padding:6px}h3{background-color:#EEE;color:#444;font-size:12pt;font-weight:700;margin:16px -4px 0;padding:4px}h6{color:#07D;font-size:10pt}pre,xmp,code,kbd,samp,tt{font-family:monospace,monospace;font-size:1em}.button{background-color:#07D;border:none;border-radius:4px;color:#FFF;margin:4px;padding:4px 16px;text-decoration:none}.button.link.wide{display:inline-block;text-align:center;width:100%}.button.link.red{background-color:red}.button.help{border-color:gray;border-radius:50%;border-style:solid;border-width:1px;padding:2px 4px}.button:hover{background:#369}input,select,textarea{background-color:#eee;border-color:gray;border-radius:4px;border-style:solid;border-width:1px;margin:4px;padding:4px 8px}input:hover{background-color:#ccc}input.wide{max-width:500px;width:80%}input.widenumber{max-width:500px;width:100px}#selectwidth{max-width:500px;padding:4px 8px;width:80%}select:hover{background-color:#ccc}.container{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:pointer;display:block;font-size:12pt;margin-left:4px;margin-top:0;padding-left:35px;position:relative;user-select:none}.container input{cursor:pointer;opacity:0;position:absolute}.checkmark{background-color:#eee;border-color:gray;border-radius:4px;border-style:solid;border-width:1px;height:25px;left:0;position:absolute;top:0;width:25px}.container:hover input~.checkmark{background-color:#ccc}.container input:checked~.checkmark{background-color:#07D}.checkmark:after{content:'';display:none;position:absolute}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);border:solid #fff;border-width:0 3px 3px 0;height:10px;left:7px;top:3px;transform:rotate(45deg);width:5px}.container2{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:pointer;display:block;font-size:12pt;margin-bottom:20px;margin-left:9px;padding-left:35px;position:relative;user-select:none}.container2 input{cursor:pointer;opacity:0;position:absolute}.dotmark{background-color:#eee;border-color:gray;border-radius:50%;border-style:solid;border-width:1px;height:26px;left:0;position:absolute;top:0;width:26px}.container2:hover input~.dotmark{background-color:#ccc}.container2 input:checked~.dotmark{background-color:#07D}.dotmark:after{content:'';display:none;position:absolute}.container2 input:checked~.dotmark:after{display:block}.container2 .dotmark:after{background:#fff;border-radius:50%;height:8px;left:8px;top:8px;width:8px}#toastmessage{background-color:#07D;border-color:gray;border-radius:4px;border-style:solid;border-width:1px;bottom:30%;color:#fff;font-size:17px;left:282px;margin-left:-125px;min-width:250px;padding:16px;position:fixed;text-align:center;visibility:hidden;z-index:1}#toastmessage.show{-webkit-animation:fadein 0.5s,fadeout .5s 2.5s;animation:fadein 0.5s,fadeout .5s 2.5s;visibility:visible}@-webkit-keyframes fadein{from{bottom:20%;opacity:0}to{bottom:30%;opacity:.9}}@keyframes fadein{from{bottom:20%;opacity:0}to{bottom:30%;opacity:.9}}@-webkit-keyframes fadeout{from{bottom:30%;opacity:.9}to{bottom:0;opacity:0}}@keyframes fadeout{from{bottom:30%;opacity:.9}to{bottom:0;opacity:0}}.level_0{color:#F1F1F1}.level_1{color:#FCFF95}.level_2{color:#9DCEFE}.level_3{color:#A4FC79}.level_4{color:#F2AB39}.level_9{color:#F50}.logviewer{background-color:#272727;border-color:gray;border-style:solid;color:#F1F1F1;font-family:'Lucida Console',Monaco,monospace;height:530px;max-width:1000px;overflow:auto;padding:4px 8px;width:80%}textarea{font-family:'Lucida Console',Monaco,monospace;max-width:1000px;padding:4px 8px;width:80%}textarea:hover{background-color:#ccc}table.normal th{background-color:#444;border-color:#888;color:#FFF;font-weight:700;padding:6px}table.normal td{height:30px;padding:4px}table.normal tr{padding:4px}table.normal{border-collapse:collapse;color:#000;min-width:420px;width:100%}table.multirow th{background-color:#444;border-color:#888;color:#FFF;font-weight:700;padding:6px}table.multirow td{height:30px;padding:4px;text-align:center}table.multirow tr{padding:4px}table.multirow tr:nth-child(even){background-color:#DEE6FF}table.multirow{border-collapse:collapse;color:#000;min-width:420px;width:100%}tr.highlight td{background-color:#dbff0075}.note{color:#444;font-style:italic}.headermenu{background-color:#F8F8F8;border-bottom:1px solid #DDD;height:90px;left:0;padding:8px 12px;position:fixed;right:0;top:0;z-index:1}.apheader{background-color:#F8F8F8;padding:8px 12px}.bodymenu{margin-top:96px}.menubar{position:inherit;top:55px}.menu{border:solid transparent;border-radius:4px 4px 0 0;border-width:4px 1px 1px;color:#444;float:left;padding:4px 16px 8px;text-decoration:none;white-space:nowrap}.menu.active{background-color:#FFF;border-color:#07D #DDD #FFF;color:#000}.menu:hover{background:#DEF;color:#000}.menu_button{display:none}.on{color:green}.off{color:red}.div_l{float:left}.div_r{background-color:#080;border-radius:4px;color:#fff;float:right;margin:2px;padding:1px 10px}.div_br{clear:both}.alert{background-color:#f44336;color:#fff;margin-bottom:15px;padding:20px}.warning{background-color:#ffca17;color:#fff;margin-bottom:15px;padding:20px}.closebtn{color:#fff;cursor:pointer;float:right;font-size:22px;font-weight:700;line-height:20px;margin-left:15px;transition:.3s}.closebtn:hover{color:#000}section{overflow-x:auto;width:100%}@media screen and (max-width: 960px){span.showmenulabel{display:none}.menu{max-width:11vw;max-width:48px}} diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 000000000..644d5c17a Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/fetch_and_parse_log.js b/static/fetch_and_parse_log.js new file mode 100644 index 000000000..872ad2b07 --- /dev/null +++ b/static/fetch_and_parse_log.js @@ -0,0 +1,121 @@ +function getBrowser() { + var ua = navigator.userAgent, + tem, M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; + if (/trident/i.test(M[1])) { + tem = /\brv[ :]+(\d+)/g.exec(ua) || []; + return { + name: 'IE', + version: (tem[1] || '') + }; + } + if (M[1] === 'Chrome') { + tem = ua.match(/\bOPR|Edge\/(\d+)/); + if (tem != null) { + return { + name: 'Opera', + version: tem[1] + }; + } + } + M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?']; + if ((tem = ua.match(/version\/(\d+)/i)) != null) { + M.splice(1, 1, tem[1]); + } + return { + name: M[0], + version: M[1] + }; +} +var browser = getBrowser(); +var currentBrowser = browser.name + browser.version; +if (browser.name = 'IE' && browser.version < 12) { + textToDisplay = 'Error: ' + currentBrowser + ' is not supported! Please try a modern web browser.' +} else { + textToDisplay = 'Fetching log entries...'; +} +document.getElementById('copyText_1').innerHTML = textToDisplay; +loopDeLoop(1000, 0); +var logLevel = new Array('Unused', 'Error', 'Info', 'Debug', 'Debug More', 'Undefined', 'Undefined', 'Undefined', 'Undefined', 'Debug Dev'); + +function loopDeLoop(timeForNext, activeRequests) { + var maximumRequests = 1; + var url = '/logjson'; + if (isNaN(activeRequests)) { + activeRequests = maximumRequests; + } + if (timeForNext == null) { + timeForNext = 1000; + } + if (timeForNext <= 500) { + scrolling_type = 'auto'; + } else { + scrolling_type = 'smooth'; + } + var c; + var logEntriesChunk; + var currentIDtoScrollTo = ''; + var check = 0; + var i = setInterval(function() { + if (check > 0) { + clearInterval(i); + return; + } + ++activeRequests; + if (activeRequests > maximumRequests) { + check = 1; + } else { + fetch(url).then(function(response) { + if (response.status !== 200) { + console.log('Looks like there was a problem. Status Code: ' + response.status); + return; + } + response.json().then(function(data) { + var logEntry; + if (logEntriesChunk == null) { + logEntriesChunk = ''; + } + for (c = 0; c < data.Log.nrEntries; ++c) { + try { + logEntry = data.Log.Entries[c].timestamp; + } catch (err) { + logEntry = err.name; + } finally { + if (logEntry !== "TypeError") { + currentIDtoScrollTo = data.Log.Entries[c].timestamp; + logEntriesChunk += '
' + data.Log.Entries[c].timestamp + ': ' + data.Log.Entries[c].text + '
'; + } + } + } + timeForNext = data.Log.TTL; + if (logEntriesChunk !== '') { + if (document.getElementById('copyText_1').innerHTML == 'Fetching log entries...') { + document.getElementById('copyText_1').innerHTML = ''; + } + document.getElementById('copyText_1').innerHTML += logEntriesChunk; + } + logEntriesChunk = ''; + autoscroll_on = document.getElementById('autoscroll').checked; + if (autoscroll_on == true && currentIDtoScrollTo !== '') { + document.getElementById(currentIDtoScrollTo).scrollIntoView({ + behavior: scrolling_type + }); + } + document.getElementById('current_loglevel').innerHTML = 'Logging: ' + logLevel[data.Log.SettingsWebLogLevel] + ' (' + data.Log.SettingsWebLogLevel + ')'; + clearInterval(i); + loopDeLoop(timeForNext, 0); + return; + }) + }).catch(function(err) { + document.getElementById('copyText_1').innerHTML += '
>> ' + err.message + ' <<
'; + autoscroll_on = document.getElementById('autoscroll').checked; + document.getElementById('copyText_1').scrollTop = document.getElementById('copyText_1').scrollHeight; + timeForNext = 5000; + clearInterval(i); + loopDeLoop(timeForNext, 0); + return; + }) + }; + check = 1; + }, timeForNext); +} + diff --git a/static/github_clipboard.js b/static/github_clipboard.js new file mode 100644 index 000000000..8293da7dd --- /dev/null +++ b/static/github_clipboard.js @@ -0,0 +1,27 @@ +function setGithubClipboard() { + var clipboard = 'ESP Easy | Information |\n -----|-----|\n'; + max_loop = 100; + for (var i = 1; i < max_loop; i++) { + var cur_id = 'copyText_' + i; + var test = document.getElementById(cur_id); + if (test == null) { + i = max_loop + 1; + } else { + var separatorSymbol = '|'; + if (i % 2 == 0) { + separatorSymbol += '\n' + } + clipboard += test.innerHTML.replace(/<[Bb][Rr]\s*\/?>/gim, '\n') + separatorSymbol; + } + } + clipboard = clipboard.replace(/<\/[Dd][Ii][Vv]\s*\/?>/gim, '\n'); + clipboard = clipboard.replace(/<[^>]*>/gim, ''); + var tempInput = document.createElement('textarea'); + tempInput.style = 'position: absolute;left: -1000px; top: -1000px'; + tempInput.innerHTML = clipboard; + document.body.appendChild(tempInput); + tempInput.select(); + document.execCommand('copy'); + document.body.removeChild(tempInput); + alert('Copied: "' + clipboard + '" to clipboard!') +} diff --git a/static/reboot.js b/static/reboot.js new file mode 100644 index 000000000..6e7a095bb --- /dev/null +++ b/static/reboot.js @@ -0,0 +1,33 @@ +i = document.getElementById('rbtmsg'); +i.innerHTML = "Please reboot: "; +var x = new XMLHttpRequest(); + +//done +function d() { + i.innerHTML = ''; + clearTimeout(t); +} + + +//keep requesting mainpage until no more errors +function c() { + i.innerHTML += '.'; + x.onload = d; + x.open('GET', window.location.origin); + x.send(); +} + +//rebooting +function b() { + i.innerHTML = 'Rebooting..'; + t = setInterval(c, 2000); +} + + +//request reboot +function r() { + i.innerHTML += ' (requesting)'; + x.onload = b; + x.open('GET', window.location.origin + '/?cmd=reboot'); + x.send(); +} diff --git a/static/timed_refresh.js b/static/timed_refresh.js new file mode 100644 index 000000000..fe77f8d50 --- /dev/null +++ b/static/timed_refresh.js @@ -0,0 +1,11 @@ +function timedRefresh(timeoutPeriod) { + var timer = setInterval(function() { + if (timeoutPeriod > 0) { + timeoutPeriod -= 1; + document.getElementById('countdown').innerHTML = timeoutPeriod + '..' + '
'; + } else { + clearInterval(timer); + window.location.href = window.location.href; + }; + }, 1000); +}; diff --git a/static/update_sensor_values_device_page.js b/static/update_sensor_values_device_page.js new file mode 100644 index 000000000..a7e0aa702 --- /dev/null +++ b/static/update_sensor_values_device_page.js @@ -0,0 +1,75 @@ +loopDeLoop(1000, 0); + +function loopDeLoop(timeForNext, activeRequests) { + var maximumRequests = 1; + var c; + var k; + var err = ''; + var url = '/json?view=sensorupdate'; + var check = 0; + if (isNaN(activeRequests)) { + activeRequests = maximumRequests; + } + if (timeForNext == null) { + timeForNext = 1000; + } + var i = setInterval(function() { + if (check > 0) { + clearInterval(i); + return; + } + ++activeRequests; + if (activeRequests > maximumRequests) { + check = 1; + } else { + fetch(url).then(function(response) { + var valueEntry; + if (response.status !== 200) { + console.log('Looks like there was a problem. Status Code: ' + response.status); + return; + } + response.json().then(function(data) { + timeForNext = data.TTL; + for (c = 0; c < data.Sensors.length; c++) { + if (data.Sensors[c].hasOwnProperty('TaskValues')) { + for (k = 0; k < data.Sensors[c].TaskValues.length; k++) { + try { + valueEntry = data.Sensors[c].TaskValues[k].Value; + } catch (err) { + valueEntry = err.name; + } finally { + if (valueEntry !== 'TypeError') { + tempValue = data.Sensors[c].TaskValues[k].Value; + decimalsValue = data.Sensors[c].TaskValues[k].NrDecimals; + tempValue = parseFloat(tempValue).toFixed(decimalsValue); + var valueID = 'value_' + (data.Sensors[c].TaskNumber - 1) + '_' + (data.Sensors[c].TaskValues[k].ValueNumber - 1); + var valueNameID = 'valuename_' + (data.Sensors[c].TaskNumber - 1) + '_' + (data.Sensors[c].TaskValues[k].ValueNumber - 1); + var valueElement = document.getElementById(valueID); + var valueNameElement = document.getElementById(valueNameID); + if (valueElement !== null) { + valueElement.innerHTML = tempValue; + } + if (valueNameElement !== null) { + valueNameElement.innerHTML = data.Sensors[c].TaskValues[k].Name + ':'; + } + } + } + } + } + } + timeForNext = data.TTL; + clearInterval(i); + loopDeLoop(timeForNext, 0); + return; + }); + }).catch(function(err) { + console.log(err.message); + timeForNext = 5000; + clearInterval(i); + loopDeLoop(timeForNext, 0); + return; + }); + check = 1; + } + }, timeForNext); +}