Merge branch 'master' into merge-master
This commit is contained in:
commit
081f211231
6
package-lock.json
generated
6
package-lock.json
generated
@ -1339,9 +1339,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "1.2.5",
|
"version": "1.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
|
||||||
},
|
},
|
||||||
"mkdirp": {
|
"mkdirp": {
|
||||||
"version": "0.5.5",
|
"version": "0.5.5",
|
||||||
|
@ -482,6 +482,15 @@ board_build.ldscript = ${common.ldscript_2m512k}
|
|||||||
build_flags = ${common.build_flags_esp8266} -D WLED_USE_IC_CCT -D BTNPIN=-1 -D IRPIN=-1 -D WLED_DISABLE_INFRARED
|
build_flags = ${common.build_flags_esp8266} -D WLED_USE_IC_CCT -D BTNPIN=-1 -D IRPIN=-1 -D WLED_DISABLE_INFRARED
|
||||||
lib_deps = ${esp8266.lib_deps}
|
lib_deps = ${esp8266.lib_deps}
|
||||||
|
|
||||||
|
[env:MY9291]
|
||||||
|
board = esp01_1m
|
||||||
|
platform = ${common.platform_wled_default}
|
||||||
|
platform_packages = ${common.platform_packages}
|
||||||
|
board_build.ldscript = ${common.ldscript_1m128k}
|
||||||
|
build_unflags = ${common.build_unflags}
|
||||||
|
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA -D USERMOD_MY9291
|
||||||
|
lib_deps = ${esp8266.lib_deps}
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# travis test board configurations
|
# travis test board configurations
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
321
usermods/MY9291/MY92xx.h
Normal file
321
usermods/MY9291/MY92xx.h
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
MY92XX LED Driver for Arduino
|
||||||
|
Based on the C driver by MaiKe Labs
|
||||||
|
|
||||||
|
Copyright (c) 2016 - 2026 MaiKe Labs
|
||||||
|
Copyright (C) 2017 - 2018 Xose Pérez for the Arduino compatible library
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _my92xx_h
|
||||||
|
#define _my92xx_h
|
||||||
|
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
#ifdef DEBUG_MY92XX
|
||||||
|
#if ARDUINO_ARCH_ESP8266
|
||||||
|
#define DEBUG_MSG_MY92XX(...) DEBUG_MY92XX.printf( __VA_ARGS__ )
|
||||||
|
#elif ARDUINO_ARCH_AVR
|
||||||
|
#define DEBUG_MSG_MY92XX(...) { char buffer[80]; snprintf(buffer, sizeof(buffer), __VA_ARGS__ ); DEBUG_MY92XX.print(buffer); }
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define DEBUG_MSG_MY92XX(...)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef enum my92xx_model_t {
|
||||||
|
MY92XX_MODEL_MY9291 = 0X00,
|
||||||
|
MY92XX_MODEL_MY9231 = 0X01,
|
||||||
|
} my92xx_model_t;
|
||||||
|
|
||||||
|
typedef enum my92xx_cmd_one_shot_t {
|
||||||
|
MY92XX_CMD_ONE_SHOT_DISABLE = 0X00,
|
||||||
|
MY92XX_CMD_ONE_SHOT_ENFORCE = 0X01,
|
||||||
|
} my92xx_cmd_one_shot_t;
|
||||||
|
|
||||||
|
typedef enum my92xx_cmd_reaction_t {
|
||||||
|
MY92XX_CMD_REACTION_FAST = 0X00,
|
||||||
|
MY92XX_CMD_REACTION_SLOW = 0X01,
|
||||||
|
} my92xx_cmd_reaction_t;
|
||||||
|
|
||||||
|
typedef enum my92xx_cmd_bit_width_t {
|
||||||
|
MY92XX_CMD_BIT_WIDTH_16 = 0X00,
|
||||||
|
MY92XX_CMD_BIT_WIDTH_14 = 0X01,
|
||||||
|
MY92XX_CMD_BIT_WIDTH_12 = 0X02,
|
||||||
|
MY92XX_CMD_BIT_WIDTH_8 = 0X03,
|
||||||
|
} my92xx_cmd_bit_width_t;
|
||||||
|
|
||||||
|
typedef enum my92xx_cmd_frequency_t {
|
||||||
|
MY92XX_CMD_FREQUENCY_DIVIDE_1 = 0X00,
|
||||||
|
MY92XX_CMD_FREQUENCY_DIVIDE_4 = 0X01,
|
||||||
|
MY92XX_CMD_FREQUENCY_DIVIDE_16 = 0X02,
|
||||||
|
MY92XX_CMD_FREQUENCY_DIVIDE_64 = 0X03,
|
||||||
|
} my92xx_cmd_frequency_t;
|
||||||
|
|
||||||
|
typedef enum my92xx_cmd_scatter_t {
|
||||||
|
MY92XX_CMD_SCATTER_APDM = 0X00,
|
||||||
|
MY92XX_CMD_SCATTER_PWM = 0X01,
|
||||||
|
} my92xx_cmd_scatter_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
my92xx_cmd_scatter_t scatter : 1;
|
||||||
|
my92xx_cmd_frequency_t frequency : 2;
|
||||||
|
my92xx_cmd_bit_width_t bit_width : 2;
|
||||||
|
my92xx_cmd_reaction_t reaction : 1;
|
||||||
|
my92xx_cmd_one_shot_t one_shot : 1;
|
||||||
|
unsigned char resv : 1;
|
||||||
|
} __attribute__((aligned(1), packed)) my92xx_cmd_t;
|
||||||
|
|
||||||
|
#define MY92XX_COMMAND_DEFAULT { \
|
||||||
|
.scatter = MY92XX_CMD_SCATTER_APDM, \
|
||||||
|
.frequency = MY92XX_CMD_FREQUENCY_DIVIDE_1, \
|
||||||
|
.bit_width = MY92XX_CMD_BIT_WIDTH_8, \
|
||||||
|
.reaction = MY92XX_CMD_REACTION_FAST, \
|
||||||
|
.one_shot = MY92XX_CMD_ONE_SHOT_DISABLE, \
|
||||||
|
.resv = 0 \
|
||||||
|
}
|
||||||
|
|
||||||
|
class my92xx {
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
my92xx(my92xx_model_t model, unsigned char chips, unsigned char di, unsigned char dcki, my92xx_cmd_t command);
|
||||||
|
unsigned char getChannels();
|
||||||
|
void setChannel(unsigned char channel, unsigned int value);
|
||||||
|
unsigned int getChannel(unsigned char channel);
|
||||||
|
void setState(bool state);
|
||||||
|
bool getState();
|
||||||
|
void update();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
void _di_pulse(unsigned int times);
|
||||||
|
void _dcki_pulse(unsigned int times);
|
||||||
|
void _set_cmd(my92xx_cmd_t command);
|
||||||
|
void _send();
|
||||||
|
void _write(unsigned int data, unsigned char bit_length);
|
||||||
|
|
||||||
|
my92xx_cmd_t _command;
|
||||||
|
my92xx_model_t _model = MY92XX_MODEL_MY9291;
|
||||||
|
unsigned char _chips = 1;
|
||||||
|
unsigned char _channels;
|
||||||
|
uint16_t* _value;
|
||||||
|
bool _state = false;
|
||||||
|
unsigned char _pin_di;
|
||||||
|
unsigned char _pin_dcki;
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#if ARDUINO_ARCH_ESP8266
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
void os_delay_us(unsigned int);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif ARDUINO_ARCH_AVR
|
||||||
|
|
||||||
|
#define os_delay_us delayMicroseconds
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void my92xx::_di_pulse(unsigned int times) {
|
||||||
|
for (unsigned int i = 0; i < times; i++) {
|
||||||
|
digitalWrite(_pin_di, HIGH);
|
||||||
|
digitalWrite(_pin_di, LOW);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void my92xx::_dcki_pulse(unsigned int times) {
|
||||||
|
for (unsigned int i = 0; i < times; i++) {
|
||||||
|
digitalWrite(_pin_dcki, HIGH);
|
||||||
|
digitalWrite(_pin_dcki, LOW);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void my92xx::_write(unsigned int data, unsigned char bit_length) {
|
||||||
|
|
||||||
|
unsigned int mask = (0x01 << (bit_length - 1));
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < bit_length / 2; i++) {
|
||||||
|
digitalWrite(_pin_dcki, LOW);
|
||||||
|
digitalWrite(_pin_di, (data & mask) ? HIGH : LOW);
|
||||||
|
digitalWrite(_pin_dcki, HIGH);
|
||||||
|
data = data << 1;
|
||||||
|
digitalWrite(_pin_di, (data & mask) ? HIGH : LOW);
|
||||||
|
digitalWrite(_pin_dcki, LOW);
|
||||||
|
digitalWrite(_pin_di, LOW);
|
||||||
|
data = data << 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void my92xx::_set_cmd(my92xx_cmd_t command) {
|
||||||
|
|
||||||
|
// ets_intr_lock();
|
||||||
|
|
||||||
|
// TStop > 12us.
|
||||||
|
os_delay_us(12);
|
||||||
|
|
||||||
|
// Send 12 DI pulse, after 6 pulse's falling edge store duty data, and 12
|
||||||
|
// pulse's rising edge convert to command mode.
|
||||||
|
_di_pulse(12);
|
||||||
|
|
||||||
|
// Delay >12us, begin send CMD data
|
||||||
|
os_delay_us(12);
|
||||||
|
|
||||||
|
// Send CMD data
|
||||||
|
unsigned char command_data = *(unsigned char*)(&command);
|
||||||
|
for (unsigned char i = 0; i < _chips; i++) {
|
||||||
|
_write(command_data, 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TStart > 12us. Delay 12 us.
|
||||||
|
os_delay_us(12);
|
||||||
|
|
||||||
|
// Send 16 DI pulse,at 14 pulse's falling edge store CMD data, and
|
||||||
|
// at 16 pulse's falling edge convert to duty mode.
|
||||||
|
_di_pulse(16);
|
||||||
|
|
||||||
|
// TStop > 12us.
|
||||||
|
os_delay_us(12);
|
||||||
|
|
||||||
|
// ets_intr_unlock();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void my92xx::_send() {
|
||||||
|
|
||||||
|
#ifdef DEBUG_MY92XX
|
||||||
|
DEBUG_MSG_MY92XX("[MY92XX] Refresh: %s (", _state ? "ON" : "OFF");
|
||||||
|
for (unsigned char channel = 0; channel < _channels; channel++) {
|
||||||
|
DEBUG_MSG_MY92XX(" %d", _value[channel]);
|
||||||
|
}
|
||||||
|
DEBUG_MSG_MY92XX(" )\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
unsigned char bit_length = 8;
|
||||||
|
switch (_command.bit_width) {
|
||||||
|
case MY92XX_CMD_BIT_WIDTH_16:
|
||||||
|
bit_length = 16;
|
||||||
|
break;
|
||||||
|
case MY92XX_CMD_BIT_WIDTH_14:
|
||||||
|
bit_length = 14;
|
||||||
|
break;
|
||||||
|
case MY92XX_CMD_BIT_WIDTH_12:
|
||||||
|
bit_length = 12;
|
||||||
|
break;
|
||||||
|
case MY92XX_CMD_BIT_WIDTH_8:
|
||||||
|
bit_length = 8;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
bit_length = 8;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ets_intr_lock();
|
||||||
|
|
||||||
|
// TStop > 12us.
|
||||||
|
os_delay_us(12);
|
||||||
|
|
||||||
|
// Send color data
|
||||||
|
for (unsigned char channel = 0; channel < _channels; channel++) {
|
||||||
|
_write(_state ? _value[channel] : 0, bit_length);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TStart > 12us. Ready for send DI pulse.
|
||||||
|
os_delay_us(12);
|
||||||
|
|
||||||
|
// Send 8 DI pulse. After 8 pulse falling edge, store old data.
|
||||||
|
_di_pulse(8);
|
||||||
|
|
||||||
|
// TStop > 12us.
|
||||||
|
os_delay_us(12);
|
||||||
|
|
||||||
|
// ets_intr_unlock();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
unsigned char my92xx::getChannels() {
|
||||||
|
return _channels;
|
||||||
|
}
|
||||||
|
|
||||||
|
void my92xx::setChannel(unsigned char channel, unsigned int value) {
|
||||||
|
if (channel < _channels) {
|
||||||
|
_value[channel] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int my92xx::getChannel(unsigned char channel) {
|
||||||
|
if (channel < _channels) {
|
||||||
|
return _value[channel];
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool my92xx::getState() {
|
||||||
|
return _state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void my92xx::setState(bool state) {
|
||||||
|
_state = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void my92xx::update() {
|
||||||
|
_send();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
my92xx::my92xx(my92xx_model_t model, unsigned char chips, unsigned char di, unsigned char dcki, my92xx_cmd_t command) : _command(command) {
|
||||||
|
|
||||||
|
_model = model;
|
||||||
|
_chips = chips;
|
||||||
|
_pin_di = di;
|
||||||
|
_pin_dcki = dcki;
|
||||||
|
|
||||||
|
// Init channels
|
||||||
|
if (_model == MY92XX_MODEL_MY9291) {
|
||||||
|
_channels = 4 * _chips;
|
||||||
|
}
|
||||||
|
else if (_model == MY92XX_MODEL_MY9231) {
|
||||||
|
_channels = 3 * _chips;
|
||||||
|
}
|
||||||
|
_value = new uint16_t[_channels];
|
||||||
|
for (unsigned char i = 0; i < _channels; i++) {
|
||||||
|
_value[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Init GPIO
|
||||||
|
pinMode(_pin_di, OUTPUT);
|
||||||
|
pinMode(_pin_dcki, OUTPUT);
|
||||||
|
digitalWrite(_pin_di, LOW);
|
||||||
|
digitalWrite(_pin_dcki, LOW);
|
||||||
|
|
||||||
|
// Clear all duty register
|
||||||
|
_dcki_pulse(32 * _chips);
|
||||||
|
|
||||||
|
// Send init command
|
||||||
|
_set_cmd(command);
|
||||||
|
|
||||||
|
DEBUG_MSG_MY92XX("[MY92XX] Initialized\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
45
usermods/MY9291/usermode_MY9291.h
Normal file
45
usermods/MY9291/usermode_MY9291.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "wled.h"
|
||||||
|
#include "MY92xx.h"
|
||||||
|
|
||||||
|
#define MY92XX_MODEL MY92XX_MODEL_MY9291
|
||||||
|
#define MY92XX_CHIPS 1
|
||||||
|
#define MY92XX_DI_PIN 13
|
||||||
|
#define MY92XX_DCKI_PIN 15
|
||||||
|
|
||||||
|
#define MY92XX_RED 0
|
||||||
|
#define MY92XX_GREEN 1
|
||||||
|
#define MY92XX_BLUE 2
|
||||||
|
#define MY92XX_WHITE 3
|
||||||
|
|
||||||
|
class MY9291Usermod : public Usermod {
|
||||||
|
private:
|
||||||
|
my92xx _my92xx = my92xx(MY92XX_MODEL, MY92XX_CHIPS, MY92XX_DI_PIN, MY92XX_DCKI_PIN, MY92XX_COMMAND_DEFAULT);
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
_my92xx.setState(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void connected() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
uint32_t c = strip.getPixelColor(0);
|
||||||
|
int w = ((c >> 24) & 0xff) * bri / 255.0;
|
||||||
|
int r = ((c >> 16) & 0xff) * bri / 255.0;
|
||||||
|
int g = ((c >> 8) & 0xff) * bri / 255.0;
|
||||||
|
int b = (c & 0xff) * bri / 255.0;
|
||||||
|
_my92xx.setChannel(MY92XX_RED, r);
|
||||||
|
_my92xx.setChannel(MY92XX_GREEN, g);
|
||||||
|
_my92xx.setChannel(MY92XX_BLUE, b);
|
||||||
|
_my92xx.setChannel(MY92XX_WHITE, w);
|
||||||
|
_my92xx.update();
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t getId() {
|
||||||
|
return USERMOD_ID_MY9291;
|
||||||
|
}
|
||||||
|
};
|
26
usermods/usermod_v2_word_clock/readme.md
Normal file
26
usermods/usermod_v2_word_clock/readme.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Word Clock Usermod V2
|
||||||
|
|
||||||
|
This usermod can be used to drive a wordclock with a 11x10 pixel matrix with WLED. There are also 4 additional dots for the minutes.
|
||||||
|
The visualisation is desribed in 4 mask with LED numbers (single dots for minutes, minutes, hours and "clock/Uhr").
|
||||||
|
There are 2 parameters to chnage the behaviour:
|
||||||
|
|
||||||
|
active: enable/disable usermod
|
||||||
|
diplayItIs: enable/disable display of "Es ist" on the clock.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Copy and update the example `platformio_override.ini.sample`
|
||||||
|
from the Rotary Encoder UI usermode folder to the root directory of your particular build.
|
||||||
|
This file should be placed in the same directory as `platformio.ini`.
|
||||||
|
|
||||||
|
### Define Your Options
|
||||||
|
|
||||||
|
* `USERMOD_WORDCLOCK` - define this to have this the Auto Save usermod included wled00\usermods_list.cpp
|
||||||
|
|
||||||
|
### PlatformIO requirements
|
||||||
|
|
||||||
|
No special requirements.
|
||||||
|
|
||||||
|
## Change Log
|
||||||
|
|
||||||
|
2022/03/30 initial commit
|
427
usermods/usermod_v2_word_clock/usermod_v2_word_clock.h
Normal file
427
usermods/usermod_v2_word_clock/usermod_v2_word_clock.h
Normal file
@ -0,0 +1,427 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "wled.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Usermods allow you to add own functionality to WLED more easily
|
||||||
|
* See: https://github.com/Aircoookie/WLED/wiki/Add-own-functionality
|
||||||
|
*
|
||||||
|
* This usermod can be used to drive a wordclock with a 11x10 pixel matrix with WLED. There are also 4 additional dots for the minutes.
|
||||||
|
* The visualisation is desribed in 4 mask with LED numbers (single dots for minutes, minutes, hours and "clock/Uhr").
|
||||||
|
* There are 2 parameters to chnage the behaviour:
|
||||||
|
*
|
||||||
|
* active: enable/disable usermod
|
||||||
|
* diplayItIs: enable/disable display of "Es ist" on the clock.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class WordClockUsermod : public Usermod
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
unsigned long lastTime = 0;
|
||||||
|
int lastTimeMinutes = -1;
|
||||||
|
|
||||||
|
// set your config variables to their boot default value (this can also be done in readFromConfig() or a constructor if you prefer)
|
||||||
|
bool usermodActive = false;
|
||||||
|
bool displayItIs = false;
|
||||||
|
|
||||||
|
// defines for mask sizes
|
||||||
|
#define maskSizeLeds 114
|
||||||
|
#define maskSizeMinutes 12
|
||||||
|
#define maskSizeHours 6
|
||||||
|
#define maskSizeItIs 5
|
||||||
|
#define maskSizeMinuteDots 4
|
||||||
|
|
||||||
|
// "minute" masks
|
||||||
|
const int maskMinutes[12][maskSizeMinutes] =
|
||||||
|
{
|
||||||
|
{107, 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // :00
|
||||||
|
{ 7, 8, 9, 10, 40, 41, 42, 43, -1, -1, -1, -1}, // :05 fünf nach
|
||||||
|
{ 11, 12, 13, 14, 40, 41, 42, 43, -1, -1, -1, -1}, // :10 zehn nach
|
||||||
|
{ 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1}, // :15 viertel
|
||||||
|
{ 15, 16, 17, 18, 19, 20, 21, 40, 41, 42, 43, -1}, // :20 zwanzig nach
|
||||||
|
{ 7, 8, 9, 10, 33, 34, 35, 44, 45, 46, 47, -1}, // :25 fünf vor halb
|
||||||
|
{ 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1}, // :30 halb
|
||||||
|
{ 7, 8, 9, 10, 40, 41, 42, 43, 44, 45, 46, 47}, // :35 fünf nach halb
|
||||||
|
{ 15, 16, 17, 18, 19, 20, 21, 33, 34, 35, -1, -1}, // :40 zwanzig vor
|
||||||
|
{ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1}, // :45 dreiviertel
|
||||||
|
{ 11, 12, 13, 14, 33, 34, 35, -1, -1, -1, -1, -1}, // :50 zehn vor
|
||||||
|
{ 7, 8, 9, 10, 33, 34, 35, -1, -1, -1, -1, -1} // :55 fünf vor
|
||||||
|
};
|
||||||
|
|
||||||
|
// hour masks
|
||||||
|
const int maskHours[13][maskSizeHours] =
|
||||||
|
{
|
||||||
|
{ 55, 56, 57, -1, -1, -1}, // 01: ein
|
||||||
|
{ 55, 56, 57, 58, -1, -1}, // 01: eins
|
||||||
|
{ 62, 63, 64, 65, -1, -1}, // 02: zwei
|
||||||
|
{ 66, 67, 68, 69, -1, -1}, // 03: drei
|
||||||
|
{ 73, 74, 75, 76, -1, -1}, // 04: vier
|
||||||
|
{ 51, 52, 53, 54, -1, -1}, // 05: fünf
|
||||||
|
{ 77, 78, 79, 80, 81, -1}, // 06: sechs
|
||||||
|
{ 88, 89, 90, 91, 92, 93}, // 07: sieben
|
||||||
|
{ 84, 85, 86, 87, -1, -1}, // 08: acht
|
||||||
|
{102, 103, 104, 105, -1, -1}, // 09: neun
|
||||||
|
{ 99, 100, 101, 102, -1, -1}, // 10: zehn
|
||||||
|
{ 49, 50, 51, -1, -1, -1}, // 11: elf
|
||||||
|
{ 94, 95, 96, 97, 98, -1} // 12: zwölf and 00: null
|
||||||
|
};
|
||||||
|
|
||||||
|
// mask "it is"
|
||||||
|
const int maskItIs[maskSizeItIs] = {0, 1, 3, 4, 5};
|
||||||
|
|
||||||
|
// mask minute dots
|
||||||
|
const int maskMinuteDots[maskSizeMinuteDots] = {110, 111, 112, 113};
|
||||||
|
|
||||||
|
// overall mask to define which LEDs are on
|
||||||
|
int maskLedsOn[maskSizeLeds] =
|
||||||
|
{
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,
|
||||||
|
0,0,0,0
|
||||||
|
};
|
||||||
|
|
||||||
|
// update led mask
|
||||||
|
void updateLedMask(const int wordMask[], int arraySize)
|
||||||
|
{
|
||||||
|
// loop over array
|
||||||
|
for (int x=0; x < arraySize; x++)
|
||||||
|
{
|
||||||
|
// check if mask has a valid LED number
|
||||||
|
if (wordMask[x] >= 0 && wordMask[x] < maskSizeLeds)
|
||||||
|
{
|
||||||
|
// turn LED on
|
||||||
|
maskLedsOn[wordMask[x]] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// set hours
|
||||||
|
void setHours(int hours, bool fullClock)
|
||||||
|
{
|
||||||
|
int index = hours;
|
||||||
|
|
||||||
|
// handle 00:xx as 12:xx
|
||||||
|
if (hours == 0)
|
||||||
|
{
|
||||||
|
index = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if we get an overrun of 12 o´clock
|
||||||
|
if (hours == 13)
|
||||||
|
{
|
||||||
|
index = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// special handling for "ein Uhr" instead of "eins Uhr"
|
||||||
|
if (hours == 1 && fullClock == true)
|
||||||
|
{
|
||||||
|
index = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// update led mask
|
||||||
|
updateLedMask(maskHours[index], maskSizeHours);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set minutes
|
||||||
|
void setMinutes(int index)
|
||||||
|
{
|
||||||
|
// update led mask
|
||||||
|
updateLedMask(maskMinutes[index], maskSizeMinutes);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set minutes dot
|
||||||
|
void setSingleMinuteDots(int minutes)
|
||||||
|
{
|
||||||
|
// modulo to get minute dots
|
||||||
|
int minutesDotCount = minutes % 5;
|
||||||
|
|
||||||
|
// check if minute dots are active
|
||||||
|
if (minutesDotCount > 0)
|
||||||
|
{
|
||||||
|
// activate all minute dots until number is reached
|
||||||
|
for (int i = 0; i < minutesDotCount; i++)
|
||||||
|
{
|
||||||
|
// activate LED
|
||||||
|
maskLedsOn[maskMinuteDots[i]] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// update the display
|
||||||
|
void updateDisplay(uint8_t hours, uint8_t minutes)
|
||||||
|
{
|
||||||
|
// disable complete matrix at the bigging
|
||||||
|
for (int x = 0; x < maskSizeLeds; x++)
|
||||||
|
{
|
||||||
|
maskLedsOn[x] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// display it is/es ist if activated
|
||||||
|
if (displayItIs)
|
||||||
|
{
|
||||||
|
updateLedMask(maskItIs, maskSizeItIs);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set single minute dots
|
||||||
|
setSingleMinuteDots(minutes);
|
||||||
|
|
||||||
|
// switch minutes
|
||||||
|
switch (minutes / 5)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
// full hour
|
||||||
|
setMinutes(0);
|
||||||
|
setHours(hours, true);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
// 5 nach
|
||||||
|
setMinutes(1);
|
||||||
|
setHours(hours, false);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
// 10 nach
|
||||||
|
setMinutes(2);
|
||||||
|
setHours(hours, false);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
// viertel
|
||||||
|
setMinutes(3);
|
||||||
|
setHours(hours + 1, false);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
// 20 nach
|
||||||
|
setMinutes(4);
|
||||||
|
setHours(hours, false);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
// 5 vor halb
|
||||||
|
setMinutes(5);
|
||||||
|
setHours(hours + 1, false);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
// halb
|
||||||
|
setMinutes(6);
|
||||||
|
setHours(hours + 1, false);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
// 5 nach halb
|
||||||
|
setMinutes(7);
|
||||||
|
setHours(hours + 1, false);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
// 20 vor
|
||||||
|
setMinutes(8);
|
||||||
|
setHours(hours + 1, false);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
// viertel vor
|
||||||
|
setMinutes(9);
|
||||||
|
setHours(hours + 1, false);
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
// 10 vor
|
||||||
|
setMinutes(10);
|
||||||
|
setHours(hours + 1, false);
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
// 5 vor
|
||||||
|
setMinutes(11);
|
||||||
|
setHours(hours + 1, false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
//Functions called by WLED
|
||||||
|
|
||||||
|
/*
|
||||||
|
* setup() is called once at boot. WiFi is not yet connected at this point.
|
||||||
|
* You can use it to initialize variables, sensors or similar.
|
||||||
|
*/
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* connected() is called every time the WiFi is (re)connected
|
||||||
|
* Use it to initialize network interfaces
|
||||||
|
*/
|
||||||
|
void connected()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* loop() is called continuously. Here you can check for events, read sensors, etc.
|
||||||
|
*
|
||||||
|
* Tips:
|
||||||
|
* 1. You can use "if (WLED_CONNECTED)" to check for a successful network connection.
|
||||||
|
* Additionally, "if (WLED_MQTT_CONNECTED)" is available to check for a connection to an MQTT broker.
|
||||||
|
*
|
||||||
|
* 2. Try to avoid using the delay() function. NEVER use delays longer than 10 milliseconds.
|
||||||
|
* Instead, use a timer check as shown here.
|
||||||
|
*/
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
// do it every 5 seconds
|
||||||
|
if (millis() - lastTime > 5000)
|
||||||
|
{
|
||||||
|
// check the time
|
||||||
|
int minutes = minute(localTime);
|
||||||
|
|
||||||
|
// check if we already updated this minute
|
||||||
|
if (lastTimeMinutes != minutes)
|
||||||
|
{
|
||||||
|
// update the display with new time
|
||||||
|
updateDisplay(hourFormat12(localTime), minute(localTime));
|
||||||
|
|
||||||
|
// remember last update time
|
||||||
|
lastTimeMinutes = minutes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// remember last update
|
||||||
|
lastTime = millis();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* addToJsonInfo() can be used to add custom entries to the /json/info part of the JSON API.
|
||||||
|
* Creating an "u" object allows you to add custom key/value pairs to the Info section of the WLED web UI.
|
||||||
|
* Below it is shown how this could be used for e.g. a light sensor
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
void addToJsonInfo(JsonObject& root)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* addToJsonState() can be used to add custom entries to the /json/state part of the JSON API (state object).
|
||||||
|
* Values in the state object may be modified by connected clients
|
||||||
|
*/
|
||||||
|
void addToJsonState(JsonObject& root)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* readFromJsonState() can be used to receive data clients send to the /json/state part of the JSON API (state object).
|
||||||
|
* Values in the state object may be modified by connected clients
|
||||||
|
*/
|
||||||
|
void readFromJsonState(JsonObject& root)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* addToConfig() can be used to add custom persistent settings to the cfg.json file in the "um" (usermod) object.
|
||||||
|
* It will be called by WLED when settings are actually saved (for example, LED settings are saved)
|
||||||
|
* If you want to force saving the current state, use serializeConfig() in your loop().
|
||||||
|
*
|
||||||
|
* CAUTION: serializeConfig() will initiate a filesystem write operation.
|
||||||
|
* It might cause the LEDs to stutter and will cause flash wear if called too often.
|
||||||
|
* Use it sparingly and always in the loop, never in network callbacks!
|
||||||
|
*
|
||||||
|
* addToConfig() will make your settings editable through the Usermod Settings page automatically.
|
||||||
|
*
|
||||||
|
* Usermod Settings Overview:
|
||||||
|
* - Numeric values are treated as floats in the browser.
|
||||||
|
* - If the numeric value entered into the browser contains a decimal point, it will be parsed as a C float
|
||||||
|
* before being returned to the Usermod. The float data type has only 6-7 decimal digits of precision, and
|
||||||
|
* doubles are not supported, numbers will be rounded to the nearest float value when being parsed.
|
||||||
|
* The range accepted by the input field is +/- 1.175494351e-38 to +/- 3.402823466e+38.
|
||||||
|
* - If the numeric value entered into the browser doesn't contain a decimal point, it will be parsed as a
|
||||||
|
* C int32_t (range: -2147483648 to 2147483647) before being returned to the usermod.
|
||||||
|
* Overflows or underflows are truncated to the max/min value for an int32_t, and again truncated to the type
|
||||||
|
* used in the Usermod when reading the value from ArduinoJson.
|
||||||
|
* - Pin values can be treated differently from an integer value by using the key name "pin"
|
||||||
|
* - "pin" can contain a single or array of integer values
|
||||||
|
* - On the Usermod Settings page there is simple checking for pin conflicts and warnings for special pins
|
||||||
|
* - Red color indicates a conflict. Yellow color indicates a pin with a warning (e.g. an input-only pin)
|
||||||
|
* - Tip: use int8_t to store the pin value in the Usermod, so a -1 value (pin not set) can be used
|
||||||
|
*
|
||||||
|
* See usermod_v2_auto_save.h for an example that saves Flash space by reusing ArduinoJson key name strings
|
||||||
|
*
|
||||||
|
* If you need a dedicated settings page with custom layout for your Usermod, that takes a lot more work.
|
||||||
|
* You will have to add the setting to the HTML, xml.cpp and set.cpp manually.
|
||||||
|
* See the WLED Soundreactive fork (code and wiki) for reference. https://github.com/atuline/WLED
|
||||||
|
*
|
||||||
|
* I highly recommend checking out the basics of ArduinoJson serialization and deserialization in order to use custom settings!
|
||||||
|
*/
|
||||||
|
void addToConfig(JsonObject& root)
|
||||||
|
{
|
||||||
|
JsonObject top = root.createNestedObject("WordClockUsermod");
|
||||||
|
top["active"] = usermodActive;
|
||||||
|
top["displayItIs"] = displayItIs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* readFromConfig() can be used to read back the custom settings you added with addToConfig().
|
||||||
|
* This is called by WLED when settings are loaded (currently this only happens immediately after boot, or after saving on the Usermod Settings page)
|
||||||
|
*
|
||||||
|
* readFromConfig() is called BEFORE setup(). This means you can use your persistent values in setup() (e.g. pin assignments, buffer sizes),
|
||||||
|
* but also that if you want to write persistent values to a dynamic buffer, you'd need to allocate it here instead of in setup.
|
||||||
|
* If you don't know what that is, don't fret. It most likely doesn't affect your use case :)
|
||||||
|
*
|
||||||
|
* Return true in case the config values returned from Usermod Settings were complete, or false if you'd like WLED to save your defaults to disk (so any missing values are editable in Usermod Settings)
|
||||||
|
*
|
||||||
|
* getJsonValue() returns false if the value is missing, or copies the value into the variable provided and returns true if the value is present
|
||||||
|
* The configComplete variable is true only if the "exampleUsermod" object and all values are present. If any values are missing, WLED will know to call addToConfig() to save them
|
||||||
|
*
|
||||||
|
* This function is guaranteed to be called on boot, but could also be called every time settings are updated
|
||||||
|
*/
|
||||||
|
bool readFromConfig(JsonObject& root)
|
||||||
|
{
|
||||||
|
// default settings values could be set here (or below using the 3-argument getJsonValue()) instead of in the class definition or constructor
|
||||||
|
// setting them inside readFromConfig() is slightly more robust, handling the rare but plausible use case of single value being missing after boot (e.g. if the cfg.json was manually edited and a value was removed)
|
||||||
|
|
||||||
|
JsonObject top = root["WordClockUsermod"];
|
||||||
|
|
||||||
|
bool configComplete = !top.isNull();
|
||||||
|
|
||||||
|
configComplete &= getJsonValue(top["active"], usermodActive);
|
||||||
|
configComplete &= getJsonValue(top["displayItIs"], displayItIs);
|
||||||
|
|
||||||
|
return configComplete;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* handleOverlayDraw() is called just before every show() (LED strip update frame) after effects have set the colors.
|
||||||
|
* Use this to blank out some LEDs or set them to a different color regardless of the set effect mode.
|
||||||
|
* Commonly used for custom clocks (Cronixie, 7 segment)
|
||||||
|
*/
|
||||||
|
void handleOverlayDraw()
|
||||||
|
{
|
||||||
|
// check if usermod is active
|
||||||
|
if (usermodActive == true)
|
||||||
|
{
|
||||||
|
// loop over all leds
|
||||||
|
for (int x = 0; x < maskSizeLeds; x++)
|
||||||
|
{
|
||||||
|
// check mask
|
||||||
|
if (maskLedsOn[x] == 0)
|
||||||
|
{
|
||||||
|
// set pixel off
|
||||||
|
strip.setPixelColor(x, RGBW32(0,0,0,0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* getId() allows you to optionally give your V2 usermod an unique ID (please define it in const.h!).
|
||||||
|
* This could be used in the future for the system to determine whether your usermod is installed.
|
||||||
|
*/
|
||||||
|
uint16_t getId()
|
||||||
|
{
|
||||||
|
return USERMOD_ID_WORDCLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
|
//More methods can be added in the future, this example will then be extended.
|
||||||
|
//Your usermod will remain compatible as it does not need to implement all methods from the Usermod base class!
|
||||||
|
};
|
13
usermods/wizlights/readme.md
Normal file
13
usermods/wizlights/readme.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Controlling Wiz lights
|
||||||
|
|
||||||
|
This usermod allows the control of [WiZ](https://www.wizconnected.com/en/consumer/) lights that are in the same network as the WLED controller.
|
||||||
|
|
||||||
|
The mod takes the colors from the first few pixels and sends them to the lights.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
First, enter how often the data will be sent to the lights (in ms).
|
||||||
|
|
||||||
|
Then enter the IPs for the lights to be controlled, in order. There is currently a limit of 10 devices that can be controled, but that number
|
||||||
|
can be easily changed by updating _MAX_WIZ_LIGHTS_.
|
||||||
|
|
142
usermods/wizlights/wizlights.h
Normal file
142
usermods/wizlights/wizlights.h
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "wled.h"
|
||||||
|
#include <WiFiUdp.h>
|
||||||
|
|
||||||
|
// Maximum number of lights supported
|
||||||
|
#define MAX_WIZ_LIGHTS 10
|
||||||
|
|
||||||
|
// UDP object, to send messages
|
||||||
|
WiFiUDP UDP;
|
||||||
|
|
||||||
|
// Function to send a color to a light
|
||||||
|
void sendColor(IPAddress ip, uint32_t color) {
|
||||||
|
UDP.beginPacket(ip, 38899);
|
||||||
|
if (color == 0) {
|
||||||
|
UDP.print("{\"method\":\"setPilot\",\"params\":{\"state\":false}}");
|
||||||
|
} else {
|
||||||
|
UDP.print("{\"method\":\"setPilot\",\"params\":{\"state\":true, \"r\":");
|
||||||
|
UDP.print(R(color));
|
||||||
|
UDP.print(",\"g\":");
|
||||||
|
UDP.print(G(color));
|
||||||
|
UDP.print(",\"b\":");
|
||||||
|
UDP.print(B(color));
|
||||||
|
UDP.print("}}");
|
||||||
|
}
|
||||||
|
UDP.endPacket();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create label for the usermode page (I cannot make it work with JSON arrays...)
|
||||||
|
String getJsonLabel(uint8_t i) {
|
||||||
|
return "ip_light_" + String(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
class WizLightsUsermod : public Usermod {
|
||||||
|
private:
|
||||||
|
// Keep track of the last time the lights were updated
|
||||||
|
unsigned long lastTime = 0;
|
||||||
|
|
||||||
|
// Specify how often WLED sends data to the Wiz lights
|
||||||
|
long updateInterval;
|
||||||
|
|
||||||
|
// Save the IP of the lights
|
||||||
|
IPAddress lightsIP[MAX_WIZ_LIGHTS];
|
||||||
|
bool lightsValid[MAX_WIZ_LIGHTS];
|
||||||
|
|
||||||
|
// Variable that keeps track of RBG values for the lights
|
||||||
|
uint32_t colorsSent[MAX_WIZ_LIGHTS];
|
||||||
|
|
||||||
|
public:
|
||||||
|
//Functions called by WLED
|
||||||
|
|
||||||
|
/*
|
||||||
|
* loop() is called continuously. Here you can check for events, read sensors, etc.
|
||||||
|
*/
|
||||||
|
void loop() {
|
||||||
|
// Calculate how long since the last update
|
||||||
|
unsigned long ellapsedTime = millis() - lastTime;
|
||||||
|
|
||||||
|
if (ellapsedTime > updateInterval) {
|
||||||
|
// Keep track of whether we are updating any of the lights
|
||||||
|
bool update = false;
|
||||||
|
|
||||||
|
// Loop through the lights
|
||||||
|
for (uint8_t i = 0; i < MAX_WIZ_LIGHTS; i++) {
|
||||||
|
// Check if we have a valid IP
|
||||||
|
if (!lightsValid[i]) { continue; }
|
||||||
|
|
||||||
|
// Get the first colors in the strip
|
||||||
|
uint32_t new_color = strip.getPixelColor(i);
|
||||||
|
|
||||||
|
// Check if the color has changed from the last one sent
|
||||||
|
// Force an update every 5 minutes, in case the colors don't change
|
||||||
|
// (the lights could have been reset by turning off and on)
|
||||||
|
if ((new_color != colorsSent[i]) | (ellapsedTime > 5*60000)) {
|
||||||
|
// It has changed, send the new color to the light
|
||||||
|
update = true;
|
||||||
|
sendColor(lightsIP[i], new_color);
|
||||||
|
colorsSent[i] = new_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// We sent an update, wait until we do this again
|
||||||
|
if (update) {
|
||||||
|
lastTime = millis();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* addToConfig() can be used to add custom persistent settings to the cfg.json file in the "um" (usermod) object.
|
||||||
|
* It will be called by WLED when settings are actually saved (for example, LED settings are saved)
|
||||||
|
* If you want to force saving the current state, use serializeConfig() in your loop().
|
||||||
|
*/
|
||||||
|
void addToConfig(JsonObject& root)
|
||||||
|
{
|
||||||
|
JsonObject top = root.createNestedObject("wizLightsUsermod");
|
||||||
|
top["interval_ms"] = updateInterval;
|
||||||
|
for (uint8_t i = 0; i < MAX_WIZ_LIGHTS; i++) {
|
||||||
|
top[getJsonLabel(i)] = lightsIP[i].toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* readFromConfig() can be used to read back the custom settings you added with addToConfig().
|
||||||
|
* This is called by WLED when settings are loaded (currently this only happens immediately after boot, or after saving on the Usermod Settings page)
|
||||||
|
*/
|
||||||
|
bool readFromConfig(JsonObject& root)
|
||||||
|
{
|
||||||
|
// default settings values could be set here (or below using the 3-argument getJsonValue()) instead of in the class definition or constructor
|
||||||
|
// setting them inside readFromConfig() is slightly more robust, handling the rare but plausible use case of single value being missing after boot (e.g. if the cfg.json was manually edited and a value was removed)
|
||||||
|
|
||||||
|
JsonObject top = root["wizLightsUsermod"];
|
||||||
|
|
||||||
|
bool configComplete = !top.isNull();
|
||||||
|
|
||||||
|
// Read interval to update the lights
|
||||||
|
configComplete &= getJsonValue(top["interval_ms"], updateInterval, 1000);
|
||||||
|
|
||||||
|
// Read list of IPs
|
||||||
|
String tempIp;
|
||||||
|
for (uint8_t i = 0; i < MAX_WIZ_LIGHTS; i++) {
|
||||||
|
configComplete &= getJsonValue(top[getJsonLabel(i)], tempIp, "0.0.0.0");
|
||||||
|
lightsValid[i] = lightsIP[i].fromString(tempIp);
|
||||||
|
|
||||||
|
// If the IP is not valid, force the value to be empty
|
||||||
|
if (!lightsValid[i]) {
|
||||||
|
lightsIP[i].fromString("0.0.0.0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return configComplete;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* getId() allows you to optionally give your V2 usermod an unique ID (please define it in const.h!).
|
||||||
|
* This could be used in the future for the system to determine whether your usermod is installed.
|
||||||
|
*/
|
||||||
|
uint16_t getId()
|
||||||
|
{
|
||||||
|
return USERMOD_ID_WIZLIGHTS;
|
||||||
|
}
|
||||||
|
};
|
@ -131,7 +131,6 @@ void WS2812FX::service() {
|
|||||||
|
|
||||||
for(uint8_t i=0; i < MAX_NUM_SEGMENTS; i++)
|
for(uint8_t i=0; i < MAX_NUM_SEGMENTS; i++)
|
||||||
{
|
{
|
||||||
// freezing main segment will acheve the same as following
|
|
||||||
//if (realtimeMode && useMainSegmentOnly && i == getMainSegmentId()) continue;
|
//if (realtimeMode && useMainSegmentOnly && i == getMainSegmentId()) continue;
|
||||||
|
|
||||||
_segment_index = i;
|
_segment_index = i;
|
||||||
|
@ -72,6 +72,9 @@
|
|||||||
#define USERMOD_ID_QUINLED_AN_PENTA 23 //Usermod "quinled-an-penta.h"
|
#define USERMOD_ID_QUINLED_AN_PENTA 23 //Usermod "quinled-an-penta.h"
|
||||||
#define USERMOD_ID_SSDR 24 //Usermod "usermod_v2_seven_segment_display_reloaded.h"
|
#define USERMOD_ID_SSDR 24 //Usermod "usermod_v2_seven_segment_display_reloaded.h"
|
||||||
#define USERMOD_ID_CRONIXIE 25 //Usermod "usermod_cronixie.h"
|
#define USERMOD_ID_CRONIXIE 25 //Usermod "usermod_cronixie.h"
|
||||||
|
#define USERMOD_ID_WIZLIGHTS 26 //Usermod "wizlights.h"
|
||||||
|
#define USERMOD_ID_WORDCLOCK 27 //Usermod "usermod_v2_word_clock.h"
|
||||||
|
#define USERMOD_ID_MY9291 28 //Usermod "usermod_MY9291.h"
|
||||||
|
|
||||||
//Access point behavior
|
//Access point behavior
|
||||||
#define AP_BEHAVIOR_BOOT_NO_CONN 0 //Open AP when no connection after boot
|
#define AP_BEHAVIOR_BOOT_NO_CONN 0 //Open AP when no connection after boot
|
||||||
@ -192,7 +195,7 @@
|
|||||||
#define BTN_TYPE_ANALOG_INVERTED 8
|
#define BTN_TYPE_ANALOG_INVERTED 8
|
||||||
|
|
||||||
//Ethernet board types
|
//Ethernet board types
|
||||||
#define WLED_NUM_ETH_TYPES 7
|
#define WLED_NUM_ETH_TYPES 8
|
||||||
|
|
||||||
#define WLED_ETH_NONE 0
|
#define WLED_ETH_NONE 0
|
||||||
#define WLED_ETH_WT32_ETH01 1
|
#define WLED_ETH_WT32_ETH01 1
|
||||||
|
7
wled00/data/icons-ui/Read Me.txt
Normal file
7
wled00/data/icons-ui/Read Me.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures.
|
||||||
|
|
||||||
|
To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts
|
||||||
|
|
||||||
|
You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects.
|
||||||
|
|
||||||
|
You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection.
|
152
wled00/data/icons-ui/demo-files/demo.css
Normal file
152
wled00/data/icons-ui/demo-files/demo.css
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
body {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: #555;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
small {
|
||||||
|
font-size: .66666667em;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: #e74c3c;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a:hover, a:focus {
|
||||||
|
box-shadow: 0 1px #e74c3c;
|
||||||
|
}
|
||||||
|
.bshadow0, input {
|
||||||
|
box-shadow: inset 0 -2px #e7e7e7;
|
||||||
|
}
|
||||||
|
input:hover {
|
||||||
|
box-shadow: inset 0 -2px #ccc;
|
||||||
|
}
|
||||||
|
input, fieldset {
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 1em;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
input {
|
||||||
|
color: inherit;
|
||||||
|
line-height: 1.5;
|
||||||
|
height: 1.5em;
|
||||||
|
padding: .25em 0;
|
||||||
|
}
|
||||||
|
input:focus {
|
||||||
|
outline: none;
|
||||||
|
box-shadow: inset 0 -2px #449fdb;
|
||||||
|
}
|
||||||
|
.glyph {
|
||||||
|
font-size: 16px;
|
||||||
|
width: 15em;
|
||||||
|
padding-bottom: 1em;
|
||||||
|
margin-right: 4em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
float: left;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.liga {
|
||||||
|
width: 80%;
|
||||||
|
width: calc(100% - 2.5em);
|
||||||
|
}
|
||||||
|
.talign-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.talign-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.bgc1 {
|
||||||
|
background: #f1f1f1;
|
||||||
|
}
|
||||||
|
.fgc1 {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.fgc0 {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.mvm {
|
||||||
|
margin-top: .75em;
|
||||||
|
margin-bottom: .75em;
|
||||||
|
}
|
||||||
|
.mtn {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.mtl, .mal {
|
||||||
|
margin-top: 1.5em;
|
||||||
|
}
|
||||||
|
.mbl, .mal {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
.mal, .mhl {
|
||||||
|
margin-left: 1.5em;
|
||||||
|
margin-right: 1.5em;
|
||||||
|
}
|
||||||
|
.mhmm {
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
.mls {
|
||||||
|
margin-left: .25em;
|
||||||
|
}
|
||||||
|
.ptl {
|
||||||
|
padding-top: 1.5em;
|
||||||
|
}
|
||||||
|
.pbs, .pvs {
|
||||||
|
padding-bottom: .25em;
|
||||||
|
}
|
||||||
|
.pvs, .pts {
|
||||||
|
padding-top: .25em;
|
||||||
|
}
|
||||||
|
.unit {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.unitRight {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.size1of2 {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.size1of1 {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.clearfix:before, .clearfix:after {
|
||||||
|
content: " ";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
.clearfix:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.hidden-true {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.textbox0 {
|
||||||
|
width: 3em;
|
||||||
|
background: #f1f1f1;
|
||||||
|
padding: .25em .5em;
|
||||||
|
line-height: 1.5;
|
||||||
|
height: 1.5em;
|
||||||
|
}
|
||||||
|
#testDrive {
|
||||||
|
display: block;
|
||||||
|
padding-top: 24px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
.fs0 {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.fs1 {
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
30
wled00/data/icons-ui/demo-files/demo.js
Normal file
30
wled00/data/icons-ui/demo-files/demo.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
if (!('boxShadow' in document.body.style)) {
|
||||||
|
document.body.setAttribute('class', 'noBoxShadow');
|
||||||
|
}
|
||||||
|
|
||||||
|
document.body.addEventListener("click", function(e) {
|
||||||
|
var target = e.target;
|
||||||
|
if (target.tagName === "INPUT" &&
|
||||||
|
target.getAttribute('class').indexOf('liga') === -1) {
|
||||||
|
target.select();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var fontSize = document.getElementById('fontSize'),
|
||||||
|
testDrive = document.getElementById('testDrive'),
|
||||||
|
testText = document.getElementById('testText');
|
||||||
|
function updateTest() {
|
||||||
|
testDrive.innerHTML = testText.value || String.fromCharCode(160);
|
||||||
|
if (window.icomoonLiga) {
|
||||||
|
window.icomoonLiga(testDrive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function updateSize() {
|
||||||
|
testDrive.style.fontSize = fontSize.value + 'px';
|
||||||
|
}
|
||||||
|
fontSize.addEventListener('change', updateSize, false);
|
||||||
|
testText.addEventListener('input', updateTest, false);
|
||||||
|
testText.addEventListener('change', updateTest, false);
|
||||||
|
updateSize();
|
||||||
|
}());
|
360
wled00/data/icons-ui/demo.html
Normal file
360
wled00/data/icons-ui/demo.html
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>IcoMoon Demo</title>
|
||||||
|
<meta name="description" content="An Icon Font Generated By IcoMoon.io">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="demo-files/demo.css">
|
||||||
|
<link rel="stylesheet" href="style.css"></head>
|
||||||
|
<body>
|
||||||
|
<div class="bgc1 clearfix">
|
||||||
|
<h1 class="mhmm mvm"><span class="fgc1">Font Name:</span> wled122 <small class="fgc1">(Glyphs: 23)</small></h1>
|
||||||
|
</div>
|
||||||
|
<div class="clearfix mhl ptl">
|
||||||
|
<h1 class="mvm mtn fgc1">Grid Size: Unknown</h1>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-pattern"></span>
|
||||||
|
<span class="mls"> i-pattern</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e23d" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-segments"></span>
|
||||||
|
<span class="mls"> i-segments</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e34b" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-sun"></span>
|
||||||
|
<span class="mls"> i-sun</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e333" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-palette"></span>
|
||||||
|
<span class="mls"> i-palette</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e2b3" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-eye"></span>
|
||||||
|
<span class="mls"> i-eye</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e0e8" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-speed"></span>
|
||||||
|
<span class="mls"> i-speed</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e325" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-expand"></span>
|
||||||
|
<span class="mls"> i-expand</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e395" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-power"></span>
|
||||||
|
<span class="mls"> i-power</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e08f" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-settings"></span>
|
||||||
|
<span class="mls"> i-settings</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e0a2" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-playlist"></span>
|
||||||
|
<span class="mls"> i-playlist</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e139" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-night"></span>
|
||||||
|
<span class="mls"> i-night</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e2a2" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-cancel"></span>
|
||||||
|
<span class="mls"> i-cancel</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e38f" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-sync"></span>
|
||||||
|
<span class="mls"> i-sync</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e116" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-confirm"></span>
|
||||||
|
<span class="mls"> i-confirm</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e390" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-brightness"></span>
|
||||||
|
<span class="mls"> i-brightness</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e2a6" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-nodes"></span>
|
||||||
|
<span class="mls"> i-nodes</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e22d" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-add"></span>
|
||||||
|
<span class="mls"> i-add</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e18a" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-edit"></span>
|
||||||
|
<span class="mls"> i-edit</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e2c6" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-intensity"></span>
|
||||||
|
<span class="mls"> i-intensity</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e409" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-star"></span>
|
||||||
|
<span class="mls"> i-star</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e410" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-info"></span>
|
||||||
|
<span class="mls"> i-info</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e066" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-del"></span>
|
||||||
|
<span class="mls"> i-del</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e037" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="glyph fs1">
|
||||||
|
<div class="clearfix bshadow0 pbs">
|
||||||
|
<span class="i-presets"></span>
|
||||||
|
<span class="mls"> i-presets</span>
|
||||||
|
</div>
|
||||||
|
<fieldset class="fs0 size1of1 clearfix hidden-false">
|
||||||
|
<input type="text" readonly value="e04c" class="unit size1of2" />
|
||||||
|
<input type="text" maxlength="1" readonly value="" class="unitRight size1of2 talign-right" />
|
||||||
|
</fieldset>
|
||||||
|
<div class="fs0 bshadow0 clearfix hidden-true">
|
||||||
|
<span class="unit pvs fgc1">liga: </span>
|
||||||
|
<input type="text" readonly value="" class="liga unitRight" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--[if gt IE 8]><!-->
|
||||||
|
<div class="mhl clearfix mbl">
|
||||||
|
<h1>Font Test Drive</h1>
|
||||||
|
<label>
|
||||||
|
Font Size: <input id="fontSize" type="number" class="textbox0 mbm"
|
||||||
|
min="8" value="48" />
|
||||||
|
px
|
||||||
|
</label>
|
||||||
|
<input id="testText" type="text" class="phl size1of1 mvl"
|
||||||
|
placeholder="Type some text to test..." value=""/>
|
||||||
|
<div id="testDrive" class="i-" style="font-family: wled122">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<![endif]-->
|
||||||
|
<div class="bgc1 clearfix">
|
||||||
|
<p class="mhl">Generated by <a href="https://icomoon.io/app">IcoMoon</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="demo-files/demo.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
wled00/data/icons-ui/fonts/wled122.woff
Normal file
BIN
wled00/data/icons-ui/fonts/wled122.woff
Normal file
Binary file not shown.
BIN
wled00/data/icons-ui/fonts/wled122.woff2
Normal file
BIN
wled00/data/icons-ui/fonts/wled122.woff2
Normal file
Binary file not shown.
1
wled00/data/icons-ui/selection.json
Normal file
1
wled00/data/icons-ui/selection.json
Normal file
File diff suppressed because one or more lines are too long
96
wled00/data/icons-ui/style.css
Normal file
96
wled00/data/icons-ui/style.css
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'wled122';
|
||||||
|
src:
|
||||||
|
url('fonts/wled122.woff2?e3eban') format('woff2'),
|
||||||
|
url('fonts/wled122.ttf?e3eban') format('truetype'),
|
||||||
|
url('fonts/wled122.woff?e3eban') format('woff'),
|
||||||
|
url('fonts/wled122.svg?e3eban#wled122') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class^="i-"], [class*=" i-"] {
|
||||||
|
/* use !important to prevent issues with browser extensions that change fonts */
|
||||||
|
font-family: 'wled122' !important;
|
||||||
|
speak: never;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
text-transform: none;
|
||||||
|
line-height: 1;
|
||||||
|
|
||||||
|
/* Better Font Rendering =========== */
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.i-pattern:before {
|
||||||
|
content: "\e23d";
|
||||||
|
}
|
||||||
|
.i-segments:before {
|
||||||
|
content: "\e34b";
|
||||||
|
}
|
||||||
|
.i-sun:before {
|
||||||
|
content: "\e333";
|
||||||
|
}
|
||||||
|
.i-palette:before {
|
||||||
|
content: "\e2b3";
|
||||||
|
}
|
||||||
|
.i-eye:before {
|
||||||
|
content: "\e0e8";
|
||||||
|
}
|
||||||
|
.i-speed:before {
|
||||||
|
content: "\e325";
|
||||||
|
}
|
||||||
|
.i-expand:before {
|
||||||
|
content: "\e395";
|
||||||
|
}
|
||||||
|
.i-power:before {
|
||||||
|
content: "\e08f";
|
||||||
|
}
|
||||||
|
.i-settings:before {
|
||||||
|
content: "\e0a2";
|
||||||
|
}
|
||||||
|
.i-playlist:before {
|
||||||
|
content: "\e139";
|
||||||
|
}
|
||||||
|
.i-night:before {
|
||||||
|
content: "\e2a2";
|
||||||
|
}
|
||||||
|
.i-cancel:before {
|
||||||
|
content: "\e38f";
|
||||||
|
}
|
||||||
|
.i-sync:before {
|
||||||
|
content: "\e116";
|
||||||
|
}
|
||||||
|
.i-confirm:before {
|
||||||
|
content: "\e390";
|
||||||
|
}
|
||||||
|
.i-brightness:before {
|
||||||
|
content: "\e2a6";
|
||||||
|
}
|
||||||
|
.i-nodes:before {
|
||||||
|
content: "\e22d";
|
||||||
|
}
|
||||||
|
.i-add:before {
|
||||||
|
content: "\e18a";
|
||||||
|
}
|
||||||
|
.i-edit:before {
|
||||||
|
content: "\e2c6";
|
||||||
|
}
|
||||||
|
.i-intensity:before {
|
||||||
|
content: "\e409";
|
||||||
|
}
|
||||||
|
.i-star:before {
|
||||||
|
content: "\e410";
|
||||||
|
}
|
||||||
|
.i-info:before {
|
||||||
|
content: "\e066";
|
||||||
|
}
|
||||||
|
.i-del:before {
|
||||||
|
content: "\e037";
|
||||||
|
}
|
||||||
|
.i-presets:before {
|
||||||
|
content: "\e04c";
|
||||||
|
}
|
@ -1901,7 +1901,11 @@ function setSegBri(s)
|
|||||||
function tglFreeze(s=null)
|
function tglFreeze(s=null)
|
||||||
{
|
{
|
||||||
var obj = {"seg": {"frz": "t"}}; // toggle
|
var obj = {"seg": {"frz": "t"}}; // toggle
|
||||||
if (s!==null) obj.seg.id = s;
|
if (s!==null) {
|
||||||
|
obj.seg.id = s;
|
||||||
|
// if live segment, enter live override (which also unfreezes)
|
||||||
|
if (lastinfo && s==lastinfo.liveseg && lastinfo.live) obj = {"lor":1};
|
||||||
|
}
|
||||||
requestJson(obj);
|
requestJson(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +45,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var ws = top.window.ws;
|
var ws;
|
||||||
|
try {
|
||||||
|
ws = top.window.ws;
|
||||||
|
} catch (e) {}
|
||||||
if (ws && ws.readyState === WebSocket.OPEN) {
|
if (ws && ws.readyState === WebSocket.OPEN) {
|
||||||
console.info("Peek uses top WS");
|
console.info("Peek uses top WS");
|
||||||
ws.send("{'lv':true}");
|
ws.send("{'lv':true}");
|
||||||
|
@ -60,16 +60,17 @@
|
|||||||
<i>Can help with connectivity issues.<br>
|
<i>Can help with connectivity issues.<br>
|
||||||
Do not enable if WiFi is working correctly, increases power consumption.</i>
|
Do not enable if WiFi is working correctly, increases power consumption.</i>
|
||||||
<div id="ethd">
|
<div id="ethd">
|
||||||
<h3>Ethernet Type</h3>
|
<h3>Ethernet Type</h3>
|
||||||
<select name="ETH">
|
<select name="ETH">
|
||||||
<option value="0">None</option>
|
<option value="0">None</option>
|
||||||
<option value="2">ESP32-POE</option>
|
<option value="2">ESP32-POE</option>
|
||||||
<option value="6">ESP32Deux</option>
|
<option value="6">ESP32Deux</option>
|
||||||
<option value="4">QuinLED-ESP32</option>
|
<option value="7">KIT-VE</option>
|
||||||
<option value="5">TwilightLord-ESP32</option>
|
<option value="4">QuinLED-ESP32</option>
|
||||||
<option value="3">WESP32</option>
|
<option value="5">TwilightLord-ESP32</option>
|
||||||
<option value="1">WT32-ETH01</option>
|
<option value="3">WESP32</option>
|
||||||
</select><br><br>
|
<option value="1">WT32-ETH01</option>
|
||||||
|
</select><br><br>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<button type="button" onclick="B()">Back</button><button type="submit">Save & Connect</button>
|
<button type="button" onclick="B()">Back</button><button type="submit">Save & Connect</button>
|
||||||
|
@ -206,6 +206,7 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply=tru
|
|||||||
void notify(byte callMode, bool followUp=false);
|
void notify(byte callMode, bool followUp=false);
|
||||||
uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, byte *buffer, uint8_t bri=255, bool isRGBW=false);
|
uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, byte *buffer, uint8_t bri=255, bool isRGBW=false);
|
||||||
void realtimeLock(uint32_t timeoutMs, byte md = REALTIME_MODE_GENERIC);
|
void realtimeLock(uint32_t timeoutMs, byte md = REALTIME_MODE_GENERIC);
|
||||||
|
void exitRealtime();
|
||||||
void handleNotifications();
|
void handleNotifications();
|
||||||
void setRealtimePixel(uint16_t i, byte r, byte g, byte b, byte w);
|
void setRealtimePixel(uint16_t i, byte r, byte g, byte b, byte w);
|
||||||
void refreshNodeList();
|
void refreshNodeList();
|
||||||
|
@ -230,54 +230,55 @@ const uint8_t PAGE_liveview[] PROGMEM = {
|
|||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/liveviewws.htm, do not edit!!
|
// Autogenerated from wled00/data/liveviewws.htm, do not edit!!
|
||||||
const uint16_t PAGE_liveviewws_length = 729;
|
const uint16_t PAGE_liveviewws_length = 740;
|
||||||
const uint8_t PAGE_liveviewws[] PROGMEM = {
|
const uint8_t PAGE_liveviewws[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x54, 0xdb, 0x8e, 0x9b, 0x30,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x54, 0x5d, 0x6f, 0xdb, 0x38,
|
||||||
0x10, 0x7d, 0xcf, 0x57, 0x50, 0x6f, 0xbb, 0x05, 0x85, 0x90, 0xec, 0x56, 0xbd, 0x01, 0x4e, 0xd5,
|
0x10, 0x7c, 0xf7, 0xaf, 0x50, 0x99, 0x4b, 0x2a, 0xc1, 0xb2, 0xec, 0xa4, 0x68, 0xd3, 0x93, 0x44,
|
||||||
0x4b, 0x1e, 0x5a, 0xad, 0xda, 0x95, 0xb6, 0xd5, 0xaa, 0x5a, 0xad, 0x54, 0x03, 0x13, 0x70, 0x17,
|
0x07, 0xfd, 0xf0, 0x43, 0x0f, 0xc1, 0x35, 0x40, 0x52, 0x04, 0x87, 0x20, 0x40, 0x29, 0x69, 0x2d,
|
||||||
0x6c, 0x64, 0x0f, 0x41, 0x51, 0xc4, 0xbf, 0x77, 0x4c, 0xb2, 0xe9, 0x9d, 0x07, 0x63, 0x33, 0x97,
|
0xf1, 0x22, 0x91, 0x02, 0xb9, 0xb2, 0x60, 0x18, 0xfa, 0xef, 0xb7, 0x94, 0x1d, 0xe7, 0xee, 0xda,
|
||||||
0x73, 0xe6, 0x8c, 0x87, 0xf4, 0xc1, 0xbb, 0x4f, 0x6f, 0x3f, 0x7f, 0xbd, 0x5c, 0x79, 0x15, 0x36,
|
0xfa, 0x41, 0x22, 0xcd, 0xdd, 0x9d, 0xd9, 0x19, 0xae, 0xd2, 0x57, 0x9f, 0xbf, 0x7e, 0xba, 0xfb,
|
||||||
0xf5, 0x32, 0x3d, 0xac, 0x20, 0x8a, 0x65, 0xda, 0x00, 0x0a, 0x4f, 0x89, 0x06, 0x38, 0xdb, 0x48,
|
0xeb, 0x66, 0xe5, 0x55, 0xd8, 0xd4, 0xcb, 0xf4, 0xf0, 0x04, 0x51, 0x2c, 0xd3, 0x06, 0x50, 0x78,
|
||||||
0xe8, 0x5b, 0x6d, 0x90, 0x79, 0x93, 0x5c, 0x2b, 0x04, 0x85, 0x9c, 0xf5, 0xb2, 0xc0, 0x8a, 0x17,
|
0x4a, 0x34, 0xc0, 0xd9, 0x46, 0x42, 0xdf, 0x6a, 0x83, 0xcc, 0x9b, 0xe4, 0x5a, 0x21, 0x28, 0xe4,
|
||||||
0xb0, 0x91, 0x39, 0xcc, 0xc6, 0x43, 0x28, 0x95, 0x44, 0x29, 0xea, 0x99, 0xcd, 0x45, 0x0d, 0xfc,
|
0xac, 0x97, 0x05, 0x56, 0xbc, 0x80, 0x8d, 0xcc, 0x61, 0x36, 0x6e, 0x42, 0xa9, 0x24, 0x4a, 0x51,
|
||||||
0x2c, 0x6c, 0xe8, 0x43, 0xd3, 0x35, 0xf7, 0x67, 0x76, 0xc8, 0x39, 0xc9, 0x2b, 0x61, 0x2c, 0x50,
|
0xcf, 0x6c, 0x2e, 0x6a, 0xe0, 0xe7, 0x61, 0x43, 0x7f, 0x34, 0x5d, 0xf3, 0xbc, 0x67, 0x87, 0x9a,
|
||||||
0x8e, 0x0e, 0xd7, 0xb3, 0x17, 0xec, 0x37, 0x28, 0xac, 0xa0, 0x81, 0x59, 0xae, 0x6b, 0x6d, 0x98,
|
0x93, 0xbc, 0x12, 0xc6, 0x02, 0xd5, 0xe8, 0x70, 0x3d, 0x7b, 0xcf, 0xfe, 0x03, 0x85, 0x15, 0x34,
|
||||||
0x77, 0x04, 0x3b, 0x39, 0x1f, 0x1f, 0x72, 0x45, 0x89, 0x35, 0x2c, 0x27, 0xd7, 0x17, 0xab, 0x77,
|
0x30, 0xcb, 0x75, 0xad, 0x0d, 0xf3, 0x8e, 0x60, 0x27, 0x17, 0xe3, 0x8f, 0x42, 0x51, 0x62, 0x0d,
|
||||||
0xde, 0x85, 0xdc, 0x80, 0x77, 0x69, 0xc0, 0xd1, 0x4b, 0xe7, 0x7b, 0x4b, 0x6a, 0x71, 0xeb, 0x1c,
|
0xcb, 0xc9, 0xfd, 0xf5, 0xea, 0xb3, 0x77, 0x2d, 0x37, 0xe0, 0xdd, 0x18, 0x70, 0xf4, 0xd2, 0xf9,
|
||||||
0x32, 0x5d, 0x6c, 0x77, 0x8d, 0x30, 0xa5, 0x54, 0xf1, 0x62, 0x38, 0xc9, 0x85, 0xda, 0xec, 0x32,
|
0xfe, 0x24, 0xb5, 0xb8, 0x75, 0x01, 0x99, 0x2e, 0xb6, 0xbb, 0x46, 0x98, 0x52, 0xaa, 0x78, 0x31,
|
||||||
0x91, 0xdf, 0x95, 0x46, 0x77, 0xaa, 0x88, 0x4f, 0x16, 0x8b, 0x45, 0xb2, 0x96, 0x35, 0x82, 0x89,
|
0x9c, 0xe4, 0x42, 0x6d, 0x76, 0x99, 0xc8, 0x9f, 0x4a, 0xa3, 0x3b, 0x55, 0xc4, 0x27, 0x8b, 0xc5,
|
||||||
0x33, 0x23, 0xcb, 0x0a, 0x15, 0x58, 0xeb, 0x9f, 0x3d, 0x7f, 0xfa, 0x28, 0x48, 0xc6, 0x6a, 0xe2,
|
0x22, 0x59, 0xcb, 0x1a, 0xc1, 0xc4, 0x99, 0x91, 0x65, 0x85, 0x0a, 0xac, 0xf5, 0xcf, 0x2f, 0xdf,
|
||||||
0xb3, 0xc5, 0xe2, 0x51, 0x52, 0x81, 0xb3, 0xed, 0xf7, 0xad, 0xb6, 0x54, 0x9f, 0x56, 0xb1, 0xc8,
|
0x9e, 0x06, 0xc9, 0xd8, 0x4d, 0x7c, 0xbe, 0x58, 0x9c, 0x26, 0x15, 0xb8, 0xb3, 0xfd, 0xba, 0xd5,
|
||||||
0xac, 0xae, 0x3b, 0x84, 0x61, 0x92, 0xce, 0xf7, 0x70, 0xe9, 0x7c, 0xaf, 0x99, 0x43, 0x5d, 0xa6,
|
0x96, 0xfa, 0xd3, 0x2a, 0x16, 0x99, 0xd5, 0x75, 0x87, 0x30, 0x4c, 0xd2, 0xf9, 0x1e, 0x2e, 0x9d,
|
||||||
0x85, 0xdc, 0x78, 0xb2, 0xe0, 0xcc, 0x81, 0x12, 0x65, 0x9b, 0x1b, 0xd9, 0xe2, 0x72, 0xb2, 0xee,
|
0xef, 0x35, 0x73, 0xa8, 0xcb, 0xb4, 0x90, 0x1b, 0x4f, 0x16, 0x9c, 0x39, 0x50, 0xa2, 0x6c, 0x73,
|
||||||
0x54, 0xee, 0xe2, 0xbd, 0xae, 0x2d, 0x04, 0xc2, 0x81, 0xb8, 0x0f, 0xc1, 0x6e, 0x23, 0x8c, 0xa7,
|
0x23, 0x5b, 0x5c, 0x4e, 0xd6, 0x9d, 0xca, 0x5d, 0xbe, 0xd7, 0xb5, 0x85, 0x40, 0x38, 0x10, 0xf7,
|
||||||
0x38, 0xab, 0xa5, 0x02, 0x61, 0x66, 0xa5, 0x11, 0x85, 0xa4, 0xb2, 0xfd, 0x97, 0x8b, 0x02, 0xca,
|
0x21, 0xd8, 0x6d, 0x84, 0xf1, 0x14, 0x67, 0xb5, 0x54, 0x20, 0xcc, 0xac, 0x34, 0xa2, 0x90, 0xd4,
|
||||||
0x90, 0x85, 0x9a, 0x43, 0x54, 0x83, 0x2a, 0xb1, 0x4a, 0xd6, 0xda, 0xf8, 0x92, 0x9f, 0x27, 0x32,
|
0xb6, 0xff, 0xfb, 0xa2, 0x80, 0x32, 0x64, 0x21, 0x72, 0x88, 0x6a, 0x50, 0x25, 0x56, 0xc9, 0x5a,
|
||||||
0xd5, 0x89, 0x9c, 0xf2, 0x27, 0x81, 0x9a, 0xf2, 0x6f, 0xa6, 0xcc, 0xfc, 0x87, 0x3b, 0xb8, 0x91,
|
0x1b, 0x5f, 0xf2, 0x8b, 0x44, 0xa6, 0x98, 0xc8, 0x29, 0x7f, 0x13, 0xa8, 0x29, 0xff, 0x6e, 0xca,
|
||||||
0xb7, 0x43, 0x38, 0xbe, 0xa7, 0x67, 0xc7, 0xdd, 0xf9, 0xed, 0x10, 0x7c, 0x0b, 0xc9, 0x7d, 0xf6,
|
0xcc, 0xff, 0x6d, 0x07, 0x0f, 0xf2, 0x71, 0x08, 0xc7, 0xf7, 0xf4, 0xfc, 0xb8, 0xba, 0x78, 0x1c,
|
||||||
0xe4, 0xf4, 0xd4, 0x27, 0x6f, 0x16, 0xb2, 0x20, 0x71, 0xef, 0x80, 0x85, 0x85, 0xce, 0xbb, 0x86,
|
0x82, 0xef, 0x21, 0x85, 0xcf, 0xde, 0x9c, 0x9d, 0xf9, 0x14, 0xcd, 0x42, 0x16, 0x24, 0xee, 0x1d,
|
||||||
0x90, 0xa2, 0x12, 0x70, 0x55, 0x83, 0xdb, 0xbe, 0xd9, 0xbe, 0x2f, 0xfc, 0x3d, 0xf3, 0x20, 0x1a,
|
0xb0, 0xb0, 0xd0, 0x79, 0xd7, 0x10, 0x52, 0x54, 0x02, 0xae, 0x6a, 0x70, 0xcb, 0x8f, 0xdb, 0x2f,
|
||||||
0x8b, 0x8b, 0x7e, 0xca, 0xc6, 0xd5, 0x70, 0x2c, 0x82, 0x42, 0x9c, 0xfe, 0x1f, 0xac, 0x56, 0xae,
|
0x85, 0xbf, 0x67, 0x1e, 0x44, 0x63, 0x73, 0xd1, 0x8b, 0x6c, 0x5c, 0x0d, 0xc7, 0x26, 0x28, 0xc5,
|
||||||
0x04, 0x34, 0xdb, 0x9d, 0x5c, 0xfb, 0xec, 0x46, 0x67, 0xdf, 0x21, 0x47, 0xef, 0xb5, 0x31, 0x62,
|
0xe9, 0xff, 0x87, 0xd5, 0xca, 0xb5, 0x80, 0x66, 0xbb, 0x93, 0x6b, 0x9f, 0x3d, 0xe8, 0xec, 0x6f,
|
||||||
0xfb, 0xa6, 0x5b, 0xaf, 0xc1, 0xdc, 0x32, 0xce, 0x39, 0xea, 0x2b, 0x34, 0x52, 0x95, 0x11, 0xdd,
|
0xc8, 0xd1, 0xfb, 0x60, 0x8c, 0xd8, 0x7e, 0xec, 0xd6, 0x6b, 0x30, 0x8f, 0x8c, 0x73, 0x8e, 0xfa,
|
||||||
0x85, 0xda, 0x87, 0x88, 0x14, 0x10, 0x41, 0xb0, 0xab, 0x01, 0x3d, 0xe0, 0x0a, 0x7a, 0xef, 0x8b,
|
0x16, 0x8d, 0x54, 0x65, 0x44, 0x77, 0xa1, 0xf6, 0x21, 0x22, 0x05, 0x44, 0x10, 0xec, 0x6a, 0x40,
|
||||||
0x54, 0xf8, 0x62, 0x8c, 0xf2, 0x61, 0xe3, 0x38, 0x8d, 0x1e, 0x09, 0xe5, 0x7c, 0xfe, 0xec, 0x01,
|
0x0f, 0xb8, 0x82, 0xde, 0xfb, 0x26, 0x15, 0xbe, 0x1f, 0xb3, 0x7c, 0xd8, 0x38, 0x4e, 0x63, 0x44,
|
||||||
0x87, 0x9b, 0xc5, 0x6d, 0x60, 0x00, 0x3b, 0xa3, 0x92, 0x3f, 0xe5, 0x1b, 0x86, 0x5c, 0x60, 0x5e,
|
0x42, 0x35, 0x2f, 0xdf, 0xbd, 0xe2, 0xf0, 0xb0, 0x78, 0x0c, 0x0c, 0x60, 0x67, 0x54, 0xf2, 0x7f,
|
||||||
0x39, 0x16, 0x74, 0x61, 0xa8, 0x35, 0x10, 0x81, 0x31, 0x24, 0x14, 0xbb, 0x04, 0xb8, 0xf3, 0xae,
|
0xf9, 0x86, 0x21, 0x17, 0x98, 0x57, 0x8e, 0x05, 0x5d, 0x18, 0xb2, 0x06, 0x22, 0x30, 0x86, 0x84,
|
||||||
0xaf, 0xbc, 0xf1, 0x18, 0xb3, 0xd0, 0xf9, 0x3a, 0xad, 0x7b, 0x4b, 0x7c, 0xda, 0xa8, 0x97, 0xaa,
|
0x62, 0x37, 0x00, 0x4f, 0xde, 0xfd, 0xad, 0x37, 0x6e, 0x63, 0x16, 0xba, 0x58, 0xa7, 0x75, 0x6f,
|
||||||
0xd0, 0x7d, 0xd4, 0xdb, 0xa4, 0xb7, 0xa7, 0xa7, 0xbd, 0x8d, 0x0c, 0x35, 0x71, 0x7b, 0x85, 0x94,
|
0x13, 0xc7, 0xb7, 0xb7, 0x44, 0xab, 0x8d, 0x7a, 0xa9, 0x0a, 0xdd, 0x47, 0xbd, 0x7d, 0xa9, 0x33,
|
||||||
0x9d, 0x18, 0x5f, 0x43, 0x76, 0xa5, 0xf3, 0x3b, 0xc0, 0xe8, 0xd3, 0xe5, 0xea, 0xe3, 0x2b, 0xff,
|
0xf4, 0xf6, 0xec, 0xac, 0xb7, 0x91, 0x21, 0x57, 0xb7, 0xb7, 0x48, 0x70, 0xd4, 0xc2, 0x3d, 0x64,
|
||||||
0x3e, 0xb7, 0x54, 0x6b, 0x7d, 0x48, 0xdd, 0x59, 0xb0, 0x1e, 0x65, 0x22, 0x0c, 0x16, 0x84, 0x94,
|
0xb7, 0x3a, 0x7f, 0x02, 0x8c, 0xbe, 0xde, 0xac, 0xfe, 0xbc, 0xf2, 0x9f, 0xc1, 0xa4, 0x5a, 0xeb,
|
||||||
0xc0, 0x82, 0x22, 0xf5, 0x76, 0x8f, 0xeb, 0xcd, 0xe3, 0x18, 0x4d, 0x07, 0x03, 0x0b, 0x82, 0xf8,
|
0x03, 0x56, 0x67, 0xc1, 0x7a, 0x54, 0x93, 0x40, 0x59, 0x10, 0x52, 0x01, 0x0b, 0x8a, 0xe4, 0xdc,
|
||||||
0x5f, 0x91, 0x44, 0x4a, 0xb7, 0xa0, 0x48, 0x10, 0x0a, 0xf4, 0x89, 0x8f, 0x93, 0xe0, 0x88, 0xe8,
|
0xbd, 0xae, 0x37, 0xaf, 0x63, 0x34, 0x1d, 0x0c, 0x2c, 0x08, 0xe2, 0x9f, 0x65, 0x12, 0x4b, 0xdd,
|
||||||
0xfb, 0xac, 0x42, 0x6c, 0x6d, 0x4c, 0xca, 0x1d, 0x48, 0xd6, 0x9a, 0x8a, 0x24, 0xdd, 0xa3, 0xd6,
|
0x82, 0x22, 0x85, 0x28, 0xd1, 0x27, 0x66, 0x4e, 0x93, 0x23, 0xa2, 0xef, 0xb3, 0x0a, 0xb1, 0xb5,
|
||||||
0x68, 0xd4, 0x34, 0x1f, 0xaf, 0x58, 0x6f, 0x2d, 0x8b, 0x69, 0x65, 0xc1, 0x94, 0xc5, 0xf3, 0x39,
|
0x31, 0x49, 0x79, 0xa0, 0x5b, 0x6b, 0x62, 0x4b, 0x46, 0x44, 0xad, 0xd1, 0xa8, 0x69, 0x60, 0xae,
|
||||||
0x9b, 0x1e, 0xdb, 0x79, 0x74, 0xae, 0xb4, 0xc5, 0x29, 0x9b, 0x3b, 0x9f, 0x20, 0xd2, 0xca, 0x41,
|
0x58, 0x6f, 0x2d, 0x8b, 0xe9, 0xc9, 0x82, 0x29, 0x8b, 0xe7, 0x73, 0x36, 0x3d, 0xfa, 0x7b, 0x0c,
|
||||||
0xf2, 0xfb, 0x0e, 0xfa, 0x3f, 0xe5, 0xfa, 0x9b, 0xd8, 0x7f, 0xcb, 0x19, 0x46, 0x43, 0x26, 0x95,
|
0xae, 0xb4, 0xc5, 0x29, 0x9b, 0xbb, 0x98, 0x20, 0xd2, 0xca, 0x41, 0xf2, 0x67, 0x4b, 0xfd, 0x17,
|
||||||
0x30, 0xdb, 0xcf, 0xdb, 0x96, 0x26, 0x56, 0xb8, 0x9e, 0x65, 0x63, 0xa7, 0x99, 0xb3, 0x89, 0xa2,
|
0xfd, 0x7e, 0x24, 0xf6, 0xcb, 0x76, 0x86, 0xf1, 0x20, 0x93, 0x4a, 0x98, 0xed, 0xdd, 0xb6, 0xa5,
|
||||||
0x58, 0xb9, 0x06, 0x5e, 0x48, 0x4b, 0xc3, 0x0b, 0xd4, 0x86, 0x86, 0x46, 0x4b, 0x94, 0xc0, 0xc2,
|
0x11, 0x16, 0xce, 0xc4, 0x6c, 0xb4, 0x9e, 0xb9, 0x33, 0x51, 0x14, 0x2b, 0xe7, 0xe8, 0xb5, 0xb4,
|
||||||
0x5f, 0xee, 0x4c, 0xe0, 0x66, 0x67, 0x3f, 0x18, 0xe9, 0x7c, 0x3f, 0x36, 0xf3, 0xf1, 0xef, 0xf3,
|
0x34, 0xcd, 0x40, 0xbe, 0x34, 0x34, 0x6b, 0xa2, 0x04, 0x16, 0xfe, 0xeb, 0x12, 0x05, 0x6e, 0x98,
|
||||||
0x03, 0xff, 0x9d, 0x3a, 0x93, 0x93, 0x04, 0x00, 0x00
|
0xf6, 0x93, 0x92, 0xce, 0xf7, 0x73, 0x34, 0x1f, 0x3f, 0x47, 0xff, 0x00, 0xeb, 0x0e, 0x42, 0x19,
|
||||||
|
0xa4, 0x04, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -112,86 +112,87 @@ 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 = 1240;
|
const uint16_t PAGE_settings_wifi_length = 1251;
|
||||||
const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x57, 0x6d, 0x6f, 0xe2, 0x46,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x57, 0x6d, 0x6f, 0xe2, 0x46,
|
||||||
0x10, 0xfe, 0xee, 0x5f, 0xb1, 0xdd, 0x4a, 0x15, 0x48, 0x60, 0xde, 0x9a, 0x28, 0xa2, 0x36, 0x57,
|
0x10, 0xfe, 0xee, 0x5f, 0xb1, 0xdd, 0x4a, 0x15, 0x48, 0x60, 0xde, 0x9a, 0x34, 0xa2, 0x36, 0x57,
|
||||||
0x02, 0x34, 0x44, 0xba, 0xe6, 0xa8, 0x40, 0x8d, 0xfa, 0xe9, 0xb4, 0xd8, 0x03, 0xde, 0xc6, 0xde,
|
0x02, 0x34, 0x44, 0xbd, 0xe6, 0xa8, 0x40, 0x17, 0xf5, 0xd3, 0x69, 0xb1, 0x07, 0xd8, 0xc6, 0xde,
|
||||||
0xf5, 0x79, 0xd7, 0x18, 0x74, 0xbd, 0xff, 0xde, 0x59, 0xdb, 0xbc, 0x87, 0xf4, 0x1a, 0xa1, 0x28,
|
0xf5, 0x79, 0xd7, 0x18, 0x74, 0xbd, 0xff, 0xde, 0x59, 0xbf, 0xf0, 0x1a, 0xae, 0xba, 0x08, 0x45,
|
||||||
0x91, 0xbd, 0x9e, 0x79, 0x66, 0xe6, 0x99, 0xd9, 0x99, 0x89, 0xf3, 0xc3, 0xf0, 0xd3, 0x60, 0xf6,
|
0x09, 0x78, 0x3d, 0xf3, 0xcc, 0xcc, 0x33, 0xb3, 0x33, 0x13, 0xe7, 0x87, 0xe1, 0x87, 0xc1, 0xec,
|
||||||
0xd7, 0x64, 0x44, 0x02, 0x1d, 0x85, 0x3d, 0xc7, 0xfc, 0x25, 0x21, 0x13, 0x4b, 0x97, 0x82, 0xa0,
|
0xef, 0xc9, 0x88, 0xac, 0x74, 0x18, 0xf4, 0x1c, 0xf3, 0x97, 0x04, 0x4c, 0x2c, 0x5d, 0x0a, 0x82,
|
||||||
0xf8, 0x0e, 0xcc, 0xef, 0x39, 0x11, 0x68, 0x46, 0xbc, 0x80, 0x25, 0x0a, 0xb4, 0x4b, 0x53, 0xbd,
|
0xe2, 0x33, 0x30, 0xbf, 0xe7, 0x84, 0xa0, 0x19, 0xf1, 0x56, 0x2c, 0x56, 0xa0, 0x5d, 0x9a, 0xe8,
|
||||||
0xa8, 0xdf, 0xd1, 0xf2, 0xd4, 0x12, 0x2c, 0x02, 0x97, 0xae, 0x38, 0x64, 0xb1, 0x4c, 0x34, 0x25,
|
0x45, 0xfd, 0x8e, 0x16, 0xa7, 0x96, 0x60, 0x21, 0xb8, 0x74, 0xcd, 0x21, 0x8d, 0x64, 0xac, 0x29,
|
||||||
0x9e, 0x14, 0x1a, 0x04, 0x8a, 0x65, 0xdc, 0xd7, 0x81, 0x7b, 0xd3, 0x6c, 0xee, 0x44, 0x4f, 0x3e,
|
0xf1, 0xa4, 0xd0, 0x20, 0x50, 0x2c, 0xe5, 0xbe, 0x5e, 0xb9, 0x37, 0xcd, 0xe6, 0x4e, 0xf4, 0xe4,
|
||||||
0xf9, 0xb0, 0xe2, 0x1e, 0xd4, 0xf3, 0x97, 0x1a, 0x17, 0x5c, 0x73, 0x16, 0xd6, 0x95, 0xc7, 0x42,
|
0x95, 0x0f, 0x6b, 0xee, 0x41, 0x3d, 0x7b, 0xa8, 0x71, 0xc1, 0x35, 0x67, 0x41, 0x5d, 0x79, 0x2c,
|
||||||
0x70, 0x5b, 0xb5, 0x88, 0xad, 0x79, 0x94, 0x46, 0xbb, 0xf7, 0x54, 0x41, 0x92, 0xbf, 0xb0, 0x39,
|
0x00, 0xb7, 0x55, 0x0b, 0xd9, 0x86, 0x87, 0x49, 0xb8, 0x7b, 0x4e, 0x14, 0xc4, 0xd9, 0x03, 0x9b,
|
||||||
0xbe, 0x0b, 0x49, 0xcf, 0x2c, 0xf7, 0x1c, 0xcd, 0x75, 0x08, 0xbd, 0x67, 0xfe, 0x1b, 0x27, 0x53,
|
0xe3, 0xb3, 0x90, 0xf4, 0xcc, 0x72, 0xcf, 0xd1, 0x5c, 0x07, 0xd0, 0x7b, 0xe6, 0xbf, 0x73, 0x32,
|
||||||
0xd0, 0x9a, 0x8b, 0xa5, 0x72, 0x1a, 0xc5, 0xa1, 0xa3, 0xbc, 0x84, 0xc7, 0xba, 0x67, 0x2d, 0x52,
|
0x05, 0xad, 0xb9, 0x58, 0x2a, 0xa7, 0x91, 0x1f, 0x3a, 0xca, 0x8b, 0x79, 0xa4, 0x7b, 0xd6, 0x22,
|
||||||
0xe1, 0x69, 0x2e, 0x05, 0x19, 0x57, 0xaa, 0x5f, 0x33, 0x2e, 0x7c, 0x99, 0xd9, 0x32, 0x06, 0x51,
|
0x11, 0x9e, 0xe6, 0x52, 0x90, 0x71, 0xa5, 0xfa, 0x25, 0xe5, 0xc2, 0x97, 0xa9, 0x2d, 0x23, 0x10,
|
||||||
0xa1, 0x81, 0xd6, 0xb1, 0xea, 0x36, 0x1a, 0x2f, 0x42, 0xda, 0x59, 0x08, 0xbe, 0xbd, 0x84, 0xc6,
|
0x15, 0xba, 0xd2, 0x3a, 0x52, 0xdd, 0x46, 0xe3, 0x45, 0x48, 0x3b, 0x0d, 0xc0, 0xb7, 0x97, 0xd0,
|
||||||
0x02, 0x98, 0x4e, 0x13, 0x50, 0x0d, 0x55, 0xe2, 0x35, 0x7e, 0xcc, 0xf8, 0x82, 0xd7, 0xb7, 0xaf,
|
0x58, 0x00, 0xd3, 0x49, 0x0c, 0xaa, 0xa1, 0x0a, 0xbc, 0xc6, 0x8f, 0x29, 0x5f, 0xf0, 0x7a, 0xf9,
|
||||||
0xb4, 0xfa, 0x6d, 0x07, 0x78, 0x7f, 0x0a, 0xb8, 0x53, 0xa2, 0x35, 0xfa, 0x59, 0x41, 0xb8, 0x40,
|
0x48, 0xab, 0x5f, 0x77, 0x80, 0xf7, 0xa7, 0x80, 0x3b, 0x25, 0x5a, 0xa3, 0x9f, 0x14, 0x04, 0x0b,
|
||||||
0x69, 0xcb, 0x69, 0x94, 0x9e, 0x94, 0x1e, 0x11, 0x95, 0x78, 0x2e, 0xdd, 0x4a, 0xda, 0x7f, 0xab,
|
0x94, 0xb6, 0x9c, 0x46, 0xe1, 0x49, 0xe1, 0x11, 0x51, 0xb1, 0xe7, 0xd2, 0x52, 0xd2, 0xfe, 0x47,
|
||||||
0x0f, 0xb1, 0xdb, 0xc2, 0x58, 0xf6, 0x62, 0x7a, 0x83, 0xfe, 0xff, 0xca, 0x23, 0x13, 0x24, 0x49,
|
0xbd, 0x8b, 0xdc, 0x16, 0xc6, 0xb2, 0x17, 0xd3, 0x5b, 0xf4, 0xff, 0x37, 0x1e, 0x9a, 0x20, 0x49,
|
||||||
0x93, 0xb0, 0x42, 0xf3, 0x23, 0xdb, 0x53, 0x68, 0xfe, 0x17, 0x03, 0x98, 0x4b, 0x38, 0x8d, 0x22,
|
0x12, 0x07, 0x15, 0x9a, 0x1d, 0xd9, 0x9e, 0x42, 0xf3, 0xbf, 0x1a, 0xc0, 0x4c, 0xc2, 0x69, 0xe4,
|
||||||
0x57, 0x73, 0xe9, 0x6f, 0x88, 0x14, 0xa1, 0x64, 0xbe, 0x4b, 0x1f, 0x40, 0xff, 0x59, 0xa9, 0x22,
|
0xb9, 0x9a, 0x4b, 0x7f, 0x4b, 0xa4, 0x08, 0x24, 0xf3, 0x5d, 0xfa, 0x00, 0xfa, 0x63, 0xa5, 0x8a,
|
||||||
0xdc, 0x42, 0x26, 0x11, 0xe1, 0x78, 0x62, 0x1e, 0x3e, 0x2b, 0x4a, 0x0a, 0xf2, 0xa6, 0x0b, 0x4a,
|
0x70, 0x0b, 0x19, 0x87, 0x84, 0xe3, 0x89, 0xf9, 0xf2, 0x49, 0x51, 0x92, 0x93, 0x37, 0x5d, 0x50,
|
||||||
0x30, 0x37, 0x81, 0xc4, 0x2f, 0xb1, 0x54, 0x48, 0xa2, 0xe5, 0xf8, 0x7c, 0x45, 0xbc, 0x90, 0x29,
|
0x82, 0xb9, 0x59, 0x49, 0x7c, 0x13, 0x49, 0x85, 0x24, 0x5a, 0x8e, 0xcf, 0xd7, 0xc4, 0x0b, 0x98,
|
||||||
0xe5, 0x52, 0x2d, 0xe3, 0x44, 0x66, 0xa8, 0x7e, 0x70, 0x16, 0x40, 0x18, 0xdf, 0xe3, 0xd1, 0x3c,
|
0x52, 0x2e, 0xd5, 0x32, 0x8a, 0x65, 0x8a, 0xea, 0x07, 0x67, 0x2b, 0x08, 0xa2, 0x7b, 0x3c, 0x9a,
|
||||||
0xd5, 0x1a, 0xa3, 0xd6, 0x9b, 0x18, 0x71, 0x8a, 0x17, 0x8a, 0x76, 0xbd, 0x90, 0x7b, 0x2f, 0x2e,
|
0x27, 0x5a, 0x63, 0xd4, 0x7a, 0x1b, 0x21, 0x4e, 0xfe, 0x40, 0xd1, 0xae, 0x17, 0x70, 0xef, 0xc5,
|
||||||
0x1d, 0x1b, 0xab, 0x1f, 0xd0, 0xb9, 0xe2, 0x0b, 0x7a, 0x87, 0x10, 0xff, 0xa5, 0x74, 0x6f, 0x94,
|
0xa5, 0x63, 0x63, 0xf5, 0x1d, 0x3a, 0x97, 0xbf, 0x41, 0xef, 0x10, 0xe2, 0xff, 0x94, 0xee, 0x8d,
|
||||||
0xee, 0x99, 0xf7, 0xb2, 0x57, 0x2b, 0x15, 0xac, 0x42, 0x43, 0xa5, 0xf3, 0x88, 0xa3, 0x93, 0x53,
|
0xd2, 0x3d, 0xf3, 0x5e, 0xf6, 0x6a, 0x85, 0x82, 0x95, 0x6b, 0xa8, 0x64, 0x1e, 0x72, 0x74, 0x72,
|
||||||
0xb6, 0x02, 0xf2, 0x13, 0x19, 0x48, 0x21, 0xc0, 0xd3, 0x7b, 0xe9, 0x20, 0xd9, 0x1a, 0x0a, 0xda,
|
0xca, 0xd6, 0x40, 0x7e, 0x22, 0x03, 0x29, 0x04, 0x78, 0x7a, 0x2f, 0xbd, 0x8a, 0x4b, 0x43, 0xab,
|
||||||
0x45, 0x1d, 0x20, 0xb1, 0x69, 0x8c, 0xd4, 0xb4, 0xf1, 0xa8, 0xd3, 0xb3, 0x4a, 0x0d, 0xa2, 0x25,
|
0x76, 0x5e, 0x07, 0x48, 0x6c, 0x12, 0x21, 0x35, 0x6d, 0x3c, 0xea, 0xf4, 0xac, 0x42, 0x83, 0x68,
|
||||||
0x81, 0x35, 0x57, 0x86, 0x73, 0x22, 0x40, 0x67, 0x32, 0x41, 0x9b, 0x28, 0xf0, 0x54, 0x3c, 0xe7,
|
0x49, 0x60, 0xc3, 0x95, 0xe1, 0x9c, 0x08, 0xd0, 0xa9, 0x8c, 0xd1, 0x26, 0x0a, 0x3c, 0xe5, 0xdf,
|
||||||
0xec, 0x90, 0xca, 0x74, 0xfa, 0x38, 0xac, 0x11, 0x88, 0x62, 0xbd, 0x31, 0x1a, 0x42, 0x6a, 0x53,
|
0x33, 0x76, 0x48, 0x65, 0x3a, 0x7d, 0x1c, 0xd6, 0x08, 0x84, 0x91, 0xde, 0x1a, 0x0d, 0x21, 0xb5,
|
||||||
0xdd, 0x06, 0xa0, 0xda, 0x75, 0xe6, 0x09, 0x72, 0xc5, 0x45, 0x9c, 0xea, 0x32, 0x1c, 0x0d, 0x6b,
|
0xa9, 0x6e, 0x03, 0x50, 0xed, 0x3a, 0xf3, 0x18, 0xb9, 0xe2, 0x22, 0x4a, 0x74, 0x11, 0x8e, 0x86,
|
||||||
0xbd, 0xe5, 0x75, 0x30, 0x45, 0x5e, 0xd9, 0x3a, 0x04, 0xb1, 0xc4, 0x42, 0xa7, 0x9d, 0xb6, 0x21,
|
0x8d, 0x2e, 0x79, 0x1d, 0x4c, 0x91, 0x57, 0xb6, 0x09, 0x40, 0x2c, 0xb1, 0xd0, 0x69, 0xa7, 0x6d,
|
||||||
0x2c, 0xd9, 0xc1, 0xc7, 0xc8, 0x24, 0x3e, 0xf8, 0x39, 0x4a, 0x09, 0x52, 0x86, 0xb8, 0xfd, 0xb4,
|
0x08, 0x8b, 0x77, 0xf0, 0x11, 0x32, 0x89, 0x5f, 0xfc, 0x0c, 0xa5, 0x00, 0x29, 0x42, 0x2c, 0x5f,
|
||||||
0x43, 0x9a, 0x1c, 0x21, 0xdd, 0x76, 0x0a, 0x24, 0x6b, 0xaa, 0x99, 0xe6, 0x1e, 0x79, 0x9c, 0x90,
|
0xed, 0x90, 0x26, 0x47, 0x48, 0xb7, 0x9d, 0x1c, 0xc9, 0x9a, 0x6a, 0xa6, 0xb9, 0x47, 0x1e, 0x27,
|
||||||
0x4a, 0x08, 0x86, 0x0e, 0xa6, 0x49, 0xd3, 0xce, 0x7f, 0x08, 0xe6, 0x98, 0x0c, 0xc7, 0x83, 0x49,
|
0xa4, 0x12, 0x80, 0xa1, 0x83, 0x69, 0xd2, 0xb4, 0xb3, 0x1f, 0x82, 0x39, 0x26, 0xc3, 0xf1, 0x60,
|
||||||
0xf5, 0x10, 0xbf, 0x80, 0x7b, 0x6c, 0xd2, 0xd2, 0x5d, 0x91, 0x46, 0x73, 0x48, 0xf0, 0x1a, 0x95,
|
0x52, 0x3d, 0xc4, 0xcf, 0xe1, 0x1e, 0x9b, 0xb4, 0x70, 0x57, 0x24, 0xe1, 0x1c, 0x62, 0xbc, 0x46,
|
||||||
0x79, 0xc5, 0x9a, 0x88, 0xb8, 0x70, 0x69, 0x33, 0xb7, 0xe7, 0xd2, 0xf6, 0xcd, 0x0d, 0x25, 0x09,
|
0x45, 0x5e, 0xb1, 0x26, 0x42, 0x2e, 0x5c, 0xda, 0xcc, 0xec, 0xb9, 0xb4, 0x7d, 0x73, 0x43, 0x49,
|
||||||
0x7c, 0x49, 0x79, 0x02, 0x7e, 0x8f, 0xd8, 0xe4, 0x18, 0xa7, 0x75, 0x25, 0x9c, 0xf6, 0x95, 0x70,
|
0x0c, 0x9f, 0x13, 0x1e, 0x83, 0xdf, 0x23, 0x36, 0x39, 0xc6, 0x69, 0x5d, 0x09, 0xa7, 0x7d, 0x25,
|
||||||
0x3a, 0xef, 0xc3, 0x31, 0x04, 0x95, 0x54, 0x2e, 0x99, 0x86, 0x8c, 0x6d, 0xce, 0x39, 0x7b, 0x40,
|
0x9c, 0xce, 0xdb, 0x70, 0x0c, 0x41, 0x05, 0x95, 0x4b, 0xa6, 0x21, 0x65, 0xdb, 0x73, 0xce, 0x1e,
|
||||||
0x55, 0xeb, 0x18, 0xfc, 0x5d, 0x3e, 0x3e, 0xb4, 0xae, 0x84, 0xd3, 0xbe, 0x12, 0x4e, 0xe7, 0x7d,
|
0x50, 0xd5, 0x3a, 0x06, 0x7f, 0x93, 0x8f, 0x0f, 0xad, 0x2b, 0xe1, 0xb4, 0xaf, 0x84, 0xd3, 0x79,
|
||||||
0x38, 0x07, 0x9c, 0xe1, 0x85, 0xc4, 0xeb, 0x83, 0x42, 0xea, 0xe5, 0xe8, 0x46, 0x94, 0xdd, 0xe5,
|
0x1b, 0xce, 0x01, 0x67, 0x78, 0x21, 0xf1, 0xfa, 0xa0, 0x90, 0x7a, 0x39, 0xba, 0x11, 0x45, 0x77,
|
||||||
0xac, 0xd8, 0xfe, 0xa7, 0x9f, 0x65, 0x8b, 0x9f, 0xb6, 0xae, 0x84, 0xd3, 0xbe, 0x12, 0x4e, 0xe7,
|
0x39, 0x2b, 0xb6, 0xef, 0xf4, 0xb3, 0x68, 0xf1, 0xd3, 0xd6, 0x95, 0x70, 0xda, 0x57, 0xc2, 0xe9,
|
||||||
0x5d, 0x38, 0x39, 0x41, 0xd1, 0xf0, 0x69, 0x4a, 0x98, 0xef, 0xe3, 0x50, 0x51, 0xdb, 0xab, 0x5b,
|
0xbc, 0x09, 0x27, 0x23, 0x28, 0x1c, 0x3e, 0x4d, 0x09, 0xf3, 0x7d, 0x1c, 0x2a, 0xaa, 0xbc, 0xba,
|
||||||
0x74, 0x18, 0x73, 0x6b, 0x85, 0x24, 0x46, 0xa0, 0xb8, 0xb8, 0x66, 0x20, 0xe1, 0x3c, 0x22, 0x97,
|
0x79, 0x87, 0x31, 0xb7, 0x56, 0x48, 0x62, 0x04, 0xf2, 0x8b, 0x6b, 0x06, 0x12, 0xce, 0x23, 0x72,
|
||||||
0xbb, 0xcc, 0xef, 0x98, 0xc0, 0x93, 0x36, 0x43, 0xec, 0x50, 0xe2, 0x94, 0x34, 0xfa, 0x83, 0x90,
|
0xb9, 0xcb, 0xfc, 0x89, 0x09, 0x3c, 0x69, 0x33, 0xc4, 0x0e, 0x24, 0x4e, 0x49, 0xa3, 0x3f, 0x08,
|
||||||
0xe3, 0xb4, 0xc5, 0x16, 0xd1, 0x25, 0x8e, 0x8a, 0x99, 0xd8, 0x79, 0xc9, 0x63, 0xda, 0x7b, 0xda,
|
0x38, 0x4e, 0x5b, 0x6c, 0x11, 0x5d, 0xe2, 0xa8, 0x88, 0x89, 0x9d, 0x97, 0x3c, 0xa2, 0xbd, 0xa7,
|
||||||
0x37, 0x33, 0xf0, 0x71, 0x86, 0xe0, 0xf7, 0xc2, 0x41, 0xd3, 0x27, 0xb1, 0x4d, 0x2e, 0xf8, 0x12,
|
0x7d, 0x33, 0x03, 0x1f, 0x67, 0x08, 0xbe, 0xcf, 0x1d, 0x34, 0x7d, 0x12, 0xdb, 0xe4, 0x82, 0x2f,
|
||||||
0x07, 0x1f, 0xe9, 0x7b, 0x9e, 0x71, 0x74, 0x22, 0xb9, 0xd0, 0x79, 0x87, 0xec, 0x4f, 0x88, 0x69,
|
0x71, 0xf0, 0x91, 0xbe, 0xe7, 0x19, 0x47, 0x27, 0x92, 0x0b, 0x9d, 0x75, 0xc8, 0xfe, 0x84, 0x98,
|
||||||
0x8b, 0xaf, 0xba, 0xde, 0x3f, 0xee, 0x38, 0xd6, 0xb9, 0xc7, 0xfd, 0xd7, 0xfb, 0xe2, 0x98, 0xfb,
|
0xb6, 0xf8, 0xaa, 0xeb, 0xfd, 0xe3, 0x8e, 0x63, 0x9d, 0x7b, 0xdc, 0x7f, 0xbd, 0x2f, 0x8e, 0xb9,
|
||||||
0x68, 0x6a, 0x92, 0x0b, 0x75, 0x8f, 0xe3, 0xf5, 0x02, 0xf0, 0x5e, 0xe6, 0x72, 0xbd, 0x9b, 0xf7,
|
0x8f, 0xa6, 0x26, 0x99, 0x50, 0xf7, 0x38, 0x5e, 0x6f, 0x05, 0xde, 0xcb, 0x5c, 0x6e, 0x76, 0xf3,
|
||||||
0xfd, 0x71, 0xa1, 0x83, 0xe2, 0xdb, 0x5e, 0x79, 0xee, 0x8c, 0x19, 0xc0, 0x47, 0xbe, 0x9c, 0x36,
|
0xbe, 0x3f, 0xce, 0x75, 0x50, 0xbc, 0xec, 0x95, 0xe7, 0xce, 0x98, 0x01, 0x7c, 0xe4, 0xcb, 0x69,
|
||||||
0xd7, 0x2d, 0xd8, 0x59, 0x77, 0x45, 0x50, 0xad, 0x21, 0xc1, 0x24, 0x56, 0xec, 0xaf, 0x77, 0xb5,
|
0x73, 0x2d, 0xc1, 0xce, 0xba, 0x2b, 0x82, 0x6a, 0x0d, 0x31, 0x26, 0xb1, 0x62, 0x7f, 0xb9, 0xab,
|
||||||
0xdb, 0xce, 0xb7, 0xea, 0x3f, 0x38, 0x96, 0x30, 0x18, 0xb3, 0x47, 0xb8, 0x74, 0x94, 0xdb, 0x40,
|
0xdd, 0x76, 0xbe, 0x56, 0xff, 0xc5, 0xb1, 0x84, 0xc1, 0x98, 0x3d, 0xc2, 0xa5, 0xa3, 0xcc, 0x06,
|
||||||
0x13, 0x98, 0x68, 0x9b, 0xdc, 0xe5, 0x5b, 0x11, 0x43, 0x0e, 0x13, 0x55, 0xba, 0x75, 0x40, 0x18,
|
0x9a, 0xc0, 0x44, 0xdb, 0xe4, 0x2e, 0xdb, 0x8a, 0x18, 0x72, 0x18, 0xab, 0xc2, 0xad, 0x03, 0xc2,
|
||||||
0xc9, 0x47, 0x10, 0x4a, 0x20, 0xcd, 0x61, 0xf7, 0xa4, 0x88, 0xfa, 0x83, 0x0b, 0x45, 0xb4, 0xde,
|
0x48, 0x36, 0x82, 0x50, 0x02, 0x69, 0x0e, 0xba, 0x27, 0x45, 0xd4, 0x1f, 0x5c, 0x28, 0xa2, 0x4d,
|
||||||
0x56, 0x51, 0xab, 0xac, 0xa2, 0x56, 0xe7, 0xa4, 0x88, 0x30, 0x74, 0x13, 0xa0, 0xea, 0x12, 0xcb,
|
0x59, 0x45, 0xad, 0xa2, 0x8a, 0x5a, 0x9d, 0x93, 0x22, 0xc2, 0xd0, 0x4d, 0x80, 0xaa, 0x4b, 0x2c,
|
||||||
0xc1, 0xbd, 0xc2, 0x0c, 0xb4, 0x12, 0xd3, 0x0c, 0x66, 0x19, 0xe7, 0xeb, 0xc8, 0x8a, 0x85, 0x29,
|
0x07, 0xf7, 0x0a, 0x33, 0xd0, 0x0a, 0x4c, 0x33, 0x98, 0x65, 0x94, 0xad, 0x23, 0x6b, 0x16, 0x24,
|
||||||
0x98, 0x52, 0xc4, 0x54, 0x6f, 0x33, 0x6d, 0xce, 0xd9, 0x02, 0x9d, 0x25, 0x73, 0x29, 0x31, 0x9f,
|
0x60, 0x4a, 0x11, 0x53, 0x5d, 0x66, 0xda, 0x9c, 0xb3, 0x05, 0x3a, 0x4b, 0xe6, 0x52, 0x62, 0x3e,
|
||||||
0x85, 0xe8, 0x4e, 0xc5, 0x2a, 0x75, 0x70, 0xff, 0x18, 0x72, 0x75, 0x50, 0x1d, 0x27, 0x72, 0xa5,
|
0x73, 0xd1, 0x9d, 0x8a, 0x55, 0xe8, 0xe0, 0xfe, 0x31, 0xe4, 0xea, 0xa0, 0x3a, 0x4e, 0xe4, 0x0a,
|
||||||
0x18, 0x26, 0xaf, 0x1f, 0x62, 0xc7, 0x54, 0x17, 0x81, 0x70, 0x58, 0x3d, 0xc1, 0x0a, 0xcd, 0x55,
|
0x31, 0x4c, 0x5e, 0x3f, 0xc0, 0x8e, 0xa9, 0x2e, 0x02, 0xe1, 0xb0, 0x7a, 0x82, 0x35, 0x9a, 0xab,
|
||||||
0xcc, 0xec, 0x4c, 0xc0, 0x93, 0x51, 0x04, 0xc2, 0x07, 0xbf, 0xba, 0x57, 0x69, 0x14, 0x11, 0x6c,
|
0x98, 0xd9, 0x19, 0x83, 0x27, 0xc3, 0x10, 0x84, 0x0f, 0x7e, 0x75, 0xaf, 0xd2, 0xc8, 0x23, 0x28,
|
||||||
0x03, 0x7b, 0xbd, 0x5a, 0x2d, 0x53, 0xae, 0x48, 0x33, 0x5f, 0xc1, 0x41, 0xad, 0x9a, 0x52, 0x1d,
|
0x03, 0x7b, 0xbd, 0x5a, 0x2d, 0x53, 0xae, 0x48, 0x33, 0x5f, 0xc3, 0x41, 0xad, 0x9a, 0x52, 0x1d,
|
||||||
0xad, 0x63, 0x48, 0x38, 0xa2, 0x6a, 0x2c, 0x7a, 0x53, 0xa0, 0xe8, 0xb9, 0x59, 0x11, 0x0b, 0xee,
|
0x6d, 0x22, 0x88, 0x39, 0xa2, 0x6a, 0x2c, 0x7a, 0x53, 0xa0, 0xe8, 0xb9, 0x59, 0x11, 0x73, 0xee,
|
||||||
0x55, 0x08, 0x10, 0xef, 0x99, 0x3f, 0x2d, 0xa9, 0x82, 0xb5, 0xe7, 0x69, 0x91, 0x3a, 0x87, 0xf7,
|
0x55, 0x00, 0x10, 0xed, 0x99, 0x3f, 0x2d, 0xa9, 0x9c, 0xb5, 0xe7, 0x69, 0x9e, 0x3a, 0x87, 0xf7,
|
||||||
0x06, 0x68, 0xd7, 0x2c, 0x38, 0x24, 0xe3, 0x3a, 0xd8, 0xb1, 0xb6, 0xe2, 0x98, 0x72, 0xae, 0x54,
|
0x06, 0x68, 0xd7, 0x2c, 0x38, 0x24, 0xe5, 0x7a, 0xb5, 0x63, 0x6d, 0xcd, 0x31, 0xe5, 0x5c, 0xa9,
|
||||||
0x0a, 0xca, 0xce, 0xef, 0xc8, 0xb0, 0x58, 0x06, 0x40, 0xe4, 0x96, 0xf8, 0xa2, 0x30, 0xc6, 0x15,
|
0x04, 0x94, 0x9d, 0xdd, 0x91, 0x61, 0xbe, 0x0c, 0x80, 0xc8, 0x2c, 0xf1, 0x45, 0x6e, 0x8c, 0x2b,
|
||||||
0x31, 0xd3, 0xdd, 0xec, 0x14, 0x9e, 0x4c, 0x30, 0x5a, 0x1d, 0x6e, 0x6a, 0x84, 0x0b, 0x2f, 0x01,
|
0x62, 0xa6, 0xbb, 0xd9, 0x29, 0x3c, 0x19, 0x63, 0xb4, 0x3a, 0xd8, 0xd6, 0x08, 0x17, 0x5e, 0x0c,
|
||||||
0xa6, 0x40, 0x91, 0x58, 0x66, 0x48, 0x05, 0x82, 0xaa, 0x34, 0xca, 0x83, 0xb7, 0x9d, 0x06, 0xcf,
|
0x4c, 0x81, 0x22, 0x91, 0x4c, 0x91, 0x0a, 0x04, 0x55, 0x49, 0x98, 0x05, 0x6f, 0x3b, 0x0d, 0x9e,
|
||||||
0x77, 0x2b, 0x2b, 0x5f, 0xcd, 0x70, 0x0f, 0xf3, 0x69, 0x11, 0x94, 0x0e, 0xb0, 0x04, 0xb1, 0xb1,
|
0xed, 0x56, 0x56, 0xb6, 0x9a, 0xe1, 0x1e, 0xe6, 0xd3, 0x3c, 0x28, 0xbd, 0xc2, 0x12, 0xc4, 0xc6,
|
||||||
0xce, 0xd0, 0xe1, 0x3c, 0xaa, 0xe3, 0x3c, 0x8f, 0x66, 0xe3, 0xd7, 0x13, 0x2d, 0xc0, 0x7a, 0x23,
|
0x3a, 0x43, 0x87, 0xb3, 0xa8, 0x8e, 0xf3, 0x3c, 0x9a, 0x8d, 0x5f, 0x4f, 0xb4, 0x00, 0xeb, 0x1b,
|
||||||
0x5b, 0xa3, 0xe9, 0xa4, 0xd3, 0xae, 0x4f, 0x3e, 0x8d, 0x2e, 0xc9, 0xdc, 0x96, 0x32, 0x43, 0x48,
|
0xd9, 0x1a, 0x4d, 0x27, 0x9d, 0x76, 0x7d, 0xf2, 0x61, 0x74, 0x49, 0xe6, 0xb6, 0x90, 0x19, 0x42,
|
||||||
0xd7, 0x17, 0x81, 0x7e, 0xa6, 0xbd, 0x3f, 0x52, 0x2e, 0x3e, 0x8e, 0x86, 0xf5, 0x5c, 0xf8, 0x92,
|
0xb2, 0xb9, 0x08, 0xf4, 0x0b, 0xed, 0xfd, 0xf1, 0x38, 0xab, 0x7f, 0xbc, 0x88, 0xf2, 0x33, 0xed,
|
||||||
0xdc, 0x0d, 0xa6, 0x6d, 0x96, 0xf1, 0x90, 0x2f, 0x03, 0xfd, 0x11, 0x2f, 0xdd, 0xdb, 0xd2, 0x58,
|
0xfd, 0x95, 0x70, 0xf1, 0x7e, 0x34, 0xac, 0x67, 0x68, 0x17, 0x91, 0x6e, 0x68, 0x6f, 0x96, 0xf2,
|
||||||
0x2a, 0xcf, 0x6f, 0x0a, 0x60, 0x51, 0x5a, 0xcf, 0x33, 0xf4, 0x1f, 0x83, 0x6f, 0xb6, 0x5e, 0xaf,
|
0x80, 0x2f, 0x57, 0xfa, 0x3d, 0xde, 0xca, 0x5c, 0xfa, 0x92, 0x30, 0xd6, 0xd2, 0xf3, 0xb7, 0xe1,
|
||||||
0x9f, 0xfc, 0xb7, 0x5c, 0x00, 0x93, 0x0b, 0xdb, 0xa6, 0xf5, 0x1d, 0xeb, 0xe6, 0xf7, 0x6d, 0x9b,
|
0xb0, 0x6c, 0x9f, 0x67, 0x18, 0x20, 0xb2, 0xd3, 0x6c, 0xbd, 0x5e, 0x60, 0xd9, 0x6f, 0xb1, 0x21,
|
||||||
0x0d, 0xb3, 0x4b, 0xf7, 0xcc, 0x8e, 0x8b, 0x2b, 0xb7, 0xd9, 0xbf, 0xcd, 0x7f, 0x50, 0xff, 0x02,
|
0xc6, 0xe5, 0x76, 0x69, 0x7d, 0xff, 0x3e, 0xfa, 0xad, 0x75, 0xf4, 0x70, 0xe9, 0x35, 0xdb, 0x36,
|
||||||
0x52, 0x52, 0xa9, 0x87, 0x51, 0x0d, 0x00, 0x00
|
0x7e, 0x98, 0x9d, 0xdc, 0x2c, 0xe8, 0xe6, 0x5f, 0xac, 0xff, 0x00, 0x7c, 0x99, 0x4c, 0x50, 0x72,
|
||||||
|
0x0d, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
495
wled00/html_ui.h
495
wled00/html_ui.h
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Autogenerated from wled00/data/index.htm, do not edit!!
|
// Autogenerated from wled00/data/index.htm, do not edit!!
|
||||||
const uint16_t PAGE_index_L = 26948;
|
const uint16_t PAGE_index_L = 26970;
|
||||||
const uint8_t PAGE_index[] PROGMEM = {
|
const uint8_t PAGE_index[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdc, 0xbd, 0x79, 0x7f, 0xe2, 0xba,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdc, 0xbd, 0x79, 0x7f, 0xe2, 0xba,
|
||||||
0xd2, 0x20, 0xfc, 0x7f, 0x3e, 0x05, 0x71, 0x9f, 0xdb, 0x8d, 0x0f, 0x0e, 0x3b, 0x84, 0x40, 0x93,
|
0xd2, 0x20, 0xfc, 0x7f, 0x3e, 0x05, 0x71, 0x9f, 0xdb, 0x8d, 0x0f, 0x0e, 0x3b, 0x84, 0x40, 0x93,
|
||||||
@ -1448,250 +1448,251 @@ const uint8_t PAGE_index[] PROGMEM = {
|
|||||||
0x99, 0x27, 0x5e, 0x8e, 0x84, 0xd6, 0x66, 0xc1, 0xa9, 0x08, 0x2f, 0xff, 0x34, 0x08, 0xe8, 0x2a,
|
0x99, 0x27, 0x5e, 0x8e, 0x84, 0xd6, 0x66, 0xc1, 0xa9, 0x08, 0x2f, 0xff, 0x34, 0x08, 0xe8, 0x2a,
|
||||||
0xaa, 0x9b, 0x00, 0xc9, 0x0e, 0x24, 0xa7, 0xbc, 0x7f, 0x09, 0x28, 0x2c, 0xd7, 0xff, 0x7f, 0x6f,
|
0xaa, 0x9b, 0x00, 0xc9, 0x0e, 0x24, 0xa7, 0xbc, 0x7f, 0x09, 0x28, 0x2c, 0xd7, 0xff, 0x7f, 0x6f,
|
||||||
0x57, 0xdb, 0xdb, 0xb6, 0x91, 0x84, 0xbf, 0xdf, 0xaf, 0x90, 0x19, 0xd4, 0x25, 0xcf, 0x2b, 0x99,
|
0x57, 0xdb, 0xdb, 0xb6, 0x91, 0x84, 0xbf, 0xdf, 0xaf, 0x90, 0x19, 0xd4, 0x25, 0xcf, 0x2b, 0x99,
|
||||||
0xb2, 0x93, 0x36, 0xa1, 0x4c, 0x0b, 0x39, 0x5f, 0xef, 0x6a, 0xb4, 0x08, 0x8a, 0x38, 0x57, 0x1f,
|
0xb2, 0x93, 0x36, 0x91, 0x4c, 0x0b, 0x39, 0x5f, 0xef, 0x6a, 0xb4, 0x08, 0x8a, 0x38, 0x57, 0x1f,
|
||||||
0xe0, 0x33, 0x1a, 0x49, 0xa6, 0x2c, 0x22, 0x34, 0xc9, 0x8a, 0xb4, 0xa5, 0x40, 0xd6, 0x7f, 0xbf,
|
0xe0, 0x33, 0x1a, 0x49, 0x5e, 0x59, 0x44, 0x68, 0x92, 0x15, 0x69, 0x4b, 0x81, 0xcc, 0xff, 0x7e,
|
||||||
0x99, 0xd9, 0xf7, 0x25, 0x69, 0x2b, 0x09, 0x50, 0x20, 0x81, 0xed, 0xe5, 0x72, 0x77, 0x39, 0x3b,
|
0x33, 0xb3, 0xef, 0x7c, 0xb1, 0x95, 0x04, 0x28, 0x90, 0xc0, 0xf6, 0x72, 0xb9, 0xbb, 0x9c, 0x9d,
|
||||||
0x3b, 0x3b, 0x3b, 0x3b, 0xf3, 0x0c, 0xbe, 0x8e, 0x19, 0x36, 0x85, 0x5a, 0xb5, 0xe7, 0x29, 0x83,
|
0x9d, 0x9d, 0x9d, 0x9d, 0x79, 0x06, 0x5f, 0xc7, 0x0c, 0x9b, 0x52, 0xad, 0xda, 0xf3, 0xb4, 0x41,
|
||||||
0x66, 0x68, 0x11, 0x28, 0xbc, 0x3e, 0x09, 0xb5, 0x21, 0xd0, 0x7d, 0x16, 0xd7, 0xcb, 0x60, 0xf4,
|
0x33, 0x74, 0x08, 0x14, 0x5e, 0x9f, 0x84, 0xc6, 0x10, 0x58, 0x7f, 0x16, 0x95, 0xab, 0x60, 0xfc,
|
||||||
0x17, 0x4a, 0x6e, 0x79, 0x1b, 0x37, 0x0c, 0x43, 0x43, 0x8a, 0x93, 0x53, 0x94, 0x2d, 0xc8, 0x0d,
|
0x17, 0x4a, 0x6e, 0x75, 0x1b, 0x37, 0x0c, 0x43, 0x4b, 0x8a, 0x93, 0x53, 0x94, 0x2b, 0xc8, 0x2d,
|
||||||
0xdb, 0x2b, 0x39, 0x0a, 0xfe, 0x35, 0x62, 0xdd, 0xdc, 0x67, 0x37, 0x5d, 0xef, 0xf3, 0xc0, 0x75,
|
0xdb, 0x2b, 0x39, 0x0a, 0xfe, 0x35, 0x62, 0xdd, 0xde, 0x67, 0xb7, 0x5d, 0xef, 0x8b, 0xc0, 0x75,
|
||||||
0xf9, 0x32, 0x33, 0xe9, 0xd6, 0x56, 0x8b, 0x93, 0xcc, 0xaa, 0x65, 0x5e, 0xe0, 0xb5, 0xf3, 0x67,
|
0xf5, 0x32, 0xb3, 0xe9, 0xd6, 0x56, 0x4b, 0x90, 0xcc, 0xa9, 0x65, 0x5f, 0xe0, 0xb5, 0xf3, 0x67,
|
||||||
0xe5, 0xdc, 0x7f, 0xc9, 0xbd, 0x5f, 0xda, 0xa2, 0xe6, 0xa0, 0xd2, 0xd7, 0x51, 0x96, 0xcc, 0xeb,
|
0x51, 0xbb, 0xff, 0x52, 0x7b, 0xbf, 0xb2, 0x45, 0x2d, 0x40, 0xa5, 0x2f, 0x47, 0x09, 0x5f, 0x94,
|
||||||
0xd1, 0xae, 0xd2, 0x92, 0xf3, 0x8e, 0xe6, 0xd7, 0x1d, 0x3b, 0xce, 0x5a, 0x7b, 0x26, 0xab, 0xc5,
|
0xe3, 0x5d, 0xa5, 0xa5, 0xe0, 0x1d, 0xc3, 0xaf, 0x3b, 0x76, 0x9c, 0xb4, 0xf6, 0x4c, 0x56, 0x8b,
|
||||||
0x4e, 0x5d, 0xff, 0x6f, 0x7d, 0x3c, 0xdb, 0xeb, 0xf7, 0xa5, 0x55, 0xa5, 0xdf, 0x87, 0x82, 0x84,
|
0x9d, 0xba, 0xfe, 0xdf, 0xe6, 0x78, 0xbe, 0xd7, 0xef, 0x2b, 0xab, 0x4a, 0xbf, 0x0f, 0x05, 0x9c,
|
||||||
0xc6, 0x23, 0x38, 0x57, 0x67, 0x56, 0x35, 0xdc, 0x58, 0x48, 0x57, 0x6f, 0xc9, 0x3b, 0x4d, 0x5a,
|
0xc6, 0x23, 0x39, 0xd7, 0x64, 0x56, 0xb5, 0xdc, 0x58, 0x48, 0x57, 0x6f, 0xc9, 0x3b, 0x4d, 0x5a,
|
||||||
0xbd, 0x36, 0x2b, 0x8f, 0xf4, 0x93, 0x16, 0x13, 0x6e, 0xdd, 0x86, 0x92, 0x21, 0x6a, 0x1f, 0xb5,
|
0xbd, 0x31, 0x2b, 0x8f, 0xcd, 0x93, 0x16, 0x13, 0x6e, 0xd9, 0x86, 0x92, 0x21, 0x6b, 0x1f, 0xb5,
|
||||||
0xd5, 0xa6, 0x5a, 0x91, 0x78, 0xc9, 0x1a, 0x0d, 0x65, 0xa8, 0x48, 0xb8, 0x92, 0xc3, 0xc7, 0x93,
|
0xd5, 0xa6, 0x5a, 0x23, 0xf9, 0x92, 0x33, 0x1a, 0xca, 0x50, 0xc1, 0x85, 0x92, 0x23, 0xc6, 0xc3,
|
||||||
0x9c, 0x00, 0x0f, 0x8f, 0x25, 0xce, 0x50, 0xfd, 0x31, 0xa2, 0x86, 0xfb, 0x98, 0x1b, 0x0d, 0xf4,
|
0x4f, 0x80, 0x87, 0x27, 0x0a, 0x67, 0xa8, 0xfc, 0x38, 0xa2, 0x86, 0xfb, 0x98, 0x1b, 0x0d, 0xf4,
|
||||||
0xf6, 0x26, 0x3a, 0x8f, 0x82, 0x88, 0xe2, 0xe9, 0xd7, 0xdb, 0x91, 0x0a, 0x45, 0x31, 0x66, 0x03,
|
0xf6, 0x26, 0x3a, 0x8f, 0x86, 0x88, 0x12, 0xe9, 0xd7, 0xdb, 0x91, 0x0a, 0x65, 0x31, 0x66, 0x03,
|
||||||
0x40, 0x88, 0xaf, 0xc9, 0x2d, 0x6d, 0x00, 0x76, 0xd8, 0x97, 0xbc, 0x67, 0x55, 0xd4, 0xa1, 0x48,
|
0x40, 0x88, 0xaf, 0xe9, 0x2d, 0x6d, 0x00, 0x6e, 0xd8, 0x97, 0xba, 0x67, 0xd5, 0xd4, 0xa1, 0x48,
|
||||||
0xa7, 0xab, 0xeb, 0xad, 0x83, 0xb9, 0xca, 0xc1, 0x97, 0x09, 0x70, 0x95, 0xfb, 0x3b, 0x23, 0x78,
|
0xa7, 0xab, 0xeb, 0xaa, 0x86, 0xb9, 0x2a, 0xc0, 0x97, 0x09, 0x70, 0x55, 0xf8, 0x3b, 0x23, 0x78,
|
||||||
0x24, 0xfa, 0xfd, 0x55, 0x18, 0x6f, 0x16, 0x25, 0x92, 0x86, 0x74, 0x37, 0xaf, 0x1d, 0x98, 0xea,
|
0x24, 0xfa, 0xfd, 0x15, 0x18, 0x6f, 0x36, 0xe2, 0x8a, 0x86, 0x74, 0x37, 0x6f, 0x1c, 0x98, 0xca,
|
||||||
0x46, 0x67, 0x3f, 0xad, 0xb1, 0xaf, 0x2e, 0x58, 0xe5, 0xd1, 0xb7, 0x0c, 0xa2, 0x82, 0x43, 0xd8,
|
0x46, 0x67, 0x3f, 0x6d, 0xb0, 0xaf, 0x2e, 0x58, 0xe5, 0xf1, 0xb7, 0x0c, 0xa2, 0x80, 0x43, 0x58,
|
||||||
0x16, 0x93, 0xde, 0x8b, 0x20, 0xd9, 0x38, 0x61, 0x4f, 0x8f, 0xe5, 0xa9, 0x91, 0xd8, 0x2e, 0x80,
|
0x85, 0x49, 0xef, 0x65, 0x90, 0x6c, 0xc4, 0xd9, 0xd3, 0x63, 0x79, 0x6a, 0x24, 0xae, 0x0b, 0x20,
|
||||||
0x14, 0xfe, 0x85, 0xa0, 0xb7, 0xd4, 0x91, 0x85, 0x3f, 0x65, 0x02, 0x46, 0x5b, 0xfe, 0x81, 0x02,
|
0x85, 0x7f, 0x21, 0xe8, 0x2d, 0x75, 0xe4, 0xe0, 0x4f, 0xd9, 0x80, 0xd1, 0x8e, 0x7f, 0xa0, 0xc4,
|
||||||
0x6f, 0xdc, 0xe6, 0x3b, 0x35, 0xc3, 0xd2, 0x2d, 0xa8, 0x7a, 0x16, 0xa3, 0x2b, 0x7f, 0x0e, 0xa3,
|
0x1b, 0x77, 0xf9, 0x4e, 0xcf, 0xb0, 0x72, 0x0b, 0x2a, 0x9e, 0xc5, 0xe8, 0x4a, 0x9f, 0xc3, 0xe8,
|
||||||
0x0b, 0xef, 0x0d, 0xc2, 0xbd, 0x38, 0x97, 0x57, 0xbd, 0x66, 0x2d, 0x60, 0x09, 0xe3, 0x4a, 0x65,
|
0xc2, 0x7b, 0x83, 0x70, 0x2f, 0x4a, 0xd5, 0x55, 0xaf, 0x5d, 0x0b, 0x58, 0xc2, 0xba, 0x52, 0x99,
|
||||||
0x62, 0x3d, 0xbb, 0x4b, 0x8d, 0x47, 0x45, 0xdc, 0xf9, 0x55, 0x2c, 0xb5, 0x9e, 0x95, 0xab, 0xa5,
|
0x3a, 0xcf, 0xee, 0x62, 0xeb, 0x51, 0x16, 0x75, 0x7e, 0x15, 0x8b, 0x9d, 0x67, 0xf9, 0x7a, 0xe5,
|
||||||
0x05, 0x4b, 0xa2, 0x53, 0x24, 0x61, 0x3a, 0x23, 0x8c, 0xab, 0x33, 0xc8, 0x95, 0x47, 0x35, 0xe3,
|
0xc0, 0x92, 0x98, 0x14, 0x49, 0x98, 0xce, 0x08, 0xe3, 0xea, 0x2c, 0x72, 0xa5, 0xa3, 0x92, 0x89,
|
||||||
0x69, 0x27, 0x60, 0x8e, 0xf0, 0x32, 0xa2, 0xe1, 0x9d, 0x54, 0x21, 0xaa, 0x75, 0x0e, 0xe4, 0x7e,
|
0xb4, 0x13, 0x30, 0x47, 0x78, 0x19, 0xd1, 0xf0, 0x4e, 0x2a, 0x10, 0xd5, 0x3a, 0x05, 0x72, 0x3f,
|
||||||
0x88, 0x32, 0x76, 0x97, 0x46, 0x13, 0x56, 0xe4, 0xd1, 0x5e, 0xca, 0xa6, 0xcb, 0x34, 0x6a, 0xfd,
|
0x8c, 0x12, 0x76, 0x17, 0x8f, 0xa6, 0x2c, 0x4b, 0x47, 0x7b, 0x31, 0x9b, 0xad, 0xe2, 0x51, 0xeb,
|
||||||
0x70, 0x02, 0xf6, 0x56, 0x00, 0x66, 0x30, 0x1d, 0xc5, 0x76, 0x3b, 0x72, 0x20, 0xd0, 0x0c, 0x6c,
|
0x87, 0x13, 0xb0, 0xb7, 0x06, 0x30, 0x83, 0xe9, 0xc8, 0xaa, 0x6a, 0x5c, 0x83, 0x40, 0xb3, 0xb0,
|
||||||
0xb1, 0xd9, 0x0e, 0xd8, 0x62, 0x37, 0xcf, 0x63, 0x8b, 0xb1, 0xb2, 0xbd, 0x4e, 0x31, 0xd7, 0xf3,
|
0xc5, 0xe6, 0x3b, 0x60, 0x8b, 0xdd, 0x3c, 0x8f, 0x2d, 0xc6, 0xf2, 0xf6, 0x3a, 0xd9, 0xc2, 0xcc,
|
||||||
0xb0, 0x24, 0xae, 0x84, 0x96, 0xe3, 0x19, 0xe3, 0xbf, 0x43, 0x0b, 0xf1, 0x8d, 0xf8, 0xbd, 0x98,
|
0xc3, 0x8a, 0xb8, 0x12, 0x5a, 0x8e, 0xe6, 0x4c, 0xfc, 0x0e, 0x2d, 0x44, 0x37, 0xf2, 0xf7, 0x6c,
|
||||||
0xc7, 0xe5, 0x96, 0xff, 0x0a, 0xac, 0x81, 0xa1, 0x19, 0x22, 0xa5, 0x4c, 0x62, 0xbb, 0x58, 0x2e,
|
0x11, 0xe5, 0x95, 0xf8, 0x15, 0x58, 0x03, 0x43, 0x33, 0x64, 0x4a, 0x19, 0xee, 0xba, 0x58, 0xae,
|
||||||
0xcd, 0x3b, 0x55, 0xe1, 0xf5, 0xf2, 0xd7, 0x30, 0x91, 0x33, 0x35, 0x64, 0xcc, 0xc1, 0x1c, 0xf3,
|
0xec, 0x3b, 0x55, 0xe9, 0xf5, 0xf2, 0xd7, 0x30, 0x51, 0x6d, 0x6a, 0xc8, 0x98, 0x83, 0x39, 0xe6,
|
||||||
0x8d, 0xf2, 0xfc, 0x24, 0xae, 0x82, 0x1b, 0xb9, 0x86, 0x38, 0xc6, 0x2d, 0xe7, 0xbd, 0xaf, 0x98,
|
0x1b, 0xe5, 0xe9, 0x49, 0x54, 0x04, 0x37, 0x6a, 0x0d, 0x09, 0x8c, 0x5b, 0xc1, 0x7b, 0x5f, 0x31,
|
||||||
0xfa, 0x27, 0x67, 0x6f, 0xb2, 0xc3, 0xec, 0x15, 0x3b, 0xcc, 0x5e, 0xfa, 0xfc, 0xec, 0x65, 0x6a,
|
0xf5, 0x4f, 0xce, 0xde, 0x74, 0x87, 0xd9, 0xcb, 0x76, 0x98, 0xbd, 0xf8, 0xf9, 0xd9, 0x4b, 0xf4,
|
||||||
0xf6, 0x26, 0x2c, 0x53, 0xb3, 0x57, 0x88, 0xdf, 0x61, 0xf6, 0xd2, 0xad, 0x39, 0x4d, 0x99, 0x39,
|
0xec, 0x4d, 0x59, 0xa2, 0x67, 0x2f, 0x93, 0xbf, 0xc3, 0xec, 0xc5, 0x95, 0x3d, 0x4d, 0x89, 0x3d,
|
||||||
0x4d, 0x8a, 0x16, 0x1b, 0x0d, 0x0b, 0x3f, 0x6e, 0x53, 0xbf, 0x40, 0xd7, 0xa2, 0x1c, 0xec, 0x77,
|
0x4d, 0x9a, 0x16, 0x5b, 0x03, 0x0b, 0x3f, 0x69, 0x53, 0xbf, 0x40, 0xd7, 0xa2, 0x1c, 0xec, 0x77,
|
||||||
0x20, 0xa1, 0x53, 0xd0, 0x51, 0xb5, 0xed, 0x18, 0x9e, 0x88, 0xab, 0x4c, 0xd8, 0x37, 0xf6, 0xf0,
|
0x20, 0xa1, 0x63, 0xd0, 0x51, 0x8d, 0xed, 0x18, 0x9e, 0xc8, 0xab, 0x4c, 0xd8, 0x37, 0xf6, 0xf0,
|
||||||
0x96, 0x52, 0x36, 0xd5, 0xef, 0x77, 0x0a, 0x23, 0x24, 0x6b, 0xb8, 0xdd, 0x06, 0x76, 0x28, 0x2f,
|
0x96, 0x52, 0x35, 0xd5, 0xef, 0x77, 0x0a, 0x23, 0x24, 0x6b, 0x58, 0x55, 0x81, 0x1b, 0xca, 0x8b,
|
||||||
0xe6, 0x98, 0x20, 0xcc, 0xd5, 0xd6, 0x97, 0x70, 0xa5, 0x75, 0x8a, 0x08, 0x4b, 0x82, 0xf1, 0x6c,
|
0x39, 0x26, 0x08, 0x73, 0xb5, 0xf5, 0x25, 0x5c, 0x69, 0x9d, 0x22, 0xc2, 0x91, 0x60, 0x22, 0xdb,
|
||||||
0x0f, 0xdd, 0x2d, 0xc1, 0x6a, 0xed, 0x92, 0x27, 0x6e, 0x3b, 0x22, 0x87, 0x59, 0x77, 0x5b, 0xb8,
|
0x43, 0x77, 0x4b, 0xb0, 0x5a, 0xbb, 0xe4, 0x49, 0xbd, 0x1d, 0x99, 0xc3, 0xac, 0xbb, 0x2d, 0x5c,
|
||||||
0xe8, 0xbf, 0x40, 0xca, 0xb4, 0xb4, 0x8f, 0x19, 0xcb, 0xba, 0xdb, 0xdf, 0x49, 0x9c, 0xd8, 0xfe,
|
0xf4, 0x5f, 0x20, 0x65, 0x5a, 0xda, 0xc7, 0x8c, 0x65, 0xdd, 0xed, 0xef, 0x24, 0x4e, 0x5c, 0xff,
|
||||||
0xdd, 0x2a, 0x39, 0x96, 0x0c, 0xbf, 0x31, 0x36, 0xa7, 0x0d, 0xba, 0xb7, 0x7b, 0xb5, 0x07, 0xcc,
|
0x6e, 0x9d, 0x1c, 0x4b, 0x85, 0xdf, 0x58, 0x9b, 0xd3, 0x16, 0xdd, 0xdb, 0xbd, 0xd2, 0x03, 0xe6,
|
||||||
0xcb, 0x63, 0xf3, 0x63, 0xca, 0xb5, 0xc9, 0x23, 0x54, 0x6f, 0x62, 0x67, 0x49, 0xdb, 0x5b, 0x4f,
|
0x15, 0xb1, 0xf9, 0x11, 0xe5, 0xda, 0x14, 0x11, 0xaa, 0x37, 0xb0, 0xf3, 0x18, 0xf7, 0x7a, 0x1e,
|
||||||
0xad, 0x33, 0x69, 0xf3, 0x60, 0x93, 0x38, 0x19, 0x1b, 0x79, 0x70, 0xdd, 0x20, 0xb0, 0xef, 0x5f,
|
0x45, 0x75, 0xe7, 0xf8, 0x86, 0xcf, 0xbd, 0x0f, 0xcd, 0x26, 0xa0, 0x7f, 0x0e, 0xab, 0x20, 0x78,
|
||||||
0xf0, 0x90, 0xca, 0x9e, 0x0b, 0xd6, 0x14, 0x09, 0x5a, 0x7f, 0xaf, 0xf2, 0x03, 0x34, 0xe3, 0xc7,
|
0x62, 0xd3, 0x2a, 0x4d, 0x0e, 0x6e, 0x11, 0xa6, 0x12, 0xf1, 0x89, 0x95, 0x41, 0xb7, 0x1e, 0x3e,
|
||||||
0x3a, 0x5e, 0xbd, 0x32, 0xdd, 0x0b, 0xaf, 0x3f, 0x1a, 0x1b, 0x5f, 0x28, 0xb6, 0x60, 0xb7, 0x29,
|
0xf6, 0xfd, 0x0b, 0x11, 0x8c, 0xd9, 0xab, 0xc3, 0x3c, 0x8d, 0xe4, 0x2c, 0x7d, 0xaf, 0x33, 0x0b,
|
||||||
0x4f, 0x36, 0x65, 0xe2, 0x3b, 0x39, 0x5a, 0x49, 0x0b, 0x48, 0x56, 0xe7, 0x88, 0x1a, 0x08, 0x4f,
|
0x34, 0x23, 0xcf, 0x3a, 0x5e, 0xbd, 0xb2, 0x1d, 0x13, 0xaf, 0x3f, 0x5a, 0x5b, 0x66, 0x28, 0x37,
|
||||||
0xc9, 0x33, 0x70, 0x57, 0x2d, 0x6b, 0x60, 0xbe, 0xd6, 0x53, 0x9a, 0x34, 0x58, 0x42, 0x02, 0x8b,
|
0xef, 0x7a, 0x53, 0x9e, 0x6a, 0xca, 0x46, 0x86, 0xaa, 0xe9, 0x33, 0x2d, 0xf0, 0x5a, 0x9d, 0x23,
|
||||||
0x7d, 0x19, 0xad, 0x9f, 0x0c, 0xb8, 0xdb, 0x85, 0xe2, 0x3b, 0x46, 0xec, 0xed, 0x4e, 0x77, 0x85,
|
0x6a, 0x60, 0x43, 0xf1, 0x67, 0x80, 0xb2, 0x5a, 0x56, 0xcf, 0x62, 0x63, 0x98, 0x81, 0x37, 0x98,
|
||||||
0x07, 0xff, 0x8d, 0x84, 0xb7, 0x70, 0xe5, 0xbf, 0x91, 0xf2, 0xd0, 0x56, 0x94, 0xb8, 0x04, 0xc7,
|
0x49, 0x41, 0x92, 0x7d, 0x19, 0xad, 0x9f, 0x0c, 0xd5, 0xdb, 0x85, 0xe2, 0x3b, 0xc6, 0xfa, 0xed,
|
||||||
0x05, 0xe8, 0xac, 0xbf, 0xc6, 0xaa, 0x6b, 0x42, 0xbf, 0x04, 0xee, 0x4a, 0xc6, 0x48, 0x6a, 0xbf,
|
0x4e, 0x77, 0x8d, 0x24, 0xff, 0x8d, 0x84, 0x77, 0x10, 0xe9, 0xbf, 0x91, 0xf2, 0xd0, 0xd6, 0x88,
|
||||||
0x6d, 0x1d, 0x57, 0xeb, 0xd6, 0xb6, 0xac, 0xe8, 0xf2, 0x06, 0x17, 0xa8, 0x48, 0xf2, 0xd6, 0x26,
|
0xd7, 0x09, 0x8e, 0x4b, 0xb7, 0xb6, 0x72, 0x1b, 0xeb, 0xb5, 0x09, 0x1a, 0x13, 0xd4, 0x65, 0x00,
|
||||||
0xd3, 0xf6, 0x26, 0x1b, 0xe1, 0xe7, 0x8d, 0x66, 0x7f, 0x2d, 0x9a, 0xc2, 0x2c, 0x83, 0x03, 0x64,
|
0xc6, 0x60, 0xfb, 0x6d, 0x12, 0xa0, 0xd8, 0xb4, 0xb6, 0xe5, 0xc4, 0xa5, 0x37, 0xb8, 0x40, 0xc7,
|
||||||
0xe2, 0x32, 0x21, 0x4f, 0x0a, 0xad, 0xd5, 0x6b, 0x44, 0x99, 0xc1, 0x10, 0x1c, 0x23, 0x37, 0x34,
|
0xa0, 0xb7, 0x36, 0x19, 0xb7, 0x37, 0xd9, 0x08, 0x5c, 0x6f, 0x34, 0xfb, 0x6b, 0xd6, 0x14, 0x83,
|
||||||
0x09, 0x8e, 0x22, 0xa7, 0x20, 0x36, 0x63, 0xcf, 0xf8, 0xb5, 0x98, 0xa0, 0x63, 0xa5, 0x38, 0xa6,
|
0xb8, 0xf4, 0x79, 0x9d, 0x09, 0x45, 0x3a, 0x69, 0xa3, 0x98, 0x23, 0x3e, 0x0d, 0x06, 0xef, 0x58,
|
||||||
0xf7, 0xbc, 0x03, 0x79, 0xc3, 0x24, 0xb2, 0x79, 0x52, 0x22, 0xcf, 0x6e, 0x31, 0x43, 0x46, 0x6c,
|
0x59, 0xa5, 0x49, 0xe4, 0x64, 0x29, 0x85, 0xbf, 0x59, 0xbb, 0xcd, 0xaf, 0xd9, 0x14, 0x5d, 0x32,
|
||||||
0xb2, 0x26, 0xfa, 0x7b, 0x7e, 0x79, 0xee, 0x3a, 0xb1, 0x70, 0x0b, 0xbc, 0x92, 0x7c, 0xc1, 0xe3,
|
0xe5, 0x01, 0xbf, 0xe7, 0x1d, 0xa8, 0xbb, 0x29, 0x99, 0x07, 0x94, 0x52, 0x80, 0x76, 0x8b, 0x19,
|
||||||
0x63, 0x79, 0x7e, 0x32, 0xc4, 0xb1, 0x40, 0xdd, 0x2e, 0xc3, 0x7a, 0xc0, 0x10, 0x26, 0xc1, 0x2f,
|
0x32, 0x7f, 0x93, 0x1d, 0xd2, 0xdf, 0xf3, 0xf3, 0xf3, 0xba, 0xfb, 0x8b, 0xb0, 0xdd, 0x6b, 0x99,
|
||||||
0xdf, 0x19, 0x87, 0x28, 0x3a, 0x9f, 0x88, 0x56, 0xf0, 0xed, 0x77, 0xb1, 0x0f, 0x87, 0x1f, 0xe5,
|
0x19, 0x3c, 0x3e, 0xe6, 0xe7, 0x27, 0x43, 0x1c, 0x0b, 0xd4, 0xed, 0x32, 0xc9, 0x07, 0x0c, 0x01,
|
||||||
0x96, 0xe7, 0x69, 0x2f, 0xc3, 0xe0, 0xa0, 0x3c, 0x97, 0x20, 0x39, 0x1b, 0xbd, 0xe9, 0xb7, 0x1d,
|
0x16, 0xfc, 0xfc, 0x9d, 0x75, 0xfc, 0xa2, 0x93, 0x8d, 0x6c, 0x05, 0xdf, 0x7e, 0x17, 0xf9, 0x70,
|
||||||
0xc5, 0x82, 0x7a, 0xec, 0x57, 0xca, 0xdf, 0x50, 0x3b, 0xc3, 0xb0, 0x8a, 0x13, 0x0a, 0x7f, 0x52,
|
0x6c, 0xd2, 0x0e, 0x7d, 0x9e, 0xf1, 0x4f, 0x0c, 0x0e, 0xf2, 0x73, 0x05, 0xaf, 0xb3, 0x35, 0xea,
|
||||||
0xdc, 0x14, 0xd4, 0x4a, 0xa7, 0xc6, 0x68, 0xe8, 0x2a, 0xdb, 0x50, 0x5d, 0xab, 0x41, 0x65, 0x3e,
|
0x42, 0xdb, 0x21, 0x2e, 0x28, 0x27, 0x7e, 0xa1, 0x3d, 0x15, 0x8d, 0x1b, 0x0d, 0x2b, 0x04, 0xa1,
|
||||||
0xae, 0x9a, 0x8f, 0x67, 0xd6, 0xe3, 0xd9, 0xe2, 0x93, 0xf1, 0xd8, 0x23, 0xd4, 0x64, 0xf5, 0x38,
|
0xf0, 0x27, 0x45, 0x5c, 0x41, 0xad, 0x78, 0x66, 0x8d, 0x86, 0x2e, 0xc1, 0x2d, 0xa5, 0xb7, 0x18,
|
||||||
0xbb, 0x53, 0x5a, 0x07, 0x86, 0xc7, 0xcb, 0xab, 0xc9, 0x16, 0xca, 0x1a, 0x35, 0x31, 0xba, 0x57,
|
0x14, 0xf6, 0xe3, 0xa2, 0xf9, 0x78, 0xee, 0x3c, 0x9e, 0x2f, 0x3f, 0x59, 0x8f, 0x3d, 0xc2, 0x5b,
|
||||||
0x29, 0x48, 0xb9, 0xd1, 0xda, 0xa4, 0x54, 0x1b, 0xcf, 0xa8, 0x5e, 0x7e, 0xde, 0x54, 0x26, 0xee,
|
0xd6, 0x8f, 0x93, 0x3b, 0xad, 0xaf, 0x60, 0x60, 0xbd, 0xba, 0xd4, 0x6c, 0xa1, 0xac, 0x55, 0x13,
|
||||||
0x55, 0x1e, 0x6c, 0x79, 0xc4, 0x17, 0x47, 0x47, 0xab, 0x06, 0xab, 0x34, 0x8f, 0x73, 0x96, 0x2b,
|
0xe3, 0x82, 0xb5, 0x6a, 0x95, 0x5a, 0xad, 0x4d, 0x73, 0xbd, 0x65, 0x8d, 0xcb, 0xd5, 0xe7, 0x6d,
|
||||||
0x2f, 0x35, 0x89, 0x8b, 0x83, 0xd0, 0x37, 0x46, 0xc7, 0x68, 0x85, 0xb7, 0x30, 0x6a, 0xbd, 0xfd,
|
0x61, 0x23, 0x66, 0xa5, 0x41, 0x25, 0x62, 0xc5, 0x04, 0xae, 0x5a, 0x31, 0x58, 0xc7, 0x69, 0x94,
|
||||||
0x17, 0x6f, 0x5e, 0xbf, 0x7e, 0x3d, 0xea, 0xfd, 0x86, 0x66, 0x9f, 0xa4, 0x47, 0x06, 0x8d, 0xde,
|
0xb2, 0x54, 0xfb, 0xb7, 0x29, 0x44, 0x1d, 0x04, 0xcd, 0xb1, 0x3a, 0x46, 0xfb, 0xbd, 0x83, 0x6e,
|
||||||
0x67, 0x0c, 0xa6, 0x32, 0xae, 0x8e, 0x7a, 0xe4, 0x4f, 0xc9, 0x43, 0x22, 0x73, 0x1d, 0xd0, 0xbc,
|
0xeb, 0xed, 0xbf, 0x78, 0xf3, 0xfa, 0xf5, 0xeb, 0x71, 0xef, 0x37, 0x34, 0x18, 0xf1, 0x1e, 0x99,
|
||||||
0xf1, 0x82, 0xd3, 0xfe, 0xf0, 0x8b, 0xbb, 0xba, 0xf8, 0x0c, 0x7b, 0xf5, 0x5a, 0xc0, 0x9c, 0xa4,
|
0x42, 0x7a, 0x9f, 0x31, 0x0c, 0xcb, 0xba, 0x74, 0xea, 0x91, 0x27, 0xa6, 0x08, 0xa6, 0x4c, 0x4d,
|
||||||
0x79, 0x6f, 0x46, 0xe0, 0x07, 0x3d, 0xfc, 0x3c, 0xb3, 0x53, 0xde, 0x1d, 0xea, 0x98, 0xba, 0x47,
|
0x28, 0xf4, 0xd6, 0x0b, 0x4e, 0xfb, 0xc3, 0x2f, 0xee, 0xea, 0xe2, 0x33, 0xec, 0xf2, 0x1b, 0x09,
|
||||||
0x3e, 0x4a, 0x2f, 0xf8, 0xda, 0xcf, 0x13, 0x96, 0x1e, 0x8a, 0x8b, 0x2a, 0x31, 0x5d, 0xef, 0x34,
|
0x90, 0x12, 0xa7, 0xbd, 0x39, 0xc1, 0x26, 0xf4, 0xf0, 0xf3, 0xec, 0x4e, 0x45, 0x77, 0xa8, 0x9d,
|
||||||
0x81, 0x33, 0x24, 0xe8, 0x5b, 0xc5, 0x4d, 0x3a, 0xff, 0x8c, 0xcb, 0x89, 0x82, 0xab, 0xf8, 0x9a,
|
0x9a, 0x1e, 0xc5, 0x28, 0xbd, 0xe0, 0x6b, 0x3f, 0x4f, 0xda, 0x88, 0x28, 0xa2, 0x2a, 0xc7, 0x44,
|
||||||
0x02, 0x35, 0x82, 0xf3, 0x11, 0xfc, 0x28, 0x71, 0xc1, 0xc4, 0xe5, 0x39, 0xb0, 0x04, 0xe8, 0xca,
|
0xbf, 0x33, 0x0e, 0xa7, 0x4f, 0xd0, 0xd4, 0xb2, 0x9b, 0x78, 0xf1, 0x19, 0x97, 0x13, 0x85, 0x65,
|
||||||
0xef, 0x46, 0xc6, 0x51, 0x4a, 0x5c, 0x9f, 0xaa, 0xc9, 0xca, 0x8c, 0x98, 0x61, 0x98, 0x99, 0x3f,
|
0x89, 0x35, 0x05, 0x0a, 0x88, 0xe0, 0x23, 0xf8, 0x91, 0xe3, 0x82, 0x89, 0xf2, 0x73, 0x60, 0x09,
|
||||||
0xb3, 0x38, 0xb3, 0x16, 0xee, 0xc5, 0x84, 0xa0, 0xf3, 0x70, 0xc1, 0xf2, 0xa5, 0x5a, 0x9e, 0x37,
|
0xd0, 0xb2, 0xdf, 0x8d, 0xad, 0x43, 0x98, 0xbc, 0x78, 0xd5, 0x93, 0x95, 0x58, 0xd1, 0xc6, 0x30,
|
||||||
0xd7, 0x2a, 0xe2, 0x84, 0x0d, 0x8a, 0x31, 0x77, 0xdc, 0xbd, 0x2a, 0xcf, 0xaf, 0xe3, 0x8a, 0x59,
|
0x33, 0x7f, 0x26, 0x51, 0xe2, 0x2c, 0xdc, 0x8b, 0x29, 0x81, 0xee, 0xe1, 0x82, 0x15, 0x4b, 0x35,
|
||||||
0xde, 0xbe, 0x50, 0xc4, 0x07, 0xd5, 0x2c, 0x2e, 0x9a, 0x45, 0x0f, 0xcd, 0x22, 0xca, 0xa6, 0x1c,
|
0x3f, 0x6f, 0xae, 0x55, 0x44, 0x18, 0x1b, 0x64, 0x13, 0xe1, 0xf2, 0x7b, 0x95, 0x9f, 0x5f, 0x47,
|
||||||
0x19, 0x1d, 0x6c, 0xf2, 0xa8, 0x7c, 0xc7, 0x80, 0x91, 0x22, 0xaf, 0x8b, 0x5a, 0x88, 0x87, 0x93,
|
0x05, 0x73, 0xfc, 0x84, 0xa1, 0x48, 0x0c, 0xaa, 0x59, 0x9c, 0x35, 0x8b, 0x1e, 0x9a, 0x45, 0x94,
|
||||||
0x24, 0x9c, 0x46, 0x79, 0xb2, 0xca, 0x3e, 0x93, 0x1c, 0xb9, 0x91, 0x33, 0x36, 0xf0, 0xb6, 0x8c,
|
0x87, 0x79, 0x64, 0x75, 0xb0, 0x4d, 0x47, 0xf9, 0x3b, 0x06, 0x8c, 0x34, 0xf2, 0xba, 0xa8, 0x85,
|
||||||
0x58, 0x11, 0x17, 0xba, 0xea, 0x08, 0x59, 0x93, 0x4a, 0xf1, 0x93, 0xfe, 0xcc, 0xac, 0x67, 0x40,
|
0x48, 0x3a, 0x9c, 0x0b, 0x1a, 0xa5, 0x7c, 0x9d, 0x7c, 0x26, 0x39, 0x72, 0xa3, 0x66, 0x6c, 0xe0,
|
||||||
0x1c, 0x2c, 0x0b, 0x34, 0x56, 0xba, 0x19, 0x01, 0xa9, 0xed, 0x63, 0x86, 0xda, 0xc5, 0xfd, 0x6b,
|
0x55, 0x8c, 0x58, 0x11, 0x17, 0xba, 0xee, 0x08, 0x59, 0x93, 0x4a, 0xf1, 0x93, 0xfe, 0x4c, 0x9c,
|
||||||
0x24, 0x2e, 0x20, 0xe5, 0x0f, 0x91, 0x5e, 0xa8, 0xf8, 0x4c, 0x72, 0x86, 0x5d, 0x8a, 0x41, 0x3d,
|
0x67, 0x40, 0x1c, 0x2c, 0x0b, 0x0c, 0xca, 0xba, 0x1d, 0x3b, 0x69, 0x2c, 0x6b, 0x96, 0xc2, 0x26,
|
||||||
0x26, 0x5b, 0xec, 0xee, 0x91, 0xe3, 0x71, 0xf4, 0x28, 0xb2, 0x92, 0x60, 0x38, 0x81, 0xd3, 0xee,
|
0x3c, 0x73, 0x14, 0xa2, 0x20, 0x65, 0x1e, 0x51, 0xfe, 0xab, 0xf8, 0x4c, 0x71, 0x86, 0x5b, 0x8a,
|
||||||
0xf0, 0x4b, 0xda, 0x3d, 0x16, 0x79, 0x79, 0x31, 0x78, 0xc4, 0xd3, 0x92, 0xee, 0x49, 0x49, 0x66,
|
0xe1, 0x40, 0x36, 0x5b, 0xec, 0xee, 0xcb, 0xe3, 0x09, 0xdc, 0x29, 0xb2, 0xaf, 0x60, 0x20, 0x42,
|
||||||
0x33, 0x85, 0x21, 0xc0, 0xc5, 0x80, 0xec, 0x3d, 0x46, 0x36, 0x84, 0x60, 0x34, 0x8e, 0x4f, 0x6b,
|
0xad, 0xdd, 0xe1, 0x97, 0xb4, 0x7b, 0x2c, 0x33, 0xfa, 0x62, 0xd8, 0x89, 0x67, 0x24, 0xdd, 0x93,
|
||||||
0x9b, 0x85, 0xeb, 0x06, 0xcf, 0xf1, 0x23, 0x8b, 0x86, 0xb3, 0x7c, 0x3e, 0xf6, 0xed, 0x36, 0x6f,
|
0x92, 0xcc, 0x65, 0x0a, 0x4b, 0x80, 0xcb, 0x01, 0xb9, 0x7b, 0x8c, 0x6a, 0x08, 0x61, 0x6c, 0x6a,
|
||||||
0xd0, 0x82, 0xb3, 0x0d, 0x6c, 0x16, 0x82, 0x21, 0x36, 0xa6, 0x8c, 0x5c, 0x27, 0xb9, 0xa1, 0x6b,
|
0xde, 0xb0, 0x6d, 0xb6, 0xb1, 0x1b, 0xb4, 0x00, 0x8c, 0x1d, 0x1a, 0xce, 0xd3, 0xc5, 0xc4, 0x77,
|
||||||
0xd6, 0x0c, 0x34, 0xff, 0x02, 0x42, 0xd9, 0xd7, 0x96, 0x7b, 0xf8, 0xae, 0x31, 0xbe, 0x78, 0x68,
|
0xdb, 0xbc, 0x41, 0xdb, 0x4f, 0x15, 0xb8, 0x2c, 0x04, 0x43, 0x6c, 0x4c, 0x19, 0x39, 0x5d, 0x0a,
|
||||||
0x9b, 0x6a, 0x24, 0xba, 0x04, 0x66, 0xa4, 0x40, 0xd0, 0x89, 0x64, 0x64, 0xb8, 0x8b, 0x77, 0x01,
|
0x13, 0xd9, 0xbc, 0x19, 0xa2, 0xfe, 0x05, 0x84, 0x72, 0x2f, 0x3c, 0xf7, 0xf0, 0x5d, 0x6b, 0x7c,
|
||||||
0x7c, 0xa1, 0xd7, 0x49, 0x1d, 0xb4, 0x99, 0x9e, 0xd7, 0x6b, 0x42, 0xb6, 0x1d, 0x61, 0xc6, 0x18,
|
0xd1, 0xd0, 0x35, 0xf2, 0x28, 0x5c, 0x0a, 0xcc, 0x65, 0x81, 0x70, 0x15, 0x7c, 0x6c, 0x39, 0x9a,
|
||||||
0x57, 0xeb, 0x11, 0xcf, 0x10, 0x91, 0xeb, 0x37, 0x42, 0xd5, 0xf5, 0x97, 0xb7, 0x53, 0xcc, 0x4f,
|
0x77, 0x41, 0x83, 0xa1, 0xbf, 0x4a, 0x19, 0xb4, 0x19, 0xad, 0x37, 0x1b, 0xc2, 0xc4, 0x1d, 0x63,
|
||||||
0x5e, 0x1b, 0xf0, 0x5d, 0xc0, 0xcd, 0x20, 0xb5, 0x66, 0x08, 0xbb, 0xcb, 0xe9, 0x20, 0xf7, 0x04,
|
0xae, 0x99, 0xba, 0xd6, 0x23, 0x9f, 0x21, 0x96, 0xd7, 0x6f, 0x84, 0xc7, 0xeb, 0xaf, 0x6e, 0x67,
|
||||||
0x17, 0xf3, 0x96, 0xd9, 0xb0, 0xc7, 0xc2, 0xe1, 0x5a, 0xed, 0x17, 0xb5, 0x05, 0x09, 0xd6, 0x89,
|
0x98, 0xd9, 0xbc, 0xb4, 0x80, 0xbf, 0x80, 0x9b, 0x41, 0x6a, 0xcd, 0x11, 0xb0, 0x57, 0xd0, 0x41,
|
||||||
0xab, 0x4c, 0x80, 0xc9, 0x0e, 0x8a, 0x13, 0x45, 0x20, 0xa0, 0x53, 0xcd, 0x02, 0x93, 0x6a, 0x2b,
|
0xed, 0x09, 0x75, 0xb4, 0x5c, 0xe6, 0x02, 0x26, 0x4b, 0x57, 0x6d, 0xbd, 0x5f, 0x94, 0x0e, 0x98,
|
||||||
0x3f, 0xdb, 0x33, 0x01, 0x07, 0xef, 0x2d, 0x41, 0xbc, 0x62, 0x1a, 0x81, 0x0d, 0xa8, 0xbf, 0x9b,
|
0x58, 0x27, 0x22, 0x33, 0x41, 0x2d, 0xd7, 0xf0, 0x9f, 0x28, 0x76, 0x01, 0x8f, 0x1f, 0x4b, 0x4c,
|
||||||
0x45, 0x04, 0x1b, 0x26, 0xfc, 0x7f, 0x88, 0xd0, 0xa0, 0x18, 0x0c, 0x2a, 0xd3, 0x63, 0xf7, 0x55,
|
0xc7, 0xad, 0x3d, 0x74, 0xcf, 0x24, 0x90, 0xbc, 0xb7, 0x02, 0xf1, 0x8a, 0x09, 0x08, 0xb6, 0xa0,
|
||||||
0x68, 0x67, 0xac, 0x39, 0x78, 0x15, 0x06, 0xa3, 0x9b, 0x62, 0x93, 0x0c, 0x16, 0x66, 0xb5, 0xe3,
|
0xfe, 0x6e, 0x97, 0x23, 0xd8, 0x30, 0xe1, 0xff, 0xc3, 0x08, 0x4d, 0x91, 0xc1, 0xa0, 0xb0, 0x7d,
|
||||||
0x1f, 0x9c, 0x7a, 0xc1, 0x76, 0x05, 0x34, 0x4f, 0x7c, 0x2a, 0x9c, 0x4c, 0x2b, 0x1f, 0x5e, 0xe8,
|
0x7d, 0x5f, 0x85, 0x6e, 0xae, 0x9b, 0x83, 0x57, 0x61, 0x30, 0xbe, 0xc9, 0xb6, 0x7c, 0xb0, 0xb4,
|
||||||
0xd3, 0x88, 0x82, 0x13, 0x6c, 0x82, 0x0f, 0x0e, 0x0a, 0xb7, 0x9a, 0x96, 0x09, 0x87, 0x3a, 0x43,
|
0xab, 0x1d, 0xff, 0x50, 0xab, 0x17, 0x54, 0x6b, 0xa0, 0x39, 0xf7, 0xa9, 0x70, 0x3a, 0x2b, 0x7c,
|
||||||
0x92, 0xe1, 0x6d, 0xab, 0x0b, 0x9e, 0xae, 0xe8, 0x26, 0x02, 0xf5, 0x4c, 0x0a, 0xc3, 0x34, 0x8c,
|
0x78, 0xa1, 0x4f, 0x23, 0x0a, 0x4e, 0xb0, 0x09, 0x31, 0x38, 0x28, 0xac, 0x0c, 0x2d, 0xb9, 0x00,
|
||||||
0x6c, 0x8c, 0x6a, 0x85, 0x1c, 0xb8, 0x64, 0x36, 0x40, 0xb5, 0x7a, 0x70, 0xcb, 0x6c, 0x74, 0x6a,
|
0x49, 0x43, 0x92, 0xe1, 0x3d, 0x6d, 0x1d, 0x76, 0x5d, 0xd3, 0x4d, 0x86, 0xf8, 0xd9, 0x14, 0x86,
|
||||||
0x8d, 0x35, 0x28, 0x18, 0xc8, 0xec, 0x60, 0x91, 0xac, 0x2f, 0x28, 0x56, 0xdf, 0x80, 0xc6, 0x18,
|
0x69, 0x18, 0xbb, 0xe8, 0xd6, 0x1a, 0x73, 0x70, 0xc5, 0x5c, 0x68, 0x6b, 0xfd, 0xe0, 0x96, 0xb9,
|
||||||
0x36, 0x10, 0xf2, 0x1d, 0x76, 0xbb, 0x42, 0x7e, 0x34, 0xe7, 0x70, 0xc4, 0xa1, 0x73, 0xea, 0x03,
|
0xb8, 0xd6, 0x06, 0xa5, 0x50, 0x32, 0x90, 0xdd, 0xc1, 0x92, 0x6f, 0x2e, 0x28, 0xca, 0xdf, 0x02,
|
||||||
0x10, 0x7b, 0x75, 0x71, 0x21, 0x9a, 0xf9, 0x41, 0x22, 0x5e, 0x43, 0x27, 0x33, 0x0d, 0x24, 0xa8,
|
0xd5, 0x18, 0x36, 0xb0, 0xf5, 0x6b, 0xec, 0x76, 0x85, 0xfc, 0x68, 0xcf, 0xe1, 0x58, 0x80, 0xee,
|
||||||
0xcb, 0xf2, 0xf9, 0xf3, 0xd1, 0xed, 0xc7, 0x02, 0x77, 0x32, 0x37, 0x81, 0xa1, 0x7e, 0x07, 0x3e,
|
0x94, 0x07, 0x20, 0xf6, 0xca, 0xec, 0x42, 0x36, 0xf3, 0x83, 0xc2, 0xca, 0x86, 0x4e, 0xe6, 0x06,
|
||||||
0x96, 0x8e, 0xfc, 0x0d, 0x86, 0x14, 0x9b, 0x18, 0xcc, 0xbf, 0xf5, 0xa1, 0x68, 0x30, 0xb2, 0x4a,
|
0x82, 0xd0, 0x94, 0xa5, 0x8b, 0xe7, 0xe3, 0xe2, 0x8f, 0x25, 0x62, 0x65, 0x6a, 0x43, 0x4a, 0xfd,
|
||||||
0xaa, 0x49, 0x2d, 0x6e, 0x07, 0x05, 0x8b, 0xb0, 0x49, 0x9c, 0x2e, 0x8b, 0xc1, 0x19, 0xaf, 0x5f,
|
0x0e, 0x7c, 0xac, 0x42, 0x00, 0x1a, 0x0c, 0x29, 0x37, 0x31, 0x98, 0x7f, 0xe7, 0x43, 0xd1, 0xd4,
|
||||||
0x3d, 0x7c, 0x28, 0xde, 0xdf, 0x4e, 0xfd, 0x0c, 0x4d, 0x2d, 0x88, 0x28, 0x0d, 0x5b, 0xda, 0x64,
|
0xe4, 0x94, 0x14, 0xd3, 0x52, 0xde, 0x2b, 0x4a, 0x16, 0x61, 0xd3, 0x28, 0x5e, 0x65, 0x83, 0x33,
|
||||||
0xb0, 0x3c, 0xf0, 0x18, 0xfe, 0xbc, 0x15, 0x3f, 0xa7, 0xb8, 0xc7, 0xc1, 0x58, 0xf2, 0x64, 0x2d,
|
0x51, 0xbf, 0x78, 0xf8, 0x90, 0xbd, 0xbf, 0x9d, 0xf9, 0x09, 0x1a, 0x69, 0x10, 0x8b, 0x1a, 0xb6,
|
||||||
0xc3, 0x15, 0x2e, 0xd2, 0x69, 0x46, 0x04, 0x6d, 0xcd, 0xd2, 0xd0, 0x95, 0xf9, 0xe1, 0x45, 0x18,
|
0xb4, 0xe9, 0x60, 0x75, 0xe0, 0x31, 0xfc, 0x79, 0x2b, 0x7f, 0xce, 0x70, 0x8f, 0x83, 0xb1, 0xa4,
|
||||||
0x86, 0xbd, 0xfe, 0xf0, 0xd5, 0x77, 0xac, 0x87, 0x60, 0xfc, 0xc1, 0x47, 0x73, 0x16, 0x7f, 0x51,
|
0x7c, 0xa3, 0x02, 0x1d, 0x2e, 0xe2, 0x59, 0x42, 0x04, 0x6d, 0xcd, 0xef, 0xd0, 0x95, 0x33, 0xe2,
|
||||||
0xd4, 0x33, 0x3f, 0xe0, 0x53, 0x92, 0xc1, 0x96, 0xab, 0xf9, 0x09, 0x48, 0xca, 0xc3, 0xcd, 0x82,
|
0x45, 0x18, 0x86, 0xbd, 0xfe, 0xf0, 0xd5, 0x77, 0xac, 0x87, 0x30, 0xfe, 0xc1, 0x47, 0x7b, 0x16,
|
||||||
0xcd, 0xf0, 0x18, 0x96, 0x01, 0xd9, 0xc1, 0x3f, 0x25, 0x9f, 0x11, 0x21, 0x76, 0x7f, 0x1f, 0x41,
|
0x7f, 0xd1, 0xd4, 0xb3, 0x3f, 0xe0, 0x13, 0x4f, 0x60, 0xcb, 0x35, 0xfc, 0x04, 0x24, 0x15, 0x81,
|
||||||
0x70, 0x09, 0x3a, 0xc4, 0x14, 0x32, 0x22, 0x3e, 0x2d, 0x69, 0x7d, 0x43, 0x59, 0xe1, 0xf4, 0x1b,
|
0x6a, 0xc1, 0x76, 0x78, 0x0c, 0xcb, 0x80, 0x2c, 0xe8, 0x9f, 0xf8, 0x67, 0xc4, 0x96, 0xdd, 0xdf,
|
||||||
0xaa, 0x11, 0x13, 0x6a, 0xd9, 0x9c, 0x5e, 0x91, 0xba, 0x43, 0x1f, 0x50, 0x0d, 0xbe, 0xfa, 0x21,
|
0x47, 0xf8, 0x5c, 0x02, 0x1d, 0xb1, 0x85, 0x8c, 0x8c, 0x6c, 0xe3, 0xad, 0x6f, 0x68, 0xfb, 0x9d,
|
||||||
0x60, 0xc0, 0x13, 0x5c, 0xeb, 0x53, 0x8b, 0xc3, 0x7b, 0x81, 0x90, 0x6f, 0x26, 0x2e, 0x0b, 0xb0,
|
0x79, 0x43, 0x37, 0x62, 0x83, 0x34, 0xdb, 0xd3, 0x2b, 0x93, 0x7e, 0x98, 0x03, 0xaa, 0xc5, 0x57,
|
||||||
0x8d, 0xd0, 0x02, 0xc9, 0xb0, 0xa4, 0x2b, 0xce, 0xe7, 0x93, 0x49, 0x18, 0x7a, 0x1a, 0x38, 0xe7,
|
0x3f, 0x04, 0x0c, 0x78, 0x42, 0x68, 0x7d, 0x7a, 0x71, 0x78, 0x2f, 0x10, 0x2c, 0xce, 0x46, 0x74,
|
||||||
0x09, 0x96, 0x8c, 0x39, 0x96, 0x49, 0x1d, 0x60, 0xe6, 0x06, 0xbd, 0xfc, 0x8e, 0x9c, 0x73, 0x8a,
|
0x01, 0xb6, 0x91, 0x5a, 0x20, 0x99, 0xa4, 0x4c, 0xc5, 0xc5, 0x62, 0x3a, 0x0d, 0x43, 0xcf, 0x40,
|
||||||
0x5c, 0xa0, 0x62, 0x0b, 0x41, 0x4c, 0x06, 0xc5, 0x02, 0x68, 0xe3, 0xab, 0xf9, 0x57, 0xc1, 0xc1,
|
0xee, 0x3c, 0xc1, 0x92, 0x91, 0x40, 0x41, 0x29, 0x03, 0xcc, 0xf9, 0x60, 0x96, 0xdf, 0x51, 0xed,
|
||||||
0xc0, 0xe2, 0x1c, 0x38, 0xdb, 0xd4, 0x41, 0xe4, 0x14, 0x9d, 0x2d, 0x26, 0xb0, 0x11, 0x64, 0x40,
|
0x9c, 0xa2, 0x16, 0xa8, 0xdc, 0x42, 0x10, 0xcd, 0x41, 0xb3, 0x00, 0x5a, 0x07, 0x4b, 0xf1, 0x55,
|
||||||
0x8f, 0xea, 0x01, 0x98, 0x03, 0xfe, 0x87, 0x9d, 0xc2, 0xed, 0x5b, 0xc0, 0xe6, 0xed, 0xd9, 0xf8,
|
0x70, 0x30, 0x70, 0x38, 0x07, 0xce, 0x36, 0x65, 0x30, 0xaa, 0x15, 0x9d, 0x2d, 0xa7, 0xb0, 0x11,
|
||||||
0x1d, 0xe6, 0xe2, 0xd9, 0x81, 0xd8, 0x4b, 0xa7, 0x11, 0x54, 0x81, 0xed, 0xfc, 0xd2, 0x6c, 0xc7,
|
0x24, 0x40, 0x8f, 0xe2, 0x01, 0x98, 0x03, 0xfe, 0x87, 0x9d, 0xc2, 0xed, 0x5b, 0x60, 0xea, 0xdd,
|
||||||
0xdf, 0x70, 0x0e, 0x8b, 0xda, 0x38, 0x71, 0xeb, 0xbc, 0x8f, 0x4b, 0xc5, 0xe2, 0x0a, 0x47, 0x62,
|
0xd9, 0xf8, 0x1d, 0xe6, 0xe2, 0xd9, 0x81, 0xb8, 0x4b, 0xa7, 0x11, 0x8e, 0x81, 0xed, 0xfc, 0xd2,
|
||||||
0xb1, 0x3a, 0x6e, 0x93, 0x57, 0x20, 0x69, 0xda, 0xa4, 0xd5, 0x48, 0x4f, 0x8e, 0xc8, 0xd5, 0x25,
|
0x6c, 0xc7, 0xdf, 0x0a, 0x0e, 0x1b, 0xb5, 0x71, 0x62, 0x55, 0x7b, 0x1f, 0x97, 0x8a, 0xc3, 0x15,
|
||||||
0x6f, 0xb4, 0xd1, 0x0f, 0x2b, 0xf8, 0xc8, 0x2f, 0x5c, 0xdb, 0xf3, 0x89, 0xb9, 0xbc, 0xb0, 0x8c,
|
0x35, 0x89, 0xc5, 0xca, 0xa8, 0x4d, 0x5e, 0x81, 0xa4, 0x69, 0x93, 0x56, 0x63, 0x33, 0x39, 0x32,
|
||||||
0x13, 0xe6, 0x96, 0xdd, 0x22, 0x8c, 0xa8, 0x53, 0x36, 0x8d, 0x2b, 0x09, 0x49, 0x29, 0x1e, 0x39,
|
0xcb, 0x97, 0xba, 0x0b, 0x47, 0x0f, 0xae, 0xe0, 0xa3, 0xb8, 0xaa, 0x6d, 0xcf, 0x44, 0x56, 0xe7,
|
||||||
0x9f, 0x78, 0x69, 0x7b, 0xe8, 0xa8, 0x6d, 0x8a, 0xb5, 0xef, 0xc9, 0x75, 0x83, 0x27, 0x13, 0xf9,
|
0x85, 0x55, 0xc4, 0x59, 0xbd, 0xec, 0x16, 0x01, 0x48, 0x6b, 0x65, 0xb3, 0xa8, 0x50, 0x60, 0x96,
|
||||||
0xcd, 0xbc, 0x17, 0x51, 0xc1, 0x9e, 0xec, 0xc4, 0xe6, 0x50, 0xc9, 0x89, 0x9b, 0xee, 0xbd, 0x9f,
|
0xf2, 0x51, 0xed, 0x13, 0x2f, 0x5d, 0xdf, 0x1e, 0xbd, 0x4d, 0xb1, 0xf6, 0x3d, 0xb9, 0x6c, 0xf0,
|
||||||
0x6e, 0x8a, 0x30, 0xab, 0x18, 0xc8, 0x2f, 0xa7, 0x4f, 0x84, 0x10, 0x44, 0x3d, 0x28, 0x41, 0x4c,
|
0x24, 0x57, 0xdf, 0x2c, 0x7a, 0x91, 0x15, 0xdc, 0xc9, 0xe6, 0x2e, 0x87, 0x2a, 0x4e, 0xdc, 0x76,
|
||||||
0x28, 0x98, 0xa1, 0x7f, 0x64, 0x20, 0x8d, 0x7c, 0xc4, 0x2f, 0x7c, 0x96, 0x65, 0x28, 0x5d, 0xda,
|
0xef, 0xfd, 0x74, 0xc7, 0x84, 0xf9, 0xc8, 0x40, 0x7e, 0xd5, 0xfa, 0x44, 0xf0, 0x41, 0xd4, 0x83,
|
||||||
0xd1, 0x1e, 0xbe, 0x6a, 0xc2, 0x79, 0xc6, 0x6d, 0x86, 0x03, 0xb5, 0xc9, 0x0b, 0x3c, 0x9c, 0xb4,
|
0x38, 0xa2, 0x49, 0xc1, 0x0c, 0xfd, 0x23, 0x01, 0x69, 0xe4, 0x23, 0xf2, 0xe1, 0xb3, 0x2c, 0x43,
|
||||||
0xb1, 0x87, 0x81, 0xe0, 0x8c, 0x2b, 0x89, 0x3b, 0x95, 0x0e, 0x96, 0x51, 0xc1, 0x40, 0x86, 0xc6,
|
0x89, 0xd6, 0x8e, 0xf6, 0xf0, 0x55, 0x1b, 0x08, 0x34, 0x6a, 0x33, 0x1c, 0xe8, 0x4d, 0x5e, 0x22,
|
||||||
0xb9, 0x2e, 0xba, 0xa5, 0xa2, 0x69, 0x9c, 0xe9, 0xa2, 0x29, 0x15, 0xad, 0xe2, 0xc2, 0x25, 0x18,
|
0xe9, 0xc4, 0x8d, 0x3d, 0x0c, 0x04, 0x67, 0x54, 0x28, 0xc4, 0xaa, 0x78, 0xb0, 0x1a, 0x65, 0x0c,
|
||||||
0x75, 0x22, 0x2f, 0x5c, 0xa0, 0x93, 0xe8, 0xea, 0xea, 0x9a, 0xd1, 0xbf, 0xeb, 0xed, 0x56, 0xdc,
|
0x64, 0x68, 0x94, 0x9a, 0xa2, 0x5b, 0x2a, 0x9a, 0x45, 0x89, 0x29, 0x9a, 0x51, 0xd1, 0x3a, 0xca,
|
||||||
0x47, 0x20, 0xce, 0x28, 0xd5, 0x8e, 0xaf, 0x38, 0x71, 0x8a, 0x6b, 0xf7, 0xbe, 0xc1, 0xb2, 0xe2,
|
0xea, 0x04, 0xa3, 0x4e, 0xd4, 0x55, 0x0d, 0x74, 0x32, 0xba, 0xba, 0xba, 0x66, 0xf4, 0xef, 0xba,
|
||||||
0x4c, 0x32, 0xf4, 0x08, 0x6b, 0x37, 0xa5, 0xce, 0x66, 0xb5, 0x6b, 0x72, 0x23, 0xe8, 0xb7, 0x99,
|
0xaa, 0xe4, 0x4d, 0x06, 0x22, 0x94, 0x52, 0xed, 0xe8, 0x4a, 0x10, 0x27, 0xbb, 0xae, 0xdf, 0x54,
|
||||||
0xa9, 0x85, 0x20, 0x5c, 0xf0, 0xbf, 0x7f, 0x46, 0x94, 0x6a, 0x0e, 0x1f, 0x8d, 0x7f, 0x4b, 0x28,
|
0x38, 0x56, 0x9c, 0x69, 0x82, 0xbe, 0x64, 0xed, 0x46, 0xd8, 0xf9, 0xbc, 0xac, 0x9b, 0xdc, 0x08,
|
||||||
0xea, 0xc3, 0xc3, 0xdb, 0xb4, 0x5e, 0xdc, 0x4f, 0xf1, 0x1e, 0xe0, 0xf0, 0x6d, 0xba, 0x9c, 0x15,
|
0x34, 0x6e, 0x6e, 0x6b, 0x21, 0x08, 0x34, 0xfc, 0xef, 0x9f, 0x11, 0xdf, 0x5a, 0x00, 0x4f, 0xe3,
|
||||||
0x45, 0xf1, 0x29, 0x4d, 0x0e, 0x11, 0x79, 0xfc, 0x70, 0x95, 0x7e, 0x4a, 0xf1, 0x4c, 0xc6, 0xad,
|
0xdf, 0x0a, 0xc4, 0xfa, 0xf0, 0xf0, 0x36, 0x2e, 0x97, 0xf7, 0x33, 0xbc, 0x41, 0x38, 0x7c, 0x1b,
|
||||||
0x36, 0x4b, 0x20, 0x24, 0x07, 0x22, 0x92, 0xc8, 0x03, 0xbe, 0xbf, 0x98, 0x1d, 0xc4, 0xc3, 0xd7,
|
0xaf, 0xe6, 0x59, 0x96, 0x7d, 0x8a, 0xf9, 0x21, 0x62, 0x96, 0x1f, 0xae, 0xe3, 0x4f, 0x31, 0x9e,
|
||||||
0xc1, 0xe9, 0x71, 0x88, 0xbb, 0x2c, 0x76, 0x1b, 0xb0, 0xc5, 0xec, 0xf4, 0x48, 0xfe, 0x79, 0x1c,
|
0xc9, 0x84, 0xd5, 0x66, 0x05, 0x84, 0x14, 0x10, 0x46, 0x0a, 0xb3, 0xc0, 0xf7, 0x97, 0xf3, 0x83,
|
||||||
0xa2, 0x68, 0x7d, 0xf9, 0x32, 0x8e, 0x17, 0x33, 0x2a, 0x39, 0x88, 0x8f, 0xb1, 0x24, 0x7c, 0x6d,
|
0x68, 0xf8, 0x3a, 0x38, 0x3d, 0x0e, 0x71, 0x97, 0xc5, 0x6e, 0x03, 0xb6, 0x9c, 0x9f, 0x1e, 0xa9,
|
||||||
0x94, 0x40, 0x03, 0x72, 0xe7, 0xc5, 0x08, 0xfa, 0xc0, 0xd2, 0x68, 0x3f, 0x2e, 0x2a, 0xf4, 0xdc,
|
0x3f, 0x8f, 0x43, 0x14, 0xad, 0x2f, 0x5f, 0x46, 0xd1, 0x72, 0x4e, 0x25, 0x07, 0xd1, 0x31, 0x96,
|
||||||
0x58, 0xcc, 0xb6, 0xac, 0x87, 0xc8, 0x03, 0xac, 0xf7, 0x2a, 0xfc, 0x0e, 0x13, 0xc1, 0xb0, 0x37,
|
0x84, 0xaf, 0xad, 0x12, 0x68, 0x40, 0xed, 0xbc, 0x18, 0x7b, 0x1f, 0x38, 0x1a, 0xed, 0xc7, 0x65,
|
||||||
0x43, 0x01, 0x7a, 0x0f, 0xbb, 0xf5, 0xd2, 0x82, 0x6a, 0x82, 0x82, 0xf7, 0x64, 0xe6, 0xe1, 0xb8,
|
0x81, 0x3e, 0x1f, 0xcb, 0x79, 0xc5, 0x7a, 0x88, 0x59, 0xc0, 0x7a, 0xaf, 0xc2, 0xef, 0x30, 0x85,
|
||||||
0xc7, 0xf8, 0xdc, 0x12, 0x00, 0xa4, 0x3e, 0x53, 0x6a, 0xd5, 0x91, 0x84, 0x37, 0xef, 0xd6, 0xa2,
|
0x0c, 0x7b, 0x33, 0x94, 0x70, 0xf9, 0xb0, 0x5b, 0xaf, 0x1c, 0x90, 0x27, 0x28, 0x78, 0x4f, 0x66,
|
||||||
0x4d, 0x77, 0x08, 0xc4, 0xef, 0x81, 0x93, 0xf9, 0x5d, 0xef, 0x7d, 0x32, 0x2d, 0x0a, 0x71, 0x54,
|
0x1e, 0x81, 0x98, 0x8c, 0xcf, 0x1d, 0x01, 0x40, 0xea, 0x33, 0x25, 0x65, 0x1d, 0x2b, 0x60, 0xf4,
|
||||||
0xf1, 0x79, 0xff, 0xa0, 0x3f, 0x35, 0xe0, 0xb9, 0xe1, 0x3c, 0x17, 0x7b, 0x87, 0xfc, 0x6c, 0xbb,
|
0x6e, 0x2d, 0xda, 0x76, 0xa4, 0x40, 0xe4, 0x1f, 0x38, 0x99, 0xdf, 0xf5, 0xde, 0xf3, 0x59, 0x96,
|
||||||
0x95, 0x43, 0xbd, 0xb0, 0x61, 0xa5, 0x30, 0xfb, 0xac, 0x2d, 0x9f, 0x44, 0xda, 0xd7, 0x91, 0x1c,
|
0xc9, 0xa3, 0x8a, 0x2f, 0xfa, 0x07, 0xfd, 0xa9, 0x01, 0xec, 0x0d, 0xe7, 0xb9, 0xc8, 0x3b, 0x14,
|
||||||
0xfb, 0x45, 0xf0, 0x95, 0xa3, 0xe4, 0x1d, 0xeb, 0x41, 0x5e, 0x50, 0x9e, 0x00, 0x39, 0x06, 0xd6,
|
0x67, 0xdb, 0x4a, 0x0d, 0xf5, 0xc2, 0x05, 0xa4, 0xc2, 0xbc, 0xb5, 0xae, 0x7c, 0x92, 0x09, 0x63,
|
||||||
0xd1, 0xdc, 0xdc, 0x6d, 0x8e, 0x68, 0xa9, 0x2e, 0x46, 0x3c, 0xeb, 0x4e, 0x78, 0x23, 0x72, 0xd8,
|
0xc7, 0x6a, 0xec, 0x17, 0xc1, 0x57, 0x8e, 0x52, 0x74, 0x6c, 0x06, 0x79, 0x41, 0x19, 0x06, 0xd4,
|
||||||
0xf3, 0xab, 0x0f, 0x19, 0x7b, 0x4d, 0xd7, 0x80, 0x70, 0x8c, 0x37, 0x6e, 0x8c, 0x93, 0x78, 0x38,
|
0x18, 0x58, 0x47, 0x73, 0x8b, 0x7a, 0x73, 0x44, 0x4b, 0x7d, 0xa5, 0xe2, 0x39, 0xb7, 0xc9, 0x5b,
|
||||||
0x4a, 0xc4, 0x8d, 0x71, 0xe2, 0xdc, 0x18, 0x8b, 0x6b, 0x93, 0xee, 0xab, 0x6a, 0x42, 0xea, 0x31,
|
0x71, 0x17, 0x15, 0x8a, 0x4b, 0x13, 0x15, 0xb5, 0x4d, 0x17, 0x88, 0x70, 0x8c, 0xb7, 0xee, 0x9a,
|
||||||
0x92, 0x5c, 0x9a, 0x00, 0x5c, 0x56, 0x42, 0x4c, 0x91, 0xa5, 0x8b, 0x8f, 0x90, 0x60, 0xde, 0xe1,
|
0x79, 0x34, 0x1c, 0x73, 0x79, 0xd7, 0xcc, 0x6b, 0x77, 0xcd, 0xf2, 0xc2, 0xa5, 0xfb, 0x92, 0x9b,
|
||||||
0xe8, 0xb7, 0x04, 0xed, 0x06, 0x83, 0x36, 0x31, 0xdb, 0xa1, 0xef, 0xad, 0x32, 0x42, 0x0a, 0x5b,
|
0x30, 0x7e, 0xac, 0xf4, 0x98, 0x36, 0x74, 0x97, 0x93, 0x4a, 0x53, 0xe6, 0xf7, 0x12, 0x23, 0x24,
|
||||||
0x7b, 0x22, 0xa2, 0x15, 0x37, 0x7d, 0x7e, 0x32, 0x34, 0xcc, 0x3d, 0x35, 0x87, 0xfd, 0xc5, 0x74,
|
0x80, 0x78, 0x38, 0xfa, 0xad, 0x40, 0xbb, 0xc1, 0x70, 0x4f, 0xcc, 0x93, 0xe8, 0x7b, 0xeb, 0x84,
|
||||||
0x09, 0x0f, 0x08, 0xf4, 0x4c, 0x3f, 0xe4, 0x34, 0x98, 0x3d, 0xc2, 0x93, 0x92, 0x13, 0x18, 0xb1,
|
0x30, 0xc6, 0x36, 0x9e, 0x8c, 0x85, 0xc5, 0x4d, 0x5f, 0x9c, 0x0c, 0x2d, 0x73, 0x4f, 0x29, 0x00,
|
||||||
0xa1, 0x7c, 0x53, 0x41, 0xd8, 0x5a, 0xf5, 0x36, 0x5b, 0x76, 0xab, 0x6c, 0xe0, 0xfc, 0x23, 0x42,
|
0x83, 0x31, 0xd1, 0xc2, 0x03, 0x42, 0x44, 0xd3, 0x0f, 0x35, 0x0d, 0x76, 0x8f, 0xf0, 0x24, 0x17,
|
||||||
0x46, 0xab, 0xc9, 0x1a, 0x66, 0xd5, 0x18, 0x26, 0x73, 0x60, 0xab, 0x36, 0x65, 0x64, 0x36, 0xcc,
|
0x04, 0x46, 0x54, 0x29, 0xdf, 0x56, 0x10, 0x2a, 0xa7, 0xde, 0xb6, 0x62, 0xb7, 0xda, 0x06, 0x2e,
|
||||||
0x1e, 0x4c, 0xb0, 0x1f, 0x4c, 0x37, 0x87, 0x99, 0x5c, 0x2d, 0x84, 0xaa, 0x84, 0xbd, 0x79, 0x63,
|
0x3e, 0x22, 0x64, 0xb4, 0x9a, 0x9c, 0x61, 0x16, 0x8d, 0x61, 0xb2, 0x1a, 0xe0, 0xd5, 0x36, 0x1f,
|
||||||
0x59, 0x75, 0xdd, 0x81, 0xd0, 0xd9, 0x7e, 0xb7, 0xbc, 0x6e, 0xd0, 0xf5, 0x7a, 0x8c, 0xa6, 0x89,
|
0xd9, 0x0d, 0xb3, 0x07, 0x1b, 0x26, 0x08, 0x13, 0xd5, 0x61, 0x0e, 0x58, 0x07, 0xdb, 0x8a, 0xb3,
|
||||||
0x18, 0x94, 0x23, 0x3b, 0xbd, 0xdb, 0x37, 0xc0, 0x5c, 0xb5, 0x67, 0x86, 0x7b, 0x12, 0xb4, 0xaa,
|
0x37, 0x6f, 0x1c, 0xab, 0x6e, 0x7d, 0x20, 0x74, 0xb6, 0xdf, 0x2d, 0x23, 0x1c, 0x74, 0xbd, 0x99,
|
||||||
0x02, 0xca, 0x59, 0x04, 0x16, 0x01, 0xd8, 0x22, 0x99, 0x1f, 0x90, 0xdb, 0xa2, 0x12, 0x4c, 0x13,
|
0xa0, 0x69, 0x22, 0x02, 0xe5, 0xc8, 0x4d, 0x0c, 0xf7, 0x0d, 0x00, 0x59, 0xed, 0x39, 0xe5, 0x9e,
|
||||||
0xb4, 0x71, 0x52, 0x0d, 0xee, 0xc6, 0x2e, 0xac, 0x5a, 0x83, 0x1a, 0x07, 0x43, 0xa0, 0xc7, 0x96,
|
0x84, 0xbb, 0x2a, 0x80, 0x72, 0x0e, 0x81, 0x65, 0xe8, 0xb6, 0x4c, 0x03, 0x08, 0xe4, 0x76, 0xa8,
|
||||||
0xc1, 0xa1, 0x29, 0x42, 0x38, 0xb5, 0x1d, 0x53, 0xc7, 0x55, 0x20, 0xbc, 0xb0, 0x16, 0xab, 0x35,
|
0x04, 0xd3, 0x04, 0x6d, 0x9c, 0x14, 0x83, 0xbb, 0x49, 0x1d, 0x90, 0xad, 0x41, 0x8d, 0x83, 0x21,
|
||||||
0x6f, 0x26, 0xdd, 0xda, 0xb7, 0x8a, 0x44, 0x44, 0x93, 0xa6, 0xd8, 0x7e, 0x5d, 0x8f, 0x16, 0x15,
|
0xd0, 0xa3, 0x62, 0x70, 0x68, 0x1a, 0x21, 0x10, 0xdb, 0x8e, 0x49, 0xe7, 0x0a, 0x10, 0x5e, 0x58,
|
||||||
0x8b, 0x88, 0x62, 0xa1, 0x0e, 0x5a, 0x92, 0xd3, 0x9a, 0x39, 0x69, 0x53, 0xcc, 0xc3, 0xa8, 0x63,
|
0x8b, 0x95, 0x86, 0x37, 0x79, 0xb7, 0xf6, 0xad, 0x63, 0x18, 0xd1, 0xa4, 0x29, 0xb7, 0xdf, 0xba,
|
||||||
0xcd, 0x53, 0x19, 0x6b, 0x9e, 0xc7, 0xd5, 0x55, 0x7a, 0xcd, 0xb2, 0x38, 0x6f, 0x4d, 0x4f, 0x4b,
|
0x2f, 0x8c, 0x8e, 0x62, 0x44, 0xb1, 0x50, 0x06, 0x2d, 0x69, 0x6d, 0xed, 0x6c, 0xb6, 0x31, 0x66,
|
||||||
0xde, 0xfc, 0xc2, 0x84, 0xf7, 0x01, 0x46, 0x0b, 0xc7, 0xa4, 0xff, 0x94, 0x65, 0xb2, 0x3c, 0x9b,
|
0x70, 0x34, 0x51, 0xea, 0xb1, 0x8a, 0x52, 0x4f, 0xa3, 0xe2, 0x2a, 0xbe, 0x66, 0x49, 0x94, 0xb6,
|
||||||
0x20, 0xca, 0x1c, 0x1c, 0x20, 0xec, 0xf1, 0x66, 0xca, 0x36, 0x28, 0x06, 0x6d, 0xd7, 0x47, 0xfb,
|
0x26, 0xb6, 0xa5, 0x38, 0x00, 0x69, 0xc2, 0xfb, 0x00, 0xa3, 0x85, 0x63, 0xd2, 0x7f, 0xf2, 0x9c,
|
||||||
0x24, 0x85, 0xe9, 0xf1, 0xc0, 0x39, 0xe3, 0x4a, 0x16, 0xc1, 0xc4, 0x72, 0x9e, 0x99, 0xad, 0x2d,
|
0xaf, 0xce, 0xa6, 0x88, 0x4f, 0x07, 0x07, 0x08, 0x77, 0xbc, 0x89, 0xb6, 0x0d, 0xca, 0x41, 0xbb,
|
||||||
0x0a, 0x54, 0xac, 0xd9, 0x84, 0xbc, 0x66, 0xd2, 0xe2, 0xbe, 0xb2, 0xa9, 0x26, 0xf5, 0x5d, 0x84,
|
0xf5, 0xd1, 0x3e, 0x49, 0x01, 0x7e, 0x22, 0xe4, 0xce, 0xba, 0xcc, 0x45, 0x18, 0xb2, 0x54, 0xe4,
|
||||||
0x04, 0xad, 0x07, 0xf3, 0x62, 0x76, 0x8f, 0xc7, 0xf9, 0x9a, 0x1a, 0xc1, 0xd9, 0xf9, 0x09, 0x0f,
|
0x74, 0x6b, 0x8b, 0x1f, 0x95, 0x6b, 0x96, 0x93, 0xbf, 0x4d, 0x9c, 0xdd, 0x17, 0x2e, 0xd5, 0x94,
|
||||||
0x08, 0x3e, 0x6a, 0xc9, 0xfc, 0x37, 0x8f, 0xae, 0x7b, 0x6c, 0x9d, 0xb4, 0x58, 0xde, 0x4d, 0xea,
|
0xbe, 0x8b, 0x60, 0xa2, 0xe5, 0x60, 0x91, 0xcd, 0xef, 0xf1, 0x38, 0x5f, 0x52, 0x23, 0x38, 0x3b,
|
||||||
0xb7, 0x4b, 0xad, 0xb4, 0x30, 0x4c, 0xd0, 0xa1, 0x03, 0xd1, 0x51, 0xde, 0xda, 0x61, 0x3c, 0x09,
|
0x3f, 0xe1, 0x01, 0xc1, 0x47, 0x2d, 0x59, 0xfc, 0xe6, 0xd1, 0x75, 0x8f, 0xab, 0x93, 0x66, 0xab,
|
||||||
0x3a, 0x53, 0x06, 0x92, 0x8c, 0xf4, 0xd7, 0x88, 0xab, 0xef, 0x39, 0x65, 0x28, 0x8b, 0x49, 0x17,
|
0xbb, 0x69, 0xf9, 0x76, 0x65, 0x94, 0x16, 0x86, 0xa9, 0x3d, 0x4c, 0x08, 0x3b, 0xca, 0x5b, 0x37,
|
||||||
0xa1, 0xf2, 0xf8, 0x2a, 0xbf, 0x46, 0x84, 0x74, 0xbf, 0xe6, 0xf5, 0x44, 0xa3, 0xc1, 0x49, 0x15,
|
0x00, 0x88, 0xa3, 0x1b, 0x66, 0xa0, 0xc8, 0x48, 0x7f, 0x8d, 0x85, 0xfa, 0x9e, 0x52, 0x6e, 0xb3,
|
||||||
0xc8, 0x88, 0x70, 0x0e, 0x32, 0x5c, 0xf5, 0x6b, 0x82, 0x19, 0xe6, 0xb5, 0x48, 0x00, 0x26, 0xdc,
|
0x88, 0x74, 0x11, 0x2a, 0x8f, 0xae, 0xd2, 0x6b, 0xc4, 0x56, 0xf7, 0x4b, 0x51, 0x4f, 0x36, 0x1a,
|
||||||
0x67, 0xb3, 0x3f, 0xe4, 0x68, 0xe3, 0x8d, 0x41, 0x18, 0xd0, 0x77, 0xc1, 0x26, 0xb7, 0xb0, 0xf0,
|
0x9c, 0x14, 0x81, 0x8a, 0x25, 0x17, 0xf0, 0xc4, 0x45, 0xbf, 0x24, 0x80, 0x62, 0x51, 0x8b, 0x04,
|
||||||
0xec, 0xe1, 0xd4, 0x4b, 0x82, 0xdd, 0xd3, 0xc0, 0x77, 0xe6, 0xa0, 0x8c, 0x38, 0x68, 0x7b, 0x6c,
|
0x20, 0x17, 0xde, 0x9e, 0xfd, 0xa1, 0xc0, 0x29, 0x6f, 0x0c, 0xc2, 0x02, 0xcd, 0x0b, 0xb6, 0xa9,
|
||||||
0xee, 0xb8, 0x8c, 0x8a, 0x62, 0x78, 0xa6, 0x4b, 0x26, 0x8e, 0x52, 0x13, 0x55, 0xb9, 0x4c, 0x18,
|
0x83, 0xa2, 0xe7, 0x0e, 0xa7, 0x5c, 0x11, 0x60, 0x9f, 0x81, 0xcc, 0xb3, 0x07, 0x65, 0x45, 0x50,
|
||||||
0x6a, 0x20, 0x77, 0x9e, 0xe2, 0x41, 0xf3, 0x89, 0xe1, 0x39, 0x55, 0x08, 0xe5, 0x58, 0x28, 0xd6,
|
0xbb, 0x63, 0xab, 0x8f, 0xcb, 0xaa, 0x28, 0x87, 0x67, 0x3b, 0x73, 0xe2, 0x28, 0x0d, 0x51, 0xb5,
|
||||||
0x25, 0x5e, 0x21, 0x9b, 0xea, 0x22, 0x2e, 0x98, 0x53, 0xa4, 0xa8, 0x65, 0x33, 0xaa, 0x5a, 0x6d,
|
0xb3, 0x85, 0xa5, 0x06, 0x0a, 0xb7, 0x2b, 0x11, 0x6e, 0xcf, 0x2d, 0x9f, 0xab, 0x4c, 0x2a, 0xc7,
|
||||||
0x46, 0x66, 0xde, 0x1f, 0x58, 0x40, 0x35, 0x02, 0xf3, 0x35, 0x6b, 0x29, 0xcf, 0x44, 0x2e, 0xeb,
|
0x52, 0xb1, 0xce, 0xf1, 0xf2, 0xd9, 0x56, 0x17, 0x71, 0xc1, 0x9c, 0x22, 0x45, 0x1d, 0x9b, 0x51,
|
||||||
0x5b, 0x1c, 0xb6, 0x74, 0x0d, 0x96, 0x9c, 0xd2, 0x74, 0xca, 0xc9, 0xc6, 0x21, 0xbb, 0x6f, 0xe9,
|
0xd1, 0x6a, 0x33, 0xb2, 0x33, 0x06, 0xc1, 0x02, 0x2a, 0x11, 0xd2, 0xaf, 0x59, 0x4b, 0xfb, 0x34,
|
||||||
0x4b, 0x6f, 0xfd, 0x1e, 0x02, 0x31, 0xa9, 0xcb, 0xa3, 0x3c, 0x18, 0x4b, 0x67, 0xcc, 0xfc, 0x3a,
|
0x0a, 0x59, 0xdf, 0xe2, 0xea, 0x65, 0x6a, 0x30, 0x7e, 0x4a, 0xd3, 0xa9, 0x26, 0x1b, 0x87, 0x5c,
|
||||||
0x2e, 0xc5, 0x2f, 0xca, 0xdc, 0xc8, 0x34, 0x0f, 0xaa, 0x5a, 0x08, 0x7c, 0x87, 0x53, 0xa8, 0x0a,
|
0x7f, 0xcb, 0x5c, 0x97, 0x9b, 0xf7, 0x10, 0xc2, 0x49, 0x5f, 0x1e, 0xa5, 0xc1, 0x44, 0xb9, 0x71,
|
||||||
0x44, 0x3c, 0x71, 0xa0, 0xfd, 0x3a, 0x55, 0x59, 0xac, 0xa3, 0xf5, 0x73, 0x8a, 0xe5, 0x35, 0x6b,
|
0xa6, 0xd7, 0x51, 0x2e, 0x7f, 0xd1, 0xe6, 0x46, 0x66, 0x78, 0x50, 0xd7, 0x42, 0xc8, 0x3c, 0x9c,
|
||||||
0x20, 0x52, 0x45, 0xa3, 0x2d, 0x04, 0x0c, 0xb3, 0x1a, 0xc2, 0xf8, 0xe9, 0x50, 0x1a, 0xc2, 0x68,
|
0x42, 0x5d, 0x20, 0x23, 0x91, 0x03, 0xe3, 0x11, 0xaa, 0xcb, 0x22, 0x13, 0xe7, 0x9f, 0x52, 0x14,
|
||||||
0x86, 0x4c, 0xf3, 0x3d, 0x77, 0xd9, 0xcc, 0x09, 0xc4, 0xdf, 0x70, 0xd2, 0x04, 0xbe, 0x8b, 0x9e,
|
0xb0, 0x5d, 0x03, 0x31, 0x2e, 0x1a, 0x6d, 0x21, 0xd4, 0x98, 0xd3, 0x10, 0x46, 0x5e, 0x87, 0xca,
|
||||||
0x7e, 0x43, 0xa6, 0x8f, 0x2c, 0x27, 0x65, 0xfa, 0x3b, 0xe8, 0x89, 0x79, 0xa0, 0xbc, 0xf7, 0x72,
|
0x10, 0x46, 0x33, 0x64, 0x9b, 0xef, 0x85, 0xb3, 0x67, 0x4a, 0xf0, 0xff, 0x96, 0x7b, 0x27, 0xf0,
|
||||||
0xf3, 0x66, 0x25, 0xce, 0xd0, 0x54, 0x97, 0x35, 0x2f, 0x18, 0x04, 0x7c, 0x34, 0x7f, 0xc1, 0xb9,
|
0xdd, 0xe8, 0xe9, 0x37, 0x54, 0xe2, 0xc9, 0x7c, 0x9a, 0xc7, 0xbf, 0x83, 0x9e, 0x98, 0x06, 0xda,
|
||||||
0x7d, 0xa2, 0x2f, 0xe3, 0x5e, 0x83, 0x79, 0xa7, 0x4b, 0x66, 0xc3, 0x91, 0x95, 0x87, 0x72, 0x1a,
|
0xef, 0x2f, 0xb5, 0x6f, 0x56, 0xa2, 0x04, 0x4d, 0x75, 0x49, 0xf3, 0x82, 0x41, 0x02, 0x4f, 0x8b,
|
||||||
0x19, 0xb0, 0x3a, 0xbe, 0x40, 0xa6, 0xa8, 0x7b, 0xce, 0xcb, 0x73, 0x5b, 0x7f, 0x85, 0x9f, 0xaa,
|
0x17, 0x6a, 0xb7, 0x4f, 0xf4, 0x65, 0xc2, 0xdf, 0x30, 0xed, 0x74, 0xe6, 0x6c, 0xb8, 0xc0, 0x8a,
|
||||||
0x61, 0x53, 0xcb, 0x49, 0x6a, 0x69, 0x9b, 0x5a, 0xe3, 0xfa, 0x75, 0x9a, 0xdd, 0x2f, 0xfd, 0xd6,
|
0x20, 0x50, 0x2b, 0x77, 0x56, 0xc7, 0x17, 0xa8, 0xe4, 0x76, 0xcf, 0xf9, 0x87, 0x56, 0xe5, 0x57,
|
||||||
0x3c, 0x01, 0xcd, 0x27, 0xe6, 0x8d, 0x28, 0x7f, 0xba, 0xe5, 0xd1, 0x7d, 0x7f, 0x9c, 0x35, 0xaf,
|
0x78, 0xb8, 0x5a, 0x36, 0xb5, 0x94, 0xa4, 0x96, 0xb1, 0xa9, 0x35, 0xae, 0x5f, 0x67, 0xc9, 0xfd,
|
||||||
0xac, 0x25, 0xdf, 0x62, 0xae, 0x23, 0xf6, 0x2e, 0x7e, 0x49, 0xab, 0x30, 0xa5, 0x91, 0xc4, 0x21,
|
0xca, 0x6f, 0xcd, 0x30, 0xd0, 0x7c, 0x62, 0xdf, 0x88, 0x8a, 0xa7, 0x95, 0x88, 0x0b, 0xfc, 0xe3,
|
||||||
0x5b, 0x87, 0x02, 0x24, 0x94, 0x3e, 0xee, 0x02, 0x4a, 0xf0, 0x1b, 0xb8, 0xfb, 0x9f, 0x31, 0x7a,
|
0xac, 0x79, 0x65, 0xad, 0xf8, 0x16, 0xb3, 0x24, 0xb1, 0x77, 0xd1, 0x4b, 0x5a, 0x85, 0x31, 0x8d,
|
||||||
0x0e, 0x99, 0xb9, 0x51, 0xaa, 0x28, 0x0f, 0x45, 0xb8, 0xf9, 0x50, 0xdc, 0xc3, 0x2c, 0x55, 0x63,
|
0x24, 0x0a, 0xd9, 0x26, 0x94, 0xf0, 0xa2, 0xf4, 0x71, 0x17, 0x50, 0x82, 0xdf, 0x20, 0x1c, 0x07,
|
||||||
0xb7, 0x00, 0xd1, 0x69, 0x8d, 0x2c, 0xc2, 0x70, 0x74, 0x3a, 0x5f, 0x16, 0x04, 0x96, 0x81, 0xad,
|
0xad, 0xd1, 0x0b, 0xb0, 0xcd, 0xad, 0x56, 0x45, 0x45, 0x10, 0xc3, 0xcd, 0x87, 0xec, 0x1e, 0x66,
|
||||||
0xa8, 0x1c, 0xea, 0xcd, 0x84, 0xf6, 0xb4, 0x6f, 0x52, 0xfa, 0x0c, 0xd4, 0x2c, 0xab, 0x4b, 0x38,
|
0xa9, 0x98, 0xd4, 0x0b, 0x10, 0xd7, 0xd6, 0xca, 0x3f, 0x0c, 0x47, 0xa7, 0xf3, 0x55, 0x46, 0x30,
|
||||||
0x9e, 0xf8, 0x1e, 0xbc, 0xab, 0xee, 0xa0, 0x40, 0xaf, 0x94, 0x79, 0x4c, 0x4c, 0x0d, 0x11, 0x8e,
|
0x1b, 0xd8, 0x8a, 0xce, 0xbe, 0x4e, 0xd9, 0x3a, 0xb8, 0x9d, 0xa3, 0x83, 0xf6, 0x4d, 0x4a, 0xbc,
|
||||||
0x8f, 0xdc, 0xd6, 0xba, 0x57, 0xce, 0x10, 0x6c, 0x50, 0x4a, 0x24, 0x95, 0x08, 0x54, 0xcd, 0x2b,
|
0x81, 0x9a, 0x65, 0x71, 0x09, 0xc7, 0x13, 0xdf, 0x83, 0x77, 0xf5, 0x1d, 0x14, 0xe8, 0x95, 0x2a,
|
||||||
0x89, 0x7d, 0x2b, 0x3b, 0xa8, 0xd8, 0x6b, 0x74, 0x95, 0x91, 0xb9, 0xd6, 0x65, 0xa8, 0x54, 0xf0,
|
0x03, 0x8a, 0xad, 0x21, 0xc2, 0xf1, 0x51, 0xd8, 0x5a, 0xf7, 0xf2, 0x39, 0xc2, 0x14, 0x2a, 0x89,
|
||||||
0xf8, 0x68, 0x7e, 0x46, 0xed, 0xfc, 0x5d, 0xc1, 0xdf, 0x3e, 0x10, 0x53, 0x92, 0x0a, 0x5a, 0x43,
|
0xa4, 0x53, 0x88, 0xea, 0x79, 0x25, 0xb1, 0xef, 0xe4, 0x15, 0x95, 0x7b, 0x8d, 0xa9, 0x32, 0xb6,
|
||||||
0x33, 0xda, 0x7f, 0x15, 0x61, 0x45, 0x06, 0xc9, 0x7a, 0x32, 0x95, 0x49, 0xa4, 0x83, 0x2b, 0x3e,
|
0xd7, 0xba, 0x0a, 0xb2, 0x0a, 0x1e, 0x1f, 0xed, 0xcf, 0x28, 0x6b, 0x7f, 0x17, 0xf0, 0xb7, 0x0f,
|
||||||
0x0b, 0xd7, 0x82, 0xb3, 0x3e, 0x14, 0x25, 0xfb, 0xe3, 0xac, 0xcd, 0xaf, 0x54, 0xb0, 0xd7, 0x9e,
|
0xc4, 0x54, 0xa4, 0x82, 0xd6, 0xd0, 0x8c, 0xf6, 0x5f, 0x4d, 0x58, 0x99, 0x7b, 0xb2, 0x9c, 0xce,
|
||||||
0x2f, 0xe7, 0x26, 0x0c, 0x2c, 0xac, 0x0f, 0xe2, 0x7d, 0xfe, 0xfd, 0xbc, 0xc6, 0xfe, 0xbe, 0x43,
|
0x54, 0xfa, 0xe9, 0xe0, 0x4a, 0xcc, 0xc2, 0xb5, 0xe4, 0xac, 0x0f, 0x59, 0xce, 0xfe, 0x38, 0x6b,
|
||||||
0x87, 0xe6, 0xb0, 0xe2, 0xba, 0xbf, 0x0e, 0x65, 0x7e, 0x58, 0xd2, 0x9a, 0x2a, 0xc4, 0x25, 0x3b,
|
0xf3, 0x48, 0x95, 0xec, 0xb5, 0xe7, 0xab, 0xb9, 0x09, 0x03, 0x07, 0x25, 0x84, 0x78, 0x5f, 0x7c,
|
||||||
0xf0, 0xf3, 0xbf, 0x57, 0x87, 0xab, 0x4b, 0x50, 0xb4, 0x8a, 0x7f, 0xa5, 0xeb, 0xe4, 0xc6, 0x3f,
|
0xbf, 0xa8, 0xb1, 0xbf, 0x5f, 0xa3, 0x43, 0x73, 0x58, 0x51, 0xd9, 0xdf, 0x84, 0x2a, 0xb3, 0x2c,
|
||||||
0x0a, 0x46, 0xe1, 0x1e, 0xca, 0x58, 0x9f, 0x0f, 0xf7, 0x34, 0x24, 0x14, 0x81, 0x40, 0x15, 0x9c,
|
0x69, 0x4d, 0x05, 0x22, 0x9a, 0x1d, 0xf8, 0xe9, 0xdf, 0x8b, 0xc3, 0xf5, 0x25, 0x28, 0x5a, 0xd9,
|
||||||
0x50, 0x1e, 0x26, 0x2c, 0xc8, 0x4e, 0x07, 0xc3, 0xa3, 0xfd, 0xfd, 0x9d, 0x3e, 0x15, 0xd4, 0x6a,
|
0xbf, 0xe2, 0x0d, 0xbf, 0xf1, 0x8f, 0x82, 0x71, 0xb8, 0x87, 0x32, 0xd6, 0x17, 0xc3, 0x3d, 0x0d,
|
||||||
0x4e, 0x19, 0x68, 0x07, 0xbe, 0x9a, 0x6b, 0x05, 0x95, 0xce, 0x7f, 0x8b, 0xa9, 0x6f, 0x53, 0x8f,
|
0x09, 0x7f, 0x20, 0xd0, 0x05, 0x27, 0x94, 0xc1, 0x09, 0x0b, 0x92, 0xd3, 0xc1, 0xf0, 0x68, 0x7f,
|
||||||
0xf1, 0xf7, 0xfa, 0x71, 0x8e, 0x83, 0x1b, 0xf6, 0x33, 0x69, 0x94, 0x98, 0xa0, 0x62, 0xf0, 0xa9,
|
0x7f, 0xa7, 0x4f, 0x05, 0xb5, 0x5a, 0x50, 0x06, 0xda, 0x81, 0xaf, 0x16, 0x5a, 0x41, 0x61, 0x32,
|
||||||
0x12, 0x43, 0x00, 0xad, 0xb7, 0xab, 0x8d, 0xb9, 0xc7, 0xb2, 0x60, 0x57, 0xba, 0x0e, 0xa1, 0x21,
|
0xe7, 0x62, 0xd2, 0xdc, 0xd8, 0x63, 0xe2, 0xbd, 0x7e, 0x94, 0xe2, 0xe0, 0x86, 0xfd, 0x44, 0x19,
|
||||||
0xb1, 0x22, 0x4c, 0xb7, 0x3f, 0x9d, 0x42, 0x68, 0xd3, 0x02, 0x7c, 0xe7, 0xa8, 0x48, 0x52, 0x1b,
|
0x25, 0xa6, 0xa8, 0x18, 0x7c, 0x2a, 0xe4, 0x10, 0x40, 0xeb, 0xed, 0x6a, 0x63, 0xe1, 0xb1, 0x24,
|
||||||
0xcf, 0x6f, 0x66, 0x64, 0x7d, 0x5e, 0x5d, 0x9e, 0xfe, 0xf8, 0xe6, 0xc7, 0xc7, 0x47, 0xf8, 0xf9,
|
0xd8, 0x95, 0xae, 0x43, 0x68, 0x48, 0xae, 0x08, 0xdb, 0x61, 0xd0, 0x24, 0x1f, 0xda, 0xb6, 0x40,
|
||||||
0xea, 0xf8, 0xcd, 0xfe, 0xfe, 0xea, 0xf2, 0xe4, 0xc7, 0xa3, 0x30, 0xe8, 0x4c, 0xc4, 0xc5, 0x81,
|
0xe6, 0xd5, 0x54, 0x24, 0xa5, 0x8d, 0xa7, 0x37, 0x73, 0xb2, 0x3e, 0xaf, 0x2f, 0x4f, 0x7f, 0x7c,
|
||||||
0x0b, 0x37, 0xab, 0x4b, 0x99, 0x26, 0x8a, 0x84, 0xd5, 0x25, 0xc6, 0x6c, 0x98, 0xc9, 0x8c, 0x46,
|
0xf3, 0xe3, 0xe3, 0x23, 0xfc, 0x7c, 0x75, 0xfc, 0x66, 0x7f, 0x7f, 0x7d, 0x79, 0xf2, 0xe3, 0x51,
|
||||||
0xc6, 0x99, 0x91, 0xbc, 0xd5, 0xc5, 0xd4, 0xfe, 0x9c, 0x90, 0xff, 0x76, 0x75, 0x56, 0x64, 0xf8,
|
0x18, 0x74, 0xa6, 0xf0, 0x12, 0x90, 0x87, 0xdb, 0xf5, 0xa5, 0x4a, 0x30, 0x45, 0xc2, 0xea, 0x12,
|
||||||
0xf9, 0xf8, 0x7d, 0x09, 0x87, 0x55, 0x67, 0xb2, 0x6c, 0xba, 0x90, 0x00, 0x7e, 0x45, 0xed, 0xbc,
|
0xa3, 0x3d, 0xec, 0x34, 0x48, 0x63, 0xeb, 0xcc, 0x48, 0x7e, 0xee, 0x72, 0x6a, 0x7f, 0xe6, 0xe4,
|
||||||
0x27, 0x6a, 0x72, 0xf8, 0x45, 0x1f, 0xe8, 0xfe, 0x52, 0xbf, 0x56, 0x97, 0xba, 0x29, 0x81, 0x6c,
|
0xf9, 0x5d, 0x9c, 0x65, 0x09, 0x7e, 0x3e, 0x7e, 0x1f, 0x17, 0x80, 0xec, 0x4c, 0x95, 0xcd, 0x96,
|
||||||
0x4a, 0x3c, 0xd6, 0x44, 0x59, 0x14, 0xe5, 0x1c, 0x3e, 0x09, 0xed, 0x33, 0x9c, 0x19, 0xdf, 0xc6,
|
0x0a, 0xfa, 0x2f, 0x2b, 0x6b, 0xef, 0xc9, 0x9a, 0x02, 0xb8, 0xd1, 0x07, 0xba, 0xbf, 0x34, 0xaf,
|
||||||
0x82, 0x2b, 0xdf, 0xb2, 0xf6, 0x63, 0x4f, 0x39, 0xbb, 0xf3, 0x98, 0xa8, 0x12, 0x88, 0x5f, 0x62,
|
0x95, 0xb9, 0x69, 0x4a, 0x62, 0xa2, 0x12, 0x8f, 0x35, 0xf1, 0x19, 0x65, 0xb9, 0x00, 0x5e, 0x42,
|
||||||
0xf5, 0x37, 0x10, 0x6e, 0x78, 0x84, 0x29, 0x8b, 0x45, 0x2b, 0x8f, 0x8f, 0x08, 0x90, 0xe4, 0xab,
|
0xfb, 0x8c, 0x60, 0xc6, 0xb7, 0x91, 0xe4, 0xca, 0xb7, 0xac, 0xfd, 0xd8, 0x93, 0xcf, 0xef, 0x3c,
|
||||||
0x62, 0xa4, 0xfc, 0x8a, 0x7e, 0x27, 0x62, 0xc7, 0x46, 0x29, 0xff, 0x03, 0x97, 0x28, 0x9a, 0x3f,
|
0x26, 0xab, 0x04, 0xf2, 0x97, 0x48, 0xff, 0x0d, 0x84, 0x1b, 0x1e, 0x61, 0xb2, 0x63, 0xd9, 0xca,
|
||||||
0x80, 0x79, 0x78, 0x60, 0x82, 0x6c, 0x72, 0x2c, 0xba, 0xda, 0x1b, 0x46, 0xa2, 0x37, 0xe8, 0x44,
|
0xe3, 0x23, 0x42, 0x2b, 0xf9, 0xba, 0x18, 0x29, 0xbf, 0xa6, 0xdf, 0x89, 0xd8, 0x91, 0x55, 0x2a,
|
||||||
0x8f, 0x5b, 0x0f, 0xc1, 0x61, 0x3e, 0xb9, 0x95, 0x8a, 0xbc, 0xa9, 0x30, 0x7a, 0x13, 0x06, 0x91,
|
0xfe, 0xc0, 0x25, 0x8a, 0xe6, 0x0f, 0x60, 0x1e, 0x11, 0xd2, 0xa0, 0x9a, 0x9c, 0xc8, 0xae, 0xf6,
|
||||||
0xbf, 0xd5, 0x92, 0x0d, 0xb5, 0xd0, 0x66, 0x8e, 0x05, 0x51, 0x5d, 0x54, 0x85, 0x4e, 0x95, 0x53,
|
0x86, 0x23, 0xd9, 0x1b, 0x74, 0x62, 0xc6, 0x6d, 0x86, 0x50, 0x63, 0x3e, 0xb5, 0x95, 0xca, 0x8c,
|
||||||
0x26, 0x90, 0x02, 0xea, 0x8d, 0xbd, 0x10, 0x4f, 0x50, 0xf7, 0x75, 0xe1, 0x7d, 0xc1, 0xec, 0xa9,
|
0xab, 0x30, 0x7a, 0x1b, 0x40, 0x51, 0xbc, 0xd5, 0x92, 0x47, 0x35, 0x33, 0x66, 0x8e, 0x25, 0x51,
|
||||||
0xa5, 0xc0, 0x03, 0x7d, 0xe4, 0x38, 0xd0, 0x80, 0x02, 0xad, 0xbd, 0xc4, 0x1f, 0x94, 0x8b, 0x6b,
|
0x5d, 0x56, 0x85, 0x4e, 0xb5, 0x3b, 0x27, 0x90, 0x02, 0xea, 0x4d, 0xbc, 0x10, 0x4f, 0x50, 0xf7,
|
||||||
0x15, 0xc3, 0x3a, 0x37, 0xa4, 0x48, 0x02, 0x42, 0xf1, 0x9f, 0x49, 0x52, 0xc2, 0x31, 0x66, 0x30,
|
0x65, 0xe6, 0x7d, 0xc1, 0xec, 0xe9, 0xa5, 0x20, 0x42, 0x84, 0xd4, 0x38, 0xd0, 0x80, 0x02, 0xad,
|
||||||
0x18, 0x88, 0x4c, 0x70, 0xb5, 0xd4, 0x17, 0xa5, 0xec, 0x57, 0x39, 0xe0, 0x60, 0x47, 0x5c, 0xa4,
|
0xbd, 0xc4, 0x1f, 0xe4, 0x4b, 0xb7, 0x8e, 0x60, 0x9d, 0x5b, 0x52, 0x84, 0x83, 0x50, 0xfc, 0x27,
|
||||||
0x73, 0x38, 0x24, 0x11, 0xc0, 0x7e, 0x05, 0x47, 0x30, 0x72, 0x9f, 0xe1, 0xbf, 0x55, 0x41, 0x60,
|
0xe7, 0x39, 0x1c, 0x63, 0x06, 0x83, 0x81, 0xcc, 0x21, 0x57, 0x2a, 0x7d, 0x51, 0xc9, 0x7e, 0x9d,
|
||||||
0x06, 0x9d, 0xa7, 0xc0, 0xd7, 0x81, 0x78, 0x82, 0x70, 0x40, 0x63, 0x92, 0xf2, 0x8f, 0x8f, 0xf6,
|
0x3d, 0x0e, 0x76, 0xc4, 0x65, 0xbc, 0x80, 0x43, 0x12, 0x41, 0xf3, 0x17, 0x70, 0x04, 0x23, 0xf7,
|
||||||
0xb9, 0x0d, 0xce, 0x94, 0x50, 0x4a, 0xb7, 0xa9, 0xcc, 0x18, 0x0d, 0x94, 0x31, 0x7a, 0x2b, 0x88,
|
0x19, 0xf1, 0x5b, 0x11, 0x04, 0x76, 0xb8, 0x7a, 0x0c, 0x7c, 0x1d, 0xc8, 0x27, 0x08, 0x24, 0x34,
|
||||||
0x5a, 0xeb, 0x53, 0x84, 0x9b, 0xb2, 0xe6, 0x34, 0x3e, 0x63, 0xcb, 0x57, 0x54, 0xa7, 0x84, 0xc8,
|
0x21, 0x29, 0xff, 0xf8, 0xe8, 0x9e, 0xdb, 0xe0, 0x4c, 0x09, 0xa5, 0x74, 0x9b, 0xca, 0xac, 0xd1,
|
||||||
0x3d, 0x06, 0x5c, 0x2e, 0x16, 0x1b, 0xec, 0xfa, 0x74, 0x86, 0x40, 0x41, 0x91, 0xe4, 0x68, 0xdf,
|
0x40, 0x19, 0xa3, 0xb7, 0x82, 0x51, 0x6b, 0x7d, 0x8a, 0x8d, 0xd3, 0xd6, 0x9c, 0xc6, 0x67, 0x54,
|
||||||
0x07, 0x35, 0x08, 0xde, 0xf7, 0x08, 0x50, 0x14, 0xf1, 0xf1, 0xb1, 0x9d, 0x66, 0xad, 0xbb, 0x02,
|
0x62, 0x45, 0x75, 0x4a, 0x88, 0xd4, 0x63, 0xc0, 0xe5, 0x72, 0xb1, 0xc1, 0xae, 0x4f, 0x67, 0x08,
|
||||||
0xbd, 0x72, 0x8a, 0x15, 0x34, 0x86, 0xcb, 0xba, 0xbb, 0x62, 0x8d, 0x3b, 0x24, 0x47, 0x8b, 0x7c,
|
0x14, 0x14, 0x3c, 0x45, 0xfb, 0x3e, 0xa8, 0x41, 0xf0, 0xbe, 0x47, 0x50, 0xa4, 0x88, 0xac, 0x8f,
|
||||||
0xa6, 0x26, 0x35, 0x09, 0x07, 0x55, 0x8f, 0xa1, 0x7c, 0x7f, 0xa6, 0xde, 0x7d, 0xf9, 0x5c, 0x35,
|
0xed, 0x34, 0x6b, 0xdd, 0x65, 0xe8, 0x95, 0x93, 0xad, 0xa1, 0x31, 0x5c, 0xd6, 0xdd, 0x15, 0x4b,
|
||||||
0xea, 0x18, 0x14, 0x40, 0x5d, 0xef, 0x6f, 0x27, 0x87, 0x20, 0x83, 0xd3, 0xb2, 0x3e, 0xed, 0x9d,
|
0xdc, 0x21, 0x05, 0xce, 0xe4, 0x33, 0x35, 0xa9, 0x49, 0x38, 0xa8, 0x7a, 0x0c, 0xe5, 0xfb, 0x33,
|
||||||
0x1c, 0x22, 0xd6, 0x34, 0xfe, 0x5c, 0xd4, 0x77, 0xd9, 0x69, 0xef, 0xff, 0xdb, 0x57, 0x6b, 0x0d,
|
0xf5, 0xee, 0xf3, 0xe7, 0xaa, 0x51, 0xc7, 0xa0, 0x00, 0x9a, 0x7a, 0x7f, 0x3b, 0x39, 0x04, 0x19,
|
||||||
0x3e, 0x44, 0x01, 0x00
|
0x1c, 0xe7, 0xe5, 0x69, 0xef, 0xe4, 0x10, 0x51, 0xaa, 0xf1, 0xe7, 0xb2, 0xbc, 0x4b, 0x4e, 0x7b,
|
||||||
|
0xff, 0x07, 0x78, 0xe9, 0x8f, 0x6a, 0x78, 0x44, 0x01, 0x00
|
||||||
};
|
};
|
||||||
|
@ -230,6 +230,7 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
|
|||||||
|
|
||||||
bool stateResponse = root[F("v")] | false;
|
bool stateResponse = root[F("v")] | false;
|
||||||
|
|
||||||
|
bool onBefore = bri;
|
||||||
getVal(root["bri"], &bri);
|
getVal(root["bri"], &bri);
|
||||||
|
|
||||||
bool on = root["on"] | (bri > 0);
|
bool on = root["on"] | (bri > 0);
|
||||||
@ -237,6 +238,15 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
|
|||||||
|
|
||||||
if (root["on"].is<const char*>() && root["on"].as<const char*>()[0] == 't') toggleOnOff();
|
if (root["on"].is<const char*>() && root["on"].as<const char*>()[0] == 't') toggleOnOff();
|
||||||
|
|
||||||
|
if (bri && !onBefore) { // unfreeze all segments when turning on
|
||||||
|
for (uint8_t s=0; s < strip.getMaxSegments(); s++) {
|
||||||
|
strip.getSegment(s).setOption(SEG_OPTION_FREEZE, false, s);
|
||||||
|
}
|
||||||
|
if (realtimeMode && !realtimeOverride && useMainSegmentOnly) { // keep live segment frozen if live
|
||||||
|
strip.getMainSegment().setOption(SEG_OPTION_FREEZE, true, strip.getMainSegmentId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int tr = -1;
|
int tr = -1;
|
||||||
if (!presetId || currentPlaylist < 0) { //do not apply transition time from preset if playlist active, as it would override playlist transition times
|
if (!presetId || currentPlaylist < 0) { //do not apply transition time from preset if playlist active, as it would override playlist transition times
|
||||||
tr = root[F("transition")] | -1;
|
tr = root[F("transition")] | -1;
|
||||||
@ -283,6 +293,9 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
|
|||||||
|
|
||||||
realtimeOverride = root[F("lor")] | realtimeOverride;
|
realtimeOverride = root[F("lor")] | realtimeOverride;
|
||||||
if (realtimeOverride > 2) realtimeOverride = REALTIME_OVERRIDE_ALWAYS;
|
if (realtimeOverride > 2) realtimeOverride = REALTIME_OVERRIDE_ALWAYS;
|
||||||
|
if (realtimeMode && useMainSegmentOnly) {
|
||||||
|
strip.getMainSegment().setOption(SEG_OPTION_FREEZE, !realtimeOverride, strip.getMainSegmentId());
|
||||||
|
}
|
||||||
|
|
||||||
if (root.containsKey("live")) {
|
if (root.containsKey("live")) {
|
||||||
if (root["live"].as<bool>()) {
|
if (root["live"].as<bool>()) {
|
||||||
@ -290,11 +303,7 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
|
|||||||
jsonTransitionOnce = true;
|
jsonTransitionOnce = true;
|
||||||
realtimeLock(65000);
|
realtimeLock(65000);
|
||||||
} else {
|
} else {
|
||||||
if (realtimeOverride == REALTIME_OVERRIDE_ONCE) realtimeOverride = REALTIME_OVERRIDE_NONE;
|
exitRealtime();
|
||||||
strip.setBrightness(scaledBri(bri));
|
|
||||||
realtimeTimeout = 0; //cancel realtime mode immediately
|
|
||||||
realtimeMode = REALTIME_MODE_INACTIVE; // inform UI immediatelly
|
|
||||||
realtimeIP[0] = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -508,7 +517,7 @@ void serializeInfo(JsonObject root)
|
|||||||
root[F("udpport")] = udpPort;
|
root[F("udpport")] = udpPort;
|
||||||
root["live"] = (bool)realtimeMode;
|
root["live"] = (bool)realtimeMode;
|
||||||
root[F("liveseg")] = useMainSegmentOnly ? strip.getMainSegmentId() : -1; // if using main segment only for live
|
root[F("liveseg")] = useMainSegmentOnly ? strip.getMainSegmentId() : -1; // if using main segment only for live
|
||||||
// root[F("mso")] = useMainSegmentOnly; // using main segment only for live
|
//root[F("mso")] = useMainSegmentOnly; // using main segment only for live
|
||||||
|
|
||||||
switch (realtimeMode) {
|
switch (realtimeMode) {
|
||||||
case REALTIME_MODE_INACTIVE: root["lm"] = ""; break;
|
case REALTIME_MODE_INACTIVE: root["lm"] = ""; break;
|
||||||
|
@ -83,6 +83,16 @@ const ethernet_settings ethernetBoards[] = {
|
|||||||
18, // eth_mdio,
|
18, // eth_mdio,
|
||||||
ETH_PHY_LAN8720, // eth_type,
|
ETH_PHY_LAN8720, // eth_type,
|
||||||
ETH_CLOCK_GPIO17_OUT // eth_clk_mode
|
ETH_CLOCK_GPIO17_OUT // eth_clk_mode
|
||||||
|
},
|
||||||
|
|
||||||
|
// ESP32-ETHERNET-KIT-VE
|
||||||
|
{
|
||||||
|
0, // eth_address,
|
||||||
|
5, // eth_power,
|
||||||
|
23, // eth_mdc,
|
||||||
|
18, // eth_mdio,
|
||||||
|
ETH_PHY_IP101, // eth_type,
|
||||||
|
ETH_CLOCK_GPIO0_IN // eth_clk_mode
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -466,6 +466,7 @@ void calculateSunriseAndSunset() {
|
|||||||
int minUTC = getSunriseUTC(year(localTime), month(localTime), day(localTime), latitude, longitude);
|
int minUTC = getSunriseUTC(year(localTime), month(localTime), day(localTime), latitude, longitude);
|
||||||
if (minUTC) {
|
if (minUTC) {
|
||||||
// there is a sunrise
|
// there is a sunrise
|
||||||
|
if (minUTC < 0) minUTC += 24*60; // add a day if negative
|
||||||
tim_0.tm_hour = minUTC / 60;
|
tim_0.tm_hour = minUTC / 60;
|
||||||
tim_0.tm_min = minUTC % 60;
|
tim_0.tm_min = minUTC % 60;
|
||||||
sunrise = tz->toLocal(mktime(&tim_0) + utcOffsetSecs);
|
sunrise = tz->toLocal(mktime(&tim_0) + utcOffsetSecs);
|
||||||
@ -477,6 +478,7 @@ void calculateSunriseAndSunset() {
|
|||||||
minUTC = getSunriseUTC(year(localTime), month(localTime), day(localTime), latitude, longitude, true);
|
minUTC = getSunriseUTC(year(localTime), month(localTime), day(localTime), latitude, longitude, true);
|
||||||
if (minUTC) {
|
if (minUTC) {
|
||||||
// there is a sunset
|
// there is a sunset
|
||||||
|
if (minUTC < 0) minUTC += 24*60; // add a day if negative
|
||||||
tim_0.tm_hour = minUTC / 60;
|
tim_0.tm_hour = minUTC / 60;
|
||||||
tim_0.tm_min = minUTC % 60;
|
tim_0.tm_min = minUTC % 60;
|
||||||
sunset = tz->toLocal(mktime(&tim_0) + utcOffsetSecs);
|
sunset = tz->toLocal(mktime(&tim_0) + utcOffsetSecs);
|
||||||
|
@ -886,6 +886,9 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply)
|
|||||||
if (pos > 0) {
|
if (pos > 0) {
|
||||||
realtimeOverride = getNumVal(&req, pos);
|
realtimeOverride = getNumVal(&req, pos);
|
||||||
if (realtimeOverride > 2) realtimeOverride = REALTIME_OVERRIDE_ALWAYS;
|
if (realtimeOverride > 2) realtimeOverride = REALTIME_OVERRIDE_ALWAYS;
|
||||||
|
if (realtimeMode && useMainSegmentOnly) {
|
||||||
|
strip.getMainSegment().setOption(SEG_OPTION_FREEZE, !realtimeOverride, strip.getMainSegmentId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pos = req.indexOf(F("RB"));
|
pos = req.indexOf(F("RB"));
|
||||||
|
@ -140,7 +140,7 @@ void notify(byte callMode, bool followUp)
|
|||||||
|
|
||||||
void realtimeLock(uint32_t timeoutMs, byte md)
|
void realtimeLock(uint32_t timeoutMs, byte md)
|
||||||
{
|
{
|
||||||
if (!realtimeMode) {
|
if (!realtimeMode && !realtimeOverride) {
|
||||||
uint16_t stop, start;
|
uint16_t stop, start;
|
||||||
if (useMainSegmentOnly) {
|
if (useMainSegmentOnly) {
|
||||||
WS2812FX::Segment& mainseg = strip.getMainSegment();
|
WS2812FX::Segment& mainseg = strip.getMainSegment();
|
||||||
@ -152,30 +152,41 @@ void realtimeLock(uint32_t timeoutMs, byte md)
|
|||||||
stop = strip.getLengthTotal();
|
stop = strip.getLengthTotal();
|
||||||
}
|
}
|
||||||
// clear strip/segment
|
// clear strip/segment
|
||||||
if (useMainSegmentOnly || !realtimeOverride) for (uint16_t i = start; i < stop; i++) strip.setPixelColor(i,0,0,0,0);
|
for (uint16_t i = start; i < stop; i++) strip.setPixelColor(i,0,0,0,0);
|
||||||
// if WLED was off and using main segment only, turn non-main segments off
|
// if WLED was off and using main segment only, freeze non-main segments so they stay off
|
||||||
if (useMainSegmentOnly && bri == 0) {
|
if (useMainSegmentOnly && bri == 0) {
|
||||||
for (uint8_t s=0; s < strip.getMaxSegments(); s++) {
|
for (uint8_t s=0; s < strip.getMaxSegments(); s++) {
|
||||||
if (s != strip.getMainSegmentId()) strip.getSegment(s).setOption(SEG_OPTION_ON, false, s);
|
strip.getSegment(s).setOption(SEG_OPTION_FREEZE, true, s);
|
||||||
else strip.getSegment(s).setOption(SEG_OPTION_ON, true, s);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if strip is off (bri==0) and not already in RTM
|
||||||
|
if (briT == 0 && !realtimeMode && !realtimeOverride) {
|
||||||
|
strip.setBrightness(scaledBri(briLast), true);
|
||||||
|
}
|
||||||
|
|
||||||
if (realtimeTimeout != UINT32_MAX) {
|
if (realtimeTimeout != UINT32_MAX) {
|
||||||
if (timeoutMs == 255001 || timeoutMs == 65000) realtimeTimeout = UINT32_MAX;
|
realtimeTimeout = (timeoutMs == 255001 || timeoutMs == 65000) ? UINT32_MAX : millis() + timeoutMs;
|
||||||
else realtimeTimeout = millis() + timeoutMs;
|
|
||||||
}
|
|
||||||
// if strip is off (bri==0) and not already in RTM
|
|
||||||
if (briT == 0 && !realtimeMode) {
|
|
||||||
strip.setBrightness(scaledBri(briLast), true);
|
|
||||||
}
|
}
|
||||||
realtimeMode = md;
|
realtimeMode = md;
|
||||||
|
|
||||||
if (arlsForceMaxBri && !realtimeOverride) strip.setBrightness(scaledBri(255), true);
|
if (realtimeOverride) return;
|
||||||
|
if (arlsForceMaxBri) strip.setBrightness(scaledBri(255), true);
|
||||||
if (briT > 0 && md == REALTIME_MODE_GENERIC) strip.show();
|
if (briT > 0 && md == REALTIME_MODE_GENERIC) strip.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void exitRealtime() {
|
||||||
|
if (!realtimeMode) return;
|
||||||
|
if (realtimeOverride == REALTIME_OVERRIDE_ONCE) realtimeOverride = REALTIME_OVERRIDE_NONE;
|
||||||
|
strip.setBrightness(scaledBri(bri));
|
||||||
|
realtimeTimeout = 0; // cancel realtime mode immediately
|
||||||
|
realtimeMode = REALTIME_MODE_INACTIVE; // inform UI immediately
|
||||||
|
realtimeIP[0] = 0;
|
||||||
|
if (useMainSegmentOnly) { // unfreeze live segment again
|
||||||
|
strip.getMainSegment().setOption(SEG_OPTION_FREEZE, false, strip.getMainSegmentId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#define TMP2NET_OUT_PORT 65442
|
#define TMP2NET_OUT_PORT 65442
|
||||||
|
|
||||||
@ -203,14 +214,7 @@ void handleNotifications()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//unlock strip when realtime UDP times out
|
//unlock strip when realtime UDP times out
|
||||||
if (realtimeMode && millis() > realtimeTimeout)
|
if (realtimeMode && millis() > realtimeTimeout) exitRealtime();
|
||||||
{
|
|
||||||
if (realtimeOverride == REALTIME_OVERRIDE_ONCE) realtimeOverride = REALTIME_OVERRIDE_NONE;
|
|
||||||
if (useMainSegmentOnly) strip.getMainSegment().setOption(SEG_OPTION_FREEZE, false, strip.getMainSegmentId());
|
|
||||||
strip.setBrightness(scaledBri(bri));
|
|
||||||
realtimeMode = REALTIME_MODE_INACTIVE;
|
|
||||||
realtimeIP[0] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//receive UDP notifications
|
//receive UDP notifications
|
||||||
if (!udpConnected) return;
|
if (!udpConnected) return;
|
||||||
|
@ -116,6 +116,18 @@
|
|||||||
#include "../usermods/quinled-an-penta/quinled-an-penta.h"
|
#include "../usermods/quinled-an-penta/quinled-an-penta.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USERMOD_WIZLIGHTS
|
||||||
|
#include "../usermods/wizlights/wizlights.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USERMOD_WORDCLOCK
|
||||||
|
#include "../usermods/usermod_v2_word_clock/usermod_v2_word_clock.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USERMOD_MY9291
|
||||||
|
#include "../usermods/MY9291/usermode_MY9291.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
void registerUsermods()
|
void registerUsermods()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -219,4 +231,16 @@ void registerUsermods()
|
|||||||
#ifdef QUINLED_AN_PENTA
|
#ifdef QUINLED_AN_PENTA
|
||||||
usermods.add(new QuinLEDAnPentaUsermod());
|
usermods.add(new QuinLEDAnPentaUsermod());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USERMOD_WIZLIGHTS
|
||||||
|
usermods.add(new WizLightsUsermod());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USERMOD_WORDCLOCK
|
||||||
|
usermods.add(new WordClockUsermod());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USERMOD_MY9291
|
||||||
|
usermods.add(new MY9291Usermod());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2204021
|
#define VERSION 2204022
|
||||||
|
|
||||||
//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
|
||||||
|
Loading…
Reference in New Issue
Block a user