Revert "Updating pxmagic and inserting it in the WLED UI with option to enable and disable."

This reverts commit 44197d91c6.
This commit is contained in:
Alerson Jorge 2023-07-20 12:30:02 -03:00
parent 44197d91c6
commit e010e67717
8 changed files with 2885 additions and 3075 deletions

View File

@ -134,7 +134,7 @@ button {
.off { .off {
color: var(--c-6) !important; color: var(--c-6) !important;
/* cursor: default !important; */ cursor: default !important;
} }
.top .icons, .bot .icons { .top .icons, .bot .icons {
@ -271,20 +271,6 @@ button {
transform: translate(-50%,-50%); transform: translate(-50%,-50%);
} }
#pxm {
display: none;
width: 100%;
height: 100%;
border: 0;
position: absolute;
}
#ipxm {
width: 100%;
height: 100%;
position: relative;
}
.tab { .tab {
background-color: transparent; background-color: transparent;
color: var(--c-d); color: var(--c-d);
@ -812,7 +798,6 @@ input[type=range]::-moz-range-thumb {
text-overflow: ellipsis; text-overflow: ellipsis;
border: 1px solid var(--c-3); border: 1px solid var(--c-3);
background-color: var(--c-3); background-color: var(--c-3);
z-index: 9;
} }
#segutil .btn-s:hover, #segutil .btn-s:hover,
#segutil2 .btn-s:hover, #segutil2 .btn-s:hover,
@ -1025,7 +1010,7 @@ textarea {
width: 50px !important; width: 50px !important;
} }
.segname, .pname, .bname { .segname, .pname {
white-space: nowrap; white-space: nowrap;
text-align: center; text-align: center;
overflow: hidden; overflow: hidden;
@ -1035,9 +1020,6 @@ textarea {
max-width: 170px; max-width: 170px;
position: relative; position: relative;
} }
.bname {
padding: 0 24px;
}
.segname .flr, .pname .flr { .segname .flr, .pname .flr {
transform: rotate(0deg); transform: rotate(0deg);

View File

@ -65,7 +65,6 @@
<button id="buttonNl" onclick="toggleNl()"><i class="icons">&#xe2a2;</i><p class="tab-label">Timer</p></button> <button id="buttonNl" onclick="toggleNl()"><i class="icons">&#xe2a2;</i><p class="tab-label">Timer</p></button>
<button id="buttonSync" onclick="toggleSync()"><i class="icons">&#xe116;</i><p class="tab-label">Sync</p></button> <button id="buttonSync" onclick="toggleSync()"><i class="icons">&#xe116;</i><p class="tab-label">Sync</p></button>
<button id="buttonSr" onclick="toggleLiveview()"><i class="icons">&#xe410;</i><p class="tab-label">Peek</p></button> <button id="buttonSr" onclick="toggleLiveview()"><i class="icons">&#xe410;</i><p class="tab-label">Peek</p></button>
<button id="buttonPixelMagicTool" onclick="togglePixelMagicTool()"><i class="icons">&#xe2b3;</i><p class="tab-label">Pixel Magic</p></button>
<button id="buttonI" onclick="toggleInfo()"><i class="icons">&#xe066;</i><p class="tab-label">Info</p></button> <button id="buttonI" onclick="toggleInfo()"><i class="icons">&#xe066;</i><p class="tab-label">Info</p></button>
<button id="buttonNodes" onclick="toggleNodes()"><i class="icons">&#xe22d;</i><p class="tab-label">Nodes</p></button> <button id="buttonNodes" onclick="toggleNodes()"><i class="icons">&#xe22d;</i><p class="tab-label">Nodes</p></button>
<button onclick="window.location.href=getURL('/settings');"><i class="icons">&#xe0a2;</i><p class="tab-label">Config</p></button> <button onclick="window.location.href=getURL('/settings');"><i class="icons">&#xe0a2;</i><p class="tab-label">Config</p></button>
@ -380,8 +379,8 @@
</div> </div>
</div> </div>
<div id="mlv2D" class="modal"> <div id="mliveview2D" class="modal">
<div id="klv2D" style="width:100%; height:100%">Loading...</div> <div id="kliveview2D" style="width:100%; height:100%">Loading...</div><br>
</div> </div>
<div id="rover" class="modal"> <div id="rover" class="modal">
@ -393,12 +392,6 @@
<button class="btn" onclick="setLor(2)">Override until reboot</button><br> <button class="btn" onclick="setLor(2)">Override until reboot</button><br>
<span class="h">For best performance, it is recommended to turn off the streaming source when not in use.</span> <span class="h">For best performance, it is recommended to turn off the streaming source when not in use.</span>
</div> </div>
<div id="mpxm" class="modal">
<button class="btn btn-xs close" onclick="togglePixelMagicTool()"><i class="icons rot45">&#xe18a;</i></button>
<div id="ipxm">Loading...</div>
</div>
<i id="roverstar" class="icons huge" onclick="setLor(0)">&#xe410;</i><br> <i id="roverstar" class="icons huge" onclick="setLor(0)">&#xe410;</i><br>
<script src="index.js"></script> <script src="index.js"></script>
</body> </body>

View File

@ -1,6 +1,6 @@
//page js //page js
var loc = false, locip, locproto = "http:"; var loc = false, locip, locproto = "http:";
var isOn = false, nlA = false, isLv = false, isInfo = false, isNodes = false, syncSend = false, syncTglRecv = true, isPXM = false; var isOn = false, nlA = false, isLv = false, isInfo = false, isNodes = false, syncSend = false, syncTglRecv = true;
var hasWhite = false, hasRGB = false, hasCCT = false; var hasWhite = false, hasRGB = false, hasCCT = false;
var nlDur = 60, nlTar = 0; var nlDur = 60, nlTar = 0;
var nlMode = false; var nlMode = false;
@ -22,12 +22,11 @@ var pN = "", pI = 0, pNum = 0;
var pmt = 1, pmtLS = 0, pmtLast = 0; var pmt = 1, pmtLS = 0, pmtLast = 0;
var lastinfo = {}; var lastinfo = {};
var isM = false, mw = 0, mh=0; var isM = false, mw = 0, mh=0;
var ws, cpick, ranges, wsRpt=0; var ws, cpick, ranges;
var cfg = { var cfg = {
theme:{base:"dark", bg:{url:""}, alpha:{bg:0.6,tab:0.8}, color:{bg:""}}, theme:{base:"dark", bg:{url:""}, alpha:{bg:0.6,tab:0.8}, color:{bg:""}},
comp :{colors:{picker: true, rgb: false, quick: true, hex: false}, comp :{colors:{picker: true, rgb: false, quick: true, hex: false},
labels:true, pcmbot:false, pid:true, seglen:false, segpwr:false, segexp:false, labels:true, pcmbot:false, pid:true, seglen:false, segpwr:false, segexp:false, css:true, hdays:false}
css:true, hdays:false, fxdef:true, pxm: false}
}; };
var hol = [ var hol = [
[0,11,24,4,"https://aircoookie.github.io/xmas.png"], // christmas [0,11,24,4,"https://aircoookie.github.io/xmas.png"], // christmas
@ -39,9 +38,6 @@ var hol = [
[0,0,1,1,"https://initiate.alphacoders.com/download/wallpaper/1198800/images/jpg/2522807481585600"] // new year [0,0,1,1,"https://initiate.alphacoders.com/download/wallpaper/1198800/images/jpg/2522807481585600"] // new year
]; ];
// Buttons
var btnPXM = gId('buttonPixelMagicTool');
function handleVisibilityChange() {if (!d.hidden && new Date () - lastUpdate > 3000) requestJson();} function handleVisibilityChange() {if (!d.hidden && new Date () - lastUpdate > 3000) requestJson();}
function sCol(na, col) {d.documentElement.style.setProperty(na, col);} function sCol(na, col) {d.documentElement.style.setProperty(na, col);}
function gId(c) {return d.getElementById(c);} function gId(c) {return d.getElementById(c);}
@ -220,7 +216,6 @@ function onLoad()
// detect reverse proxy and/or HTTPS // detect reverse proxy and/or HTTPS
let pathn = l.pathname; let pathn = l.pathname;
let paths = pathn.slice(1,pathn.endsWith('/')?-1:undefined).split("/"); let paths = pathn.slice(1,pathn.endsWith('/')?-1:undefined).split("/");
//if (paths[0]==="sliders") paths.shift();
//while (paths[0]==="") paths.shift(); //while (paths[0]==="") paths.shift();
locproto = l.protocol; locproto = l.protocol;
locip = l.hostname + (l.port ? ":" + l.port : ""); locip = l.hostname + (l.port ? ":" + l.port : "");
@ -279,6 +274,7 @@ function onLoad()
}); });
}); });
resetUtil(); resetUtil();
d.addEventListener("visibilitychange", handleVisibilityChange, false); d.addEventListener("visibilitychange", handleVisibilityChange, false);
//size(); //size();
gId("cv").style.opacity=0; gId("cv").style.opacity=0;
@ -287,8 +283,6 @@ function onLoad()
sl.addEventListener('touchstart', toggleBubble); sl.addEventListener('touchstart', toggleBubble);
sl.addEventListener('touchend', toggleBubble); sl.addEventListener('touchend', toggleBubble);
} }
btnPXM.style.display = cfg.comp.pxm ? "block" : "none";
} }
function updateTablinks(tabI) function updateTablinks(tabI)
@ -777,7 +771,7 @@ function populateSegments(s)
`<i class="icons e-icon flr" id="sege${i}" onclick="expand(${i})">&#xe395;</i>`+ `<i class="icons e-icon flr" id="sege${i}" onclick="expand(${i})">&#xe395;</i>`+
(cfg.comp.segpwr ? segp : '') + (cfg.comp.segpwr ? segp : '') +
`<div class="segin" id="seg${i}in">`+ `<div class="segin" id="seg${i}in">`+
`<input type="text" class="ptxt" id="seg${i}t" autocomplete="off" maxlength=${li.arch=="esp8266"?32:64} value="${inst.n?inst.n:""}" placeholder="Enter name..."/>`+ `<input type="text" class="ptxt" id="seg${i}t" autocomplete="off" maxlength=32 value="${inst.n?inst.n:""}" placeholder="Enter name..."/>`+
`<table class="infot segt">`+ `<table class="infot segt">`+
`<tr>`+ `<tr>`+
`<td>${isMSeg?'Start X':'Start LED'}</td>`+ `<td>${isMSeg?'Start X':'Start LED'}</td>`+
@ -830,7 +824,6 @@ function populateSegments(s)
resetUtil(noNewSegs); resetUtil(noNewSegs);
if (gId('selall')) gId('selall').checked = true; if (gId('selall')) gId('selall').checked = true;
for (var i = 0; i <= lSeg; i++) { for (var i = 0; i <= lSeg; i++) {
if (!gId(`seg${i}`)) continue;
updateLen(i); updateLen(i);
updateTrail(gId(`seg${i}bri`)); updateTrail(gId(`seg${i}bri`));
gId(`segr${i}`).classList.add("hide"); gId(`segr${i}`).classList.add("hide");
@ -1009,15 +1002,10 @@ function generateListItemHtml(listName, id, name, clickAction, extraHtml = '', e
function btype(b) function btype(b)
{ {
switch (b) { switch (b) {
case 2:
case 32: return "ESP32"; case 32: return "ESP32";
case 3:
case 33: return "ESP32-S2"; case 33: return "ESP32-S2";
case 4:
case 34: return "ESP32-S3"; case 34: return "ESP32-S3";
case 5:
case 35: return "ESP32-C3"; case 35: return "ESP32-C3";
case 1:
case 82: return "ESP8266"; case 82: return "ESP8266";
} }
return "?"; return "?";
@ -1038,9 +1026,8 @@ function populateNodes(i,n)
n.nodes.sort((a,b) => (a.name).localeCompare(b.name)); n.nodes.sort((a,b) => (a.name).localeCompare(b.name));
for (var o of n.nodes) { for (var o of n.nodes) {
if (o.name) { if (o.name) {
let onoff = `<i class="icons e-icon flr ${o.type&0x80?'':'off'}" onclick="rmtTgl('${o.ip}',this);"">&#xe08f;</i>`; var url = `<button class="btn" title="${o.ip}" onclick="location.assign('http://${o.ip}');">${bname(o)}</button>`;
var url = `<button class="btn" title="${o.ip}" onclick="location.assign('http://${o.ip}');"><div class="bname">${bname(o)}</div>${o.vid<2307130?'':onoff}</button>`; urows += inforow(url,`${btype(o.type)}<br><i>${o.vid==0?"N/A":o.vid}</i>`);
urows += inforow(url,`${btype(o.type&0x7F)}<br><i>${o.vid==0?"N/A":o.vid}</i>`);
nnodes++; nnodes++;
} }
} }
@ -1054,40 +1041,6 @@ function populateNodes(i,n)
gId('kn').innerHTML = cn; gId('kn').innerHTML = cn;
} }
function togglePixelMagicTool()
{
if (isInfo) toggleInfo();
if (isNodes) toggleNodes();
if (isLv && isM) toggleLiveview();
isPXM = !isPXM;
var id = "pxm";
if (isPXM) gId('ipxm').innerHTML = `<iframe id="${id}" src="about:blank"></iframe>`;
gId('mpxm').style.transform = (isPXM) ? "translateY(0px)":"translateY(100%)";
var iframe = gId(id);
iframe.style.display = (isPXM) ? "block":"none";
iframe.src = (isPXM) ? getURL("/pxmagic.htm"):"about:blank";
iframe.onload = function () {
if(isPXM){
var iframeContent = this.contentDocument;
iframeContent.body.style.backgroundColor = "transparent";
var header = iframeContent.querySelector('.header');
header.style.display = "none";
}
}
btnPXM.className = (isPXM) ? "active":"";
size();
}
function updateNameResize(){
btnPXM.querySelector('p').textContent = (wW < 1024) ? "PXM" : "Pixel Magic";
}
function loadNodes() function loadNodes()
{ {
fetch(getURL('/json/nodes'), { fetch(getURL('/json/nodes'), {
@ -1376,12 +1329,11 @@ function makeWS() {
}; };
ws.onclose = (e)=>{ ws.onclose = (e)=>{
gId('connind').style.backgroundColor = "var(--c-r)"; gId('connind').style.backgroundColor = "var(--c-r)";
if (wsRpt++ < 5) setTimeout(makeWS,1500); // retry WS connection setTimeout(makeWS,1500); // retry WS connection
ws = null; ws = null;
} }
ws.onopen = (e)=>{ ws.onopen = (e)=>{
//ws.send("{'v':true}"); // unnecessary (https://github.com/Aircoookie/WLED/blob/master/wled00/ws.cpp#L18) //ws.send("{'v':true}"); // unnecessary (https://github.com/Aircoookie/WLED/blob/master/wled00/ws.cpp#L18)
wsRpt = 0;
reqsLegal = true; reqsLegal = true;
} }
} }
@ -1683,7 +1635,6 @@ function requestJson(command=null)
//load presets and open websocket sequentially //load presets and open websocket sequentially
if (!pJson || isEmpty(pJson)) setTimeout(()=>{ if (!pJson || isEmpty(pJson)) setTimeout(()=>{
loadPresets(()=>{ loadPresets(()=>{
wsRpt = 0;
if (!(ws && ws.readyState === WebSocket.OPEN)) makeWS(); if (!(ws && ws.readyState === WebSocket.OPEN)) makeWS();
}); });
},25); },25);
@ -1731,30 +1682,33 @@ function toggleSync()
function toggleLiveview() function toggleLiveview()
{ {
if (isInfo) toggleInfo(); //WLEDSR adding liveview2D support
if (isNodes) toggleNodes(); if (isInfo && isM) toggleInfo();
if (isPXM) togglePixelMagicTool(); if (isNodes && isM) toggleNodes();
isLv = !isLv; isLv = !isLv;
let wsOn = ws && ws.readyState === WebSocket.OPEN;
var lvID = "liveview"; var lvID = "liveview";
if (isM && wsOn) { if (isM) {
lvID += "2D"; lvID = "liveview2D"
if (isLv) gId('klv2D').innerHTML = `<iframe id="${lvID}" src="about:blank"></iframe>`; if (isLv) {
gId('mlv2D').style.transform = (isLv) ? "translateY(0px)":"translateY(100%)"; var cn = '<iframe id="liveview2D" src="about:blank"></iframe>';
d.getElementById('kliveview2D').innerHTML = cn;
}
gId('mliveview2D').style.transform = (isLv) ? "translateY(0px)":"translateY(100%)";
} }
gId(lvID).style.display = (isLv) ? "block":"none"; gId(lvID).style.display = (isLv) ? "block":"none";
gId(lvID).src = (isLv) ? getURL("/" + lvID + ((wsOn) ? "?ws":"")):"about:blank"; var url = getURL("/" + lvID);
gId('buttonSr').classList.toggle("active"); gId(lvID).src = (isLv) ? url:"about:blank";
if (!isLv && wsOn) ws.send('{"lv":false}'); gId('buttonSr').className = (isLv) ? "active":"";
if (!isLv && ws && ws.readyState === WebSocket.OPEN) ws.send('{"lv":false}');
size(); size();
} }
function toggleInfo() function toggleInfo()
{ {
if (isNodes) toggleNodes(); if (isNodes) toggleNodes();
if (isPXM) togglePixelMagicTool();
if (isLv && isM) toggleLiveview(); if (isLv && isM) toggleLiveview();
isInfo = !isInfo; isInfo = !isInfo;
if (isInfo) requestJson(); if (isInfo) requestJson();
@ -1765,7 +1719,6 @@ function toggleInfo()
function toggleNodes() function toggleNodes()
{ {
if (isInfo) toggleInfo(); if (isInfo) toggleInfo();
if (isPXM) togglePixelMagicTool();
if (isLv && isM) toggleLiveview(); if (isLv && isM) toggleLiveview();
isNodes = !isNodes; isNodes = !isNodes;
if (isNodes) loadNodes(); if (isNodes) loadNodes();
@ -2093,14 +2046,14 @@ function tglSegn(s)
function selSegAll(o) function selSegAll(o)
{ {
var obj = {"seg":[]}; var obj = {"seg":[]};
for (let i=0; i<=lSeg; i++) if (gId(`seg${i}`)) obj.seg.push({"id":i,"sel":o.checked}); for (let i=0; i<=lSeg; i++) obj.seg.push({"id":i,"sel":o.checked});
requestJson(obj); requestJson(obj);
} }
function selSegEx(s) function selSegEx(s)
{ {
var obj = {"seg":[]}; var obj = {"seg":[]};
for (let i=0; i<=lSeg; i++) if (gId(`seg${i}`)) obj.seg.push({"id":i,"sel":(i==s)}); for (let i=0; i<=lSeg; i++) obj.seg.push({"id":i,"sel":(i==s)});
obj.mainseg = s; obj.mainseg = s;
requestJson(obj); requestJson(obj);
} }
@ -2118,7 +2071,7 @@ function selGrp(g)
event.stopPropagation(); event.stopPropagation();
var sel = gId(`segcont`).querySelectorAll(`div[data-set="${g}"]`); var sel = gId(`segcont`).querySelectorAll(`div[data-set="${g}"]`);
var obj = {"seg":[]}; var obj = {"seg":[]};
for (let i=0; i<=lSeg; i++) if (gId(`seg${i}`)) obj.seg.push({"id":i,"sel":false}); for (let i=0; i<=lSeg; i++) obj.seg.push({"id":i,"sel":false});
if (sel) for (let s of sel||[]) { if (sel) for (let s of sel||[]) {
let i = parseInt(s.id.substring(3)); let i = parseInt(s.id.substring(3));
obj.seg[i] = {"id":i,"sel":true}; obj.seg[i] = {"id":i,"sel":true};
@ -2285,7 +2238,8 @@ function setFX(ind = null)
} else { } else {
d.querySelector(`#fxlist input[name="fx"][value="${ind}"]`).checked = true; d.querySelector(`#fxlist input[name="fx"][value="${ind}"]`).checked = true;
} }
var obj = {"seg": {"fx": parseInt(ind), "fxdef": cfg.comp.fxdef}}; // fxdef sets effect parameters to default values
var obj = {"seg": {"fx": parseInt(ind),"fxdef":1}}; // fxdef sets effect parameters to default values, TODO add client setting
requestJson(obj); requestJson(obj);
} }
@ -2619,24 +2573,6 @@ function setBalance(b)
requestJson(obj); requestJson(obj);
} }
function rmtTgl(ip,i) {
event.preventDefault();
event.stopPropagation();
fetch(`http://${ip}/win&T=2`, {method: 'get'})
.then((r)=>{
return r.text();
})
.then((t)=>{
let c = (new window.DOMParser()).parseFromString(t, "text/xml");
// perhaps just i.classList.toggle("off"); would be enough
if (c.getElementsByTagName('ac')[0].textContent === "0") {
i.classList.add("off");
} else {
i.classList.remove("off");
}
});
}
var hc = 0; var hc = 0;
setInterval(()=>{ setInterval(()=>{
if (!isInfo) return; if (!isInfo) return;
@ -2917,22 +2853,9 @@ function size()
if (isLv) h -= 4; if (isLv) h -= 4;
sCol('--tp', h + "px"); sCol('--tp', h + "px");
togglePcMode(); togglePcMode();
updateNameResize();
lastw = wW; lastw = wW;
} }
function listenMessage(e){
const { origin, data } = e;
if (origin === window.location.origin) {
switch(data){
case 'loadPresets':
setTimeout(()=>{pmtLast=0; loadPresets();}, 250);
break;
}
}
}
function togglePcMode(fromB = false) function togglePcMode(fromB = false)
{ {
if (fromB) { if (fromB) {
@ -2972,7 +2895,6 @@ size();
_C.style.setProperty('--n', N); _C.style.setProperty('--n', N);
window.addEventListener('resize', size, true); window.addEventListener('resize', size, true);
window.addEventListener('message', listenMessage, true);
_C.addEventListener('mousedown', lock, false); _C.addEventListener('mousedown', lock, false);
_C.addEventListener('touchstart', lock, false); _C.addEventListener('touchstart', lock, false);

View File

@ -7,10 +7,13 @@
<title>Pixel Magic Tool</title> <title>Pixel Magic Tool</title>
<!-- <link
rel="shortcut icon"
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAK9JREFUeNqUUssNwyAMJZWVUw4dhRHakZA6RqWMFEbwKDnk1FNBekEWxOBYQggL/D68yXXq+M7PtHkcefn89vrOw/UrP96w/NUFGiDLRz71GyY0QJa1Yn+nFa0ShqUNYCAF0QvoceOB4naEZif6UTNRapYaTyauRi4DEspr4Hbs5YKsbmtMyeJ0LxeESV4gB+hlSy4oO2txWysyus0a0+lO6vBjxcTMlG4mt2H6F2AAhU5NWu4dorQAAAAASUVORK5CYII=
" /> -->
<style> <style>
:root { :root {
--s-thumb: #0006;
--s-background: #0003;
--overlay: rgba(0, 0, 0, 0.5); --overlay: rgba(0, 0, 0, 0.5);
--background: #111; --background: #111;
--text: #bbb; --text: #bbb;
@ -31,24 +34,6 @@
--warning-light: #f48c06; --warning-light: #f48c06;
} }
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: var(--s-thumb);
opacity: 0.2;
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--s-background);
}
::selection { ::selection {
background: var(--blue-light); background: var(--blue-light);
} }
@ -80,7 +65,7 @@
display: block; display: block;
font-weight: 400; font-weight: 400;
margin: 2px 0 5px; margin: 2px 0 5px;
color: var(--gray-light); color: var(--text);
font-size: 12px; font-size: 12px;
} }
@ -98,7 +83,7 @@
font-weight: 600; font-weight: 600;
} }
a:is(:hover, :focus, :active) { :is(a:hover, a:focus, a:active) {
color: var(--blue-medium); color: var(--blue-medium);
} }
@ -123,7 +108,8 @@
} }
.content { .content {
width: min(768px, calc(100% - 40px)); width: calc(100% - 40px);
max-width: 768px;
margin: 20px; margin: 20px;
} }
@ -131,19 +117,19 @@
display: flex; display: flex;
flex-wrap: nowrap; flex-wrap: nowrap;
justify-content: space-between; justify-content: space-between;
margin-top: 20px; margin: 20px 0 0;
} }
.column { .column {
flex-basis: calc(50% - 10px); flex-basis: calc(50% - 10px);
position: relative; position: relative;
padding-inline: 5px; padding: 0 5px;
} }
.column-full { .column-full {
flex-basis: 100%; flex-basis: 100%;
position: relative; position: relative;
padding-inline: 5px; padding: 0 5px;
} }
label { label {
@ -171,7 +157,7 @@
width: 32px; width: 32px;
height: 32px; height: 32px;
cursor: pointer; cursor: pointer;
padding-inline: 1px; padding: 0px 1px;
outline: none; outline: none;
} }
@ -186,19 +172,18 @@
} }
.input-group .input-description { .input-group .input-description {
width: 100%; width: 38px;
max-width: 38px;
height: 38px; height: 38px;
display: flex; padding: 10px 0;
justify-content: center;
align-items: center;
color: var(--gray-dark); color: var(--gray-dark);
background: var(--gray-light); background: var(--gray-light);
border-radius: 0px 8px 8px 0; border-radius: 0px 5px 5px 0;
border: 1px solid var(--gray-light); border: 1px solid var(--gray-light);
border-left: 0; border-left: 0;
text-align: center;
font-size: 14px; font-size: 14px;
line-height: 16px; line-height: 16px;
font-weight: 600;
} }
.input-group .square { .input-group .square {
@ -206,19 +191,10 @@
margin-left: 10px; margin-left: 10px;
} }
.input-group .square input {
text-align: center;
background: none;
padding: 0;
border: 0;
color: var(--gray-dark);
}
textarea { textarea {
resize: none; resize: vertical;
min-height: 200px; min-height: 200px;
border-radius: 8px; border-radius: 8px;
overflow-x: hidden;
} }
.custom-select { .custom-select {
@ -255,7 +231,7 @@
text-align: center; text-align: center;
padding: 40px 10px; padding: 40px 10px;
border-radius: 8px; border-radius: 8px;
margin-top: 20px; margin: 20px 0 0;
transition: all 0.5s ease-in-out; transition: all 0.5s ease-in-out;
} }
@ -277,7 +253,7 @@
width: 100%; width: 100%;
border-radius: 10px; border-radius: 10px;
outline: none; outline: none;
margin-block: 15px; margin: 16px 0;
} }
.range-slider::-webkit-slider-thumb { .range-slider::-webkit-slider-thumb {
@ -350,7 +326,7 @@
align-items: center; align-items: center;
width: auto; width: auto;
padding: 6px 12px; padding: 6px 12px;
margin-top: 10px; margin: 10px 0 0;
border-radius: 8px; border-radius: 8px;
transform: translateY(30px); transform: translateY(30px);
opacity: 0; opacity: 0;
@ -358,7 +334,7 @@
} }
.toast .toast-body { .toast .toast-body {
padding-block: 8px; padding: 8px 0;
font-weight: 600; font-weight: 600;
color: var(--text); color: var(--text);
letter-spacing: 0.5px; letter-spacing: 0.5px;
@ -384,7 +360,7 @@
height: 3px; height: 3px;
transform: scaleX(0); transform: scaleX(0);
transform-origin: left; transform-origin: left;
border-radius: 8px; border-radius: inherit;
} }
.toast.success .toast-progress { .toast.success .toast-progress {
@ -415,7 +391,7 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
padding-bottom: 20px; padding: 0 0 20px;
} }
.header .brand { .header .brand {
@ -434,6 +410,18 @@
cursor: pointer; cursor: pointer;
} }
.carousel img {
display: block;
width: 100%;
height: 100%;
margin-right: 20px;
border: 0;
}
.carousel img:last-child {
margin-right: 0;
}
.button { .button {
width: 100%; width: 100%;
border: 0; border: 0;
@ -441,7 +429,7 @@
border-radius: 50px; border-radius: 50px;
color: var(--text); color: var(--text);
cursor: pointer; cursor: pointer;
margin-bottom: 10px; margin: 0 0 10px;
background: var(--gray-medium); background: var(--gray-medium);
border: 1px solid var(--gray-dark); border: 1px solid var(--gray-dark);
transition: all 0.5s ease-in-out; transition: all 0.5s ease-in-out;
@ -489,7 +477,7 @@
} }
#recreatedImage { #recreatedImage {
margin-block: 20px; margin: 20px 0;
} }
.invalid { .invalid {
@ -499,7 +487,7 @@
.error-message { .error-message {
display: block; display: block;
color: var(--error-dark); color: var(--error-dark);
padding-block: 4px; padding: 4px 0;
font-weight: 600; font-weight: 600;
font-size: 12px; font-size: 12px;
} }
@ -518,7 +506,7 @@
.column, .column,
.column-full { .column-full {
flex-basis: 100%; flex-basis: 100%;
margin-top: 20px; margin: 20px 0 0;
padding: 0; padding: 0;
} }
} }
@ -698,13 +686,11 @@
max="255" max="255"
value="128" value="128"
class="range-slider" /> class="range-slider" />
<div class="input-description square"> <input
<input type="text"
type="text" id="brightnessValue"
name="brightnessValue" class="input-description square"
id="brightnessValue" value="128" />
value="128" />
</div>
</div> </div>
</div> </div>
</div> </div>
@ -712,11 +698,7 @@
<div class="column" validate> <div class="column" validate>
<label for="animation">Animation</label> <label for="animation">Animation</label>
<label class="switch"> <label class="switch">
<input <input type="checkbox" name="animation" id="animation" />
type="checkbox"
name="animation"
id="animation"
data-parent="animation" />
<span class="switch-slider"></span> <span class="switch-slider"></span>
</label> </label>
</div> </div>
@ -726,20 +708,14 @@
<input <input
type="checkbox" type="checkbox"
name="transparentImage" name="transparentImage"
id="transparentImage" id="transparentImage" />
data-parent="transparentImage" />
<span class="switch-slider"></span> <span class="switch-slider"></span>
</label> </label>
</div> </div>
<div class="column" validate> <div class="column" validate>
<label for="resizeImage">Resize Image</label> <label for="resizeImage">Resize Image</label>
<label class="switch"> <label class="switch">
<input <input type="checkbox" name="resizeImage" id="resizeImage" />
type="checkbox"
name="resizeImage"
id="resizeImage"
data-parent="resizeImage"
checked />
<span class="switch-slider"></span> <span class="switch-slider"></span>
</label> </label>
</div> </div>
@ -771,9 +747,7 @@
min="0" min="0"
step="0.1" step="0.1"
inputmode="numeric" /> inputmode="numeric" />
<div class="input-description"> <div class="input-description">sec</div>
<span>sec</span>
</div>
</div> </div>
</div> </div>
<div class="column" validate> <div class="column" validate>
@ -788,9 +762,7 @@
min="0" min="0"
step="0.1" step="0.1"
inputmode="numeric" /> inputmode="numeric" />
<div class="input-description"> <div class="input-description">sec</div>
<span>sec</span>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -881,7 +853,7 @@
<div id="overlay"></div> <div id="overlay"></div>
</body> </body>
<script> <script>
const doc = document; const d = document;
const params = new URLSearchParams(window.location.search); const params = new URLSearchParams(window.location.search);
const host = params.get("hn") const host = params.get("hn")
? params.get("hn") ? params.get("hn")
@ -912,12 +884,11 @@
await segments(); await segments();
await images(); await images();
checked();
hostnameLabel(); hostnameLabel();
})(); })();
function element(id) { function element(id) {
return doc.getElementById(id); return d.getElementById(id);
} }
function hostnameLabel() { function hostnameLabel() {
@ -925,18 +896,6 @@
link.href = link.href.replace("[wled-ip]", hostname.value); link.href = link.href.replace("[wled-ip]", hostname.value);
} }
function checked() {
const checkbox = doc.querySelectorAll('input[type="checkbox"]');
checkbox.forEach((cb) => {
let parentName = cb.dataset.parent;
let parent = doc.getElementsByClassName(parentName)[0];
let { checked } = cb;
parent.style.display = checked ? "flex" : "none";
});
}
async function playlist() { async function playlist() {
const { value: duration } = element("duration"); const { value: duration } = element("duration");
const { value: transition } = element("transition"); const { value: transition } = element("transition");
@ -1040,7 +999,6 @@
if (success) { if (success) {
toast(`Preset "${item.n}" save successfully`); toast(`Preset "${item.n}" save successfully`);
window.parent.postMessage("loadPresets", WLED_URL);
} }
} catch (error) { } catch (error) {
toast(`Error saving preset: ${error}`, "error"); toast(`Error saving preset: ${error}`, "error");
@ -1258,7 +1216,7 @@
toast("Text copied to clipboard"); toast("Text copied to clipboard");
} catch (error) { } catch (error) {
try { try {
await doc.execCommand("copy"); await d.execCommand("copy");
toast("Text copied to clipboard"); toast("Text copied to clipboard");
} catch (error) { } catch (error) {
toast(error, "error"); toast(error, "error");
@ -1287,7 +1245,7 @@
}); });
element("output").addEventListener("change", (e) => { element("output").addEventListener("change", (e) => {
const output = doc.getElementsByClassName("output"); const output = d.getElementsByClassName("output");
const { value } = e.target.selectedOptions[0]; const { value } = e.target.selectedOptions[0];
Array.from(output).forEach(function (element) { Array.from(output).forEach(function (element) {
@ -1335,55 +1293,62 @@
}); });
element("transparentImage").addEventListener("change", (e) => { element("transparentImage").addEventListener("change", (e) => {
const transparentImage = doc.getElementsByClassName("transparentImage")[0]; const transparentImage = d.getElementsByClassName("transparentImage");
const { checked } = e.target; const { checked } = e.target;
if (checked) { Array.from(transparentImage).forEach(function (element) {
transparentImage.style.display = "flex"; if (checked) {
} else { element.style.display = "flex";
transparentImage.style.display = "none"; } else {
} element.style.display = "none";
}
});
}); });
element("resizeImage").addEventListener("change", (e) => { element("resizeImage").addEventListener("change", (e) => {
const resizeImage = doc.getElementsByClassName("resizeImage")[0]; const resizeImage = d.getElementsByClassName("resizeImage");
const pattern = element("pattern"); const pattern = element("pattern");
const { checked } = e.target; const { checked } = e.target;
if (checked) { Array.from(resizeImage).forEach(function (element) {
pattern.value = 3; if (checked) {
resizeImage.style.display = "flex"; pattern.value = 3;
} else { element.style.display = "flex";
pattern.value = 1; } else {
resizeImage.style.display = "none"; pattern.value = 1;
} element.style.display = "none";
}
});
}); });
element("animation").addEventListener("change", (e) => { element("animation").addEventListener("change", (e) => {
const animation = doc.getElementsByClassName("animation")[0]; const animation = d.getElementsByClassName("animation");
const pattern = element("pattern"); const pattern = element("pattern");
const source = element("source"); const source = element("source");
const { checked } = e.target; const { checked } = e.target;
if (checked) { Array.from(animation).forEach(function (element) {
toast( if (checked) {
'If you want all frames in the image, set it to "0"', toast(
"warning", 'If you want all frames in the image, set it to "0"',
5000 "warning",
); 5000
);
source.setAttribute("accept", "image/gif"); source.setAttribute("accept", "image/gif");
animation.style.display = "flex"; element.style.display = "flex";
pattern.value = 3; pattern.value = 3;
} else { } else {
source.setAttribute( source.setAttribute(
"accept", "accept",
"image/jpg,image/jpeg,image/png,image/gif" "image/jpg,image/jpeg,image/png,image/gif"
); );
animation.style.display = "none"; element.style.display = "none";
pattern.value = 1; pattern.value = 1;
} }
});
}); });
element("btnGenerate").addEventListener("click", async (event) => { element("btnGenerate").addEventListener("click", async (event) => {
@ -1754,7 +1719,7 @@
} }
function createCanvas(width, height) { function createCanvas(width, height) {
const canvas = doc.createElement("canvas"); const canvas = d.createElement("canvas");
canvas.width = width; canvas.width = width;
canvas.height = height; canvas.height = height;
@ -1798,7 +1763,7 @@
const blob = new Blob([text], { type: mimeType }); const blob = new Blob([text], { type: mimeType });
const url = URL.createObjectURL(blob); const url = URL.createObjectURL(blob);
const anchorElement = doc.createElement("a"); const anchorElement = d.createElement("a");
anchorElement.href = url; anchorElement.href = url;
anchorElement.download = `${filename}.${fileExtension}`; anchorElement.download = `${filename}.${fileExtension}`;
@ -1819,8 +1784,8 @@
[device]: { [device]: {
friendly_name, friendly_name,
unique_id, unique_id,
command_on: `curl -X POST "http://${hostname}/json/state" -doc '${jsonData}' -H "Content-Type: application/json"`, command_on: `curl -X POST "http://${hostname}/json/state" -d '${jsonData}' -H "Content-Type: application/json"`,
command_off: `curl -X POST "http://${hostname}/json/state" -doc '{"on":false}' -H "Content-Type: application/json"`, command_off: `curl -X POST "http://${hostname}/json/state" -d '{"on":false}' -H "Content-Type: application/json"`,
}, },
}, },
}; };
@ -1831,7 +1796,7 @@
function curl(jsonData) { function curl(jsonData) {
const { value: hostname } = element("hostname"); const { value: hostname } = element("hostname");
return `curl -X POST "http://${hostname}/json/state" -doc '${jsonData}' -H "Content-Type: application/json"`; return `curl -X POST "http://${hostname}/json/state" -d '${jsonData}' -H "Content-Type: application/json"`;
} }
function convertToYaml(obj) { function convertToYaml(obj) {
@ -1869,7 +1834,7 @@
hideElement = "preview" hideElement = "preview"
) { ) {
const hide = element(hideElement); const hide = element(hideElement);
const toast = doc.createElement("div"); const toast = d.createElement("div");
const wait = 100; const wait = 100;
toast.style.animation = "fadeIn"; toast.style.animation = "fadeIn";
@ -1878,14 +1843,14 @@
toast.classList.add("toast", type); toast.classList.add("toast", type);
const body = doc.createElement("span"); const body = d.createElement("span");
body.classList.add("toast-body"); body.classList.add("toast-body");
body.textContent = message; body.textContent = message;
toast.appendChild(body); toast.appendChild(body);
const progress = doc.createElement("div"); const progress = d.createElement("div");
progress.classList.add("toast-progress"); progress.classList.add("toast-progress");
progress.style.animation = "progress"; progress.style.animation = "progress";
@ -1910,7 +1875,7 @@
function carousel(id, images, delay = 3000) { function carousel(id, images, delay = 3000) {
let index = 0; let index = 0;
const carousel = doc.createElement("div"); const carousel = d.createElement("div");
carousel.classList.add("carousel"); carousel.classList.add("carousel");
images.forEach((canvas, i) => { images.forEach((canvas, i) => {
@ -1975,7 +1940,7 @@
overlay.style.display = "block"; overlay.style.display = "block";
overlay.style.cursor = "not-allowed"; overlay.style.cursor = "not-allowed";
doc.body.style.overflow = "hidden"; d.body.style.overflow = "hidden";
} }
function hide() { function hide() {
@ -1984,7 +1949,7 @@
overlay.style.display = "none"; overlay.style.display = "none";
overlay.style.cursor = "default"; overlay.style.cursor = "default";
doc.body.style.overflow = "auto"; d.body.style.overflow = "auto";
} }
function validate(event) { function validate(event) {
@ -2011,7 +1976,7 @@
let isVisible = true; let isVisible = true;
let tempParent = parent; let tempParent = parent;
while (tempParent !== doc.body) { while (tempParent !== d.body) {
const parentStyles = window.getComputedStyle(tempParent); const parentStyles = window.getComputedStyle(tempParent);
if ( if (
parentStyles.display === "none" || parentStyles.display === "none" ||
@ -2038,7 +2003,7 @@
let errorElement = parent.querySelector(".error-message"); let errorElement = parent.querySelector(".error-message");
if (!errorElement) { if (!errorElement) {
errorElement = doc.createElement("div"); errorElement = d.createElement("div");
errorElement.classList.add("error-message"); errorElement.classList.add("error-message");
parent.appendChild(errorElement); parent.appendChild(errorElement);
} }

View File

@ -26,9 +26,7 @@
"segpwr": "Hide segment power &amp; brightness", "segpwr": "Hide segment power &amp; brightness",
"segexp" : "Always expand first segment", "segexp" : "Always expand first segment",
"css": "Enable custom CSS", "css": "Enable custom CSS",
"hdays": "Enable custom Holidays list", "hdays": "Enable custom Holidays list"
"fxdef": "Use effect default parameters",
"pxm": "Enable Pixel Magic Tool"
}, },
"theme":{ "theme":{
"alpha": { "alpha": {
@ -291,7 +289,6 @@
<div id="skin">Custom CSS: <input type="file" name="data" accept=".css"> <input type="button" value="Upload" onclick="uploadFile(d.Sf.data,'/skin.css');"><br></div> <div id="skin">Custom CSS: <input type="file" name="data" accept=".css"> <input type="button" value="Upload" onclick="uploadFile(d.Sf.data,'/skin.css');"><br></div>
<span class="l"></span>: <input type="checkbox" id="comp_hdays" class="agi cb"><br> <span class="l"></span>: <input type="checkbox" id="comp_hdays" class="agi cb"><br>
<div id="holidays">Holidays: <input type="file" name="data2" accept=".json"> <input type="button" value="Upload" onclick="uploadFile(d.Sf.data2,'/holidays.json');"><br></div> <div id="holidays">Holidays: <input type="file" name="data2" accept=".json"> <input type="button" value="Upload" onclick="uploadFile(d.Sf.data2,'/holidays.json');"><br></div>
<span class="l"></span>: <input type="checkbox" id="comp_pxm" class="agi cb"><br>
<div id="toast"></div> <div id="toast"></div>
<hr><button type="button" onclick="cLS()">Clear local storage</button> <hr><button type="button" onclick="cLS()">Clear local storage</button>
<hr><button type="button" onclick="B()">Back</button><button type="button" onclick="Save()">Save</button> <hr><button type="button" onclick="B()">Back</button><button type="button" onclick="Save()">Save</button>

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
// Autogenerated from wled00/data/style.css, do not edit!! // Autogenerated from wled00/data/style.css, do not edit!!
const uint16_t PAGE_settingsCss_length = 888; const uint16_t PAGE_settingsCss_length = 888;
const uint8_t PAGE_settingsCss[] PROGMEM = { const uint8_t PAGE_settingsCss[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x56, 0x51, 0x8b, 0xab, 0x38, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x56, 0x51, 0x8b, 0xab, 0x38,
0x14, 0xfe, 0x2b, 0x2e, 0x65, 0x60, 0x2e, 0x54, 0x51, 0xab, 0x9d, 0xde, 0xc8, 0xc2, 0xb2, 0xef, 0x14, 0xfe, 0x2b, 0x2e, 0x65, 0x60, 0x2e, 0x54, 0x51, 0xab, 0x9d, 0xde, 0xc8, 0xc2, 0xb2, 0xef,
0xf7, 0x6d, 0x58, 0x16, 0x96, 0x79, 0x88, 0xe6, 0x58, 0x43, 0x63, 0x22, 0x49, 0xbc, 0xb5, 0x23, 0xf7, 0x6d, 0x58, 0x16, 0x96, 0x79, 0x88, 0xe6, 0x58, 0x43, 0x63, 0x22, 0x49, 0xbc, 0xb5, 0x23,
0xfe, 0xf7, 0x4d, 0xa2, 0x8e, 0xb6, 0x23, 0x73, 0x5f, 0x2e, 0xa5, 0x25, 0xe6, 0xc4, 0xe4, 0x3b, 0xfe, 0xf7, 0x4d, 0xa2, 0x8e, 0xb6, 0x23, 0x73, 0x5f, 0x2e, 0xa5, 0x25, 0xe6, 0xc4, 0xe4, 0x3b,
@ -70,7 +70,7 @@ const uint8_t PAGE_settingsCss[] PROGMEM = {
// Autogenerated from wled00/data/settings.htm, do not edit!! // Autogenerated from wled00/data/settings.htm, do not edit!!
const uint16_t PAGE_settings_length = 1115; const uint16_t PAGE_settings_length = 1115;
const uint8_t PAGE_settings[] PROGMEM = { const uint8_t PAGE_settings[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xb5, 0x56, 0xdb, 0x52, 0xe3, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb5, 0x56, 0xdb, 0x52, 0xe3, 0x46,
0x10, 0x7d, 0xf7, 0x57, 0x0c, 0xb3, 0x15, 0x56, 0x2a, 0x64, 0xf9, 0x42, 0x2a, 0x95, 0xc8, 0x96, 0x10, 0x7d, 0xf7, 0x57, 0x0c, 0xb3, 0x15, 0x56, 0x2a, 0x64, 0xf9, 0x42, 0x2a, 0x95, 0xc8, 0x96,
0xa9, 0x2c, 0x97, 0x8d, 0x53, 0x50, 0x4b, 0x05, 0x58, 0x92, 0x4a, 0xf2, 0x30, 0xd6, 0xb4, 0xac, 0xa9, 0x2c, 0x97, 0x8d, 0x53, 0x50, 0x4b, 0x05, 0x58, 0x92, 0x4a, 0xf2, 0x30, 0xd6, 0xb4, 0xac,
0x59, 0xa4, 0x19, 0xd5, 0x4c, 0xcb, 0xe0, 0xb0, 0xfc, 0x7b, 0x7a, 0x64, 0x63, 0x60, 0xe1, 0x21, 0x59, 0xa4, 0x19, 0xd5, 0x4c, 0xcb, 0xe0, 0xb0, 0xfc, 0x7b, 0x7a, 0x64, 0x63, 0x60, 0xe1, 0x21,
@ -146,7 +146,7 @@ const uint8_t PAGE_settings[] PROGMEM = {
// Autogenerated from wled00/data/settings_wifi.htm, do not edit!! // Autogenerated from wled00/data/settings_wifi.htm, do not edit!!
const uint16_t PAGE_settings_wifi_length = 2269; const uint16_t PAGE_settings_wifi_length = 2269;
const uint8_t PAGE_settings_wifi[] PROGMEM = { const uint8_t PAGE_settings_wifi[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xb5, 0x58, 0x6d, 0x73, 0xdb, 0xb8, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb5, 0x58, 0x6d, 0x73, 0xdb, 0xb8,
0x11, 0xfe, 0xae, 0x5f, 0x01, 0xa3, 0x1d, 0x0f, 0x39, 0xa6, 0x29, 0xc9, 0x4a, 0x72, 0xa9, 0x2c, 0x11, 0xfe, 0xae, 0x5f, 0x01, 0xa3, 0x1d, 0x0f, 0x39, 0xa6, 0x29, 0xc9, 0x4a, 0x72, 0xa9, 0x2c,
0x2a, 0xf5, 0x8b, 0x2e, 0x76, 0xeb, 0x73, 0xd4, 0xca, 0xbd, 0x4c, 0x27, 0xcd, 0xdc, 0xd1, 0xe4, 0x2a, 0xf5, 0x8b, 0x2e, 0x76, 0xeb, 0x73, 0xd4, 0xca, 0xbd, 0x4c, 0x27, 0xcd, 0xdc, 0xd1, 0xe4,
0x4a, 0x42, 0x4c, 0x01, 0x2c, 0x01, 0x4a, 0xf6, 0xd8, 0xfe, 0xef, 0xdd, 0x05, 0x48, 0xbd, 0xd9, 0x4a, 0x42, 0x4c, 0x01, 0x2c, 0x01, 0x4a, 0xf6, 0xd8, 0xfe, 0xef, 0xdd, 0x05, 0x48, 0xbd, 0xd9,
@ -294,7 +294,7 @@ const uint8_t PAGE_settings_wifi[] PROGMEM = {
// Autogenerated from wled00/data/settings_leds.htm, do not edit!! // Autogenerated from wled00/data/settings_leds.htm, do not edit!!
const uint16_t PAGE_settings_leds_length = 8389; const uint16_t PAGE_settings_leds_length = 8389;
const uint8_t PAGE_settings_leds[] PROGMEM = { const uint8_t PAGE_settings_leds[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xdd, 0x7d, 0xeb, 0x76, 0xdb, 0x38, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdd, 0x7d, 0xeb, 0x76, 0xdb, 0x38,
0xd2, 0xe0, 0x7f, 0x3d, 0x05, 0x8d, 0xee, 0x76, 0xc8, 0x16, 0x25, 0x91, 0xb2, 0x95, 0x76, 0x24, 0xd2, 0xe0, 0x7f, 0x3d, 0x05, 0x8d, 0xee, 0x76, 0xc8, 0x16, 0x25, 0x91, 0xb2, 0x95, 0x76, 0x24,
0x51, 0x5e, 0x5f, 0x92, 0xb4, 0xbf, 0xb1, 0x63, 0x1f, 0xdb, 0xe9, 0xcc, 0x77, 0xd2, 0xd9, 0x0e, 0x51, 0x5e, 0x5f, 0x92, 0xb4, 0xbf, 0xb1, 0x63, 0x1f, 0xdb, 0xe9, 0xcc, 0x77, 0xd2, 0xd9, 0x0e,
0x44, 0x41, 0x12, 0x63, 0x8a, 0xd4, 0x90, 0x94, 0x2f, 0x6b, 0x7b, 0x9f, 0x69, 0x9f, 0x61, 0x9f, 0x44, 0x41, 0x12, 0x63, 0x8a, 0xd4, 0x90, 0x94, 0x2f, 0x6b, 0x7b, 0x9f, 0x69, 0x9f, 0x61, 0x9f,
@ -825,7 +825,7 @@ const uint8_t PAGE_settings_leds[] PROGMEM = {
// Autogenerated from wled00/data/settings_dmx.htm, do not edit!! // Autogenerated from wled00/data/settings_dmx.htm, do not edit!!
const uint16_t PAGE_settings_dmx_length = 1751; const uint16_t PAGE_settings_dmx_length = 1751;
const uint8_t PAGE_settings_dmx[] PROGMEM = { const uint8_t PAGE_settings_dmx[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x95, 0x57, 0x5b, 0x73, 0xdb, 0x36, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x57, 0x5b, 0x73, 0xdb, 0x36,
0x16, 0x7e, 0xd7, 0xaf, 0x40, 0xf0, 0x50, 0x93, 0x63, 0x86, 0x94, 0x9c, 0x55, 0xb7, 0x91, 0x44, 0x16, 0x7e, 0xd7, 0xaf, 0x40, 0xf0, 0x50, 0x93, 0x63, 0x86, 0x94, 0x9c, 0x55, 0xb7, 0x91, 0x44,
0x7a, 0x63, 0xc7, 0x6b, 0x7b, 0xc7, 0x76, 0x3d, 0x51, 0xd2, 0x74, 0xa7, 0xe9, 0x74, 0x20, 0x12, 0x7a, 0x63, 0xc7, 0x6b, 0x7b, 0xc7, 0x76, 0x3d, 0x51, 0xd2, 0x74, 0xa7, 0xe9, 0x74, 0x20, 0x12,
0x12, 0x51, 0x93, 0x04, 0x17, 0x00, 0x25, 0xbb, 0x69, 0xfe, 0xfb, 0x7e, 0x00, 0xa9, 0x8b, 0x6f, 0x12, 0x51, 0x93, 0x04, 0x17, 0x00, 0x25, 0xbb, 0x69, 0xfe, 0xfb, 0x7e, 0x00, 0xa9, 0x8b, 0x6f,
@ -939,225 +939,222 @@ const uint8_t PAGE_settings_dmx[] PROGMEM = {
// Autogenerated from wled00/data/settings_ui.htm, do not edit!! // Autogenerated from wled00/data/settings_ui.htm, do not edit!!
const uint16_t PAGE_settings_ui_length = 3350; const uint16_t PAGE_settings_ui_length = 3300;
const uint8_t PAGE_settings_ui[] PROGMEM = { const uint8_t PAGE_settings_ui[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x5a, 0x6b, 0x73, 0xdb, 0x36, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x5a, 0x6b, 0x73, 0xdb, 0x36,
0x16, 0xfd, 0xae, 0x5f, 0x81, 0xa0, 0x1d, 0x57, 0x1c, 0x33, 0xb4, 0x9c, 0x76, 0x67, 0x13, 0x49, 0x16, 0xfd, 0xae, 0x5f, 0x81, 0x20, 0x1d, 0x57, 0x1c, 0x33, 0xb4, 0xec, 0x74, 0x67, 0x13, 0x49,
0x94, 0x37, 0x71, 0xd2, 0xc6, 0x1d, 0xa7, 0xc9, 0x46, 0xce, 0xb6, 0x3b, 0xd9, 0x8c, 0x0b, 0x91, 0x94, 0x37, 0x76, 0xd2, 0xc4, 0x1d, 0xa7, 0xc9, 0x46, 0xce, 0xa6, 0x9d, 0xac, 0xc7, 0xa5, 0x48,
0x90, 0x84, 0x86, 0x22, 0x58, 0x02, 0xf4, 0x63, 0x55, 0xfd, 0xf7, 0x3d, 0x17, 0x20, 0x25, 0x4a, 0x48, 0x42, 0x42, 0x11, 0x2c, 0x01, 0xfa, 0xb1, 0x8a, 0xfe, 0xfb, 0x9e, 0x0b, 0x90, 0x12, 0x25,
0x7e, 0xa5, 0x9d, 0xfd, 0x62, 0x91, 0x78, 0xdc, 0x37, 0xce, 0xbd, 0x17, 0xf4, 0xf0, 0xd1, 0xcb, 0xdb, 0x72, 0xb6, 0xb3, 0x5f, 0x2c, 0x12, 0x8f, 0xfb, 0xc6, 0xb9, 0xf7, 0x82, 0xee, 0x3f, 0x7a,
0xb7, 0xc7, 0x67, 0xff, 0x7e, 0xf7, 0x8a, 0xcd, 0xed, 0x22, 0x1b, 0x0d, 0xeb, 0xbf, 0x52, 0xa4, 0xf9, 0xee, 0xf8, 0xec, 0xf7, 0xf7, 0xaf, 0xd8, 0xd4, 0xcc, 0xd2, 0x41, 0xbf, 0xfa, 0x2b, 0xa2,
0x2c, 0x13, 0xf9, 0x2c, 0xe6, 0x32, 0xe7, 0xa3, 0xe1, 0x42, 0x5a, 0xc1, 0x92, 0xb9, 0x28, 0x8d, 0x84, 0xa5, 0x51, 0x36, 0x09, 0xb9, 0xc8, 0xf8, 0xa0, 0x3f, 0x13, 0x26, 0x62, 0xf1, 0x34, 0x2a,
0xb4, 0x31, 0xaf, 0xec, 0xf4, 0xf1, 0xd3, 0x66, 0xb4, 0x93, 0x8b, 0x85, 0x8c, 0xf9, 0x85, 0x92, 0xb4, 0x30, 0x21, 0x2f, 0xcd, 0xf8, 0xc9, 0xb3, 0x7a, 0xb4, 0x95, 0x45, 0x33, 0x11, 0xf2, 0x4b,
0x97, 0x85, 0x2e, 0x2d, 0x67, 0x89, 0xce, 0xad, 0xcc, 0xb1, 0xec, 0x52, 0xa5, 0x76, 0x1e, 0xff, 0x29, 0xae, 0x72, 0x55, 0x18, 0xce, 0x62, 0x95, 0x19, 0x91, 0x61, 0xd9, 0x95, 0x4c, 0xcc, 0x34,
0xad, 0xd7, 0x5b, 0x2f, 0xdd, 0x99, 0x4a, 0xe5, 0x85, 0x4a, 0xe4, 0x63, 0xf7, 0x12, 0xaa, 0x5c, 0xfc, 0x5b, 0xa7, 0xb3, 0x5c, 0xba, 0x31, 0x95, 0x88, 0x4b, 0x19, 0x8b, 0x27, 0xf6, 0xc5, 0x97,
0x59, 0x25, 0xb2, 0xc7, 0x26, 0x11, 0x99, 0x8c, 0x0f, 0xc3, 0x85, 0xb8, 0x52, 0x8b, 0x6a, 0xb1, 0x99, 0x34, 0x32, 0x4a, 0x9f, 0xe8, 0x38, 0x4a, 0x45, 0xb8, 0xef, 0xcf, 0xa2, 0x6b, 0x39, 0x2b,
0x7e, 0xaf, 0x8c, 0x2c, 0xdd, 0x8b, 0x98, 0xe0, 0x3d, 0xd7, 0xfc, 0x06, 0xe7, 0xd1, 0xd0, 0x2a, 0x67, 0xcb, 0xf7, 0x52, 0x8b, 0xc2, 0xbe, 0x44, 0x23, 0xbc, 0x67, 0x8a, 0xdf, 0xe2, 0x3c, 0xe8,
0x9b, 0xc9, 0xd1, 0x87, 0x13, 0x36, 0x96, 0xd6, 0xaa, 0x7c, 0x66, 0x86, 0x07, 0x7e, 0x68, 0x68, 0x1b, 0x69, 0x52, 0x31, 0xf8, 0x78, 0xc2, 0x86, 0xc2, 0x18, 0x99, 0x4d, 0x74, 0x7f, 0xcf, 0x0d,
0x92, 0x52, 0x15, 0x76, 0xd4, 0xb9, 0x10, 0x25, 0xcb, 0x74, 0xa2, 0x8a, 0x86, 0xdf, 0x79, 0x6a, 0xf5, 0x75, 0x5c, 0xc8, 0xdc, 0x0c, 0x5a, 0x97, 0x51, 0xc1, 0x52, 0x15, 0xcb, 0xbc, 0xe6, 0x77,
0xd6, 0x8f, 0xc6, 0x6e, 0x1e, 0xab, 0xd0, 0xaa, 0x85, 0xd4, 0x95, 0x0d, 0xd3, 0x38, 0xd5, 0x49, 0x91, 0xe8, 0xe5, 0xa3, 0x36, 0xab, 0xc7, 0xd2, 0x37, 0x72, 0x26, 0x54, 0x69, 0xfc, 0x24, 0x4c,
0xb5, 0x80, 0xdc, 0x21, 0x76, 0xc6, 0x8f, 0x0e, 0xe9, 0xa7, 0x28, 0xb5, 0xd5, 0x31, 0x9f, 0x5b, 0x54, 0x5c, 0xce, 0x20, 0xb7, 0x8f, 0x9d, 0xe1, 0xa3, 0x7d, 0xfa, 0xc9, 0x0b, 0x65, 0x54, 0xc8,
0x5b, 0xf4, 0x79, 0x08, 0xab, 0xd8, 0x38, 0xaf, 0xb2, 0x2c, 0xcc, 0xe2, 0x65, 0xa2, 0x17, 0x45, 0xa7, 0xc6, 0xe4, 0x5d, 0xee, 0xc3, 0x2a, 0x26, 0xcc, 0xca, 0x34, 0xf5, 0xd3, 0x70, 0x1e, 0xab,
0x7f, 0x09, 0x31, 0x65, 0x66, 0xfa, 0x7c, 0x3c, 0xd7, 0x97, 0x6c, 0x52, 0x59, 0xab, 0x73, 0xe6, 0x59, 0xde, 0x9d, 0x43, 0x4c, 0x91, 0xea, 0x2e, 0x1f, 0x4e, 0xd5, 0x15, 0x1b, 0x95, 0xc6, 0xa8,
0xc7, 0x78, 0x98, 0xe8, 0x4c, 0x97, 0xa6, 0xbf, 0x3c, 0x7d, 0xfe, 0xe2, 0xd5, 0x69, 0x9f, 0x1f, 0x8c, 0xb9, 0x31, 0xee, 0xc7, 0x2a, 0x55, 0x85, 0xee, 0xce, 0x4f, 0x5f, 0x1c, 0xbd, 0x3a, 0xed,
0xd3, 0x2b, 0x33, 0x32, 0x93, 0x89, 0x55, 0x58, 0x06, 0x5b, 0xcd, 0x75, 0x8a, 0x75, 0x85, 0x4a, 0xf2, 0x63, 0x7a, 0x65, 0x5a, 0xa4, 0x22, 0x36, 0x12, 0xcb, 0x60, 0xab, 0xa9, 0x4a, 0xb0, 0x2e,
0x3e, 0xcb, 0xb2, 0x59, 0xf0, 0xf3, 0x5c, 0xca, 0x8c, 0x87, 0xe5, 0x6c, 0xd2, 0xe7, 0xef, 0x7f, 0x97, 0xf1, 0x57, 0x51, 0xd4, 0x0b, 0x3e, 0x4d, 0x85, 0x48, 0xb9, 0x5f, 0x4c, 0x46, 0x5d, 0xfe,
0x78, 0xc1, 0x4c, 0xa6, 0x52, 0x59, 0x62, 0xd9, 0xef, 0x15, 0xd6, 0xf5, 0xf9, 0x3f, 0xe9, 0x87, 0xe1, 0xf5, 0x11, 0xd3, 0xa9, 0x4c, 0x44, 0x81, 0x65, 0x7f, 0x96, 0x58, 0xd7, 0xe5, 0xff, 0xa4,
0x25, 0x2d, 0x62, 0x9a, 0x66, 0xe7, 0xf2, 0xaa, 0xcf, 0x5f, 0xbf, 0xfa, 0xa5, 0x9e, 0x51, 0x79, 0x1f, 0x16, 0x37, 0x88, 0x29, 0x9a, 0x9d, 0x8a, 0xeb, 0x2e, 0x7f, 0xf3, 0xea, 0xb7, 0x6a, 0x46,
0x51, 0x59, 0xbe, 0x0a, 0x8b, 0x64, 0x31, 0xd1, 0xb6, 0x91, 0x4f, 0x43, 0xbe, 0x05, 0xb3, 0x62, 0x66, 0x79, 0x69, 0xf8, 0xc2, 0xcf, 0xe3, 0xd9, 0x48, 0x99, 0x5a, 0x3e, 0x05, 0xf9, 0x66, 0xcc,
0xc2, 0x26, 0x82, 0xd6, 0xb0, 0x77, 0xc7, 0x6c, 0xa1, 0x53, 0x49, 0x32, 0xa4, 0xf5, 0xa2, 0xa2, 0x44, 0x23, 0x36, 0x8a, 0x68, 0x0d, 0x7b, 0x7f, 0xcc, 0x66, 0x2a, 0x11, 0x24, 0x43, 0x52, 0x2d,
0x94, 0xd0, 0x93, 0x9d, 0xbc, 0x34, 0xa4, 0xf0, 0x2c, 0x93, 0x39, 0x26, 0x30, 0x80, 0x67, 0x32, 0xca, 0x0b, 0x01, 0x3d, 0xd9, 0xc9, 0x4b, 0x4d, 0x0a, 0x4f, 0x52, 0x91, 0x61, 0x02, 0x03, 0x78,
0x0e, 0xc3, 0xc0, 0xcc, 0xce, 0xb1, 0xd9, 0x58, 0x8a, 0x1e, 0x3d, 0x65, 0xc6, 0xea, 0x82, 0x9d, 0x26, 0xe3, 0x30, 0x0c, 0x4c, 0xcc, 0x14, 0x9b, 0xb5, 0xa1, 0xe8, 0x51, 0x63, 0xa6, 0x8d, 0xca,
0xbe, 0x7a, 0xe9, 0xd6, 0x17, 0x97, 0xd0, 0xe4, 0x35, 0x44, 0x5e, 0x6f, 0x28, 0xf4, 0xa5, 0x2c, 0xd9, 0xe9, 0xab, 0x97, 0x76, 0x7d, 0x7e, 0x05, 0x4d, 0xde, 0x40, 0xe4, 0xe5, 0x86, 0x5c, 0x5d,
0xd9, 0x9e, 0x58, 0x14, 0x03, 0x36, 0x29, 0xd5, 0x6c, 0x6e, 0x73, 0x69, 0x3c, 0x71, 0x79, 0x05, 0x89, 0x82, 0xed, 0x44, 0xb3, 0xbc, 0xc7, 0x46, 0x85, 0x9c, 0x4c, 0x4d, 0x26, 0xb4, 0x23, 0x2e,
0xb3, 0x3e, 0xcf, 0x2e, 0xc5, 0xb5, 0x61, 0x78, 0x16, 0x79, 0xca, 0xa6, 0xaa, 0x34, 0x6b, 0x66, 0xae, 0x61, 0xd6, 0x17, 0xe9, 0x55, 0x74, 0xa3, 0x19, 0x9e, 0xa3, 0x2c, 0x61, 0x63, 0x59, 0xe8,
0xb0, 0xa1, 0x81, 0x71, 0x5f, 0xe5, 0x14, 0x0c, 0x2c, 0xa9, 0x0c, 0x89, 0x7f, 0x3c, 0x1e, 0x43, 0x25, 0x33, 0xd8, 0x50, 0xc3, 0xb8, 0xaf, 0x32, 0x0a, 0x06, 0x16, 0x97, 0x9a, 0xc4, 0x3f, 0x1e,
0xdd, 0x14, 0x7b, 0x76, 0x67, 0x5e, 0x6b, 0xd8, 0x8a, 0x68, 0x65, 0xca, 0x60, 0xef, 0xf4, 0x2a, 0x0e, 0xa1, 0x6e, 0x82, 0x3d, 0x9b, 0x33, 0x6f, 0x14, 0x6c, 0x45, 0xb4, 0x52, 0xa9, 0x49, 0x79,
0x95, 0xd3, 0x3e, 0xff, 0x60, 0x24, 0x93, 0xd3, 0x29, 0x0c, 0xc5, 0xf0, 0x2e, 0xaa, 0x0c, 0x22, 0x33, 0x15, 0x33, 0xd1, 0x9d, 0x47, 0x69, 0x3e, 0x8d, 0xba, 0xf3, 0xd1, 0xa4, 0xcb, 0x8f, 0xa2,
0x89, 0x12, 0x31, 0x65, 0x9d, 0x59, 0x8b, 0xab, 0xc5, 0x9a, 0xce, 0x3b, 0x75, 0x25, 0x33, 0xf6, 0xf8, 0xeb, 0xa4, 0x50, 0x25, 0x18, 0xa9, 0x3c, 0x8a, 0xa5, 0xb9, 0xe1, 0x3e, 0xcc, 0x81, 0x09,
0x46, 0xcc, 0x54, 0xc2, 0xce, 0xb4, 0xce, 0x60, 0x40, 0x3b, 0x97, 0x0b, 0xd9, 0x5f, 0x8a, 0xac, 0xe7, 0xba, 0x7a, 0x70, 0xe1, 0x63, 0xf5, 0xbc, 0x2c, 0x52, 0xcc, 0xbc, 0x66, 0x72, 0x16, 0x4d,
0x98, 0x8b, 0xfe, 0x72, 0x32, 0xeb, 0xf3, 0x17, 0x22, 0xf9, 0x3c, 0x2b, 0x75, 0x05, 0x61, 0x75, 0x04, 0xfb, 0xf8, 0xe1, 0x14, 0x6e, 0x81, 0x8c, 0x6a, 0x06, 0xcf, 0xd8, 0x5f, 0x56, 0x4f, 0x62,
0x21, 0x12, 0x65, 0xaf, 0x79, 0x08, 0x93, 0x62, 0xc2, 0xbb, 0xbf, 0x19, 0x5c, 0x85, 0x58, 0xbd, 0x83, 0xb5, 0x7b, 0xc5, 0xe5, 0x35, 0x5b, 0x7a, 0x82, 0x2f, 0x16, 0x8b, 0xde, 0xb8, 0xcc, 0x9c,
0xac, 0xca, 0x0c, 0x33, 0x3f, 0x30, 0xb5, 0x10, 0x33, 0xc9, 0x3e, 0xbc, 0x3f, 0x85, 0x6b, 0xa1, 0xcf, 0x27, 0x27, 0x49, 0x5b, 0x78, 0xf3, 0x42, 0x98, 0xb2, 0xc8, 0x58, 0x12, 0x4c, 0x84, 0x79,
0xa7, 0x06, 0xd3, 0xf7, 0xee, 0x97, 0x35, 0x93, 0xd8, 0xe0, 0x7c, 0x57, 0x73, 0xf9, 0x81, 0xad, 0x95, 0x0a, 0x52, 0xf5, 0xe8, 0xc6, 0x4e, 0x2d, 0x96, 0x4b, 0x8d, 0x9a, 0xc0, 0xf8, 0xb4, 0xda,
0xbd, 0xc9, 0x57, 0xab, 0xd5, 0x60, 0x5a, 0xe5, 0x3e, 0x6e, 0x66, 0x27, 0x69, 0x57, 0x06, 0xcb, 0x6d, 0x0a, 0xe2, 0x34, 0xd2, 0xfa, 0x14, 0x9a, 0x05, 0xd5, 0x14, 0x9f, 0xc2, 0xcc, 0xdc, 0xf3,
0x52, 0xda, 0xaa, 0xcc, 0x59, 0x1a, 0xcd, 0xa4, 0x7d, 0x95, 0x49, 0x32, 0xd7, 0x8b, 0x6b, 0x37, 0x69, 0x9e, 0xff, 0xaa, 0xf8, 0xee, 0x96, 0x45, 0x2b, 0xba, 0x52, 0xbf, 0x1b, 0x7d, 0x41, 0xd4,
0xb5, 0x5a, 0x2f, 0xb5, 0x7a, 0x06, 0x07, 0xd2, 0x6a, 0xbf, 0x29, 0x4a, 0x32, 0x61, 0xcc, 0x29, 0x34, 0xe4, 0x10, 0x3b, 0x3b, 0x5c, 0xd9, 0x41, 0x1e, 0x86, 0xe6, 0x26, 0x17, 0x70, 0x2a, 0xc6,
0xac, 0x13, 0xd5, 0x53, 0x7c, 0x0e, 0x57, 0xf1, 0x20, 0xa4, 0x79, 0xfe, 0x93, 0xe6, 0xfb, 0xf7, 0x1e, 0xbd, 0x28, 0x8a, 0xe8, 0x26, 0x90, 0xda, 0xfe, 0xae, 0x09, 0x87, 0x08, 0x69, 0x0b, 0x1f,
0x2c, 0xda, 0xd0, 0x55, 0xe6, 0xed, 0xe4, 0x37, 0x18, 0xb4, 0x25, 0x87, 0xdc, 0xdb, 0xe3, 0xda, 0xe7, 0xc8, 0x9b, 0x8f, 0x55, 0xd1, 0xa6, 0xe3, 0xa6, 0x42, 0xe3, 0x67, 0xa1, 0x08, 0x74, 0x9e,
0x0d, 0xf2, 0x38, 0xb6, 0xd7, 0x85, 0x44, 0x60, 0x60, 0xec, 0xd1, 0xf3, 0xb2, 0x14, 0xd7, 0x91, 0x4a, 0xd3, 0xe6, 0x17, 0x10, 0x2c, 0x0d, 0xb3, 0xc0, 0x85, 0x8b, 0xaf, 0xc3, 0x4e, 0x4f, 0xf7,
0x32, 0xee, 0x77, 0x4b, 0x38, 0x44, 0x59, 0x57, 0x86, 0x38, 0x8b, 0xc1, 0x72, 0xaa, 0xcb, 0x2e, 0xd3, 0x27, 0xfb, 0x3d, 0xbd, 0xbb, 0xeb, 0xcd, 0x69, 0x43, 0x14, 0x66, 0x9f, 0xf5, 0x79, 0x4f,
0x1d, 0x59, 0x1d, 0xdb, 0x30, 0x8f, 0x65, 0x64, 0x8a, 0x4c, 0xd9, 0x2e, 0x3f, 0x87, 0x60, 0x59, 0x7d, 0x8e, 0xce, 0xbf, 0x7d, 0x6b, 0xd3, 0x4f, 0x38, 0x5f, 0x78, 0xbe, 0x0a, 0xe9, 0x71, 0xa1,
0x9c, 0x47, 0x3e, 0xe4, 0x42, 0x13, 0xf7, 0x06, 0x66, 0x98, 0x3d, 0x3e, 0x1c, 0x98, 0xfd, 0xfd, 0x3e, 0x67, 0x9f, 0xb1, 0xfc, 0xfc, 0x3c, 0x94, 0x0d, 0xb6, 0x08, 0xd0, 0x33, 0x15, 0x69, 0xcb,
0x60, 0x49, 0x1b, 0x44, 0x9c, 0x7f, 0x34, 0x9f, 0x06, 0xfa, 0xa3, 0xf8, 0xf4, 0xc7, 0x1f, 0x5d, 0x1c, 0x47, 0xd4, 0x11, 0x92, 0xa1, 0xb5, 0x80, 0xa1, 0x09, 0xee, 0xf5, 0x64, 0x20, 0xb3, 0x4c,
0xfa, 0x89, 0x97, 0xab, 0x20, 0xd4, 0x31, 0x3d, 0xae, 0xf4, 0xc7, 0xfc, 0x23, 0x96, 0x7f, 0xfa, 0x14, 0x6f, 0xce, 0xde, 0x9e, 0x86, 0xc2, 0x97, 0x0d, 0x93, 0x44, 0x49, 0xd2, 0x36, 0x87, 0x5c,
0x14, 0xab, 0x16, 0x5b, 0x04, 0xf9, 0x99, 0x16, 0xc6, 0x31, 0xc7, 0x31, 0xf7, 0x84, 0x54, 0xec, 0x14, 0x05, 0xfc, 0xd2, 0xe5, 0x44, 0x0d, 0x52, 0xc6, 0xa9, 0x88, 0x8a, 0x33, 0x87, 0x02, 0xed,
0x2c, 0x60, 0x69, 0x82, 0x07, 0x03, 0x15, 0xa9, 0x3c, 0x97, 0xe5, 0xeb, 0xb3, 0x37, 0xa7, 0xb1, 0x0a, 0x0d, 0x3c, 0xec, 0xd3, 0xe6, 0x26, 0x15, 0x41, 0x94, 0xc1, 0xc1, 0xc4, 0x3c, 0xe4, 0x99,
0x0c, 0x55, 0xcb, 0x24, 0x22, 0x4d, 0xbb, 0xf6, 0x88, 0xcb, 0xb2, 0x84, 0x5f, 0xfa, 0x9c, 0xa8, 0xca, 0x70, 0x52, 0xaa, 0x15, 0x21, 0x4c, 0x50, 0x6f, 0x6a, 0xd7, 0x02, 0xb6, 0xbd, 0x79, 0x93,
0x41, 0xca, 0x24, 0x93, 0xa2, 0x3c, 0xf3, 0x48, 0xd2, 0xad, 0x11, 0x25, 0xc0, 0x3e, 0x63, 0xaf, 0x5f, 0x21, 0x66, 0xea, 0x12, 0x2e, 0x70, 0x8c, 0xa0, 0xdb, 0xc1, 0xf3, 0x4e, 0xa7, 0x61, 0x45,
0x33, 0x19, 0x89, 0x1c, 0x0e, 0x26, 0xe6, 0x31, 0xcf, 0x75, 0x8e, 0xd3, 0x56, 0xaf, 0x88, 0x61, 0xc8, 0xf3, 0x41, 0xc4, 0x56, 0x17, 0xce, 0xa1, 0x38, 0x41, 0x8b, 0x53, 0x09, 0xdc, 0x78, 0x8f,
0x82, 0x66, 0x53, 0xb7, 0x11, 0xb0, 0x1b, 0x2c, 0xdb, 0xfc, 0x4a, 0xb9, 0xd0, 0x17, 0x70, 0x81, 0x2c, 0x2b, 0xe9, 0x94, 0x0a, 0x37, 0x98, 0x86, 0x66, 0x97, 0xe4, 0xbf, 0x80, 0xec, 0xdc, 0xdb,
0x67, 0x04, 0xdd, 0x9e, 0x3c, 0xeb, 0xf5, 0x5a, 0x56, 0x84, 0x3c, 0xef, 0x65, 0xe2, 0x74, 0xe1, 0x95, 0x3d, 0x39, 0x6e, 0xaf, 0xbc, 0xf9, 0x59, 0x9e, 0x7b, 0x9e, 0xda, 0xd9, 0x51, 0x78, 0x70,
0x1c, 0x8a, 0x13, 0x3c, 0x79, 0x95, 0xc0, 0x8d, 0x0f, 0xc8, 0xb2, 0x8a, 0x4e, 0xba, 0xf4, 0x83, 0x7f, 0x03, 0x0b, 0x3c, 0x3b, 0x3b, 0xed, 0x6c, 0x37, 0xfc, 0xa3, 0x3f, 0x7d, 0x3a, 0xf8, 0x61,
0x59, 0x6c, 0xf7, 0x49, 0xfe, 0x73, 0xc8, 0xce, 0x83, 0x7d, 0x35, 0x50, 0xd3, 0xee, 0xc6, 0x9b, 0xbe, 0x1a, 0x5e, 0xf4, 0xf7, 0x30, 0xf2, 0x87, 0xe7, 0x63, 0xb2, 0x96, 0x03, 0x93, 0x7e, 0xea,
0x1f, 0xd5, 0xa7, 0x20, 0xd0, 0x7b, 0x7b, 0x1a, 0x0f, 0xfe, 0x6f, 0xe4, 0xc0, 0x6b, 0x6f, 0xaf, 0xab, 0x43, 0x5a, 0xd5, 0xb5, 0xc2, 0xf4, 0x00, 0x64, 0xc2, 0x32, 0xd7, 0x61, 0x4a, 0xfc, 0x2a,
0x9b, 0xef, 0xc7, 0xbf, 0x0e, 0xe7, 0xdf, 0x8e, 0xbe, 0x5e, 0x6e, 0x86, 0x57, 0xc3, 0x03, 0x8c, 0x06, 0x87, 0x3a, 0xb4, 0x8b, 0xb0, 0x65, 0x97, 0x5b, 0x7a, 0x1c, 0x4c, 0xdb, 0x3a, 0x6c, 0x0e,
0xfc, 0x1a, 0x84, 0x98, 0x6c, 0xe4, 0xc0, 0x64, 0x98, 0x85, 0xfa, 0x88, 0x56, 0xf5, 0x9d, 0x30, 0x90, 0x11, 0x65, 0x96, 0x88, 0xeb, 0x77, 0xe3, 0x76, 0x35, 0xe6, 0x0d, 0x3a, 0x1e, 0x65, 0x07,
0x03, 0x80, 0xa1, 0x74, 0xcc, 0x4d, 0x9c, 0x11, 0xbf, 0x9a, 0xc1, 0x91, 0x89, 0xdd, 0x22, 0x6c, 0x99, 0x95, 0xa2, 0xe7, 0x82, 0xa0, 0x8e, 0x37, 0x90, 0xeb, 0x91, 0x1f, 0x53, 0xef, 0xb0, 0xcd,
0xd9, 0xe7, 0x8e, 0x1e, 0x07, 0xd3, 0xae, 0x89, 0xdb, 0x03, 0x64, 0x44, 0x95, 0xa7, 0xf2, 0xea, 0x47, 0x4a, 0xc1, 0x2b, 0x19, 0xc2, 0x31, 0x8c, 0x0e, 0xdd, 0x68, 0x10, 0x4f, 0x05, 0x70, 0x32,
0xed, 0xb4, 0x5b, 0x8f, 0x05, 0xa3, 0x5e, 0x40, 0x19, 0x46, 0xe5, 0x95, 0x1c, 0xf8, 0x20, 0x68, 0x21, 0x16, 0xe7, 0xdd, 0x6a, 0xec, 0x32, 0x4a, 0x4b, 0x61, 0x47, 0xfc, 0x6a, 0x04, 0xf0, 0x75,
0xe2, 0x0d, 0xe4, 0x06, 0xe4, 0xc7, 0x2c, 0x38, 0xea, 0xf2, 0x09, 0x0e, 0xb0, 0x14, 0x39, 0xc2, 0x29, 0x55, 0xa9, 0xab, 0x63, 0x35, 0x94, 0xa3, 0x14, 0x19, 0x22, 0x80, 0x0f, 0xb1, 0x5f, 0xb7,
0x31, 0x16, 0x47, 0x7e, 0x34, 0x4a, 0xe6, 0x12, 0x58, 0x9b, 0x12, 0x8b, 0x4f, 0xfd, 0x7a, 0xec, 0x79, 0x90, 0x72, 0x0f, 0x92, 0x6e, 0x5f, 0xbd, 0x0a, 0x20, 0xed, 0x79, 0xdd, 0x75, 0x69, 0xc8,
0x42, 0x64, 0x95, 0x74, 0x23, 0x61, 0x3d, 0x02, 0x08, 0xbc, 0x50, 0xba, 0x32, 0xf5, 0xb1, 0x1a, 0x98, 0x3f, 0xcc, 0xf5, 0xa2, 0xcb, 0xfa, 0x16, 0x64, 0x99, 0xf5, 0x77, 0xc8, 0xa3, 0x89, 0x64,
0xab, 0x49, 0x86, 0x2c, 0x13, 0xc1, 0x87, 0xd8, 0x6f, 0xba, 0x3c, 0xca, 0x78, 0x00, 0x49, 0xef, 0xf1, 0x88, 0x33, 0xd2, 0x27, 0xe4, 0x56, 0xd8, 0x91, 0xba, 0xe6, 0x4c, 0x26, 0xe1, 0x0f, 0xf3,
0x5f, 0xbd, 0x09, 0x20, 0x13, 0x04, 0xfd, 0x6d, 0x69, 0xc8, 0x98, 0x5f, 0x2f, 0xcd, 0xaa, 0xcf, 0x74, 0xc1, 0x7e, 0x98, 0x93, 0x98, 0x87, 0xbc, 0x52, 0x83, 0x7c, 0xb8, 0x18, 0xf4, 0x47, 0xc5,
0x86, 0x0e, 0xa8, 0x99, 0xf3, 0x77, 0xcc, 0x01, 0x3c, 0x2c, 0x99, 0x70, 0x46, 0xfa, 0xc4, 0xdc, 0xe0, 0x8f, 0x2e, 0xcf, 0xca, 0xd9, 0x48, 0x14, 0x0f, 0xd2, 0xaf, 0x89, 0x57, 0xcb, 0x97, 0xa4,
0x09, 0x3b, 0xd1, 0x57, 0x9c, 0xa9, 0x34, 0xfe, 0x7a, 0x99, 0xad, 0xd8, 0xd7, 0x4b, 0x12, 0xf3, 0x9d, 0x15, 0x1c, 0x83, 0x25, 0x4d, 0x6d, 0x0a, 0xa8, 0x62, 0x69, 0x56, 0x21, 0x60, 0xa9, 0xd2,
0x88, 0xd7, 0x6a, 0x90, 0x0f, 0x57, 0xa3, 0xe1, 0xa4, 0x1c, 0xfd, 0xda, 0xe7, 0x79, 0xb5, 0x98, 0xec, 0x1d, 0x84, 0xb7, 0x90, 0xf2, 0x16, 0x8b, 0x0a, 0x27, 0xb2, 0x55, 0xe8, 0x4e, 0x44, 0xf6,
0xc8, 0xf2, 0x41, 0xfa, 0x0d, 0xf1, 0x7a, 0xf9, 0x9a, 0xb4, 0xb7, 0x82, 0x67, 0xb0, 0xa6, 0x69, 0xb3, 0x2a, 0x66, 0xed, 0x2a, 0x34, 0x4d, 0xcf, 0x2c, 0xa3, 0xc8, 0x47, 0x2c, 0xa7, 0x15, 0x2a,
0x6c, 0x09, 0x55, 0x1c, 0xcd, 0x3a, 0x04, 0x1c, 0x55, 0x9a, 0xbd, 0x85, 0xf0, 0x3d, 0xa4, 0x82, 0x61, 0x19, 0xf7, 0x1a, 0xe6, 0x34, 0x2b, 0x0a, 0xaf, 0x85, 0x39, 0x1d, 0xe2, 0xc0, 0xb4, 0x6d,
0xd5, 0xaa, 0xc6, 0x89, 0x7c, 0x13, 0xba, 0x33, 0x99, 0x7f, 0xaf, 0xcb, 0x45, 0xb7, 0x0e, 0x4d, 0x56, 0x45, 0xae, 0x8d, 0xd2, 0x21, 0x52, 0x19, 0xc0, 0x94, 0x50, 0xf1, 0xc4, 0x88, 0x59, 0x9b,
0x3b, 0xb0, 0xeb, 0x28, 0x0a, 0x11, 0xcb, 0x59, 0x8d, 0x4a, 0x58, 0xc6, 0x83, 0x96, 0x39, 0xed, 0x5f, 0xa5, 0x22, 0xf9, 0x28, 0x8f, 0xc7, 0x13, 0xee, 0x79, 0xc0, 0x08, 0x4b, 0x12, 0x01, 0x59,
0x86, 0xc2, 0x0f, 0xd2, 0x9e, 0x8e, 0x71, 0x60, 0xba, 0x2e, 0x33, 0x23, 0x5f, 0x8b, 0x6c, 0x8c, 0x14, 0x20, 0xea, 0x8e, 0x67, 0x22, 0x81, 0x37, 0xd1, 0x4d, 0xc8, 0x65, 0x06, 0xcf, 0x01, 0xe8,
0x74, 0x08, 0x30, 0x25, 0x54, 0x3c, 0xb1, 0x72, 0xd1, 0xe5, 0x97, 0x99, 0x4c, 0x3f, 0xa8, 0xe3, 0x7a, 0xa6, 0xb8, 0x99, 0x5b, 0x92, 0xbf, 0x0c, 0xdf, 0xfd, 0x1a, 0xe4, 0x54, 0xcb, 0x58, 0x16,
0xe9, 0x8c, 0x07, 0x01, 0x30, 0xc2, 0x91, 0x44, 0x40, 0x96, 0x25, 0x88, 0xfa, 0xe3, 0x99, 0x2a, 0xde, 0x22, 0xa6, 0x18, 0x20, 0x89, 0xed, 0xf4, 0x7c, 0xe1, 0x7f, 0x07, 0xbd, 0xf5, 0x35, 0x2b,
0xe0, 0x8d, 0xb8, 0x8e, 0xb9, 0xca, 0xe1, 0x39, 0x00, 0xdd, 0xc0, 0x96, 0xd7, 0x4b, 0x47, 0xf2, 0x45, 0xf8, 0xce, 0xe3, 0xe7, 0xcf, 0x9e, 0x3d, 0xeb, 0x2d, 0x4b, 0x10, 0x46, 0xec, 0x18, 0xb1,
0xc7, 0xf1, 0xdb, 0x9f, 0xa2, 0x82, 0xea, 0x21, 0xc7, 0x22, 0x58, 0x25, 0x14, 0x03, 0x24, 0xb1, 0xc3, 0x1b, 0x1b, 0x47, 0x12, 0xa2, 0x07, 0xac, 0x0d, 0x50, 0xde, 0xe5, 0x1e, 0x5f, 0xd4, 0xf6,
0x9b, 0x5e, 0xae, 0xc2, 0x2f, 0xa0, 0xb7, 0xbd, 0x66, 0xa3, 0x08, 0xdf, 0xfb, 0xea, 0xd9, 0xd3, 0xb2, 0x92, 0x38, 0xa2, 0xc9, 0x8c, 0xaf, 0x82, 0x9a, 0xa7, 0x94, 0x18, 0xc9, 0x5b, 0x0e, 0xcb,
0xa7, 0x4f, 0x07, 0xeb, 0x32, 0x86, 0x11, 0x3b, 0x4a, 0x4e, 0x06, 0x6f, 0x6c, 0x2a, 0x14, 0x44, 0x28, 0x73, 0x5d, 0x8c, 0x22, 0x0d, 0x8d, 0x5c, 0x90, 0xaf, 0x0c, 0x37, 0xac, 0x0c, 0x57, 0x03,
0x8f, 0x58, 0x17, 0xa0, 0xbc, 0xcf, 0x03, 0xbe, 0x6a, 0xec, 0xe5, 0x24, 0xf1, 0x44, 0xd3, 0x05, 0xaf, 0x08, 0x93, 0xe0, 0xcf, 0x52, 0x14, 0x37, 0xc3, 0xaa, 0x1a, 0x78, 0x91, 0xa6, 0x88, 0x73,
0xdf, 0x04, 0x35, 0xcf, 0x28, 0xb9, 0x92, 0xb7, 0x3c, 0x96, 0x51, 0xe6, 0x3a, 0x9f, 0x08, 0x03, 0x72, 0xab, 0x07, 0x64, 0xe9, 0xf4, 0x4c, 0x5f, 0x54, 0x30, 0xdc, 0x33, 0x35, 0xf8, 0x4a, 0x1c,
0x8d, 0x7c, 0x90, 0x6f, 0x0c, 0x37, 0xae, 0x0d, 0xd7, 0x00, 0xaf, 0x8c, 0xd3, 0xe8, 0xf7, 0x4a, 0x1a, 0x73, 0x0e, 0xcc, 0x69, 0xe2, 0x15, 0x9d, 0xcc, 0x08, 0x89, 0xbd, 0xcd, 0x11, 0xc8, 0xde,
0x96, 0xd7, 0xe3, 0xba, 0xa2, 0x78, 0x9e, 0x65, 0x88, 0x73, 0x72, 0x6b, 0x00, 0x64, 0xe9, 0x0d, 0xa1, 0xac, 0xa5, 0xeb, 0x4a, 0x27, 0x43, 0x8f, 0x60, 0x1f, 0x67, 0x3a, 0xb1, 0x95, 0x90, 0xaf,
0xec, 0x50, 0xd6, 0x30, 0x3c, 0xb0, 0x0d, 0xf8, 0x2a, 0x1c, 0x1a, 0xfb, 0x09, 0x98, 0xd3, 0xc6, 0x80, 0x9d, 0x2a, 0xd3, 0x38, 0x1b, 0x41, 0xaa, 0x26, 0x6d, 0xc4, 0x17, 0xcd, 0x2d, 0x28, 0x39,
0x2b, 0x3a, 0x99, 0x02, 0xc5, 0x41, 0x97, 0x23, 0x90, 0x83, 0x23, 0xd5, 0x48, 0xd7, 0x57, 0x5e, 0x20, 0x7b, 0x21, 0xe0, 0xd5, 0x02, 0xc1, 0x43, 0xfe, 0x58, 0xf3, 0xae, 0xbe, 0xed, 0x5d, 0xdf,
0x86, 0x01, 0xc1, 0x3e, 0xce, 0x74, 0xea, 0xaa, 0xa9, 0x50, 0x03, 0x3b, 0x75, 0x6e, 0x70, 0x36, 0xfa, 0xca, 0x45, 0xac, 0x1c, 0xdf, 0x38, 0x2b, 0x79, 0xb5, 0xed, 0x75, 0x19, 0xdf, 0xeb, 0x9f,
0xa2, 0x4c, 0xcf, 0xba, 0x88, 0x2f, 0x9a, 0x5b, 0x51, 0x72, 0x40, 0xf6, 0x42, 0xc0, 0xeb, 0x15, 0xca, 0xa9, 0xd2, 0x65, 0xc9, 0xfb, 0x16, 0x3b, 0xe4, 0xfe, 0xff, 0xbb, 0x5b, 0x47, 0x97, 0x1b,
0x82, 0x87, 0xfc, 0xb1, 0xe5, 0x5d, 0x73, 0xd3, 0xbb, 0xa1, 0xf3, 0x95, 0x8f, 0x58, 0x35, 0xbd, 0xde, 0x96, 0xd6, 0xdb, 0x2b, 0x67, 0xc5, 0xd6, 0x55, 0x6b, 0xfa, 0xbb, 0xac, 0xb0, 0x32, 0xc1,
0xf6, 0x56, 0x0a, 0x1a, 0xdb, 0x9b, 0x2a, 0xb9, 0xd3, 0x3f, 0xb5, 0x53, 0x95, 0xcf, 0x92, 0x77, 0x7b, 0xca, 0x94, 0x5b, 0x17, 0xcc, 0xcc, 0x83, 0x4b, 0xa2, 0xf4, 0x1a, 0x6b, 0x56, 0xf9, 0x91,
0x2d, 0xf6, 0xc8, 0xfd, 0xff, 0x77, 0xb7, 0x11, 0x17, 0x3b, 0xde, 0x56, 0xce, 0xdb, 0x1b, 0x67, 0x1f, 0x53, 0x56, 0x83, 0x50, 0xcd, 0xd4, 0x3f, 0x8c, 0x90, 0x8d, 0xbc, 0x79, 0x15, 0x40, 0x7e,
0x25, 0xce, 0x55, 0x5b, 0xfa, 0xfb, 0xac, 0xb0, 0x31, 0xc1, 0x3b, 0xca, 0x94, 0xf7, 0x2e, 0x58, 0x12, 0x0c, 0xc7, 0xc1, 0xcb, 0x61, 0x05, 0xa2, 0xe1, 0xaa, 0x52, 0xde, 0xd9, 0xb1, 0x53, 0xc3,
0xd8, 0x07, 0x97, 0x88, 0xec, 0x0a, 0x6b, 0x36, 0xf9, 0x91, 0x1f, 0x53, 0x56, 0x83, 0x50, 0xed, 0xb3, 0x65, 0x78, 0x86, 0xab, 0xda, 0xb9, 0x9e, 0xfc, 0x78, 0xc7, 0x64, 0xf9, 0xed, 0x9b, 0x9d,
0xd4, 0x3f, 0x16, 0xc8, 0x46, 0xc1, 0xb2, 0x0e, 0xa0, 0x30, 0x8d, 0xc6, 0xd3, 0xe8, 0xe5, 0xb8, 0xd4, 0xe5, 0x68, 0x86, 0x22, 0xa0, 0xc1, 0x3a, 0x55, 0x51, 0xf2, 0xcb, 0xd0, 0xa5, 0xed, 0x0e,
0x06, 0xd1, 0x78, 0x53, 0x6d, 0xef, 0xed, 0xb9, 0xa9, 0xf1, 0xd9, 0x3a, 0x3c, 0xe3, 0x4d, 0xfd, 0x0c, 0x82, 0x10, 0x91, 0x88, 0xdb, 0xb8, 0x10, 0x91, 0x11, 0x15, 0xfa, 0x22, 0x51, 0xda, 0xf2,
0xdd, 0x4c, 0x7e, 0xb8, 0x65, 0xb2, 0xfa, 0xe3, 0x0f, 0x37, 0x69, 0xaa, 0xc9, 0x02, 0x45, 0x40, 0xdd, 0xe6, 0x70, 0x84, 0xc0, 0x0b, 0x83, 0x80, 0x40, 0x4d, 0x4d, 0x19, 0xb4, 0x88, 0xb9, 0x2f,
0x8b, 0x75, 0xa6, 0x45, 0xfa, 0xe3, 0xd8, 0xa7, 0xed, 0x1e, 0x0c, 0x82, 0x10, 0x51, 0x88, 0xdb, 0x6c, 0x56, 0x5e, 0x1b, 0x27, 0x3c, 0xe4, 0x3e, 0x37, 0xe2, 0xda, 0xec, 0x7d, 0x89, 0x2e, 0xa3,
0xa4, 0x94, 0xc2, 0xca, 0x1a, 0x7d, 0x91, 0x28, 0x5d, 0x0b, 0xe0, 0x72, 0x38, 0x42, 0xe0, 0xb9, 0x9a, 0xc0, 0xad, 0x85, 0x91, 0xbe, 0xc9, 0x40, 0xc2, 0x90, 0xd6, 0x23, 0x95, 0xdc, 0x04, 0x51,
0x45, 0x40, 0xa0, 0x2e, 0xa7, 0x0c, 0x5a, 0x26, 0x3c, 0x94, 0x2e, 0x2b, 0x6f, 0x8d, 0x13, 0x1e, 0x9e, 0x8b, 0x2c, 0x39, 0x9e, 0xca, 0x34, 0x41, 0xf4, 0x60, 0x3d, 0xe0, 0xeb, 0xd5, 0x25, 0xa4,
0xf2, 0x90, 0x5b, 0x79, 0x65, 0x0f, 0x7e, 0x13, 0x17, 0xa2, 0x21, 0x70, 0x63, 0xa1, 0x30, 0xd7, 0xa0, 0x93, 0x20, 0xe0, 0x77, 0x84, 0x01, 0x64, 0xe6, 0x7e, 0xdb, 0x0b, 0x07, 0x73, 0x80, 0xd5,
0x39, 0x48, 0x58, 0xd2, 0x7a, 0xa2, 0xd3, 0xeb, 0x48, 0x14, 0x85, 0xcc, 0xd3, 0xe3, 0xb9, 0xca, 0xbf, 0x60, 0xb1, 0x95, 0x89, 0xc2, 0x35, 0xe3, 0x35, 0x5a, 0x8b, 0x70, 0xc3, 0x74, 0x8d, 0x56,
0x52, 0x44, 0x0f, 0xd6, 0x03, 0xbe, 0x5e, 0x5d, 0x40, 0x0a, 0x3a, 0x09, 0x12, 0x7e, 0x47, 0x18, 0x23, 0xdc, 0x30, 0x9c, 0x5f, 0x41, 0xe0, 0xe2, 0x6e, 0xf6, 0xae, 0x4c, 0xf1, 0x05, 0xd8, 0x37,
0x40, 0x66, 0x1e, 0x76, 0x83, 0x78, 0xb4, 0x04, 0x58, 0xfd, 0x0b, 0x16, 0xdb, 0x98, 0x28, 0xde, 0x8f, 0x19, 0x7f, 0x45, 0xe3, 0xac, 0xb2, 0xa9, 0x0d, 0x3f, 0x44, 0x9f, 0xb5, 0x0e, 0x3a, 0xa8,
0x32, 0x5e, 0xab, 0x3d, 0x89, 0x77, 0x4c, 0xd7, 0x6a, 0x57, 0xe2, 0x1d, 0xc3, 0x85, 0x35, 0x04, 0x02, 0x56, 0x3c, 0xad, 0xc6, 0x91, 0x55, 0xb1, 0x71, 0x2c, 0x27, 0x65, 0x11, 0xb9, 0xf2, 0xc9,
0xae, 0x6e, 0x67, 0xef, 0xcb, 0x94, 0x50, 0x82, 0x7d, 0xfb, 0x98, 0xf1, 0x57, 0x34, 0xce, 0x6a, 0x5a, 0xa7, 0x0e, 0xd7, 0x7f, 0x67, 0x27, 0x19, 0x35, 0x31, 0xf0, 0x85, 0x00, 0x70, 0xa1, 0xc2,
0x9b, 0xba, 0xf0, 0x43, 0xf4, 0x39, 0xeb, 0xa0, 0x0b, 0x2b, 0x61, 0xc5, 0xd3, 0x7a, 0x1c, 0x59, 0x4d, 0x22, 0x13, 0x3d, 0xa2, 0x42, 0xa5, 0x11, 0x32, 0x6d, 0xe7, 0x2c, 0x11, 0x5e, 0x21, 0x95,
0x15, 0x1b, 0xa7, 0x6a, 0x56, 0x95, 0xc2, 0x97, 0x4f, 0xce, 0x3a, 0x4d, 0xb8, 0xfe, 0x27, 0x3f, 0xab, 0xab, 0x80, 0xc2, 0x90, 0x66, 0xa8, 0x18, 0xe0, 0xc4, 0xb9, 0x0b, 0xd0, 0x12, 0x81, 0x6d,
0xc9, 0xa9, 0x11, 0x82, 0x2f, 0x24, 0x80, 0x0b, 0x15, 0x6e, 0x2a, 0xac, 0x78, 0x44, 0x85, 0x4a, 0x94, 0x50, 0xf0, 0x7a, 0xb6, 0x77, 0xea, 0xf8, 0x6d, 0xdb, 0x7d, 0xdd, 0x03, 0xeb, 0x18, 0x3d,
0x2b, 0x64, 0xba, 0xde, 0x59, 0x32, 0xbe, 0x44, 0x2a, 0xd7, 0x97, 0x11, 0x85, 0x21, 0xcd, 0x50, 0xc9, 0x1d, 0xa4, 0xbb, 0x65, 0xd8, 0x3d, 0xcb, 0x21, 0xf9, 0xcf, 0xa0, 0xc7, 0xde, 0xa2, 0x21,
0x31, 0xc0, 0x89, 0x73, 0x1f, 0xa0, 0x25, 0x23, 0xd7, 0x6c, 0xa1, 0xe0, 0x0d, 0x5c, 0xff, 0xd5, 0x09, 0xd8, 0x7b, 0xc4, 0xaf, 0x16, 0x0c, 0x16, 0x41, 0xf3, 0xf0, 0x09, 0xdd, 0x05, 0x3b, 0x79,
0x0b, 0xbb, 0xae, 0x83, 0xbb, 0x03, 0xd6, 0x31, 0x7a, 0x52, 0x78, 0x48, 0xf7, 0xcb, 0xb0, 0x7b, 0xff, 0x68, 0xf3, 0x18, 0xe8, 0x75, 0x8a, 0xbe, 0xa5, 0xe6, 0x55, 0x55, 0x0b, 0x89, 0x6d, 0x48,
0x51, 0x40, 0xf2, 0xef, 0x41, 0x8f, 0xbd, 0x41, 0x53, 0x13, 0xb1, 0x77, 0x88, 0x5f, 0x2a, 0xfe, 0xb4, 0xc8, 0x4c, 0xa9, 0x85, 0xf4, 0x65, 0x68, 0x02, 0x74, 0x53, 0xb1, 0x68, 0xef, 0xfb, 0x26,
0xd1, 0x8d, 0xa2, 0xaf, 0x42, 0x87, 0xc2, 0x4e, 0xde, 0x3d, 0xda, 0x3d, 0x06, 0x66, 0x9b, 0x62, 0x80, 0xf7, 0xf5, 0x27, 0x69, 0xa6, 0x6d, 0xbe, 0x07, 0xac, 0x7b, 0xb2, 0xdf, 0xbd, 0x54, 0x32,
0xe8, 0xa8, 0x05, 0x75, 0xd5, 0x42, 0x62, 0x5b, 0x12, 0x4d, 0xd8, 0x39, 0xb5, 0xa1, 0xa1, 0x8a, 0x61, 0x1d, 0xaf, 0x2e, 0x60, 0xf7, 0x6c, 0x18, 0x3a, 0xdc, 0x1c, 0x1c, 0x20, 0x85, 0x2e, 0xdb,
0x6d, 0x84, 0x8e, 0x2c, 0x91, 0xdd, 0xc3, 0xd0, 0x46, 0xf0, 0xbe, 0xf9, 0x59, 0xd9, 0x79, 0x97, 0xc1, 0x95, 0xb6, 0x7e, 0xa5, 0xad, 0xd3, 0x42, 0x04, 0x53, 0xa5, 0x0d, 0xb1, 0xda, 0x6d, 0x63,
0x1f, 0x00, 0xeb, 0x1e, 0x1f, 0xf6, 0x2f, 0xb4, 0x4a, 0x59, 0x2f, 0x68, 0x0a, 0xd8, 0x03, 0x17, 0x0d, 0x7a, 0xd5, 0x43, 0x64, 0xf9, 0x5d, 0xf7, 0x68, 0x4b, 0x36, 0x10, 0xdd, 0x95, 0x9f, 0x3b,
0x86, 0x1e, 0x37, 0x47, 0x4f, 0x90, 0x42, 0xd7, 0x2d, 0xe5, 0x46, 0xdb, 0xb0, 0xd6, 0xd6, 0x6b, 0xe7, 0xde, 0xa2, 0x3a, 0x0f, 0x30, 0x09, 0xda, 0x0a, 0x30, 0xd3, 0x15, 0xae, 0xec, 0xe9, 0xe0,
0x21, 0xa3, 0xb9, 0x36, 0x96, 0x58, 0xed, 0x77, 0xb1, 0x06, 0xfd, 0xee, 0x11, 0xb2, 0xfc, 0xbe, 0x8b, 0x3e, 0xcc, 0xc3, 0xa7, 0x50, 0x15, 0xf5, 0x2d, 0x51, 0x06, 0x6b, 0x1b, 0x38, 0x91, 0xf5,
0x7f, 0x74, 0x25, 0x1b, 0x88, 0xee, 0xab, 0x8f, 0xbd, 0x4f, 0xc1, 0xaa, 0x3e, 0x0f, 0x30, 0x09, 0x48, 0x78, 0x7b, 0x4b, 0x09, 0xa0, 0xf7, 0x9a, 0xa9, 0xd9, 0x2e, 0x58, 0x96, 0xf7, 0x24, 0xf8,
0xda, 0x0a, 0x30, 0x33, 0x35, 0xae, 0x1c, 0x98, 0xe8, 0x37, 0x73, 0x54, 0xc4, 0xdf, 0x42, 0x55, 0x61, 0x2d, 0x3c, 0x44, 0x80, 0x0c, 0x56, 0x5e, 0x2b, 0x51, 0x23, 0xaf, 0xbc, 0x81, 0xab, 0x2b,
0xd4, 0xb7, 0x44, 0x19, 0xac, 0x5d, 0xe0, 0x08, 0xe7, 0x91, 0xf8, 0xe6, 0x96, 0x0a, 0x40, 0x1f, 0x27, 0x2b, 0x9c, 0x8d, 0xb6, 0xed, 0x7a, 0x75, 0x77, 0x6f, 0xef, 0x6b, 0xa6, 0x02, 0x02, 0x19,
0xb4, 0x53, 0xb3, 0x5b, 0xb0, 0x2e, 0xef, 0x49, 0xf0, 0xa3, 0x46, 0x78, 0x88, 0x00, 0x19, 0x9c, 0x38, 0x70, 0x6f, 0x8c, 0xf3, 0x5a, 0xa2, 0x43, 0x5c, 0x71, 0x7f, 0x6c, 0x3b, 0x76, 0x49, 0x7e,
0xbc, 0x4e, 0xa2, 0x56, 0x5e, 0x79, 0x0d, 0x57, 0xd7, 0x4e, 0xd6, 0x38, 0x1b, 0x5d, 0xd7, 0x39, 0x1a, 0x47, 0x68, 0xf3, 0xeb, 0x89, 0x26, 0xf0, 0x1c, 0x6d, 0x90, 0xbe, 0xa5, 0x03, 0xb4, 0xe5,
0x9b, 0xfe, 0xc1, 0xc1, 0xe7, 0x5c, 0x47, 0x04, 0x32, 0x70, 0xe0, 0xc1, 0x14, 0xe7, 0xb5, 0x42, 0x17, 0xe8, 0x66, 0xc7, 0xcd, 0x5d, 0x1f, 0x4f, 0xda, 0x15, 0xac, 0xcb, 0x04, 0x99, 0x69, 0x0a,
0x97, 0xb9, 0xe1, 0xfe, 0x95, 0xeb, 0xfa, 0x15, 0xf9, 0x69, 0x2a, 0x12, 0xf9, 0xb8, 0x99, 0x68, 0xa4, 0xb8, 0x51, 0xe5, 0x2d, 0xec, 0xbe, 0x95, 0x4c, 0x0f, 0x6b, 0x34, 0xef, 0x3a, 0xe0, 0xef,
0x03, 0xcf, 0x8b, 0x1d, 0xd2, 0x37, 0x74, 0x80, 0xb6, 0xfc, 0x1c, 0x1d, 0xf1, 0xb4, 0xbd, 0xeb, 0xb9, 0x2c, 0x79, 0x2b, 0xb1, 0xf6, 0xd0, 0xe3, 0xc0, 0x51, 0x0e, 0xfe, 0xee, 0xa0, 0xe2, 0x52,
0xc3, 0x49, 0xb7, 0x86, 0x75, 0x95, 0x22, 0x33, 0xcd, 0x81, 0x14, 0xd7, 0xba, 0xba, 0x81, 0xdd, 0x72, 0x97, 0x27, 0x51, 0xf1, 0x95, 0xaf, 0x37, 0x3f, 0xae, 0xfd, 0x3b, 0x9a, 0xd4, 0x02, 0x56,
0x37, 0x92, 0xe9, 0x51, 0x83, 0xe6, 0x7d, 0x0f, 0xfc, 0x03, 0x9f, 0x25, 0x6f, 0x24, 0xd6, 0x01, 0x64, 0x27, 0x17, 0xae, 0x3f, 0x6c, 0x50, 0x59, 0x9f, 0x46, 0x47, 0x59, 0x27, 0xf4, 0x70, 0x69,
0x7a, 0x1c, 0x38, 0xca, 0xc3, 0xdf, 0x2d, 0x54, 0x7c, 0x4a, 0xee, 0xf3, 0x54, 0x94, 0x9f, 0xf9, 0x5f, 0xf4, 0xff, 0xba, 0x9c, 0x05, 0xf9, 0x14, 0xfe, 0xd1, 0x7b, 0xfb, 0xcf, 0x0f, 0x3a, 0x7b,
0x76, 0xf3, 0xe3, 0xdb, 0xbf, 0x17, 0xb3, 0x46, 0xc0, 0x9a, 0xec, 0xec, 0xdc, 0xf7, 0x87, 0x2d, 0xfb, 0x9d, 0x67, 0x1d, 0xde, 0xdd, 0xb2, 0x97, 0x37, 0x52, 0x0c, 0x71, 0x6a, 0x08, 0xf4, 0x20,
0x2a, 0xdb, 0xd3, 0xe8, 0x28, 0x9b, 0x84, 0x1e, 0xaf, 0xed, 0x5b, 0xa8, 0xc4, 0x54, 0x8b, 0xa8, 0xdd, 0x8d, 0x22, 0x63, 0x8d, 0xf2, 0xe1, 0x76, 0x75, 0x10, 0xec, 0xdd, 0x87, 0x56, 0xec, 0xaf,
0x98, 0xc3, 0x3f, 0xe6, 0xe0, 0xf0, 0xd9, 0x93, 0xde, 0xc1, 0x61, 0xef, 0x69, 0x8f, 0xf7, 0xef, 0x44, 0x2b, 0x73, 0x8a, 0x73, 0x3a, 0xd5, 0x84, 0xfc, 0x75, 0xe5, 0x91, 0x89, 0x2b, 0xf6, 0xdb,
0xd9, 0xcb, 0x5b, 0x29, 0x86, 0x38, 0xb5, 0x04, 0x7a, 0x90, 0xee, 0x4e, 0x91, 0xb1, 0x45, 0xf9, 0xdb, 0xd3, 0x37, 0x10, 0xf3, 0x83, 0x40, 0xe5, 0xa2, 0x4d, 0x6f, 0x0b, 0xfc, 0x36, 0x7a, 0xab,
0xe8, 0x7e, 0x75, 0x10, 0xec, 0xfd, 0x87, 0x56, 0x1c, 0x6e, 0x44, 0xab, 0x0a, 0x8a, 0x73, 0x3a, 0x55, 0x7a, 0x33, 0x53, 0xa9, 0x91, 0x04, 0x75, 0x0e, 0x60, 0x14, 0x67, 0x40, 0x7f, 0xdf, 0x8e,
0xd5, 0x84, 0xfc, 0x4d, 0xe5, 0x91, 0xcb, 0x4b, 0xf6, 0xcb, 0x9b, 0xd3, 0xd7, 0x10, 0xf3, 0xbd, 0x68, 0x83, 0xe8, 0xd4, 0x83, 0xf0, 0x27, 0x6a, 0xb3, 0xbc, 0xad, 0xb0, 0xba, 0xa2, 0x2b, 0x9a,
0x44, 0xe5, 0x62, 0xec, 0xe0, 0x1e, 0xf8, 0x6d, 0xf5, 0x56, 0x9b, 0xf4, 0x66, 0xe7, 0xca, 0x20, 0x84, 0x05, 0xd1, 0x88, 0xbf, 0xfa, 0x8f, 0x6a, 0x02, 0xee, 0x28, 0xbc, 0x7f, 0x37, 0x3c, 0x43,
0x09, 0x9a, 0x02, 0xc0, 0x28, 0xcf, 0x80, 0xfe, 0xa1, 0x1b, 0x31, 0x16, 0xd1, 0x69, 0x46, 0xf1, 0x9e, 0xd9, 0x73, 0x0a, 0x21, 0x74, 0x5c, 0xc7, 0x4b, 0x9a, 0x50, 0x59, 0xf7, 0x12, 0xc0, 0xd9,
0x77, 0xd4, 0x66, 0x05, 0xf7, 0xc2, 0xea, 0x86, 0xae, 0x6c, 0x13, 0x96, 0x44, 0x23, 0xf9, 0x1c, 0xab, 0x8a, 0x64, 0x55, 0xa5, 0x16, 0x44, 0x13, 0x46, 0x81, 0xcb, 0x01, 0xa1, 0xa4, 0xc6, 0xa9,
0x3e, 0x6a, 0x08, 0xf8, 0xa3, 0xf0, 0xee, 0xed, 0xf8, 0x0c, 0x79, 0xe6, 0xc0, 0x2b, 0x84, 0xd0, 0xf7, 0x5d, 0x5b, 0x49, 0x73, 0x28, 0x9d, 0xc4, 0xd2, 0x95, 0x38, 0xe8, 0x8b, 0x56, 0x7f, 0xaf,
0xf1, 0x1d, 0x2f, 0x69, 0x42, 0x65, 0xdd, 0x4b, 0x00, 0xe7, 0xa0, 0x2e, 0x92, 0x75, 0x9d, 0x5a, 0xba, 0xbb, 0xea, 0xdb, 0xe8, 0x1e, 0xfc, 0x43, 0xce, 0x08, 0x36, 0x18, 0x7c, 0x83, 0xf4, 0x67,
0x10, 0x4d, 0x18, 0x05, 0x2e, 0x47, 0x84, 0x92, 0x06, 0xa7, 0x3e, 0xf4, 0x6d, 0x25, 0xcd, 0xa1, 0x03, 0x3e, 0xd6, 0x38, 0x27, 0x3d, 0x2c, 0xb4, 0x0b, 0xd0, 0xbf, 0x89, 0x28, 0x41, 0x89, 0x8e,
0x74, 0x92, 0x6b, 0x57, 0xe2, 0xa0, 0xaf, 0x3a, 0xc3, 0x83, 0xfa, 0xfe, 0x6b, 0xe8, 0xa2, 0x7b, 0x6c, 0x86, 0x6c, 0x40, 0x72, 0x85, 0x1c, 0x70, 0xcd, 0x07, 0x7d, 0x54, 0x86, 0xb3, 0x16, 0x95,
0xf4, 0x0f, 0xb5, 0x20, 0xd8, 0x60, 0xf0, 0x0d, 0xd2, 0x9f, 0x0b, 0xf8, 0xc4, 0xe0, 0x9c, 0x0c, 0xf4, 0x9c, 0x9e, 0x2e, 0x34, 0x67, 0xee, 0x0a, 0x6d, 0x38, 0xe6, 0xd5, 0xad, 0x53, 0xc8, 0x73,
0xb0, 0xd0, 0x2d, 0x40, 0xff, 0x26, 0x45, 0x8a, 0x12, 0x1d, 0xd9, 0x0c, 0xd9, 0x80, 0xe4, 0x8a, 0x40, 0x15, 0x96, 0x26, 0xf2, 0xb2, 0xee, 0x03, 0x8c, 0x02, 0x42, 0x5c, 0xad, 0x8f, 0x4d, 0x45,
0x39, 0xe0, 0x9a, 0x8f, 0x86, 0xa8, 0x0c, 0x17, 0x1d, 0x2a, 0xe9, 0x39, 0x3d, 0x9d, 0x1b, 0xce, 0x9a, 0x1f, 0xf1, 0x41, 0xab, 0x5f, 0x5d, 0x6d, 0xb9, 0xfe, 0xc3, 0xbd, 0x70, 0x70, 0x8d, 0x01,
0xfc, 0x35, 0xdc, 0x78, 0xca, 0xeb, 0x9b, 0xab, 0x98, 0x17, 0x80, 0x2a, 0x2c, 0x4d, 0xd5, 0x45, 0xa7, 0x5f, 0x43, 0xfe, 0x86, 0xd8, 0x1e, 0xf6, 0xf7, 0xdc, 0x04, 0x44, 0x03, 0x89, 0xc1, 0xdd,
0xd3, 0x07, 0x58, 0x0d, 0x84, 0xb8, 0xdc, 0x1e, 0x9b, 0xcb, 0xac, 0x78, 0xc1, 0x47, 0x9d, 0x61, 0x7b, 0x5a, 0xcb, 0x4d, 0x47, 0xb4, 0x89, 0x2e, 0x64, 0x56, 0xfb, 0xb6, 0x73, 0x71, 0xe5, 0x0b,
0x7d, 0x3d, 0xe6, 0xfb, 0x0f, 0xff, 0xc2, 0xc1, 0x35, 0x01, 0x9c, 0x7e, 0x8e, 0xf9, 0x6b, 0x62, 0x1f, 0xd0, 0xef, 0x72, 0x4f, 0xcb, 0x36, 0x34, 0x3a, 0x8f, 0x32, 0xab, 0xb0, 0x2b, 0x00, 0x99,
0x7b, 0x34, 0x3c, 0xf0, 0x13, 0x10, 0x0d, 0x24, 0x46, 0xb7, 0xef, 0xe9, 0xac, 0x37, 0xbd, 0xa0, 0x35, 0x11, 0xba, 0x30, 0x7b, 0x27, 0x33, 0x29, 0x84, 0xc8, 0x7a, 0x15, 0x5c, 0x74, 0x2d, 0x24,
0x4d, 0x74, 0x21, 0xb3, 0xd9, 0x77, 0x3f, 0x17, 0x5f, 0xbe, 0xf0, 0x11, 0xfd, 0xae, 0xf7, 0x74, 0x0c, 0x5a, 0x3b, 0x8f, 0xf7, 0x3b, 0x9d, 0xce, 0x4f, 0x3d, 0x76, 0x4a, 0x09, 0x05, 0x58, 0xc3,
0x5c, 0x43, 0x63, 0x0a, 0x91, 0x3b, 0x85, 0x7d, 0x01, 0xc8, 0x9c, 0x89, 0xd0, 0x85, 0xb9, 0x3b, 0x6a, 0x2c, 0xa2, 0xaa, 0x4e, 0x24, 0x8f, 0x60, 0x67, 0x10, 0x1d, 0xb0, 0x26, 0x6d, 0x2a, 0x0b,
0x99, 0x59, 0x29, 0x65, 0x3e, 0xa8, 0xe1, 0xa2, 0xef, 0x20, 0x61, 0xd4, 0xd9, 0xfb, 0xea, 0xb0, 0x59, 0x6b, 0x8d, 0x38, 0x6a, 0xac, 0xdb, 0xa4, 0x5d, 0xad, 0x78, 0xac, 0xca, 0x34, 0x61, 0x99,
0xd7, 0xeb, 0x7d, 0x37, 0x60, 0xa7, 0x94, 0x50, 0x80, 0x35, 0xac, 0xc1, 0x22, 0xaa, 0xea, 0x64, 0x32, 0x2c, 0x8a, 0x63, 0xa1, 0x35, 0xb3, 0xb9, 0x8b, 0xae, 0xcb, 0x6c, 0xf2, 0x62, 0x6f, 0xa3,
0xfa, 0x08, 0x76, 0x06, 0xd1, 0x11, 0x6b, 0xd3, 0xa6, 0xb2, 0x90, 0x75, 0xb6, 0x88, 0xa3, 0xc6, 0xaf, 0x82, 0x69, 0xa0, 0x29, 0x93, 0xa8, 0x86, 0x34, 0x72, 0x1d, 0x5d, 0x66, 0x25, 0xd4, 0xf1,
0xba, 0x49, 0xda, 0xd7, 0x8a, 0xc7, 0xba, 0xca, 0x52, 0x96, 0x6b, 0xcb, 0x44, 0x92, 0x48, 0x63, 0x03, 0xe7, 0x0a, 0x36, 0x82, 0x3b, 0xc0, 0x32, 0x68, 0x55, 0xa2, 0xf4, 0xa7, 0x45, 0x6d, 0xda,
0x98, 0xcb, 0x5d, 0x74, 0xe5, 0xe6, 0x92, 0x17, 0x7b, 0x23, 0x3e, 0x4b, 0x66, 0x80, 0xa6, 0x4c, 0xe9, 0xc1, 0xe0, 0x93, 0x18, 0x51, 0x35, 0x5a, 0xe6, 0x08, 0x84, 0x83, 0xc1, 0x50, 0x14, 0x97,
0xa1, 0x1a, 0x32, 0xc8, 0x75, 0x74, 0x91, 0x95, 0x52, 0xc7, 0x0f, 0x9c, 0x2b, 0xd9, 0x04, 0xee, 0x48, 0x94, 0x89, 0x70, 0x51, 0x84, 0xb8, 0x5e, 0xf6, 0x8f, 0xce, 0x9a, 0x54, 0x22, 0x2d, 0xef,
0x00, 0xcb, 0xa8, 0x53, 0x8b, 0x32, 0x9c, 0x97, 0x8d, 0x69, 0xe7, 0x4f, 0x46, 0x3f, 0xcb, 0x09, 0x52, 0x5f, 0x0e, 0x11, 0x08, 0xd1, 0xb5, 0x4b, 0x6e, 0x21, 0x7f, 0x7a, 0xc0, 0x6d, 0xab, 0x37,
0x55, 0xa3, 0x55, 0x81, 0x40, 0x78, 0x32, 0x1a, 0xcb, 0xf2, 0x02, 0x89, 0x32, 0x95, 0x3e, 0x8a, 0x44, 0x8d, 0x54, 0x5f, 0x62, 0xba, 0xeb, 0x23, 0x4d, 0x77, 0x86, 0x53, 0x46, 0x31, 0xcb, 0xe8,
0x10, 0xd7, 0xeb, 0xfe, 0xd1, 0x5b, 0x93, 0x4a, 0xa4, 0xf5, 0x7d, 0xec, 0xcb, 0x31, 0x02, 0x41, 0x76, 0xae, 0x10, 0xb1, 0x90, 0x97, 0x62, 0x49, 0xbb, 0xb5, 0xd9, 0xed, 0x56, 0x81, 0x76, 0xe6,
0x5c, 0xf9, 0xe4, 0x16, 0xf3, 0x6f, 0x9f, 0x70, 0xd7, 0xea, 0x8d, 0x51, 0x23, 0x35, 0x17, 0xa1, 0x08, 0xda, 0x50, 0x22, 0xd3, 0xfd, 0xaa, 0x86, 0x92, 0x2a, 0x0d, 0xbe, 0x0c, 0x2c, 0xba, 0x95,
0xfe, 0xfa, 0xc8, 0xd0, 0xbd, 0xe3, 0x9c, 0x51, 0xcc, 0x32, 0xba, 0xe1, 0x2b, 0x65, 0x22, 0xd5, 0x42, 0x23, 0x5a, 0xbf, 0x5f, 0x45, 0x45, 0x06, 0xd3, 0x9d, 0xe1, 0x14, 0xd3, 0x15, 0xe0, 0x0c,
0x85, 0x5c, 0xd3, 0xee, 0xec, 0x76, 0xbb, 0x75, 0xa0, 0x9d, 0x79, 0x82, 0x2e, 0x94, 0xc8, 0x74, 0xef, 0x02, 0xa2, 0xa0, 0x3a, 0x63, 0x89, 0x82, 0x18, 0x64, 0x45, 0x89, 0x40, 0x28, 0xe9, 0x62,
0x3f, 0xe9, 0xb1, 0xa2, 0x4a, 0x83, 0xaf, 0x03, 0x8b, 0x6e, 0xa5, 0xd0, 0x88, 0x36, 0xef, 0x97, 0x91, 0x48, 0xc9, 0xb1, 0x84, 0xa9, 0xc8, 0x6d, 0x65, 0x4e, 0x07, 0x25, 0xb0, 0xfc, 0xf6, 0x64,
0xa2, 0xcc, 0x61, 0xba, 0x33, 0x9c, 0x62, 0xba, 0x46, 0x5c, 0xe0, 0x5d, 0x42, 0x14, 0x54, 0x67, 0x6d, 0x21, 0xe2, 0xdc, 0x22, 0xd6, 0x15, 0xe3, 0x41, 0x75, 0x55, 0xb8, 0xb6, 0x79, 0xc3, 0x46,
0x2c, 0xd5, 0x10, 0x83, 0xac, 0xa8, 0x10, 0x08, 0x15, 0x5d, 0x4e, 0x12, 0x29, 0x35, 0x55, 0x30, 0xb7, 0xd4, 0xf8, 0x58, 0xa9, 0xe1, 0x48, 0x4a, 0x92, 0x4f, 0xb0, 0xb1, 0x4a, 0x53, 0x75, 0x45,
0x15, 0xb9, 0xad, 0x2a, 0xe8, 0xa0, 0x44, 0x8e, 0xdf, 0x81, 0x6a, 0x2c, 0x44, 0x9c, 0x3b, 0xc4, 0x05, 0x16, 0xb8, 0xbb, 0x9b, 0x47, 0xf9, 0x9f, 0xa8, 0xce, 0x0c, 0x2e, 0x84, 0x48, 0xfa, 0x32,
0xba, 0x66, 0x3c, 0xaa, 0xaf, 0x09, 0xb7, 0x36, 0xef, 0xd8, 0xe8, 0x86, 0x1a, 0x1f, 0x6a, 0x35, 0x93, 0x00, 0x37, 0x67, 0x40, 0xb4, 0x43, 0x40, 0x4c, 0x57, 0xc7, 0xb8, 0xeb, 0x70, 0x6b, 0x4e,
0x3c, 0x49, 0x45, 0xf2, 0x49, 0x36, 0xd5, 0x59, 0xa6, 0x2f, 0xa9, 0xc0, 0x02, 0x77, 0x7f, 0x7b, 0x02, 0xad, 0x86, 0x9b, 0xc1, 0xaa, 0xf5, 0xbb, 0x2a, 0xd9, 0x95, 0x4c, 0x53, 0x96, 0x09, 0x88,
0xa9, 0xfe, 0x2b, 0x9a, 0xcc, 0xe0, 0x43, 0x88, 0xa4, 0xaf, 0x72, 0x05, 0x70, 0xf3, 0x06, 0x44, 0x88, 0x7d, 0xb6, 0x9b, 0x02, 0xda, 0xb2, 0x68, 0x82, 0xde, 0x8c, 0xc9, 0x31, 0x2b, 0x6d, 0x8b,
0x3b, 0x04, 0xc4, 0xf4, 0x75, 0x8c, 0xbf, 0x52, 0x77, 0xe6, 0x24, 0xd0, 0x6a, 0xb9, 0x19, 0xac, 0x19, 0xb1, 0x44, 0x8e, 0xc7, 0xa2, 0xa0, 0x2b, 0xd6, 0x8a, 0x84, 0x5f, 0xd3, 0x56, 0xcb, 0x92,
0x3a, 0xff, 0xd6, 0x15, 0xbb, 0x54, 0x59, 0xc6, 0x72, 0x09, 0x11, 0xb1, 0xcf, 0x75, 0x53, 0x40, 0x89, 0xee, 0x98, 0x80, 0x93, 0xda, 0x51, 0xff, 0x20, 0xc6, 0x78, 0x99, 0x5a, 0x59, 0x66, 0x44,
0x5b, 0x26, 0x66, 0xe8, 0xcd, 0x98, 0x9a, 0xb2, 0xca, 0xb5, 0x98, 0x82, 0xa5, 0x6a, 0x3a, 0x95, 0x0d, 0x1a, 0x80, 0x05, 0x00, 0x2b, 0xbd, 0xa1, 0x7b, 0xff, 0x6c, 0x22, 0x74, 0x60, 0x8d, 0xd8,
0x25, 0x5d, 0xd3, 0xd6, 0x24, 0xc2, 0x86, 0xb6, 0x5e, 0x97, 0x4c, 0x74, 0xc7, 0x04, 0x9c, 0x34, 0x74, 0x1e, 0x35, 0xf1, 0x83, 0x56, 0x5d, 0x55, 0xd6, 0x3a, 0x06, 0x41, 0x50, 0x07, 0xe3, 0x53,
0x9e, 0xfa, 0x7b, 0x39, 0xc5, 0xcb, 0xdc, 0xc9, 0xb2, 0x20, 0x6a, 0xd0, 0x00, 0x2c, 0x00, 0x58, 0xba, 0x8b, 0x7f, 0x01, 0xd4, 0x8b, 0x90, 0x0d, 0x62, 0x61, 0x6f, 0x96, 0xdc, 0xb1, 0xa9, 0xbc,
0xd9, 0x35, 0x7d, 0x3b, 0xc8, 0x67, 0xd2, 0x44, 0xce, 0x88, 0x6d, 0xe7, 0x51, 0x13, 0x3f, 0xea, 0x9b, 0xc2, 0x8e, 0x2e, 0x86, 0xef, 0x8f, 0x1c, 0xe2, 0x44, 0xe5, 0xe8, 0x45, 0x75, 0x7d, 0xbe,
0x34, 0x55, 0x65, 0xa3, 0x63, 0x14, 0x45, 0x4d, 0x30, 0x7e, 0x4b, 0xf7, 0xf9, 0xcf, 0x81, 0x7a, 0x71, 0xaf, 0x32, 0x58, 0x9d, 0xf3, 0x3b, 0x88, 0xb6, 0xee, 0xf1, 0xe3, 0x92, 0xa8, 0xbb, 0x07,
0x02, 0xd9, 0x20, 0x91, 0xee, 0x66, 0xc9, 0x1f, 0x9b, 0xda, 0xbb, 0x19, 0xec, 0xe8, 0x63, 0xf8, 0xff, 0x2e, 0xa2, 0xad, 0x4d, 0x51, 0xef, 0x27, 0x2a, 0x93, 0x2d, 0x14, 0x5b, 0xf7, 0x2b, 0x7f,
0xee, 0xc8, 0x21, 0x4e, 0x54, 0x8e, 0x9e, 0xd7, 0x57, 0xf0, 0x3b, 0xf7, 0x2a, 0xa3, 0xcd, 0x39, 0x2f, 0x45, 0x77, 0xe1, 0x7e, 0x27, 0xd1, 0xd6, 0x43, 0x16, 0xdd, 0x46, 0x34, 0xbf, 0x2a, 0x6e,
0xbf, 0x85, 0x68, 0xe7, 0x0e, 0x3f, 0xae, 0x89, 0xfa, 0xbb, 0xf4, 0x2f, 0x22, 0xda, 0xd9, 0x15, 0x11, 0x6d, 0x6d, 0xb5, 0xe8, 0x77, 0x10, 0x15, 0xd7, 0x39, 0x5f, 0x6a, 0xd9, 0x14, 0xf5, 0x84,
0xf5, 0x6e, 0xa2, 0x2a, 0xbd, 0x87, 0x62, 0xe7, 0x6e, 0xe5, 0xef, 0xa4, 0xe8, 0x2f, 0xed, 0x6f, 0x51, 0xad, 0xc6, 0xa8, 0x6e, 0xb2, 0x9f, 0x17, 0xb6, 0x52, 0x43, 0xcd, 0x65, 0x93, 0x82, 0x8d,
0x25, 0xda, 0x79, 0xc8, 0xa2, 0xf7, 0x11, 0x2d, 0x2e, 0xcb, 0x1b, 0x44, 0x3b, 0xf7, 0x5a, 0xf4, 0xbe, 0x90, 0x53, 0xd1, 0xd7, 0xb4, 0x22, 0x2d, 0x59, 0x2b, 0xff, 0x6a, 0x6c, 0x5f, 0x07, 0x5d,
0x0b, 0x88, 0xca, 0xab, 0x82, 0xaf, 0xb5, 0x6c, 0x8b, 0x7a, 0xc2, 0xa8, 0x56, 0x63, 0x54, 0x37, 0x3a, 0x9c, 0x9f, 0xa6, 0x37, 0xec, 0xca, 0x62, 0x2e, 0xd6, 0x1d, 0x32, 0x8a, 0xe3, 0x9d, 0xc7,
0xb9, 0x4f, 0x14, 0xf7, 0x52, 0x43, 0xcd, 0xe5, 0x92, 0x82, 0x8b, 0xbe, 0x98, 0x53, 0xd1, 0xd7, 0xd7, 0xfb, 0x3f, 0x3f, 0xff, 0xfb, 0x8b, 0x9e, 0x3b, 0xc6, 0x0e, 0x46, 0xbf, 0x2f, 0x32, 0xeb,
0xb6, 0x22, 0x2d, 0xd9, 0x2a, 0xff, 0x1a, 0x6c, 0xdf, 0x06, 0x5d, 0x3a, 0x9c, 0x3f, 0xcf, 0xaf, 0x4b, 0xb6, 0x99, 0xcc, 0x42, 0xde, 0x09, 0x3a, 0x16, 0x31, 0x43, 0xbe, 0x4f, 0x4f, 0xa8, 0x25,
0xd9, 0xa5, 0xc3, 0x5c, 0xac, 0x3b, 0x62, 0x14, 0xc7, 0x7b, 0x5f, 0x5d, 0x1d, 0x7e, 0xff, 0xec, 0x72, 0x3b, 0xb8, 0xef, 0x74, 0x70, 0xd5, 0x90, 0xfd, 0xce, 0x70, 0x61, 0xa2, 0x51, 0xd3, 0xd4,
0xef, 0xcf, 0x07, 0xfe, 0x18, 0x7b, 0x18, 0xfd, 0xb2, 0xc8, 0x6c, 0x2e, 0xd9, 0x16, 0x2a, 0x8f, 0xff, 0x93, 0x9d, 0xb7, 0xf1, 0x6c, 0x6d, 0x63, 0x3a, 0x9a, 0xac, 0xf3, 0xfc, 0x1e, 0x96, 0xad,
0x79, 0x2f, 0xea, 0x39, 0xc4, 0x8c, 0xf9, 0x21, 0x3d, 0xa1, 0x96, 0x28, 0xdc, 0xe0, 0xa1, 0xd7, 0x66, 0x62, 0x58, 0x11, 0xb4, 0x69, 0xcd, 0x12, 0x6c, 0x64, 0x88, 0xe7, 0x0f, 0x93, 0x6f, 0x35,
0xc1, 0x57, 0x43, 0xee, 0x3b, 0xc3, 0xb9, 0x15, 0x93, 0xb6, 0xa9, 0xff, 0x94, 0x9d, 0xef, 0xe3, 0x3f, 0x94, 0xdc, 0xad, 0xde, 0x26, 0xab, 0xaa, 0xf4, 0x5c, 0xbb, 0x88, 0x44, 0x28, 0xd8, 0x2d,
0xd9, 0xb9, 0x8f, 0xe9, 0x64, 0xb6, 0xcd, 0xf3, 0x4b, 0x58, 0x76, 0xda, 0x89, 0x61, 0x43, 0xd0, 0x55, 0x98, 0xac, 0xea, 0xda, 0xbb, 0xb9, 0x6e, 0x7c, 0x87, 0xf9, 0x2e, 0x94, 0xd9, 0xac, 0x5d,
0xa5, 0x35, 0x47, 0xb0, 0x95, 0x21, 0x9e, 0x3d, 0x4c, 0xbe, 0xd3, 0xfe, 0x50, 0x72, 0xbb, 0x7a, 0x37, 0x6f, 0x70, 0x57, 0xc1, 0xb8, 0x56, 0xe9, 0xd7, 0x9e, 0x74, 0x94, 0x1b, 0x84, 0xa8, 0x99,
0xbb, 0xac, 0xea, 0xd2, 0x73, 0xeb, 0x22, 0x12, 0xa1, 0xe0, 0xb6, 0xd4, 0x61, 0xb2, 0xa9, 0x6b, 0x58, 0xd3, 0xe1, 0xce, 0x08, 0x65, 0x7f, 0x1d, 0x67, 0xa8, 0xf0, 0xbb, 0x13, 0x67, 0x6a, 0x84,
0x6f, 0xe7, 0xba, 0xf3, 0x1d, 0xe6, 0x8b, 0x50, 0x66, 0xb7, 0x76, 0xdd, 0xbd, 0xc1, 0xdd, 0x04, 0xd6, 0x5f, 0x25, 0x41, 0xf4, 0xf1, 0xf2, 0x03, 0xd9, 0x06, 0x4d, 0x7b, 0x43, 0x50, 0x25, 0x35,
0xe3, 0x56, 0xa5, 0xdf, 0x78, 0xd2, 0x53, 0x6e, 0x11, 0xa2, 0x66, 0x62, 0x4b, 0x87, 0x5b, 0x23, 0x5b, 0x95, 0xda, 0x8a, 0x24, 0x87, 0x91, 0x6d, 0x51, 0x39, 0x58, 0x5f, 0xbd, 0x2c, 0xd5, 0xaa,
0x94, 0xfd, 0x75, 0x9c, 0xa1, 0xc2, 0xef, 0x56, 0x9c, 0x69, 0x10, 0xda, 0x7c, 0x56, 0x04, 0xd1, 0x02, 0xf5, 0xa3, 0x2b, 0x7a, 0x97, 0x85, 0xd8, 0x8f, 0x8d, 0xb2, 0xde, 0x76, 0xa6, 0x44, 0x12,
0xc7, 0xeb, 0x8f, 0x6c, 0x3b, 0x34, 0xdd, 0x0d, 0x41, 0x9d, 0xd4, 0x5c, 0x55, 0xea, 0x2a, 0x92, 0xc5, 0x31, 0x49, 0xe1, 0x8a, 0xd4, 0x1f, 0x9b, 0x69, 0xf3, 0x2f, 0x83, 0xa1, 0xfd, 0xc6, 0x77,
0x02, 0x46, 0x76, 0x45, 0xe5, 0x68, 0x7b, 0xf5, 0xba, 0x54, 0xab, 0x0b, 0xd4, 0x0f, 0xbe, 0xe8, 0x0f, 0x16, 0xd6, 0x9a, 0x4f, 0xab, 0x4f, 0x7e, 0x7c, 0x50, 0x7f, 0xfc, 0x7b, 0x40, 0xf5, 0x83,
0x5d, 0x17, 0x62, 0xdf, 0xb4, 0xca, 0x7a, 0xd7, 0x99, 0x12, 0x49, 0x14, 0xc7, 0x24, 0x85, 0x2f, 0x86, 0xee, 0x5f, 0x34, 0xd4, 0x1c, 0x6c, 0x24, 0x8f, 0x5a, 0xfb, 0x0d, 0xe5, 0x5b, 0x5b, 0xb5,
0x52, 0xbf, 0x69, 0xa7, 0xcd, 0xbf, 0x0c, 0x86, 0xee, 0x3b, 0xe1, 0x1d, 0x58, 0xd8, 0x68, 0x3e, 0x3f, 0x80, 0xfa, 0xb5, 0x28, 0x8e, 0xec, 0xba, 0x0d, 0x6a, 0x71, 0xdd, 0x37, 0x2a, 0x72, 0xbd,
0xaf, 0x3f, 0x1b, 0xf2, 0x51, 0xf3, 0x01, 0xf1, 0x01, 0xd5, 0x9f, 0xb4, 0x74, 0xff, 0xcd, 0x40, 0xcb, 0x9c, 0xc5, 0x43, 0x35, 0xaf, 0xbd, 0x3f, 0xe4, 0x03, 0x7b, 0x9b, 0xb7, 0x5e, 0x3f, 0xae,
0xcd, 0xd1, 0x4e, 0xf2, 0x68, 0xb4, 0xdf, 0x51, 0xbe, 0x73, 0xaf, 0xf6, 0x4f, 0xa0, 0x7e, 0x23, 0xaa, 0xe6, 0x69, 0xf1, 0x60, 0x81, 0xfe, 0xbd, 0xb5, 0x76, 0x6b, 0x7b, 0xb1, 0xdd, 0xdf, 0xa3,
0x8a, 0x27, 0x7b, 0x8b, 0x0d, 0xfe, 0x52, 0x8a, 0xb9, 0x5a, 0xdc, 0xed, 0x7a, 0x57, 0xdf, 0xf8, 0x86, 0x02, 0x3f, 0xd4, 0x74, 0x50, 0x07, 0x42, 0xff, 0x45, 0xf0, 0x5f, 0xab, 0x6c, 0x08, 0x94,
0xcf, 0x5e, 0xeb, 0xc2, 0xb0, 0x7c, 0xa8, 0x8a, 0x76, 0x37, 0x92, 0x7c, 0xe4, 0xee, 0x07, 0xb7, 0x5b, 0x20, 0x00, 0x00
0x2b, 0xd2, 0xce, 0xa6, 0x10, 0x7f, 0x98, 0xcc, 0xdd, 0xd5, 0x7b, 0xe7, 0xcf, 0x94, 0xef, 0xc3,
0x03, 0x6a, 0x51, 0xf0, 0x43, 0x6d, 0x0c, 0xf5, 0x34, 0xf4, 0xbf, 0x0d, 0xff, 0x03, 0x02, 0xf1,
0x16, 0xc3, 0xf1, 0x20, 0x00, 0x00
}; };
// Autogenerated from wled00/data/settings_sync.htm, do not edit!! // Autogenerated from wled00/data/settings_sync.htm, do not edit!!
const uint16_t PAGE_settings_sync_length = 3474; const uint16_t PAGE_settings_sync_length = 3474;
const uint8_t PAGE_settings_sync[] PROGMEM = { const uint8_t PAGE_settings_sync[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x9d, 0x1a, 0x6b, 0x53, 0xdb, 0x48, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x9d, 0x1a, 0x6b, 0x53, 0xdb, 0x48,
0xf2, 0xbb, 0x7e, 0xc5, 0x44, 0x57, 0x95, 0xb5, 0x17, 0xe3, 0x07, 0x60, 0x42, 0xc0, 0x52, 0x0e, 0xf2, 0xbb, 0x7e, 0xc5, 0x44, 0x57, 0x95, 0xb5, 0x17, 0xe3, 0x07, 0x60, 0x42, 0xc0, 0x52, 0x0e,
0x30, 0x01, 0xdf, 0x41, 0xe2, 0xd8, 0xb0, 0xc9, 0xd6, 0xdd, 0xd5, 0xd6, 0x58, 0x1a, 0xdb, 0x03, 0x30, 0x01, 0xdf, 0x41, 0xe2, 0xd8, 0xb0, 0xc9, 0xd6, 0xdd, 0xd5, 0xd6, 0x58, 0x1a, 0xdb, 0x03,
0x92, 0x46, 0xab, 0x19, 0xf1, 0xa8, 0x6c, 0xfe, 0xfb, 0x75, 0xcf, 0x48, 0xb2, 0x2d, 0xfc, 0xca, 0x92, 0x46, 0xab, 0x19, 0xf1, 0xa8, 0x6c, 0xfe, 0xfb, 0x75, 0xcf, 0x48, 0xb2, 0x2d, 0xfc, 0xca,
@ -1381,7 +1378,7 @@ const uint8_t PAGE_settings_sync[] PROGMEM = {
// Autogenerated from wled00/data/settings_time.htm, do not edit!! // Autogenerated from wled00/data/settings_time.htm, do not edit!!
const uint16_t PAGE_settings_time_length = 3444; const uint16_t PAGE_settings_time_length = 3444;
const uint8_t PAGE_settings_time[] PROGMEM = { const uint8_t PAGE_settings_time[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xd5, 0x1a, 0x6b, 0x57, 0xdb, 0x38, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd5, 0x1a, 0x6b, 0x57, 0xdb, 0x38,
0xf6, 0x7b, 0x7e, 0x85, 0x50, 0x7b, 0x18, 0x7b, 0x70, 0x9e, 0x90, 0x16, 0x92, 0xd8, 0x6c, 0x08, 0xf6, 0x7b, 0x7e, 0x85, 0x50, 0x7b, 0x18, 0x7b, 0x70, 0x9e, 0x90, 0x16, 0x92, 0xd8, 0x6c, 0x08,
0x69, 0xa1, 0x4d, 0x02, 0xa7, 0x49, 0x87, 0xdd, 0x3e, 0xce, 0x54, 0x89, 0x95, 0xc4, 0xe0, 0x48, 0x69, 0xa1, 0x4d, 0x02, 0xa7, 0x49, 0x87, 0xdd, 0x3e, 0xce, 0x54, 0x89, 0x95, 0xc4, 0xe0, 0x48,
0x59, 0x5b, 0x26, 0xb0, 0x94, 0xff, 0xbe, 0x57, 0x92, 0xe3, 0x3c, 0x0d, 0x6d, 0x67, 0xf6, 0xc3, 0x59, 0x5b, 0x26, 0xb0, 0x94, 0xff, 0xbe, 0x57, 0x92, 0xe3, 0x3c, 0x0d, 0x6d, 0x67, 0xf6, 0xc3,
@ -1603,7 +1600,7 @@ const uint8_t PAGE_settings_time[] PROGMEM = {
// Autogenerated from wled00/data/settings_sec.htm, do not edit!! // Autogenerated from wled00/data/settings_sec.htm, do not edit!!
const uint16_t PAGE_settings_sec_length = 2563; const uint16_t PAGE_settings_sec_length = 2563;
const uint8_t PAGE_settings_sec[] PROGMEM = { const uint8_t PAGE_settings_sec[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x9d, 0x58, 0x6d, 0x73, 0xdb, 0xb8, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x9d, 0x58, 0x6d, 0x73, 0xdb, 0xb8,
0x11, 0xfe, 0xae, 0x5f, 0x01, 0xe1, 0x66, 0x72, 0x64, 0x43, 0x53, 0xb2, 0x93, 0xde, 0xe4, 0x6c, 0x11, 0xfe, 0xae, 0x5f, 0x01, 0xe1, 0x66, 0x72, 0x64, 0x43, 0x53, 0xb2, 0x93, 0xde, 0xe4, 0x6c,
0x51, 0xae, 0x1d, 0x3b, 0x8d, 0x3b, 0x76, 0xec, 0xb1, 0xe4, 0x4b, 0x3b, 0x69, 0x26, 0x43, 0x91, 0x51, 0xae, 0x1d, 0x3b, 0x8d, 0x3b, 0x76, 0xec, 0xb1, 0xe4, 0x4b, 0x3b, 0x69, 0x26, 0x43, 0x91,
0x90, 0x88, 0x88, 0x22, 0x78, 0x00, 0x68, 0x45, 0xcd, 0xe5, 0xbf, 0xf7, 0x59, 0x90, 0xd4, 0x8b, 0x90, 0x88, 0x88, 0x22, 0x78, 0x00, 0x68, 0x45, 0xcd, 0xe5, 0xbf, 0xf7, 0x59, 0x90, 0xd4, 0x8b,
@ -1770,7 +1767,7 @@ const uint8_t PAGE_settings_sec[] PROGMEM = {
// Autogenerated from wled00/data/settings_um.htm, do not edit!! // Autogenerated from wled00/data/settings_um.htm, do not edit!!
const uint16_t PAGE_settings_um_length = 3473; const uint16_t PAGE_settings_um_length = 3473;
const uint8_t PAGE_settings_um[] PROGMEM = { const uint8_t PAGE_settings_um[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xcd, 0x5a, 0x6d, 0x73, 0xdb, 0x36, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xcd, 0x5a, 0x6d, 0x73, 0xdb, 0x36,
0x12, 0xfe, 0xee, 0x5f, 0x41, 0xa3, 0x19, 0x9b, 0x18, 0xd1, 0x94, 0x9c, 0xb6, 0x33, 0x39, 0x49, 0x12, 0xfe, 0xee, 0x5f, 0x41, 0xa3, 0x19, 0x9b, 0x18, 0xd1, 0x94, 0x9c, 0xb6, 0x33, 0x39, 0x49,
0xa4, 0x2e, 0x71, 0xd2, 0xc6, 0xd7, 0xb4, 0xf6, 0xd4, 0x49, 0x3b, 0x37, 0xae, 0x2f, 0xa6, 0x45, 0xa4, 0x2e, 0x71, 0xd2, 0xc6, 0xd7, 0xb4, 0xf6, 0xd4, 0x49, 0x3b, 0x37, 0xae, 0x2f, 0xa6, 0x45,
0x48, 0x42, 0x43, 0x11, 0x2c, 0x09, 0xda, 0xf1, 0x29, 0xfa, 0xef, 0xf7, 0x2c, 0x00, 0x52, 0x94, 0x48, 0x42, 0x43, 0x11, 0x2c, 0x09, 0xda, 0xf1, 0x29, 0xfa, 0xef, 0xf7, 0x2c, 0x00, 0x52, 0x94,
@ -1994,7 +1991,7 @@ const uint8_t PAGE_settings_um[] PROGMEM = {
// Autogenerated from wled00/data/settings_2D.htm, do not edit!! // Autogenerated from wled00/data/settings_2D.htm, do not edit!!
const uint16_t PAGE_settings_2D_length = 3296; const uint16_t PAGE_settings_2D_length = 3296;
const uint8_t PAGE_settings_2D[] PROGMEM = { const uint8_t PAGE_settings_2D[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xc5, 0x5a, 0x5b, 0x77, 0xdb, 0x36, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xc5, 0x5a, 0x5b, 0x77, 0xdb, 0x36,
0x12, 0x7e, 0xd7, 0xaf, 0x80, 0xb1, 0x5d, 0x97, 0xb4, 0xa8, 0x9b, 0x9b, 0xf4, 0xb4, 0x92, 0x28, 0x12, 0x7e, 0xd7, 0xaf, 0x80, 0xb1, 0x5d, 0x97, 0xb4, 0xa8, 0x9b, 0x9b, 0xf4, 0xb4, 0x92, 0x28,
0x35, 0x8e, 0xd3, 0xd8, 0x7b, 0xec, 0x44, 0xc7, 0x72, 0xed, 0xe4, 0xb4, 0x3d, 0x0d, 0x4d, 0x42, 0x35, 0x8e, 0xd3, 0xd8, 0x7b, 0xec, 0x44, 0xc7, 0x72, 0xed, 0xe4, 0xb4, 0x3d, 0x0d, 0x4d, 0x42,
0x12, 0x12, 0x0a, 0x60, 0x09, 0xd0, 0x97, 0x3a, 0xfe, 0xef, 0x3b, 0x03, 0xf0, 0xa6, 0x8b, 0x9d, 0x12, 0x12, 0x0a, 0x60, 0x09, 0xd0, 0x97, 0x3a, 0xfe, 0xef, 0x3b, 0x03, 0xf0, 0xa6, 0x8b, 0x9d,
@ -2206,7 +2203,7 @@ const uint8_t PAGE_settings_2D[] PROGMEM = {
// Autogenerated from wled00/data/settings_pin.htm, do not edit!! // Autogenerated from wled00/data/settings_pin.htm, do not edit!!
const uint16_t PAGE_settings_pin_length = 473; const uint16_t PAGE_settings_pin_length = 473;
const uint8_t PAGE_settings_pin[] PROGMEM = { const uint8_t PAGE_settings_pin[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x5d, 0x52, 0x4d, 0x6f, 0x13, 0x31, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x5d, 0x52, 0x4d, 0x6f, 0x13, 0x31,
0x10, 0xbd, 0xef, 0xaf, 0x30, 0x73, 0x69, 0x82, 0x92, 0xdd, 0x50, 0x81, 0x04, 0xaa, 0xbd, 0x42, 0x10, 0xbd, 0xef, 0xaf, 0x30, 0x73, 0x69, 0x82, 0x92, 0xdd, 0x50, 0x81, 0x04, 0xaa, 0xbd, 0x42,
0x81, 0x1e, 0xb8, 0x94, 0x48, 0xe5, 0x82, 0xaa, 0xaa, 0x72, 0xec, 0xd9, 0xc4, 0xaa, 0x3f, 0x16, 0x81, 0x1e, 0xb8, 0x94, 0x48, 0xe5, 0x82, 0xaa, 0xaa, 0x72, 0xec, 0xd9, 0xc4, 0xaa, 0x3f, 0x16,
0xdb, 0x9b, 0x10, 0x2a, 0xfe, 0x3b, 0xe3, 0xdd, 0x50, 0x50, 0x2f, 0x6b, 0xbf, 0x99, 0xf1, 0x9b, 0xdb, 0x9b, 0x10, 0x2a, 0xfe, 0x3b, 0xe3, 0xdd, 0x50, 0x50, 0x2f, 0x6b, 0xbf, 0x99, 0xf1, 0x9b,

File diff suppressed because it is too large Load Diff