UI updates.

- optional show/hide segment power
- skinnable sliders
- changed some CSS to be more to @aircoookie's liking
This commit is contained in:
Blaz Kristan 2022-03-14 20:22:20 +01:00
parent 3f6691dcd5
commit ac20d7f302
7 changed files with 1672 additions and 1673 deletions

View File

@ -31,6 +31,7 @@
--tbp: 14px 14px 10px 14px; --tbp: 14px 14px 10px 14px;
--bbp: 9px 0 7px 0; --bbp: 9px 0 7px 0;
--bhd: none; --bhd: none;
--sgp: "block";
--bmt: 0px; --bmt: 0px;
} }
@ -327,7 +328,6 @@ button {
} }
#putil { #putil {
/*padding: 0 0 10px;*/
margin: 0 auto; margin: 0 auto;
} }
@ -336,6 +336,7 @@ button {
.tab-label { .tab-label {
margin: 0 0 -5px 0; margin: 0 0 -5px 0;
padding-bottom: 4px; padding-bottom: 4px;
display: var(--bhd);
} }
.overlay { .overlay {
@ -524,8 +525,8 @@ img {
.sliderdisplay { .sliderdisplay {
content:''; content:'';
position: absolute; position: absolute;
top: 13px; left: 8px; right: 8px; top: 12px; left: 8px; right: 8px;
height: 4px; height: 5px;
background: var(--c-4); background: var(--c-4);
border-radius: 16px; border-radius: 16px;
pointer-events: none; pointer-events: none;
@ -533,18 +534,18 @@ img {
--bg: var(--c-f); --bg: var(--c-f);
} }
#Colors .sliderdisplay { #rwrap .sliderdisplay { --bg: none; background: linear-gradient(90deg, #000 -15%, #f00); } /* -15% since #000 is too dark */
height: 28px; #gwrap .sliderdisplay { --bg: none; background: linear-gradient(90deg, #000 -15%, #0f0); } /* -15% since #000 is too dark */
top: 0; bottom: 0; #bwrap .sliderdisplay { --bg: none; background: linear-gradient(90deg, #000 -15%, #00f); } /* -15% since #000 is too dark */
left: 0; right: 0; #wwrap .sliderdisplay { --bg: none; background: linear-gradient(90deg, #000 -15%, #fff); } /* -15% since #000 is too dark */
} #kwrap .sliderdisplay,
#rwrap .sliderdisplay { --bg: #f00; background: linear-gradient(90deg, #000 0%, #f00); }
#gwrap .sliderdisplay { --bg: #0f0; background: linear-gradient(90deg, #000 0%, #0f0); }
#bwrap .sliderdisplay { --bg: #00f; background: linear-gradient(90deg, #000 0%, #00f); }
#wwrap .sliderdisplay { background: linear-gradient(90deg, #000 0%, #fff); }
#kwrap .sliderdisplay { background: linear-gradient(90deg, #ff8f1f 0%, #fff 50%, #cbdbff); }
#wbal .sliderdisplay { background: linear-gradient(90deg, #ff8f1f 0%, #fff 50%, #cbdbff); } #wbal .sliderdisplay { background: linear-gradient(90deg, #ff8f1f 0%, #fff 50%, #cbdbff); }
/* wrapper divs hidden by default */
#rgbwrap, #kwrap, #wwrap, #wbal, #qcs-w, #hexw {
display: none;
}
.sliderbubble { .sliderbubble {
width: 24px; width: 24px;
position: relative; position: relative;
@ -565,11 +566,6 @@ output.sliderbubbleshow {
opacity: 1; opacity: 1;
} }
/* wrapper divs hidden by default */
#rgbwrap, #kwrap, #wwrap, #wbal, #qcs-w, #hexw {
display: none;
}
input[type=range] { input[type=range] {
-webkit-appearance: none; -webkit-appearance: none;
width: 100%; width: 100%;
@ -579,11 +575,6 @@ input[type=range] {
cursor: pointer; cursor: pointer;
} }
#Colors input[type=range] {
width: 252px;
margin: 0;
}
input[type=range]:focus { input[type=range]:focus {
outline: none; outline: none;
} }
@ -618,13 +609,14 @@ input[type=range]::-moz-range-thumb {
#Colors input[type=range]::-webkit-slider-thumb { #Colors input[type=range]::-webkit-slider-thumb {
height: 18px; height: 18px;
width: 18px; width: 18px;
border: 2px solid #000; border: 2px solid var(--c-1);
margin-top: 5px; margin-top: 5px;
} }
#Colors input[type=range]::-moz-range-thumb { #Colors input[type=range]::-moz-range-thumb {
border: 2px solid var(--c-1); border: 2px solid var(--c-1);
} }
/* Slider wrapper div */
.sliderwrap { .sliderwrap {
height: 30px; height: 30px;
width: 230px; width: 230px;
@ -635,6 +627,7 @@ input[type=range]::-moz-range-thumb {
margin: 10px 0 0; margin: 10px 0 0;
} }
/* Dynamically hide brightness slider label */
.hd { .hd {
display: var(--bhd); display: var(--bhd);
} }
@ -644,11 +637,15 @@ input[type=range]::-moz-range-thumb {
margin-top: var(--bmt); margin-top: var(--bmt);
} }
#picker { #picker, #rgbwrap, #kwrap, #wwrap, #wbal, #vwrap, #qcs-w, #hexw, #pall {
margin: 10px auto 0; margin: 0 auto;
width: 260px; width: 260px;
} }
#picker {
margin-top: 10px;
}
/* buttons */ /* buttons */
.btn { .btn {
padding: 8px; padding: 8px;
@ -862,9 +859,12 @@ textarea {
padding: 8px 0; padding: 8px 0;
} }
.segpwr { /* segment power wrapper */
.sbs {
padding: 4px 0 4px 8px; padding: 4px 0 4px 8px;
display: var(--sgp);
} }
.pname { .pname {
top: 1px; top: 1px;
} }
@ -935,16 +935,9 @@ textarea {
.check, .radio { .check, .radio {
display: block; display: block;
position: relative; position: relative;
/*padding-bottom: 32px;*/
/*margin-bottom: 14px;*/
cursor: pointer; cursor: pointer;
} }
/*
.schkl {
padding: 2px 0 0;
margin: 0;
}
*/
.revchkl { .revchkl {
padding: 4px 0px 0px 35px; padding: 4px 0px 0px 35px;
margin-bottom: 0px; margin-bottom: 0px;
@ -1030,7 +1023,6 @@ textarea {
.seg, .pres { .seg, .pres {
position: relative; position: relative;
display: block; display: block;
/*padding: 8px 0;*/
margin: 0 0 10px; margin: 0 0 10px;
background-color: var(--c-2); background-color: var(--c-2);
color: var(--c-f); color: var(--c-f);
@ -1039,15 +1031,8 @@ textarea {
transition: background-color 0.5s; transition: background-color 0.5s;
filter: brightness(1); filter: brightness(1);
font-size: 19px; font-size: 19px;
} border-radius: 21px;
min-height: 42px;
.seg {
border-radius: 16px;
padding-bottom: 4px;
}
.pres {
border-radius: 24px;
min-height: 24px;
} }
.seg:last-child { .seg:last-child {
@ -1073,7 +1058,6 @@ textarea {
/* list item */ /* list item */
.lstI { .lstI {
align-items: center; align-items: center;
/*padding: 8px 10px;*/
cursor: pointer; cursor: pointer;
background-color: var(--c-2); background-color: var(--c-2);
overflow: hidden; overflow: hidden;
@ -1084,7 +1068,7 @@ textarea {
} }
/* selected item/element */ /* selected item/element */
.selected { /* has to be after .lstI */ .selected { /* has to be after .lstI since !important is not ok */
background: var(--c-4); background: var(--c-4);
} }

View File

@ -109,19 +109,19 @@
<input id="sliderR" class="noslide" oninput="fromRgb()" onchange="setColor(0)" max="255" min="0" type="range" value="128" /> <input id="sliderR" class="noslide" oninput="fromRgb()" onchange="setColor(0)" max="255" min="0" type="range" value="128" />
<div class="sliderdisplay"></div> <div class="sliderdisplay"></div>
</div> </div>
</div><br> </div>
<div id="gwrap" class="il"> <div id="gwrap" class="il">
<div class="sliderwrap il"> <div class="sliderwrap il">
<input id="sliderG" class="noslide" oninput="fromRgb()" onchange="setColor(0)" max="255" min="0" type="range" value="128" /> <input id="sliderG" class="noslide" oninput="fromRgb()" onchange="setColor(0)" max="255" min="0" type="range" value="128" />
<div class="sliderdisplay"></div> <div class="sliderdisplay"></div>
</div> </div>
</div><br> </div>
<div id="bwrap" class="il"> <div id="bwrap" class="il">
<div class="sliderwrap il"> <div class="sliderwrap il">
<input id="sliderB" class="noslide" oninput="fromRgb()" onchange="setColor(0)" max="255" min="0" type="range" value="128" /> <input id="sliderB" class="noslide" oninput="fromRgb()" onchange="setColor(0)" max="255" min="0" type="range" value="128" />
<div class="sliderdisplay"></div> <div class="sliderdisplay"></div>
</div> </div>
</div><br> </div>
</div> </div>
<div id="wwrap"> <div id="wwrap">
<p class="labels hd">White channel</p> <p class="labels hd">White channel</p>

View File

@ -76,13 +76,12 @@ function applyCfg()
var bg = cfg.theme.color.bg; var bg = cfg.theme.color.bg;
if (bg) sCol('--c-1', bg); if (bg) sCol('--c-1', bg);
var l = cfg.comp.labels; var l = cfg.comp.labels;
var e = d.querySelectorAll('.tab-label'); sCol('--tbp', l ? "14px 14px 10px 14px":"10px 22px 4px 22px");
for (let i of e) i.style.display = l ? "block":"none"; sCol('--bbp', l ? "9px 0 7px 0":"10px 0 4px 0");
sCol('--tbp',l ? "14px 14px 10px 14px":"10px 22px 4px 22px"); sCol('--bhd', l ? "block":"none"); // show/hide labels
sCol('--bbp',l ? "9px 0 7px 0":"10px 0 4px 0"); sCol('--bmt', l ? "0px":"5px");
sCol('--bhd',l ? "block":"none"); // show/hide labels
sCol('--bmt',l ? "0px":"5px");
sCol('--t-b', cfg.theme.alpha.tab); sCol('--t-b', cfg.theme.alpha.tab);
sCol('--sgp', !cfg.comp.segpwr ? "block":"none"); // show/hide segment power
size(); size();
localStorage.setItem('wledUiCfg', JSON.stringify(cfg)); localStorage.setItem('wledUiCfg', JSON.stringify(cfg));
if (lastinfo.leds) updateUI(); // update component visibility if (lastinfo.leds) updateUI(); // update component visibility
@ -661,14 +660,14 @@ function populateSegments(s)
${inst.n ? inst.n : "Segment "+i} ${inst.n ? inst.n : "Segment "+i}
</div> </div>
<i class="icons e-icon flr ${expanded[i] ? "exp":""}" id="sege${i}" onclick="expand(${i})">&#xe395;</i> <i class="icons e-icon flr ${expanded[i] ? "exp":""}" id="sege${i}" onclick="expand(${i})">&#xe395;</i>
<div class="segpwr"> <div id="segp${i}" class="sbs ${expanded[i] ? "expanded":""}">
<i class="icons e-icon pwr ${powered[i] ? "act":""}" id="seg${i}pwr" onclick="setSegPwr(${i})">&#xe08f;</i> <i class="icons e-icon pwr ${powered[i] ? "act":""}" id="seg${i}pwr" onclick="setSegPwr(${i})">&#xe08f;</i>
<div class="sliderwrap il"> <div class="sliderwrap il">
<input id="seg${i}bri" class="noslide" onchange="setSegBri(${i})" oninput="updateTrail(this)" max="255" min="1" type="range" value="${inst.bri}" /> <input id="seg${i}bri" class="noslide" onchange="setSegBri(${i})" oninput="updateTrail(this)" max="255" min="1" type="range" value="${inst.bri}" />
<div class="sliderdisplay"></div> <div class="sliderdisplay"></div>
</div> </div>
</div> </div>
<div class="segin ${expanded[i] ? "expanded":""}" id="seg${i}in"> <div class="segin ${expanded[i] ? "expanded":""}" id="seg${i}in">
<input type="text" class="ptxt noslide" id="seg${i}t" autocomplete="off" maxlength=32 value="${inst.n?inst.n:""}" placeholder="Enter name..."/> <input type="text" class="ptxt noslide" 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>
@ -935,12 +934,14 @@ function loadNodes()
function updateTrail(e) function updateTrail(e)
{ {
if (e==null) return; if (e==null) return;
var max = e.hasAttribute('max') ? e.attributes.max.value : 255; let sd = e.parentNode.getElementsByClassName('sliderdisplay')[0];
var perc = e.value * 100 / max; if (sd && getComputedStyle(sd).getPropertyValue("--bg") !== "none") {
perc = parseInt(perc); var max = e.hasAttribute('max') ? e.attributes.max.value : 255;
if (perc < 50) perc += 2; var perc = Math.round(e.value * 100 / max);
var val = `linear-gradient(90deg, var(--bg) ${perc}%, var(--c-4) ${perc}%)`; if (perc < 50) perc += 2;
e.parentNode.getElementsByClassName('sliderdisplay')[0].style.backgroundImage = val; var val = `linear-gradient(90deg, var(--bg) ${perc}%, var(--c-4) ${perc}%)`;
sd.style.backgroundImage = val;
}
var b = e.parentNode.parentNode.getElementsByTagName('output')[0]; var b = e.parentNode.parentNode.getElementsByTagName('output')[0];
if (b) b.innerHTML = e.value; if (b) b.innerHTML = e.value;
} }
@ -1017,6 +1018,13 @@ function updateUI()
updateTrail(gId('sliderC2')); updateTrail(gId('sliderC2'));
updateTrail(gId('sliderC3')); updateTrail(gId('sliderC3'));
if (hasRGB) {
updateTrail(gId('sliderR'));
updateTrail(gId('sliderG'));
updateTrail(gId('sliderB'));
}
if (hasWhite) updateTrail(gId('sliderW'));
gId('wwrap').style.display = (hasWhite) ? "block":"none"; // white channel gId('wwrap').style.display = (hasWhite) ? "block":"none"; // white channel
gId('wbal').style.display = (hasCCT) ? "block":"none"; // white balance gId('wbal').style.display = (hasCCT) ? "block":"none"; // white balance
var ccfg = cfg.comp.colors; var ccfg = cfg.comp.colors;
@ -2047,7 +2055,7 @@ function selectSlot(b)
// force slider update on initial load (picker "color:change" not fired if black) // force slider update on initial load (picker "color:change" not fired if black)
if (cpick.color.value == 0) updatePSliders(); if (cpick.color.value == 0) updatePSliders();
gId('sliderW').value = parseInt(cd[b].dataset.w); gId('sliderW').value = parseInt(cd[b].dataset.w);
//updateTrail(gId('sliderW')); updateTrail(gId('sliderW'));
redrawPalPrev(); redrawPalPrev();
} }
@ -2088,7 +2096,7 @@ function updatePSliders() {
var hsv = {"h":cpick.color.hue,"s":cpick.color.saturation,"v":100}; var hsv = {"h":cpick.color.hue,"s":cpick.color.saturation,"v":100};
var c = iro.Color.hsvToRgb(hsv); var c = iro.Color.hsvToRgb(hsv);
var cs = 'rgb('+c.r+','+c.g+','+c.b+')'; var cs = 'rgb('+c.r+','+c.g+','+c.b+')';
v.nextElementSibling.style.backgroundImage = `linear-gradient(90deg, #000 0%, ${cs})`; v.nextElementSibling.style.backgroundImage = `linear-gradient(90deg, #000 -15%, ${cs})`;
// update Kelvin slider // update Kelvin slider
gId('sliderK').value = cpick.color.kelvin; gId('sliderK').value = cpick.color.kelvin;
@ -2120,6 +2128,9 @@ function setPicker(rgb) {
var c = new iro.Color(rgb); var c = new iro.Color(rgb);
if (c.value > 0) cpick.color.set(c); if (c.value > 0) cpick.color.set(c);
else cpick.color.setChannel('hsv', 'v', 0); else cpick.color.setChannel('hsv', 'v', 0);
updateTrail(gId('sliderR'));
updateTrail(gId('sliderG'));
updateTrail(gId('sliderB'));
} }
function fromV() function fromV()
@ -2143,9 +2154,6 @@ function fromRgb()
cd[csel].dataset.g = g; cd[csel].dataset.g = g;
cd[csel].dataset.b = b; cd[csel].dataset.b = b;
setCSL(cd[csel]); setCSL(cd[csel]);
//updateTrail(gId('sliderR'));
//updateTrail(gId('sliderG'));
//updateTrail(gId('sliderB'));
} }
function fromW() function fromW()
@ -2154,7 +2162,7 @@ function fromW()
let cd = gId('csl').children; // color slots let cd = gId('csl').children; // color slots
cd[csel].dataset.w = w.value; cd[csel].dataset.w = w.value;
setCSL(cd[csel]); setCSL(cd[csel]);
//updateTrail(w); updateTrail(w);
} }
// sr 0: from RGB sliders, 1: from picker, 2: from hex // sr 0: from RGB sliders, 1: from picker, 2: from hex
@ -2333,6 +2341,7 @@ function expand(i, c=false)
expanded[i] = !expanded[i]; expanded[i] = !expanded[i];
seg.classList.toggle("expanded"); seg.classList.toggle("expanded");
gId('segp' +i).classList.toggle("expanded");
gId('sege' +i).classList.toggle("exp"); gId('sege' +i).classList.toggle("exp");
gId(util).classList.toggle(stay); gId(util).classList.toggle(stay);

View File

@ -22,8 +22,9 @@
"pcmbot": "Show bottom tab bar in PC mode", "pcmbot": "Show bottom tab bar in PC mode",
"pid": "Show preset IDs", "pid": "Show preset IDs",
"seglen": "Set segment length instead of stop LED", "seglen": "Set segment length instead of stop LED",
"segpwr": "Hide segment power &amp; brightness",
"css": "Enable custom CSS", "css": "Enable custom CSS",
"hdays": "Enable custom Holidays list" "hdays": "Enable custom Holidays list"
}, },
"theme":{ "theme":{
"alpha": { "alpha": {
@ -211,7 +212,7 @@
req.send(formData); req.send(formData);
fO.value = ''; fO.value = '';
return false; return false;
} }
function GetV(){var d=document;} function GetV(){var d=document;}
</script> </script>
<style>@import url("style.css");</style> <style>@import url("style.css");</style>
@ -226,8 +227,8 @@
</div> </div>
<h2>Web Setup</h2> <h2>Web Setup</h2>
Server description: <input type="text" name="DS" maxlength="32"><br> Server description: <input type="text" name="DS" maxlength="32"><br>
Sync button toggles both send and receive: <input type="checkbox" name="ST"><br> Sync button toggles both send and receive: <input type="checkbox" name="ST"><br>
Enable simplified UI: <input type="checkbox" name="SU"><br> Enable simplified UI: <input type="checkbox" name="SU"><br>
<i>The following UI customization settings are unique both to the WLED device and this browser.<br> <i>The following UI customization settings are unique both to the WLED device and this browser.<br>
You will need to set them again if using a different browser, device or WLED IP address.<br> You will need to set them again if using a different browser, device or WLED IP address.<br>
Refresh the main UI to apply changes.</i><br> Refresh the main UI to apply changes.</i><br>
@ -236,9 +237,10 @@
<h3>UI Appearance</h3> <h3>UI Appearance</h3>
<span class="l"></span>: <input type="checkbox" id="comp_labels" class="agi cb"><br> <span class="l"></span>: <input type="checkbox" id="comp_labels" class="agi cb"><br>
<span class="l"></span>: <input type="checkbox" id="comp_pcmbot" class="agi cb"><br> <span class="l"></span>: <input type="checkbox" id="comp_pcmbot" class="agi cb"><br>
<span class="l"></span>: <input type="checkbox" id="comp_pid" class="agi cb"><br> <span class="l"></span>: <input type="checkbox" id="comp_pid" class="agi cb"><br>
<span class="l"></span>: <input type="checkbox" id="comp_seglen" class="agi cb"><br> <span class="l"></span>: <input type="checkbox" id="comp_seglen" class="agi cb"><br>
<span class="l"></span>: <input type="checkbox" id="comp_segpwr" class="agi cb"><br>
I hate dark mode: <input type="checkbox" id="dm" onchange="UI()"><br> I hate dark mode: <input type="checkbox" id="dm" onchange="UI()"><br>
<span id="idonthateyou" style="display:none"><i>Why would you? </i>&#x1F97A;<br></span> <span id="idonthateyou" style="display:none"><i>Why would you? </i>&#x1F97A;<br></span>
<span class="l"></span>: <input type="number" min=0.0 max=1.0 step=0.01 id="theme_alpha_tab" class="agi"><br> <span class="l"></span>: <input type="number" min=0.0 max=1.0 step=0.01 id="theme_alpha_tab" class="agi"><br>

View File

@ -724,182 +724,185 @@ 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 = 2784; const uint16_t PAGE_settings_ui_length = 2824;
const uint8_t PAGE_settings_ui[] PROGMEM = { const uint8_t PAGE_settings_ui[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x59, 0x6b, 0x73, 0xdb, 0xb8, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x59, 0x6b, 0x73, 0xdb, 0x36,
0x15, 0xfd, 0xae, 0x5f, 0x81, 0x20, 0x19, 0xaf, 0x38, 0x66, 0x68, 0xd9, 0xd9, 0x4e, 0x13, 0x49, 0x16, 0xfd, 0xae, 0x5f, 0x81, 0x20, 0x19, 0x57, 0x1c, 0x33, 0x94, 0xec, 0x74, 0x67, 0x13, 0x49,
0x94, 0x1b, 0x3f, 0x92, 0xb8, 0xe3, 0x34, 0x69, 0x64, 0x37, 0xbb, 0x93, 0xf1, 0x78, 0x21, 0x12, 0x94, 0x37, 0x7e, 0x34, 0x76, 0xc7, 0xdd, 0x64, 0x23, 0x7b, 0xd3, 0x4e, 0xc6, 0xe3, 0x42, 0x24,
0x92, 0x10, 0x83, 0x00, 0x97, 0x00, 0x6d, 0xab, 0x8a, 0xfe, 0x7b, 0xef, 0x05, 0x48, 0x89, 0x92, 0x24, 0xa1, 0x26, 0x01, 0x96, 0x00, 0x2d, 0x6b, 0x15, 0xfd, 0xf7, 0xbd, 0x17, 0x20, 0x45, 0x4a,
0x5f, 0x99, 0xce, 0x7e, 0xb1, 0x24, 0x3c, 0xee, 0xfb, 0x1e, 0x1c, 0xc0, 0xfd, 0x67, 0x47, 0x9f, 0x7e, 0x65, 0x77, 0xfa, 0xc5, 0x92, 0xf0, 0xb8, 0xef, 0x7b, 0x70, 0x00, 0x0f, 0x5e, 0x1c, 0x7f,
0x0e, 0xcf, 0x7e, 0xff, 0x7c, 0x4c, 0xa6, 0x36, 0x93, 0x83, 0x7e, 0xf5, 0x97, 0xb3, 0x94, 0x48, 0x3c, 0xba, 0xf8, 0xed, 0xd3, 0x09, 0x99, 0x99, 0x34, 0x19, 0x0e, 0xca, 0xbf, 0x9c, 0xc5, 0x24,
0xa6, 0x26, 0x31, 0xe5, 0x8a, 0x0e, 0xfa, 0x19, 0xb7, 0x8c, 0x24, 0x53, 0x56, 0x18, 0x6e, 0x63, 0x61, 0x72, 0x1a, 0x52, 0x2e, 0xe9, 0x70, 0x90, 0x72, 0xc3, 0x48, 0x34, 0x63, 0xb9, 0xe6, 0x26,
0x5a, 0xda, 0xf1, 0xcb, 0xd7, 0xf5, 0x68, 0x4b, 0xb1, 0x8c, 0xc7, 0xf4, 0x5a, 0xf0, 0x9b, 0x5c, 0xa4, 0x85, 0x99, 0xbc, 0x7e, 0x5b, 0x8d, 0xb6, 0x24, 0x4b, 0x79, 0x48, 0x6f, 0x05, 0x9f, 0x67,
0x17, 0x96, 0x92, 0x44, 0x2b, 0xcb, 0x15, 0x2c, 0xbb, 0x11, 0xa9, 0x9d, 0xc6, 0x7f, 0xeb, 0x74, 0x2a, 0x37, 0x94, 0x44, 0x4a, 0x1a, 0x2e, 0x61, 0xd9, 0x5c, 0xc4, 0x66, 0x16, 0xfe, 0xad, 0xdb,
0x96, 0x4b, 0x37, 0xa6, 0x52, 0x7e, 0x2d, 0x12, 0xfe, 0xd2, 0xfd, 0x08, 0x85, 0x12, 0x56, 0x30, 0x5d, 0x2f, 0xdd, 0x9a, 0x8a, 0xf9, 0xad, 0x88, 0xf8, 0x6b, 0xfb, 0xc3, 0x17, 0x52, 0x18, 0xc1,
0xf9, 0xd2, 0x24, 0x4c, 0xf2, 0x78, 0x37, 0xcc, 0xd8, 0xad, 0xc8, 0xca, 0x6c, 0xf9, 0xbb, 0x34, 0x92, 0xd7, 0x3a, 0x62, 0x09, 0x0f, 0xf7, 0xfc, 0x94, 0xdd, 0x89, 0xb4, 0x48, 0xd7, 0xbf, 0x0b,
0xbc, 0x70, 0x3f, 0xd8, 0x08, 0x7e, 0x2b, 0x4d, 0xef, 0x68, 0x1e, 0xf4, 0xad, 0xb0, 0x92, 0x0f, 0xcd, 0x73, 0xfb, 0x83, 0x8d, 0xe1, 0xb7, 0x54, 0xf4, 0x9e, 0xe6, 0xe1, 0xc0, 0x08, 0x93, 0xf0,
0xce, 0x4f, 0xc8, 0x90, 0x5b, 0x2b, 0xd4, 0xc4, 0xf4, 0x77, 0xfc, 0x50, 0xdf, 0x24, 0x85, 0xc8, 0xe1, 0xe5, 0x19, 0x19, 0x71, 0x63, 0x84, 0x9c, 0xea, 0x41, 0xc7, 0x0d, 0x0d, 0x74, 0x94, 0x8b,
0xed, 0xa0, 0x75, 0xcd, 0x0a, 0x52, 0x69, 0xba, 0x4c, 0x4d, 0xad, 0xf4, 0xd2, 0xd8, 0xd5, 0xd7, 0xcc, 0x0c, 0x5b, 0xb7, 0x2c, 0x27, 0xa5, 0xa6, 0xeb, 0x58, 0x57, 0x4a, 0xaf, 0xb5, 0xa9, 0xbf,
0x32, 0xb4, 0x22, 0xe3, 0xba, 0xb4, 0x61, 0x1a, 0xa7, 0x3a, 0x29, 0x33, 0xb0, 0x38, 0x04, 0xbf, 0x16, 0xbe, 0x11, 0x29, 0x57, 0x85, 0xf1, 0xe3, 0x30, 0x56, 0x51, 0x91, 0x82, 0xc5, 0x3e, 0xf8,
0x6d, 0xac, 0x4a, 0x29, 0x43, 0x19, 0xcf, 0x13, 0x9d, 0xe5, 0xdd, 0x39, 0x18, 0xc2, 0xa5, 0xe9, 0x6d, 0x42, 0x59, 0x24, 0x89, 0x9f, 0x84, 0xcb, 0x48, 0xa5, 0x59, 0x6f, 0x09, 0x86, 0xf0, 0x44,
0xd2, 0xe1, 0x54, 0xdf, 0x90, 0x51, 0x69, 0xad, 0x56, 0xc4, 0x8f, 0xd1, 0x30, 0xd1, 0x52, 0x17, 0xf7, 0xe8, 0x68, 0xa6, 0xe6, 0x64, 0x5c, 0x18, 0xa3, 0x24, 0x71, 0x63, 0xd4, 0x8f, 0x54, 0xa2,
0xa6, 0x3b, 0x3f, 0x7d, 0x7b, 0x70, 0x7c, 0xda, 0xa5, 0x87, 0xf8, 0x93, 0x18, 0x2e, 0x79, 0x62, 0x72, 0xdd, 0x5b, 0x9e, 0xbf, 0x3f, 0x3c, 0x39, 0xef, 0xd1, 0x23, 0xfc, 0x49, 0x34, 0x4f, 0x78,
0x05, 0x2c, 0x83, 0x68, 0x4c, 0x75, 0x0a, 0xeb, 0x72, 0x91, 0x5c, 0xf1, 0xa2, 0x5e, 0xf0, 0x75, 0x64, 0x04, 0x2c, 0x83, 0x68, 0xcc, 0x54, 0x0c, 0xeb, 0x32, 0x11, 0xdd, 0xf0, 0xbc, 0x5a, 0xf0,
0xca, 0xb9, 0xa4, 0x61, 0x31, 0x19, 0x75, 0xe9, 0x97, 0xf7, 0x07, 0xc4, 0x48, 0x91, 0xf2, 0x02, 0x65, 0xc6, 0x79, 0x42, 0xfd, 0x7c, 0x3a, 0xee, 0xd1, 0xcf, 0x1f, 0x0e, 0x89, 0x4e, 0x44, 0xcc,
0x96, 0xfd, 0x59, 0xc2, 0xba, 0x2e, 0xfd, 0x37, 0x7e, 0x90, 0xa4, 0x21, 0x4c, 0xe3, 0xec, 0x94, 0x73, 0x58, 0xf6, 0x67, 0x01, 0xeb, 0x7a, 0xf4, 0x5f, 0xf8, 0x41, 0xa2, 0x86, 0x30, 0x85, 0xb3,
0xdf, 0x76, 0xe9, 0x87, 0xe3, 0xdf, 0xaa, 0x19, 0xa1, 0xf2, 0xd2, 0xd2, 0x45, 0x98, 0x27, 0xd9, 0x33, 0x7e, 0xd7, 0xa3, 0xa7, 0x27, 0xbf, 0x96, 0x33, 0x42, 0x66, 0x85, 0xa1, 0x2b, 0x3f, 0x8b,
0x48, 0xdb, 0xda, 0x3e, 0x0d, 0xf6, 0x65, 0xc4, 0xb2, 0x11, 0x19, 0xb9, 0x10, 0x90, 0xcf, 0x87, 0xd2, 0xb1, 0x32, 0x95, 0x7d, 0x0a, 0xec, 0x4b, 0x89, 0x61, 0x63, 0x32, 0xb6, 0x21, 0x20, 0x9f,
0x24, 0xd3, 0x29, 0x47, 0x1b, 0xd2, 0x6a, 0x51, 0x5e, 0x70, 0xf0, 0x93, 0x9c, 0x1c, 0x81, 0x50, 0x8e, 0x48, 0xaa, 0x62, 0x8e, 0x36, 0xc4, 0xe5, 0xa2, 0x2c, 0xe7, 0xe0, 0x27, 0x39, 0x3b, 0x06,
0xc3, 0x27, 0x92, 0x2b, 0x98, 0x80, 0x01, 0xf8, 0x8e, 0x41, 0x20, 0x30, 0x30, 0xb1, 0x53, 0xd8, 0xa1, 0x9a, 0x4f, 0x13, 0x2e, 0x61, 0x02, 0x06, 0xe0, 0x3b, 0x06, 0x81, 0xc0, 0xc0, 0xd4, 0xcc,
0x6c, 0x2c, 0xd6, 0x87, 0x1e, 0x13, 0x63, 0x75, 0x4e, 0x4e, 0x8f, 0x8f, 0xc0, 0x63, 0x03, 0xa1, 0x60, 0xb3, 0x36, 0x58, 0x1f, 0x6a, 0x42, 0xb4, 0x51, 0x19, 0x39, 0x3f, 0x39, 0xb6, 0xeb, 0xb3,
0x38, 0x56, 0x98, 0x1c, 0x92, 0x94, 0x06, 0x95, 0x1d, 0x0e, 0x87, 0x60, 0x5c, 0xca, 0x66, 0x77, 0x39, 0x78, 0x72, 0x0a, 0x26, 0xaf, 0x37, 0x64, 0x6a, 0xce, 0x73, 0xb2, 0xc3, 0xd2, 0xac, 0x4f,
0x66, 0x3e, 0x68, 0xf0, 0x0c, 0xc6, 0x89, 0x14, 0x06, 0x4d, 0xb5, 0x53, 0x9e, 0xf1, 0xee, 0x9c, 0xc6, 0xb9, 0x98, 0xce, 0x8c, 0xe4, 0x1a, 0xc3, 0xa3, 0x21, 0x6e, 0x27, 0x12, 0x33, 0x49, 0xa2,
0xc9, 0x7c, 0xca, 0xba, 0xf3, 0xd1, 0xa4, 0x4b, 0x0f, 0x58, 0x72, 0x35, 0x29, 0x74, 0xa9, 0x40, 0x42, 0xa3, 0x65, 0x47, 0xa3, 0x11, 0x78, 0x12, 0xb3, 0xc5, 0xbd, 0x99, 0x53, 0x05, 0x61, 0x80,
0x4d, 0xce, 0x12, 0x61, 0x67, 0x34, 0x04, 0xe3, 0x61, 0xc2, 0x07, 0xba, 0x1e, 0x5c, 0x84, 0xb0, 0x71, 0x92, 0x08, 0x8d, 0x7e, 0x99, 0x19, 0x4f, 0x79, 0x6f, 0xc9, 0x92, 0x6c, 0xc6, 0x7a, 0xcb,
0x7a, 0x5e, 0x16, 0x12, 0x66, 0xde, 0x13, 0x91, 0xb1, 0x09, 0x27, 0xe7, 0x5f, 0x4e, 0x21, 0x88, 0xf1, 0xb4, 0x47, 0x0f, 0x59, 0x74, 0x33, 0xcd, 0x55, 0x21, 0xc1, 0xa6, 0x8c, 0x45, 0xc2, 0x2c,
0x4c, 0xa5, 0x3a, 0x83, 0x38, 0xba, 0x4f, 0x52, 0x4f, 0xc2, 0x06, 0x17, 0xa5, 0x4a, 0xcb, 0x7b, 0xa8, 0x0f, 0x9e, 0xc2, 0x84, 0xcb, 0x4a, 0x35, 0xb8, 0xf2, 0x61, 0xf5, 0xb2, 0xc8, 0x13, 0x98,
0xb2, 0x8c, 0x1b, 0x5d, 0x2c, 0x16, 0xbd, 0x71, 0xa9, 0x7c, 0x86, 0x26, 0x27, 0x69, 0x9b, 0x07, 0xf9, 0x40, 0x44, 0xca, 0xa6, 0x9c, 0x5c, 0x7e, 0x3e, 0x87, 0x88, 0x33, 0x19, 0xab, 0x14, 0x82,
0xf3, 0x82, 0xdb, 0xb2, 0x50, 0x24, 0x8d, 0x26, 0xdc, 0x1e, 0x4b, 0x8e, 0x51, 0x38, 0x98, 0xb9, 0x6e, 0x3f, 0x49, 0x35, 0x09, 0x1b, 0x6c, 0x48, 0x4b, 0x2d, 0x1f, 0xc8, 0x3a, 0xc8, 0x74, 0xb5,
0xa9, 0xc5, 0x72, 0xa9, 0x30, 0x9f, 0x46, 0xdf, 0x21, 0x17, 0x8d, 0xf5, 0x7c, 0x6b, 0x8b, 0x6a, 0x5a, 0xf5, 0x27, 0x85, 0x74, 0xe9, 0x9c, 0x9e, 0xc5, 0x6d, 0xee, 0x2d, 0x73, 0x6e, 0x8a, 0x5c,
0x37, 0x48, 0xe3, 0xd8, 0xce, 0x72, 0x0e, 0xa1, 0x82, 0xb1, 0x67, 0x6f, 0x8b, 0x82, 0xcd, 0x22, 0x92, 0x38, 0x98, 0x72, 0x73, 0x92, 0x70, 0x8c, 0xc0, 0xe1, 0xc2, 0x4e, 0xad, 0xd6, 0x4b, 0x85,
0x61, 0xdc, 0xe7, 0x9a, 0x10, 0x88, 0x7b, 0x9b, 0x87, 0x50, 0x85, 0xc1, 0x7c, 0xac, 0x8b, 0x36, 0xfe, 0x38, 0xfe, 0x03, 0x12, 0xd7, 0x58, 0xcf, 0x77, 0x76, 0xa8, 0xb2, 0x83, 0x34, 0x0c, 0xcd,
0x96, 0xa9, 0x8a, 0xa1, 0xec, 0x62, 0x1e, 0x99, 0x5c, 0x0a, 0xdb, 0xa6, 0x97, 0x34, 0x08, 0x75, 0x22, 0xe3, 0x10, 0x57, 0x18, 0x7b, 0xf1, 0x3e, 0xcf, 0xd9, 0x22, 0x10, 0xda, 0x7e, 0x6e, 0x08,
0x6c, 0x22, 0x9f, 0x04, 0x28, 0xc3, 0x4e, 0x4f, 0xf6, 0xf5, 0xcb, 0xdd, 0x9e, 0xdc, 0xde, 0x0e, 0x81, 0x24, 0xb5, 0xb9, 0x0f, 0x25, 0xeb, 0x2d, 0x27, 0x2a, 0x6f, 0x63, 0x4d, 0xcb, 0x10, 0x6a,
0xe6, 0xb8, 0x81, 0xc5, 0xe6, 0x9b, 0xbc, 0xe8, 0xa9, 0x6f, 0xec, 0xe2, 0xc7, 0x8f, 0x36, 0x7e, 0x34, 0xe4, 0x81, 0xce, 0x12, 0x61, 0xda, 0xf4, 0x9a, 0x7a, 0xbe, 0x0a, 0x75, 0xe0, 0x32, 0xe6,
0xc4, 0xf3, 0x45, 0x10, 0xaa, 0x18, 0xbf, 0x2e, 0xd4, 0x37, 0xf3, 0x0d, 0x96, 0x5f, 0x5c, 0xc4, 0xb3, 0xb0, 0xdb, 0x67, 0x03, 0xf5, 0x7a, 0xaf, 0xcf, 0x76, 0x77, 0xbd, 0x25, 0x6e, 0x48, 0x42,
0xa2, 0xa1, 0x16, 0xd2, 0x7e, 0xa6, 0x99, 0x71, 0xca, 0xe3, 0x67, 0xbb, 0x5e, 0x90, 0x88, 0xd1, 0xfd, 0x95, 0x5d, 0xf5, 0xe5, 0xd7, 0xe4, 0xea, 0xdb, 0xb7, 0x36, 0x7e, 0x84, 0xcb, 0x95, 0xe7,
0x7d, 0x6a, 0x71, 0x82, 0x06, 0x3d, 0x11, 0x09, 0xa5, 0x78, 0xf1, 0xe1, 0xec, 0xe3, 0x69, 0xcc, 0xcb, 0x10, 0xbf, 0xae, 0xe4, 0x57, 0xfd, 0x15, 0x96, 0x5f, 0x5d, 0x85, 0xa2, 0xa1, 0x16, 0x6a,
0x43, 0x11, 0x25, 0x92, 0x19, 0x73, 0x0a, 0x99, 0x8b, 0x58, 0x9a, 0xb6, 0xed, 0x3e, 0xe5, 0x45, 0xe4, 0x42, 0x31, 0x6d, 0x95, 0x87, 0x2f, 0xf6, 0x9c, 0x20, 0x11, 0xa2, 0xfb, 0xd4, 0xe0, 0x04,
0x01, 0xf1, 0xeb, 0x52, 0x94, 0x06, 0x56, 0x26, 0x92, 0xb3, 0xe2, 0xcc, 0xf7, 0x50, 0xbb, 0xea, 0xf5, 0xfa, 0x22, 0x10, 0x52, 0xf2, 0xfc, 0xf4, 0xe2, 0x97, 0xf3, 0x90, 0xfb, 0x22, 0x88, 0x12,
0xa5, 0x00, 0xf6, 0x19, 0x3b, 0x93, 0x3c, 0x62, 0x0a, 0x12, 0x81, 0xca, 0x63, 0xaa, 0xb4, 0x82, 0xa6, 0xf5, 0x39, 0x64, 0x2e, 0x60, 0x71, 0xdc, 0x36, 0x07, 0x94, 0xe7, 0x39, 0xc4, 0xaf, 0x47,
0xfa, 0xab, 0x56, 0xc4, 0x10, 0x82, 0x7a, 0x53, 0xbb, 0x36, 0xb0, 0x1d, 0xcc, 0x9b, 0xfa, 0x0a, 0x51, 0x1a, 0x58, 0x19, 0x25, 0x9c, 0xe5, 0x17, 0xae, 0xe1, 0xda, 0x65, 0xe3, 0x79, 0xb0, 0x4f,
0x9e, 0xe9, 0x6b, 0xde, 0xae, 0x14, 0x81, 0x6f, 0x7b, 0x6f, 0x3a, 0x9d, 0x46, 0x14, 0xc1, 0x9e, 0x9b, 0x45, 0xc2, 0x03, 0x26, 0x21, 0x11, 0xa8, 0x3c, 0xa4, 0x52, 0x49, 0x28, 0xd6, 0x72, 0x45,
0x2f, 0x3c, 0x71, 0xbe, 0x50, 0x8a, 0x8e, 0x43, 0xc3, 0x7a, 0x97, 0x0c, 0x0c, 0xf4, 0x30, 0xb2, 0x08, 0x21, 0xa8, 0x36, 0xb5, 0x2b, 0x03, 0xdb, 0xde, 0xb2, 0xa9, 0x2f, 0xe7, 0xa9, 0xba, 0xe5,
0x02, 0x6b, 0x9f, 0xfb, 0x41, 0x1d, 0xdb, 0x6d, 0xb4, 0xff, 0x12, 0x6c, 0xa7, 0xc1, 0xb6, 0xe8, 0xed, 0x52, 0x11, 0xf8, 0xb6, 0xff, 0xae, 0xdb, 0x6d, 0x44, 0x11, 0xec, 0xf9, 0xcc, 0x23, 0xeb,
0x89, 0x71, 0x7b, 0x95, 0xcd, 0x6f, 0xe2, 0x22, 0x08, 0xd4, 0xd6, 0x96, 0x82, 0x2f, 0xfe, 0x6f, 0x0b, 0xa5, 0xe8, 0x38, 0x74, 0xb7, 0x73, 0x49, 0xc3, 0x40, 0x1f, 0x23, 0x2b, 0xb0, 0x51, 0xb8,
0xe4, 0xda, 0x79, 0x6b, 0xab, 0x6d, 0xb6, 0xe3, 0x3f, 0xfa, 0xd3, 0x57, 0x83, 0x17, 0xf3, 0xd5, 0x1b, 0x54, 0xa1, 0xd9, 0x45, 0xfb, 0xaf, 0xc1, 0x76, 0xea, 0xed, 0x8a, 0xbe, 0x98, 0xb4, 0xeb,
0xf0, 0xa2, 0xbf, 0x03, 0x23, 0x7f, 0x04, 0x21, 0x4c, 0xd6, 0x76, 0xc0, 0x64, 0xa8, 0x43, 0xb5, 0x6c, 0x7e, 0x15, 0x57, 0x9e, 0x27, 0x77, 0x76, 0x24, 0x7c, 0x71, 0x7f, 0x03, 0xdb, 0xfb, 0x3b,
0x8f, 0xab, 0xba, 0xce, 0x98, 0x1e, 0xc0, 0x03, 0x77, 0xca, 0x65, 0xac, 0x51, 0x5f, 0xa5, 0x60, 0x3b, 0x6d, 0xbd, 0x1b, 0xfe, 0x3e, 0x98, 0xbd, 0x19, 0xbe, 0x5a, 0xd6, 0xc3, 0xab, 0x41, 0x07,
0x5f, 0xc6, 0x6e, 0x11, 0x6c, 0xd9, 0xa6, 0x4e, 0x1e, 0x05, 0xa5, 0x6d, 0x19, 0x37, 0x07, 0x30, 0x46, 0x7e, 0xf7, 0x7c, 0x98, 0xac, 0xec, 0x80, 0x49, 0x5f, 0xf9, 0xf2, 0x00, 0x57, 0xf5, 0xac,
0x88, 0x42, 0xa5, 0xfc, 0xf6, 0xd3, 0xb8, 0x5d, 0x8d, 0x05, 0x83, 0x4e, 0x80, 0xa8, 0x2a, 0x54, 0x31, 0x7d, 0xc0, 0x12, 0x6e, 0x95, 0xb3, 0x50, 0xa1, 0xbe, 0x52, 0xc1, 0x01, 0x0b, 0xed, 0x22,
0xc9, 0x7b, 0xbe, 0x08, 0xea, 0x7a, 0x03, 0x71, 0x3d, 0xcc, 0xa3, 0x0e, 0xf6, 0xdb, 0x74, 0xa4, 0xd8, 0xb2, 0x4b, 0xad, 0x3c, 0x0a, 0x4a, 0xdb, 0x2c, 0x6c, 0x0e, 0x60, 0x10, 0x85, 0x8c, 0xf9,
0x35, 0x64, 0x45, 0x41, 0x39, 0xc6, 0x6c, 0xdf, 0x8f, 0x46, 0xc9, 0x94, 0x03, 0xfa, 0xa4, 0xa8, 0xdd, 0xc7, 0x49, 0xbb, 0x1c, 0xf3, 0x86, 0x5d, 0x0f, 0x21, 0x58, 0xc8, 0x82, 0xf7, 0x5d, 0x11,
0xe2, 0xa2, 0x5b, 0x8d, 0x5d, 0x33, 0x59, 0x72, 0x37, 0x12, 0x56, 0x23, 0x00, 0x0a, 0xd7, 0x42, 0x54, 0xf5, 0x06, 0xe2, 0xfa, 0x98, 0x47, 0xe5, 0x1d, 0xb4, 0xe9, 0x58, 0x29, 0xc8, 0x8a, 0x84,
0x97, 0xa6, 0x2a, 0xff, 0xa1, 0x18, 0x49, 0x40, 0xd6, 0x08, 0x72, 0x08, 0xfb, 0x4d, 0x9b, 0x46, 0x72, 0x0c, 0x93, 0x03, 0x37, 0x1a, 0x44, 0x33, 0x0e, 0x50, 0x15, 0xa3, 0x8a, 0xab, 0x5e, 0x39,
0x92, 0x06, 0x60, 0xe9, 0xe3, 0xab, 0x57, 0x05, 0x24, 0x83, 0xa0, 0xbb, 0x6e, 0x0d, 0x06, 0xf3, 0x76, 0xcb, 0x92, 0x82, 0xdb, 0x11, 0xbf, 0x1c, 0x01, 0x04, 0xb9, 0x15, 0xaa, 0xd0, 0x65, 0xf9,
0xc5, 0x5c, 0x2e, 0xba, 0xa4, 0xef, 0xa0, 0x8b, 0xb8, 0x7c, 0xc7, 0x94, 0x4d, 0x04, 0x49, 0x46, 0x8f, 0xc4, 0x38, 0x01, 0x18, 0x0e, 0x20, 0x87, 0xb0, 0x5f, 0xb7, 0x69, 0x90, 0x50, 0x0f, 0x2c,
0x94, 0xa0, 0x3f, 0x31, 0x75, 0xc6, 0x8e, 0xf4, 0x2d, 0x25, 0x22, 0x8d, 0x5f, 0xcc, 0xf5, 0x82, 0x7d, 0x7a, 0x75, 0x5d, 0x40, 0xcc, 0xf3, 0x7a, 0x9b, 0xd6, 0x60, 0x30, 0x5f, 0x2d, 0xd9, 0xaa,
0xbc, 0x98, 0xa3, 0x99, 0xfb, 0xb4, 0x72, 0x03, 0x73, 0xb8, 0x18, 0xf4, 0x47, 0xc5, 0xe0, 0x8f, 0x47, 0x06, 0x16, 0xe7, 0x88, 0xcd, 0x77, 0x48, 0xd9, 0x54, 0x90, 0x68, 0x4c, 0x09, 0xfa, 0x13,
0x2e, 0x55, 0x65, 0x36, 0xe2, 0xc5, 0x93, 0xf2, 0x6b, 0xe1, 0xd5, 0xf2, 0xa5, 0x68, 0x1f, 0x05, 0x52, 0x6b, 0xec, 0x58, 0xdd, 0x51, 0x22, 0xe2, 0xf0, 0xd5, 0x52, 0xad, 0xc8, 0xab, 0x25, 0x9a,
0xaf, 0x60, 0x29, 0xd3, 0xd8, 0x02, 0x5c, 0x71, 0x32, 0xab, 0x12, 0x70, 0x52, 0x71, 0xf6, 0x1e, 0x79, 0x40, 0x4b, 0x37, 0x30, 0x87, 0xab, 0xe1, 0x60, 0x9c, 0x0f, 0x7f, 0xef, 0x51, 0x59, 0xa4,
0xc1, 0x8f, 0x88, 0x0a, 0x16, 0x8b, 0x0a, 0x27, 0xcc, 0xaa, 0x74, 0x27, 0x5c, 0xbd, 0xd3, 0x45, 0x63, 0x9e, 0x3f, 0x2b, 0xbf, 0x12, 0x5e, 0x2e, 0x5f, 0x8b, 0x76, 0x51, 0x70, 0x0a, 0xd6, 0x32,
0xd6, 0xae, 0x4a, 0xd3, 0xf6, 0xec, 0xb2, 0x8a, 0x42, 0xa8, 0x65, 0x19, 0xb8, 0x7c, 0x50, 0x58, 0xb5, 0xc9, 0xc1, 0x15, 0x2b, 0xb3, 0x2c, 0x01, 0x2b, 0x15, 0x67, 0x1f, 0x10, 0xfc, 0x84, 0x28,
0x46, 0x83, 0x46, 0x38, 0xed, 0x4a, 0xc2, 0x7b, 0x6e, 0x4f, 0x87, 0xd0, 0x30, 0x6d, 0x77, 0x56, 0x6f, 0xb5, 0x2a, 0x71, 0x42, 0xd7, 0xa5, 0x3b, 0xe5, 0xf2, 0x27, 0x95, 0xa7, 0xed, 0xb2, 0x34,
0x49, 0x0d, 0x47, 0xe5, 0x10, 0x0e, 0x08, 0x00, 0x3d, 0x44, 0xaf, 0x13, 0xcb, 0xb3, 0x36, 0xbd, 0x4d, 0xdf, 0xac, 0xab, 0xc8, 0x87, 0x5a, 0x4e, 0x3c, 0x9b, 0x0f, 0x0a, 0xcb, 0xa8, 0xd7, 0x08,
0x91, 0x3c, 0x3d, 0x17, 0x87, 0xe3, 0x09, 0x0d, 0x02, 0xc0, 0x08, 0x27, 0x12, 0x0a, 0xb2, 0x28, 0xa7, 0xa9, 0x25, 0x7c, 0xe0, 0xe6, 0x7c, 0x04, 0x0d, 0xd3, 0xb6, 0x07, 0x5b, 0xa2, 0xe0, 0x5c,
0x40, 0xa8, 0x6f, 0xcf, 0x54, 0x00, 0xde, 0xb0, 0x59, 0x4c, 0x85, 0x82, 0xcc, 0x71, 0x68, 0x7f, 0x1d, 0xc1, 0x69, 0x02, 0xa0, 0x87, 0xe8, 0x75, 0x66, 0x78, 0xda, 0xa6, 0xf3, 0x84, 0xc7, 0x97,
0x5b, 0xcc, 0xe6, 0x4e, 0xe4, 0x3f, 0x87, 0x9f, 0xfe, 0x15, 0xe5, 0xc8, 0x01, 0x9c, 0x8a, 0x60, 0xe2, 0x68, 0x32, 0xa5, 0x9e, 0x07, 0x18, 0x61, 0x45, 0x42, 0x41, 0xe6, 0x39, 0x08, 0x75, 0xed,
0x91, 0x60, 0x0d, 0xa0, 0xc5, 0x6e, 0x7a, 0xbe, 0x08, 0x7f, 0x42, 0xde, 0xfa, 0x9a, 0x95, 0x23, 0x19, 0x0b, 0xc0, 0x1b, 0xb6, 0x08, 0xa9, 0x90, 0x90, 0x39, 0x0e, 0xed, 0x6f, 0xf2, 0xc5, 0xd2,
0x74, 0xeb, 0xf9, 0x9b, 0xd7, 0xaf, 0x5f, 0xf7, 0x96, 0x47, 0x37, 0x41, 0x75, 0x04, 0xd5, 0xc1, 0x8a, 0xfc, 0x79, 0xf4, 0xf1, 0x9f, 0x41, 0x86, 0x84, 0xc1, 0xaa, 0xf0, 0x56, 0x11, 0xd6, 0x00,
0x2f, 0x32, 0x66, 0x02, 0x4c, 0x8f, 0x48, 0x9b, 0x6e, 0xf3, 0x6d, 0x1a, 0xd0, 0x45, 0x1d, 0x2f, 0x5a, 0x6c, 0xa7, 0x97, 0x2b, 0xff, 0x3b, 0xe4, 0x6d, 0xae, 0xa9, 0x1d, 0xa1, 0x3b, 0x2f, 0xdf,
0x67, 0x89, 0x17, 0x9a, 0x66, 0x74, 0x55, 0xd4, 0x54, 0x8a, 0xc9, 0x14, 0xe1, 0xb7, 0xc2, 0x32, 0xbd, 0x7d, 0xfb, 0xb6, 0xbf, 0x3e, 0xe7, 0x09, 0xaa, 0x23, 0xa8, 0x0e, 0x7e, 0x91, 0x09, 0x13,
0x3c, 0x61, 0x2e, 0x47, 0xcc, 0x80, 0x47, 0xbe, 0xc8, 0x57, 0x81, 0x1b, 0x56, 0x81, 0xab, 0x81, 0x60, 0x7a, 0x40, 0xda, 0x74, 0x97, 0xef, 0x52, 0x8f, 0xae, 0xaa, 0x78, 0x59, 0x4b, 0x9c, 0xd0,
0x97, 0xc7, 0x69, 0xf4, 0x67, 0xc9, 0x8b, 0xd9, 0xb0, 0x3a, 0x63, 0xdf, 0x4a, 0x09, 0x75, 0x8e, 0x38, 0xa5, 0x75, 0x51, 0xd3, 0x04, 0xcf, 0x26, 0xcc, 0x96, 0xc3, 0x32, 0x3c, 0x61, 0xae, 0xc7,
0x69, 0x0d, 0x00, 0x59, 0x3a, 0x3d, 0xdb, 0xe7, 0x15, 0x0c, 0xf7, 0x6c, 0x0d, 0xbe, 0x02, 0x9a, 0x4c, 0x83, 0x47, 0xae, 0xc8, 0xeb, 0xc0, 0x8d, 0xca, 0xc0, 0x55, 0xc0, 0xcb, 0xc3, 0x38, 0xf8,
0xc6, 0x5e, 0x00, 0xe6, 0x34, 0xf1, 0x0a, 0x3b, 0x93, 0xc1, 0x71, 0xd9, 0xa6, 0x50, 0xc8, 0xc1, 0xb3, 0xe0, 0xf9, 0x62, 0x54, 0x1e, 0xc8, 0xef, 0x93, 0x04, 0xea, 0x1c, 0xd3, 0xea, 0x01, 0xb2,
0xbe, 0xa8, 0xad, 0xeb, 0x0a, 0x6f, 0x43, 0x0f, 0x61, 0x1f, 0x7a, 0x3a, 0x75, 0xfc, 0x22, 0x54, 0x74, 0xfb, 0x66, 0xc0, 0x4b, 0x18, 0xee, 0x9b, 0x0a, 0x7c, 0x05, 0x34, 0x8d, 0xb9, 0x02, 0xcc,
0x80, 0x9d, 0x5a, 0x19, 0xe8, 0x8d, 0x48, 0xea, 0x49, 0x1b, 0xea, 0x0b, 0xe7, 0x16, 0x78, 0x38, 0x69, 0xe2, 0x15, 0x76, 0x26, 0x83, 0xb3, 0xb5, 0x4d, 0xa1, 0x90, 0xbd, 0x03, 0x51, 0x59, 0xd7,
0x10, 0xab, 0xa1, 0xe0, 0xd5, 0x02, 0x8a, 0x07, 0xf3, 0xb1, 0x96, 0x5d, 0x73, 0x37, 0xbb, 0xa1, 0x13, 0xce, 0x86, 0x3e, 0xc2, 0x3e, 0xf4, 0x74, 0x6c, 0xc9, 0x88, 0x2f, 0x01, 0x3b, 0x95, 0xd4,
0xcb, 0x95, 0xaf, 0x58, 0x31, 0x9e, 0xf9, 0x28, 0x05, 0x75, 0xec, 0x4d, 0x99, 0x3c, 0x98, 0x9f, 0xd0, 0x1b, 0x41, 0xa2, 0xa6, 0x6d, 0xa8, 0x2f, 0x9c, 0x5b, 0xe1, 0xe1, 0x40, 0x8c, 0x82, 0x82,
0x2a, 0xa9, 0x70, 0x0e, 0x3d, 0xb6, 0xd8, 0x23, 0xf7, 0x5f, 0x9f, 0x6e, 0xc3, 0xae, 0x37, 0xb2, 0x97, 0x2b, 0x28, 0x1e, 0xcc, 0xc7, 0x46, 0x76, 0xf5, 0xfd, 0xec, 0xfa, 0x36, 0x57, 0xae, 0x62,
0x2d, 0x5c, 0xb6, 0x57, 0xc9, 0x4a, 0x5c, 0xaa, 0xd6, 0xfc, 0xf7, 0xa7, 0xc2, 0x2a, 0x04, 0x9f, 0xc5, 0x64, 0xe1, 0xa2, 0xe4, 0x55, 0xb1, 0xd7, 0x45, 0xf4, 0x68, 0x7e, 0xca, 0xa4, 0xc2, 0x39,
0x21, 0x4d, 0x8f, 0x2f, 0xc8, 0xec, 0x93, 0x4b, 0x98, 0xbc, 0x85, 0x35, 0xab, 0xf3, 0x91, 0x1e, 0xf4, 0xd4, 0x62, 0x87, 0xdc, 0x7f, 0x7d, 0xba, 0x35, 0xbb, 0xdd, 0xca, 0xb6, 0xb0, 0xd9, 0xae,
0xe2, 0xa9, 0x06, 0x46, 0xd1, 0xc6, 0x79, 0x33, 0x64, 0x70, 0x1a, 0x05, 0xf3, 0xaa, 0x80, 0xc2, 0x93, 0x15, 0xd9, 0x54, 0x6d, 0xf8, 0xef, 0x4e, 0x85, 0x3a, 0x04, 0x9f, 0x20, 0x4d, 0x4f, 0x2f,
0x34, 0x1a, 0x8e, 0xa3, 0xa3, 0x61, 0x05, 0xa2, 0xf1, 0x8a, 0x67, 0x6e, 0x6d, 0xb9, 0xa9, 0xe1, 0x48, 0xcd, 0xb3, 0x4b, 0x58, 0x72, 0x07, 0x6b, 0xea, 0xf3, 0x91, 0x1e, 0xe1, 0xa9, 0x06, 0x46,
0xd9, 0xb2, 0x3c, 0xe3, 0x15, 0xf3, 0xac, 0x27, 0xcf, 0xef, 0x99, 0x2c, 0x7f, 0xfc, 0x70, 0x93, 0xd1, 0xc6, 0x79, 0x33, 0x62, 0x70, 0x1a, 0x79, 0xcb, 0xb2, 0x80, 0xfc, 0x38, 0x18, 0x4d, 0x82,
0xa6, 0x1c, 0x65, 0x40, 0x02, 0x9a, 0xaa, 0x41, 0x2f, 0x74, 0xfc, 0x7f, 0x40, 0xed, 0x4a, 0x4f, 0xe3, 0x51, 0x09, 0xa2, 0x61, 0x4d, 0x4a, 0x77, 0x76, 0xec, 0xd4, 0xe8, 0x62, 0x5d, 0x9e, 0x61,
0xbc, 0x66, 0x41, 0x83, 0xdd, 0xc6, 0x1b, 0xfa, 0x1b, 0x6c, 0x37, 0xde, 0xd0, 0x1e, 0x56, 0x38, 0x4d, 0x53, 0xab, 0xc9, 0xcb, 0x07, 0x26, 0x8b, 0x6f, 0xdf, 0xec, 0xa4, 0x2e, 0xc6, 0x29, 0x90,
0xb2, 0x52, 0xf5, 0x01, 0x54, 0xdd, 0xc0, 0xb9, 0xa3, 0x6f, 0x22, 0x9d, 0x73, 0xd5, 0xa6, 0x53, 0x80, 0xa6, 0x6a, 0xd0, 0x0b, 0x1d, 0xff, 0x6f, 0x50, 0x5b, 0xeb, 0x09, 0x37, 0x2c, 0x68, 0x50,
0x6b, 0x73, 0xd3, 0xdd, 0xd9, 0xb9, 0x52, 0x3a, 0xc2, 0x60, 0x01, 0xbe, 0xec, 0x8c, 0x39, 0x03, 0xe1, 0x70, 0x4b, 0x7f, 0x83, 0x1a, 0x87, 0x5b, 0xda, 0xfd, 0x12, 0x47, 0x6a, 0x55, 0xa7, 0xa0,
0x48, 0xe3, 0x66, 0xc7, 0x54, 0x09, 0xdd, 0x79, 0xee, 0x18, 0xbb, 0x00, 0xc6, 0x5f, 0x8c, 0x19, 0x6a, 0x0e, 0xe7, 0x8e, 0x9a, 0x07, 0x2a, 0xe3, 0xb2, 0x4d, 0x67, 0xc6, 0x64, 0xba, 0xd7, 0xe9,
0xd0, 0xfc, 0x7a, 0xa2, 0x19, 0xc0, 0x83, 0x4d, 0xd1, 0xcb, 0xed, 0x34, 0xa4, 0x97, 0xc0, 0x71, 0xdc, 0x48, 0x15, 0x60, 0xb0, 0x00, 0x5f, 0x3a, 0x13, 0xce, 0x00, 0xd2, 0xb8, 0xee, 0xe8, 0x32,
0xc7, 0xcd, 0xd5, 0xe7, 0x27, 0xed, 0xaa, 0x2c, 0x45, 0x0a, 0x9d, 0x35, 0x65, 0x96, 0xcf, 0x74, 0xa1, 0x9d, 0x97, 0x96, 0xde, 0x0b, 0xb8, 0x1e, 0xe4, 0x13, 0x06, 0x77, 0x82, 0x6a, 0xa2, 0x19,
0x79, 0xa7, 0xf6, 0xee, 0x80, 0xc1, 0x7e, 0x5d, 0x8d, 0x5d, 0x5f, 0xb8, 0x3d, 0xdf, 0xe5, 0x77, 0xc0, 0xc3, 0x6d, 0xd1, 0xeb, 0xed, 0xd4, 0xa7, 0xd7, 0x40, 0x88, 0x27, 0xcd, 0xd5, 0x97, 0x67,
0x80, 0xa1, 0x07, 0x1c, 0xad, 0xcd, 0xab, 0xf4, 0xdd, 0x23, 0xc5, 0x43, 0x4a, 0x97, 0xa6, 0xac, 0xed, 0xb2, 0x2c, 0x45, 0x0c, 0x9d, 0x35, 0x63, 0x86, 0x2f, 0x54, 0x71, 0xaf, 0xf6, 0xee, 0x81,
0xb8, 0xa2, 0xeb, 0xe4, 0xcd, 0xd3, 0xcc, 0x83, 0x49, 0x6d, 0x60, 0x25, 0x76, 0x72, 0xe9, 0x79, 0xc1, 0x41, 0x55, 0x8d, 0x3d, 0x57, 0xb8, 0x7d, 0xd7, 0xe5, 0xf7, 0x80, 0xa1, 0x0f, 0x1c, 0xad,
0x68, 0x43, 0xca, 0xfa, 0x34, 0x30, 0xd7, 0x1a, 0x90, 0xe2, 0x65, 0x5c, 0xe1, 0x56, 0x60, 0xca, 0xcd, 0xcb, 0xf4, 0x3d, 0x20, 0xc5, 0x41, 0x4a, 0x8f, 0xc6, 0x2c, 0xbf, 0xa1, 0x9b, 0xe4, 0xcd,
0x2c, 0xca, 0xa7, 0xda, 0x6a, 0xb3, 0xb3, 0xfb, 0x66, 0xaf, 0xb3, 0xb3, 0xdb, 0x79, 0xdd, 0xa1, 0xd1, 0xcc, 0xc3, 0x69, 0x65, 0x60, 0x29, 0x76, 0x7a, 0xed, 0x78, 0x68, 0x43, 0xca, 0xe6, 0x34,
0xdd, 0x47, 0xf6, 0xd2, 0x46, 0x8b, 0xa0, 0xa6, 0x86, 0x41, 0x4f, 0xca, 0xdd, 0x00, 0xc9, 0x35, 0x30, 0xd7, 0x0a, 0x90, 0xc2, 0x75, 0x5c, 0xe1, 0x0a, 0xa1, 0x8b, 0x34, 0xc8, 0x66, 0xca, 0x28,
0xc9, 0xfb, 0x8f, 0xbb, 0x13, 0x3f, 0xeb, 0x74, 0x9f, 0x5a, 0xb1, 0xbb, 0x32, 0xad, 0xcc, 0xa5, 0xdd, 0xd9, 0x7b, 0xb7, 0xdf, 0xed, 0xec, 0x75, 0xdf, 0x76, 0x69, 0xef, 0x89, 0xbd, 0xb4, 0xd1,
0x66, 0xe9, 0x3b, 0xe8, 0x6e, 0x24, 0x69, 0x35, 0x72, 0x2a, 0x7e, 0x43, 0x7e, 0xfb, 0x78, 0xfa, 0x22, 0xa8, 0xa9, 0x61, 0xd0, 0xb3, 0x72, 0xb7, 0x40, 0x72, 0x43, 0xf2, 0xc1, 0xd3, 0xee, 0x84,
0x01, 0xcc, 0xfc, 0xc2, 0x01, 0x79, 0x8d, 0x05, 0xce, 0x09, 0xa7, 0xdf, 0xf1, 0x35, 0x50, 0x08, 0x2f, 0xba, 0xbd, 0xe7, 0x56, 0xec, 0xd5, 0xa6, 0x15, 0x59, 0xa2, 0x58, 0xfc, 0x13, 0x74, 0x37,
0x04, 0x52, 0x0e, 0xb0, 0x01, 0x28, 0x02, 0x5b, 0x69, 0xd8, 0xe4, 0x86, 0xab, 0xf6, 0xb4, 0x53, 0x92, 0xb4, 0x0a, 0x39, 0x25, 0x9f, 0x93, 0x5f, 0x7f, 0x39, 0x3f, 0x05, 0x33, 0x3f, 0x73, 0x40,
0x61, 0xa0, 0x89, 0x4d, 0x0e, 0xf8, 0xc9, 0xcf, 0xf8, 0xad, 0x0d, 0xdd, 0x88, 0xb1, 0x50, 0x95, 0x5e, 0x6d, 0x80, 0x73, 0xc2, 0xe9, 0x77, 0x72, 0x0b, 0x14, 0x02, 0x81, 0x94, 0x03, 0x6c, 0x00,
0x66, 0x10, 0xff, 0x8a, 0x34, 0x31, 0x40, 0xfe, 0x74, 0x57, 0xac, 0x67, 0xaf, 0x0d, 0xb9, 0xbc, 0x8a, 0xc0, 0x56, 0xea, 0x37, 0xb9, 0x61, 0xdd, 0x9e, 0x66, 0x26, 0x34, 0x34, 0xb1, 0xce, 0x00,
0x29, 0x98, 0xa3, 0x8c, 0xe4, 0x2a, 0x7c, 0x56, 0x0b, 0xf0, 0x75, 0xfa, 0xf9, 0xd3, 0xf0, 0x0c, 0x3f, 0xf9, 0x05, 0xbf, 0x33, 0xbe, 0x1d, 0xd1, 0x06, 0xaa, 0x52, 0x0f, 0xc3, 0x1f, 0x91, 0x26,
0x4a, 0x74, 0xc7, 0x3b, 0x04, 0xa5, 0xe3, 0x19, 0x3b, 0x7a, 0x82, 0xc7, 0xd2, 0x11, 0xb3, 0xac, 0x7a, 0xc8, 0x9f, 0xee, 0x8b, 0x75, 0xec, 0xb5, 0x21, 0x97, 0x37, 0x05, 0x73, 0x94, 0x11, 0xdd,
0x57, 0x1d, 0xf2, 0x2a, 0x62, 0x39, 0xec, 0xc1, 0x6a, 0x82, 0x51, 0x1a, 0xf2, 0x68, 0x0c, 0xfe, 0xf8, 0x2f, 0x2a, 0x01, 0xae, 0x4e, 0x3f, 0x7d, 0x1c, 0x5d, 0x40, 0x89, 0x76, 0x9c, 0x43, 0x50,
0x9b, 0x6f, 0x9d, 0x8b, 0xd0, 0xd3, 0x62, 0x9c, 0x03, 0xe8, 0xe7, 0xcb, 0x54, 0x86, 0x10, 0xb2, 0x3a, 0x8e, 0xb1, 0xa3, 0x27, 0x78, 0x2c, 0x1d, 0x33, 0xc3, 0xfa, 0xe5, 0x21, 0x2f, 0x03, 0x96,
0x56, 0x7f, 0xa7, 0xba, 0xb3, 0x56, 0x77, 0x57, 0x62, 0x8a, 0x24, 0xa6, 0x75, 0x7b, 0x44, 0xdf, 0xc1, 0x1e, 0xac, 0x26, 0x18, 0xa5, 0x3e, 0x0f, 0x26, 0xe0, 0xbf, 0xfe, 0xda, 0xbd, 0xf2, 0x1d,
0xcd, 0x7e, 0x1e, 0xbf, 0x82, 0x3b, 0xef, 0x6a, 0x19, 0x36, 0xc1, 0xe0, 0x1f, 0x22, 0xc3, 0xcb, 0x2d, 0xc6, 0x39, 0x80, 0x7e, 0xbe, 0x4e, 0xa5, 0x0f, 0x21, 0x6b, 0x0d, 0x3a, 0xe5, 0x05, 0xb7,
0x30, 0x81, 0x14, 0x02, 0x4f, 0x76, 0x7d, 0x01, 0x57, 0x33, 0x30, 0x10, 0x05, 0xba, 0x15, 0xc0, 0xbc, 0xe8, 0x12, 0x9d, 0x47, 0x21, 0xad, 0xda, 0x23, 0xf8, 0x43, 0x1f, 0x64, 0xe1, 0x1b, 0xb8,
0x53, 0xe1, 0xf6, 0x06, 0x54, 0x44, 0xa7, 0x33, 0xa2, 0x15, 0xda, 0x1f, 0x53, 0x68, 0x78, 0x90, 0x20, 0xd7, 0xcb, 0xb0, 0x09, 0x86, 0xff, 0x10, 0x29, 0xde, 0x9c, 0x09, 0xa4, 0x10, 0x78, 0xb2,
0x05, 0x27, 0x60, 0x86, 0xcc, 0x85, 0xe2, 0x97, 0x4b, 0x43, 0x89, 0xbf, 0x61, 0x0f, 0xc7, 0xb4, 0xed, 0x0b, 0xb8, 0x9a, 0x81, 0x81, 0x28, 0xd0, 0xae, 0x00, 0x9e, 0x0a, 0x57, 0x3d, 0xa0, 0x22,
0xba, 0xb2, 0xc6, 0x34, 0xd7, 0x06, 0x6f, 0xda, 0xa9, 0xb8, 0x6e, 0xd5, 0x7c, 0x07, 0xee, 0x80, 0x2a, 0x5e, 0x10, 0x25, 0xd1, 0xfe, 0x90, 0x42, 0xc3, 0x83, 0x2c, 0x38, 0x01, 0x53, 0x64, 0x2e,
0x05, 0xf0, 0x71, 0x37, 0x58, 0x8f, 0x4d, 0xb9, 0xcc, 0x0f, 0x60, 0xa8, 0xba, 0x17, 0x7b, 0x9a, 0x14, 0xbf, 0x5c, 0x6b, 0x4a, 0xdc, 0x75, 0x7c, 0x34, 0xa1, 0xe5, 0xfd, 0x36, 0xa4, 0x99, 0xd2,
0xe5, 0x7f, 0x50, 0x50, 0x9a, 0x48, 0xb8, 0xc9, 0xc6, 0xf4, 0x03, 0x6a, 0xdd, 0x07, 0xcb, 0xfc, 0x78, 0x2d, 0x8f, 0xc5, 0x6d, 0xab, 0xe2, 0x3b, 0x70, 0x61, 0xcc, 0x81, 0x8f, 0xdb, 0xc1, 0x6a,
0x0c, 0x98, 0x06, 0x22, 0x9e, 0xda, 0x74, 0x80, 0x9b, 0xf0, 0x7e, 0xb8, 0xda, 0x56, 0x6d, 0x68, 0x6c, 0xc6, 0x93, 0xec, 0x10, 0x86, 0xca, 0x4b, 0xb4, 0xa3, 0x59, 0xee, 0x07, 0x05, 0xa5, 0x51,
0x3d, 0xb0, 0xc3, 0xc3, 0x34, 0x1d, 0xe0, 0x67, 0x63, 0x13, 0xf0, 0x36, 0x93, 0x33, 0xe5, 0x1c, 0x02, 0xd7, 0xde, 0x90, 0x9e, 0xa2, 0xd6, 0x03, 0xb0, 0xcc, 0xcd, 0x80, 0x69, 0x20, 0xe2, 0xb9,
0xf6, 0xe7, 0x1c, 0x69, 0xb9, 0x10, 0x01, 0xdb, 0x74, 0x77, 0xc4, 0x49, 0xc1, 0xb9, 0xea, 0x55, 0x4d, 0x87, 0xb8, 0x09, 0xef, 0x87, 0xf5, 0xb6, 0x72, 0x43, 0xeb, 0x91, 0x1d, 0x0e, 0xa6, 0xe9,
0xb0, 0xd2, 0x75, 0xd0, 0x31, 0xd8, 0x7a, 0xbe, 0xdb, 0xe9, 0x74, 0x7e, 0xed, 0x91, 0x53, 0x3c, 0x10, 0x3f, 0x1b, 0x9b, 0x80, 0xb7, 0xe9, 0x8c, 0x49, 0xeb, 0xb0, 0x3b, 0xe7, 0x48, 0xcb, 0x86,
0x3e, 0x00, 0x92, 0x48, 0x9d, 0x12, 0x3c, 0xbc, 0x78, 0xfa, 0x0c, 0xc2, 0x0c, 0x42, 0x07, 0xc4, 0x08, 0xd8, 0xa6, 0xbd, 0x23, 0x4e, 0x73, 0xce, 0x65, 0xbf, 0x84, 0x95, 0x9e, 0x85, 0x8e, 0xe1,
0xcb, 0x6e, 0x79, 0xe1, 0x78, 0xfc, 0x91, 0x35, 0xd9, 0x70, 0x94, 0x6c, 0x48, 0x6e, 0xd5, 0x47, 0xce, 0xcb, 0xbd, 0x6e, 0xb7, 0xfb, 0x63, 0x9f, 0x9c, 0xe3, 0xf1, 0x01, 0x90, 0x44, 0xaa, 0x94,
0xe2, 0xa1, 0x2e, 0x65, 0x4a, 0x94, 0xb6, 0x84, 0x25, 0x09, 0x37, 0x70, 0x4b, 0x76, 0xaa, 0x4c, 0xe0, 0xe1, 0xc5, 0xe3, 0x17, 0x10, 0x66, 0x10, 0x3a, 0x24, 0x4e, 0x76, 0xcb, 0x09, 0xc7, 0xe3,
0x75, 0x54, 0x91, 0x8f, 0xec, 0x8a, 0x13, 0x03, 0x60, 0x4b, 0x84, 0x85, 0xdb, 0x27, 0xe1, 0xee, 0x8f, 0x6c, 0xc8, 0x86, 0xa3, 0x64, 0x4b, 0x72, 0xab, 0x3a, 0x12, 0x8f, 0x54, 0x91, 0xc4, 0x44,
0x6e, 0x9d, 0xe2, 0xc5, 0x06, 0xe0, 0xb0, 0x20, 0x23, 0xc8, 0x06, 0x68, 0x8c, 0x5a, 0x95, 0x29, 0x2a, 0x43, 0x58, 0x14, 0xc1, 0xe5, 0x9a, 0xd8, 0x93, 0x0a, 0x2f, 0xe6, 0xf6, 0xa8, 0x22, 0xbf,
0xfd, 0x69, 0x51, 0x47, 0x76, 0xba, 0x37, 0xf8, 0xca, 0x47, 0x78, 0xe8, 0x96, 0x39, 0xd4, 0xc1, 0xb0, 0x1b, 0xb8, 0x8f, 0x03, 0xd8, 0x12, 0x61, 0xe0, 0xf6, 0x49, 0xb8, 0xbd, 0x5b, 0xc7, 0x78,
0xde, 0x60, 0xc8, 0x8b, 0x6b, 0x5e, 0x90, 0x94, 0xfb, 0x2a, 0x82, 0xf2, 0x5f, 0xd2, 0x64, 0x1f, 0xb1, 0x01, 0x38, 0xcc, 0xe1, 0x5a, 0xae, 0xe6, 0xa0, 0x31, 0x68, 0x95, 0xa6, 0x0c, 0x66, 0x79,
0x4c, 0x0b, 0xbd, 0xb4, 0x7c, 0x6a, 0x39, 0x1a, 0x42, 0x21, 0xb0, 0x5b, 0xcf, 0x7d, 0x62, 0xfa, 0x15, 0xd9, 0xd9, 0xfe, 0xf0, 0x0b, 0x1f, 0xe3, 0xa1, 0x5b, 0x64, 0x50, 0x07, 0xfb, 0xc3, 0x11,
0x6a, 0x8f, 0xba, 0x30, 0x0e, 0x67, 0x2a, 0xa9, 0x5f, 0x40, 0xac, 0x9e, 0x4c, 0xa0, 0xba, 0xf1, 0xcf, 0x6f, 0xe1, 0x3e, 0x1f, 0x73, 0x57, 0x45, 0x50, 0xfe, 0x6b, 0x9a, 0xec, 0x82, 0x69, 0xa0,
0xc1, 0x61, 0x4a, 0xb0, 0xb4, 0x09, 0xe0, 0x01, 0x29, 0x78, 0xc2, 0xc5, 0x35, 0x5f, 0xca, 0x6e, 0x97, 0xd6, 0xef, 0x32, 0xc7, 0x23, 0x28, 0x04, 0x76, 0xe7, 0xb8, 0x4f, 0x48, 0xdf, 0xec, 0x53,
0x6d, 0x92, 0xfa, 0xaa, 0xd0, 0xce, 0xbc, 0xc0, 0xea, 0xb5, 0xc0, 0x40, 0x2d, 0x4b, 0x31, 0x16, 0x1b, 0xc6, 0xd1, 0x42, 0x46, 0xd5, 0x73, 0x89, 0x51, 0xd3, 0x29, 0x54, 0x37, 0xbe, 0x4e, 0xcc,
0xe0, 0xdb, 0xf9, 0xc9, 0x86, 0x5d, 0xab, 0xad, 0x95, 0x6d, 0xc3, 0x73, 0xbf, 0xb7, 0x2f, 0x06, 0x08, 0x96, 0x36, 0x01, 0x3c, 0x20, 0x39, 0x8f, 0xb8, 0xb8, 0xe5, 0x6b, 0xd9, 0xad, 0x6d, 0x52,
0xad, 0xb3, 0x29, 0x27, 0x63, 0x2d, 0xa5, 0xbe, 0x41, 0x36, 0x01, 0x39, 0xf2, 0xef, 0x0e, 0xe2, 0x5f, 0x16, 0xda, 0x85, 0x13, 0x58, 0xbe, 0x16, 0x68, 0xa8, 0xe5, 0x44, 0x4c, 0x04, 0xf8, 0x76,
0xbf, 0xac, 0xc6, 0x6b, 0x9f, 0x31, 0x38, 0xd0, 0x49, 0xa9, 0x04, 0x40, 0x8e, 0xb7, 0x17, 0x48, 0x79, 0xb6, 0x65, 0x57, 0xbd, 0xb5, 0xb4, 0x6d, 0x74, 0xe9, 0xf6, 0x0e, 0xc4, 0xb0, 0x75, 0x31,
0x16, 0xe0, 0x18, 0xf9, 0x7a, 0x7a, 0x7c, 0x44, 0xfc, 0xe3, 0x94, 0xb3, 0x1e, 0xa1, 0xa4, 0x11, 0xe3, 0x64, 0xa2, 0x92, 0x44, 0xcd, 0x91, 0x4d, 0x40, 0x8e, 0xdc, 0xbb, 0x83, 0xf8, 0x0f, 0xab,
0x55, 0x50, 0xd2, 0xfa, 0x5d, 0x97, 0xe4, 0x46, 0x48, 0x49, 0x14, 0x07, 0xeb, 0x60, 0x9f, 0xe3, 0xf0, 0xda, 0x65, 0x0c, 0x0e, 0x74, 0x52, 0x48, 0x01, 0x90, 0xe3, 0xec, 0x05, 0x92, 0x05, 0x38,
0x68, 0x80, 0x81, 0x84, 0x4d, 0x80, 0xf1, 0x11, 0x31, 0x26, 0xa5, 0x23, 0xae, 0x8c, 0xa4, 0x62, 0x46, 0xbe, 0x9c, 0x9f, 0x1c, 0x13, 0xf7, 0x92, 0x65, 0xad, 0x47, 0x28, 0x69, 0x44, 0x15, 0x94,
0x3c, 0xe6, 0x05, 0xbe, 0x9f, 0x54, 0x22, 0xc2, 0x5a, 0x36, 0x3e, 0xf9, 0xa0, 0xaa, 0x93, 0xcf, 0xb4, 0x7e, 0x53, 0x05, 0x99, 0x8b, 0x24, 0x21, 0x92, 0x83, 0x75, 0xb0, 0xcf, 0x72, 0x34, 0xc0,
0x78, 0x73, 0x05, 0xf4, 0x32, 0x5e, 0xfa, 0x17, 0x3e, 0x86, 0x1f, 0x53, 0x67, 0x4b, 0x86, 0xd2, 0x40, 0xc2, 0xa6, 0xc0, 0xf8, 0x88, 0x98, 0x90, 0xc2, 0x12, 0x57, 0x46, 0x62, 0x31, 0x99, 0xf0,
0xc0, 0x03, 0x50, 0x01, 0x30, 0x22, 0x67, 0xf8, 0x0a, 0xa7, 0x26, 0xdc, 0x44, 0xfd, 0x1d, 0xe1, 0x1c, 0xdf, 0x4e, 0x4a, 0x11, 0x7e, 0x25, 0x1b, 0xdf, 0x87, 0x50, 0xd5, 0xd9, 0x27, 0xbc, 0xb9,
0xfd, 0xc5, 0xae, 0xc3, 0x2a, 0xc3, 0xab, 0xc1, 0xa0, 0x75, 0x0a, 0xed, 0x8c, 0x7a, 0x97, 0x40, 0x02, 0x7a, 0x69, 0x27, 0xfd, 0x33, 0x9f, 0xc0, 0x8f, 0x99, 0xb5, 0x25, 0x45, 0x69, 0xe0, 0x01,
0x11, 0x45, 0x75, 0xee, 0x5f, 0xe1, 0xcb, 0xd8, 0x5b, 0xc0, 0x22, 0x06, 0x18, 0x9d, 0x70, 0x77, 0xa8, 0x00, 0x18, 0x49, 0x16, 0xf8, 0x64, 0x27, 0xa7, 0x5c, 0x07, 0x83, 0x8e, 0x70, 0xfe, 0x62,
0x5f, 0xf5, 0x55, 0x5a, 0x35, 0xad, 0x74, 0x70, 0x82, 0x25, 0xf3, 0x70, 0xa2, 0x50, 0x13, 0xbe, 0xd7, 0x61, 0x95, 0xe1, 0xd5, 0x60, 0xd8, 0x3a, 0x87, 0x76, 0x46, 0xbd, 0x6b, 0xa0, 0x08, 0x82,
0x7f, 0x5d, 0x56, 0x4f, 0x5d, 0x1b, 0xb7, 0xb5, 0x46, 0x5b, 0xdd, 0x23, 0xb4, 0xf5, 0x40, 0x0a, 0x2a, 0xf7, 0x6f, 0xf0, 0x19, 0xed, 0x3d, 0x60, 0x11, 0x03, 0x8c, 0x8e, 0xb8, 0xbd, 0xaf, 0xba,
0x97, 0x42, 0xfd, 0x9b, 0xd5, 0x4f, 0x09, 0x6d, 0x6d, 0x9a, 0xfa, 0xb0, 0x50, 0x91, 0x3e, 0x22, 0x2a, 0x2d, 0x9b, 0x36, 0xb1, 0x70, 0x82, 0x25, 0xf3, 0x78, 0xa2, 0x50, 0x13, 0x3e, 0x96, 0x5d,
0xb1, 0xf5, 0xb0, 0xf3, 0x0f, 0x4a, 0xf4, 0x8f, 0x63, 0xf7, 0x0a, 0x6d, 0x9d, 0x10, 0xe4, 0x25, 0x97, 0xef, 0x62, 0x5b, 0xb7, 0xb5, 0x46, 0x5b, 0x3d, 0x20, 0xb4, 0xf5, 0x48, 0x0a, 0xd7, 0x42,
0x04, 0x39, 0x82, 0x7b, 0x60, 0x7b, 0x54, 0x1a, 0xf0, 0x0b, 0x84, 0x29, 0x97, 0xd2, 0x98, 0x22, 0xdd, 0x03, 0xd7, 0x77, 0x09, 0x6d, 0x6d, 0x9b, 0xfa, 0xb8, 0x50, 0x11, 0x3f, 0x21, 0xb1, 0xf5,
0xbf, 0x59, 0x33, 0x0d, 0x97, 0xac, 0x51, 0x9d, 0x1a, 0x43, 0xd6, 0x91, 0x03, 0x4a, 0xfe, 0xeb, 0xb8, 0xf3, 0x8f, 0x4a, 0x74, 0x2f, 0x69, 0x0f, 0x0a, 0x6d, 0x3d, 0x17, 0xd1, 0xa7, 0x84, 0x66,
0x74, 0x46, 0x6e, 0x1c, 0x6e, 0xc0, 0xb2, 0x7d, 0x82, 0xc5, 0xb1, 0xf5, 0xfc, 0x76, 0xf7, 0xdd, 0xf3, 0xfc, 0x9e, 0x50, 0x5b, 0x11, 0x67, 0x04, 0xc9, 0x0e, 0x41, 0xe2, 0x61, 0x9f, 0xf8, 0x9e,
0x9b, 0xbf, 0xbf, 0xed, 0x39, 0xb3, 0x6a, 0x2c, 0x78, 0x22, 0xdf, 0xeb, 0xf7, 0xe1, 0x4c, 0xa8, 0x94, 0x06, 0xa4, 0x05, 0xb1, 0xcf, 0xd6, 0x49, 0x48, 0x91, 0x34, 0x6d, 0xf8, 0x8b, 0x4b, 0x36,
0x98, 0x76, 0xa2, 0x8e, 0xeb, 0xfa, 0x98, 0xee, 0xe2, 0x37, 0x80, 0x48, 0x9e, 0xbb, 0xd1, 0x5d, 0xf8, 0x53, 0x05, 0x4c, 0x9b, 0x70, 0x04, 0x7d, 0xf4, 0x65, 0xb6, 0x20, 0x73, 0x0b, 0x46, 0xb0,
0xef, 0x83, 0x3f, 0xf9, 0xdd, 0xdb, 0xdd, 0xa5, 0x65, 0xa3, 0x66, 0x54, 0x9e, 0x28, 0x07, 0xaf, 0xec, 0x80, 0x60, 0xc5, 0xed, 0xbc, 0xbc, 0xdb, 0xfb, 0xe9, 0xdd, 0xdf, 0xdf, 0xf7, 0x9d, 0xaf,
0xb3, 0xf5, 0x13, 0x4a, 0x1f, 0xd3, 0x39, 0x9a, 0xac, 0xab, 0x6c, 0xfd, 0x84, 0xce, 0x35, 0x70, 0x25, 0xc0, 0x7c, 0x97, 0xcb, 0xd5, 0x25, 0x3b, 0x15, 0x32, 0xa4, 0xdd, 0xa0, 0x6b, 0xa1, 0x24,
0x5b, 0x09, 0x74, 0xd0, 0xec, 0x04, 0xb6, 0x1a, 0x30, 0xf7, 0xe6, 0x69, 0x97, 0x9a, 0x6f, 0x8f, 0xa4, 0x7b, 0xf8, 0x0d, 0x70, 0x97, 0x67, 0x76, 0x74, 0xcf, 0xf9, 0xe0, 0xe8, 0x84, 0x7d, 0x10,
0x0f, 0xb4, 0xd0, 0xa6, 0xae, 0x8a, 0x66, 0xad, 0x3d, 0x1a, 0x68, 0xe5, 0xb6, 0x54, 0x55, 0xb2, 0xbc, 0x36, 0x6c, 0xdc, 0x8c, 0xca, 0x33, 0x35, 0xe6, 0x74, 0xb6, 0xbe, 0x43, 0xe9, 0x53, 0x3a,
0xa2, 0x70, 0x0f, 0xd4, 0xeb, 0xc6, 0xdb, 0xe6, 0xcf, 0x94, 0xef, 0x26, 0x4d, 0x5b, 0x8a, 0xab, 0xc7, 0xd3, 0x4d, 0x95, 0xad, 0xef, 0xd0, 0xb9, 0x81, 0x98, 0xb5, 0x40, 0x8b, 0xf7, 0x56, 0x60,
0x5f, 0x5b, 0x56, 0xd5, 0xb8, 0xc6, 0x6a, 0x6b, 0x6c, 0x75, 0x82, 0x1b, 0x82, 0x90, 0x37, 0xaf, 0xab, 0x81, 0x9d, 0xef, 0x9e, 0x77, 0xa9, 0xf9, 0xa0, 0xf9, 0x48, 0x5f, 0x6e, 0xeb, 0x2a, 0xb9,
0xb9, 0xd0, 0xba, 0xb7, 0x42, 0xc9, 0xcf, 0xe5, 0xa3, 0x01, 0xea, 0xcb, 0x5e, 0x43, 0xf6, 0x72, 0xdb, 0xc6, 0x4b, 0x84, 0x92, 0x76, 0x4b, 0x59, 0x25, 0x35, 0x2f, 0x7c, 0xa4, 0x09, 0xb6, 0x1e,
0x6f, 0xf7, 0xd6, 0xb8, 0x67, 0xae, 0x04, 0x00, 0xdf, 0xe1, 0xf2, 0xcd, 0x79, 0x43, 0x26, 0x92, 0x4c, 0xbf, 0xa7, 0x7c, 0xb7, 0xb9, 0xdf, 0x5a, 0x5c, 0xf5, 0x84, 0x53, 0x57, 0xe3, 0x06, 0x55,
0xad, 0xe5, 0x21, 0xe1, 0x18, 0x98, 0x3b, 0x56, 0x73, 0x88, 0xb2, 0x63, 0x46, 0x83, 0xf5, 0xe5, 0xae, 0x00, 0xdb, 0x0a, 0x6e, 0x08, 0x42, 0x32, 0xbe, 0xe1, 0x42, 0xeb, 0xc1, 0x0a, 0x25, 0xff,
0x35, 0x79, 0xa8, 0xb8, 0xd8, 0xb9, 0xe7, 0x77, 0xa4, 0x55, 0x93, 0x89, 0x5f, 0x1a, 0x14, 0xd6, 0x6b, 0xab, 0xb5, 0xd6, 0xbd, 0x86, 0x94, 0xe8, 0x41, 0x48, 0xa8, 0xc0, 0x54, 0xdf, 0x08, 0x40,
0xdd, 0x9c, 0x50, 0x24, 0x10, 0x41, 0xb4, 0xc2, 0x33, 0xad, 0x5f, 0xbc, 0x79, 0x1e, 0x74, 0xff, 0xd3, 0xa3, 0xf5, 0x43, 0xf6, 0x96, 0x4c, 0x64, 0x70, 0xeb, 0x93, 0xc7, 0xd2, 0x3a, 0x7b, 0x56,
0x6f, 0x24, 0x74, 0xef, 0xe6, 0x8f, 0x3b, 0x3e, 0xad, 0x5e, 0xd1, 0xa1, 0xe4, 0xeb, 0x07, 0xf5, 0x67, 0x10, 0x65, 0x4b, 0xb7, 0x86, 0x9b, 0xcb, 0x2b, 0x46, 0x52, 0x12, 0xbc, 0x4b, 0x47, 0x1a,
0x7b, 0x7d, 0x5f, 0xb9, 0xbe, 0xd7, 0xf0, 0xfd, 0xbb, 0x01, 0x37, 0x1f, 0x70, 0xbe, 0xb5, 0xe1, 0x49, 0xab, 0x62, 0x28, 0x3f, 0x34, 0x78, 0xb1, 0xbd, 0x8e, 0xa1, 0x48, 0x60, 0x97, 0x68, 0x85,
0xfd, 0xa3, 0xce, 0xef, 0x81, 0xf7, 0xb5, 0x29, 0x5e, 0xea, 0x7a, 0x08, 0xd0, 0x5c, 0x97, 0x4e, 0xa3, 0x6f, 0x3f, 0x38, 0xf3, 0x1c, 0x92, 0xff, 0xdf, 0xf0, 0x6a, 0x1f, 0xe3, 0x9f, 0x76, 0x7c,
0xff, 0x9e, 0xbc, 0xa4, 0x22, 0xc5, 0x53, 0x44, 0xcf, 0x5d, 0xf5, 0x21, 0xb3, 0x78, 0xf1, 0x5e, 0x56, 0x3e, 0xcd, 0x43, 0xc9, 0x57, 0xaf, 0xf4, 0x0f, 0xfa, 0x5e, 0xbb, 0xbe, 0xdf, 0xf0, 0xfd,
0xe7, 0x40, 0x0d, 0xc6, 0xf8, 0xb4, 0x98, 0xbf, 0x8a, 0x2f, 0xee, 0x20, 0x29, 0x86, 0x0f, 0xe4, 0x0f, 0x0d, 0x6e, 0x3e, 0xe2, 0x7c, 0x6b, 0xcb, 0xfb, 0x27, 0x9d, 0xdf, 0x07, 0xef, 0x2b, 0x53,
0xcd, 0x48, 0xa2, 0xf1, 0x1f, 0x65, 0xff, 0x03, 0xb4, 0xed, 0xd3, 0xf2, 0x3e, 0x1b, 0x00, 0x00 0x9c, 0xd4, 0xcd, 0x10, 0xa0, 0xb9, 0x36, 0x9d, 0xee, 0x91, 0x7a, 0xcd, 0x6f, 0xf2, 0xe7, 0xd8,
0xa3, 0x7d, 0x3f, 0x80, 0xcc, 0xe2, 0x6d, 0x7e, 0x93, 0x58, 0x35, 0x68, 0xe8, 0xf3, 0x62, 0xfe,
0x2a, 0x12, 0xda, 0x41, 0xa6, 0x0d, 0x1f, 0x48, 0xc6, 0x91, 0x99, 0xe3, 0xbf, 0xea, 0xfe, 0x0b,
0x55, 0xef, 0x8f, 0xef, 0xc0, 0x1b, 0x00, 0x00
}; };

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
*/ */
// version code in format yymmddb (b = daily build) // version code in format yymmddb (b = daily build)
#define VERSION 2203131 #define VERSION 2203141
//uncomment this if you have a "my_config.h" file you'd like to use //uncomment this if you have a "my_config.h" file you'd like to use
//#define WLED_USE_MY_CONFIG //#define WLED_USE_MY_CONFIG