Initial commit
This commit is contained in:
commit
13a96beb9b
36 changed files with 24345 additions and 0 deletions
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
.pio
|
||||
.vscode/.browse.c_cpp.db*
|
||||
.vscode/c_cpp_properties.json
|
||||
.vscode/launch.json
|
||||
.vscode/ipch
|
||||
|
||||
src/fonts/SteelfishRounded*.h
|
||||
src/config.h
|
10
.vscode/extensions.json
vendored
Normal file
10
.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
// See http://go.microsoft.com/fwlink/?LinkId=827846
|
||||
// for the documentation about the extensions.json format
|
||||
"recommendations": [
|
||||
"platformio.platformio-ide"
|
||||
],
|
||||
"unwantedRecommendations": [
|
||||
"ms-vscode.cpptools-extension-pack"
|
||||
]
|
||||
}
|
202
LICENSE.txt
Normal file
202
LICENSE.txt
Normal file
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
70
README.md
Normal file
70
README.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
# ₿TClock
|
||||
|
||||
![BTClock](doc/assets/btclock.jpg)
|
||||
|
||||
|
||||
**NOTE**: C++ is not a language I'm experienced in. The quality of the code is probably bad and makes experienced C++ developers cry. For me it works, I do hope people will help making the code better through pull requests.
|
||||
|
||||
What you need to build this is:
|
||||
|
||||
- 7x 2.13 b/w eInk screens (the b/w/r don't have fast partial refresh, it should work but it's really slow).
|
||||
- MCU (For this project you need an ESP32 with 4 MB Flash)
|
||||
- 3D Printer to print the [case](https://www.thingiverse.com/thing:6009628)
|
||||
- Soldering Iron (to solder the header pins)
|
||||
- Some dupont wires are handy, but if you chain them using the 2x8 pin headers you don't necessarily need them.
|
||||
|
||||
This project has been developed and tested with Platform.IO. Don't forget to build the filesystem image and upload it to be able to use the web interface.
|
||||
|
||||
## Features
|
||||
|
||||
- Screens:
|
||||
- Block Height
|
||||
- Moscow Time
|
||||
- Ticker
|
||||
- Time
|
||||
- API for Custom Text
|
||||
- Web interface
|
||||
- OTA update mechanism
|
||||
|
||||
![Webinterface](doc/assets/webinterface.png)
|
||||
|
||||
## License
|
||||
|
||||
Apache 2.0.
|
||||
|
||||
The popular font [Steelfish Rounded](https://typodermicfonts.com/steelfish-rounded/) is not directly compatible and therefore not included, you can download it yourself for personal use for free, and convert it using [fontconvert](https://github.com/adafruit/Adafruit-GFX-Library/tree/master/fontconvert) to use in this project.
|
||||
|
||||
By default [Oswald](https://github.com/googlefonts/OswaldFont) is used.
|
||||
|
||||
## Hardware
|
||||
|
||||
|
||||
|
||||
![ESP 32 Dev Kit V1 Pinout](doc/assets/ESP32-DOIT-DEV-KIT-v1-pinout-mischianti.png)
|
||||
|
||||
### Shared pins
|
||||
|
||||
| Description | Pin | Wire color |
|
||||
| --------- | -- | ----- |
|
||||
| SCL(SCK) | 18 | Green |
|
||||
| SDA(MOSI)| 23 | Yellow |
|
||||
| RST | 2 | Orange |
|
||||
| DC | 22 | White|
|
||||
|
||||
### Per screen
|
||||
|
||||
CS wire is <span style="color:blue">blue</span>, BUSY is <span style="color:purple">purple</span>.
|
||||
|
||||
| Screen # | CS | BUSY |
|
||||
| --------- | -- | ----- |
|
||||
| 1 | 21 | 36 |
|
||||
| 2 | 13 | 39 |
|
||||
| 3 | 5 | 34 |
|
||||
| 4 | 17 | 35 |
|
||||
| 5 | 16 | 32 |
|
||||
| 6 | 4 | 33 |
|
||||
| 7 | 15 | 25 |
|
||||
|
||||
### Wiring with Wemos S2 Mini (change the pins in functions.cpp)
|
||||
|
||||
![BTClock](doc/assets/wemos_wiring.png)
|
7
data/css/bootstrap.min.css
vendored
Normal file
7
data/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
73
data/css/style.css
Normal file
73
data/css/style.css
Normal file
|
@ -0,0 +1,73 @@
|
|||
nav {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.splitText div:first-child::after {
|
||||
display: block;
|
||||
content: '';
|
||||
margin-top: 0px;
|
||||
border-bottom: 2px solid;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
#btcclock-wrapper {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.btclock {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
align-content: stretch;
|
||||
font-family: 'Oswald', sans-serif;
|
||||
}
|
||||
|
||||
.btclock>div {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.fg-ffff .btclock>div {
|
||||
color: #fff;
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
.bg-ffff .btclock>div {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.fg-f800 .btclock>div {
|
||||
color: #f00;
|
||||
border-color: #f00;
|
||||
}
|
||||
|
||||
.bg-f800 .btclock>div {
|
||||
background: #f00;
|
||||
}
|
||||
|
||||
.fg-0 .btclock>div {
|
||||
color: #000;
|
||||
border-color: #000;
|
||||
}
|
||||
|
||||
.bg-0 .btclock>div {
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.splitText {
|
||||
font-size: 2.2rem;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.digit {
|
||||
font-size: 5rem;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.digit-blank {
|
||||
content: "abc";
|
||||
}
|
8
data/font/oswald.css
Normal file
8
data/font/oswald.css
Normal file
|
@ -0,0 +1,8 @@
|
|||
@font-face {
|
||||
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||
font-family: 'Oswald';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('oswald.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
|
||||
url('oswald.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
BIN
data/font/oswald.woff
Normal file
BIN
data/font/oswald.woff
Normal file
Binary file not shown.
BIN
data/font/oswald.woff2
Normal file
BIN
data/font/oswald.woff2
Normal file
Binary file not shown.
101
data/index.html
Normal file
101
data/index.html
Normal file
|
@ -0,0 +1,101 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="/font/oswald.css" rel="stylesheet">
|
||||
<link href="/css/style.css" rel="stylesheet">
|
||||
<script src="/js/handlebars-v4.7.7.js"></script>
|
||||
<title>₿TClock</title>
|
||||
</head>
|
||||
|
||||
<script src="/js/helpers.js"></script>
|
||||
|
||||
<body>
|
||||
<nav class="navbar navbar-light bg-light">
|
||||
<div class="container-fluid">
|
||||
<span class="navbar-brand mb-0 h1">₿TClock</span>
|
||||
</div>
|
||||
</nav>
|
||||
<script id="entry-template" type="text/x-handlebars-template">
|
||||
<div class="entry">
|
||||
<h1>Status</h1>
|
||||
<div class="body">
|
||||
<div class="btn-group" role="group" aria-label="Basic radio toggle button group">
|
||||
{{#each screens }}
|
||||
<input type="radio" class="btn-check" name="btnradio" id="btnradio{{ @index }}" autocomplete="off" {{#ifEquals @index ../currentScreen }} checked {{/ifEquals}} onclick="changeScreen({{ @index }})">
|
||||
<label class="btn btn-outline-primary" for="btnradio{{ @index }}">{{ this }}</label>
|
||||
{{/each}}
|
||||
|
||||
</div>
|
||||
<p>Rendered:</p>
|
||||
{{#if rendered }}
|
||||
<div class="btcclock-wrapper" id="btcclock-wrapper">
|
||||
<div class="btclock">
|
||||
{{#each data }}
|
||||
{{{splitText this}}}
|
||||
{{/each}}
|
||||
</div></div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="h-100 p-3 border bg-light">
|
||||
<h1>Custom text</h1>
|
||||
<form name="customText" id="customTextForm">
|
||||
<div class="row">
|
||||
<label for="customText" class="col-sm-4 col-form-label">Text</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="form-control" id="customText" name="customText" maxlength="7">
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
<button type="submit" class="btn btn-primary">Show Text</button>
|
||||
</footer>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div id="output" class="p-3 border bg-light"></div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="h-100 p-3 border bg-light">
|
||||
<h1>Settings</h1>
|
||||
<form method="post" action="/api/settings" name="settings" id="settingsForm">
|
||||
<div class="row">
|
||||
<label for="fgColor" class="col-sm-6 col-form-label">Text color</label>
|
||||
<div class="col-sm-6">
|
||||
<select class="form-select" id="fgColor" name="fgColor">
|
||||
<option value="0xF800">Red</option>
|
||||
<option value="0xFFFF">White</option>
|
||||
<option value="0x0">Black</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label for="bgColor" class="col-sm-6 col-form-label">Background color</label>
|
||||
<div class="col-sm-6">
|
||||
<select class="form-select" id="bgColor" name="bgColor">
|
||||
<option value="0xF800">Red</option>
|
||||
<option value="0xFFFF">White</option>
|
||||
<option value="0x0">Black</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-secondary">Reset</button>
|
||||
<button type="submit" class="btn btn-primary">Save</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/js/script.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
29
data/js/handlebars-v4.7.7.js
Normal file
29
data/js/handlebars-v4.7.7.js
Normal file
File diff suppressed because one or more lines are too long
15
data/js/helpers.js
Normal file
15
data/js/helpers.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
Handlebars.registerHelper('splitText', function (aString) {
|
||||
if (aString.includes("/")) {
|
||||
var c = aString.split("/").map((el) => { return "<div class=\"flex-items\">" + el + "</div>"; }).join('');
|
||||
return "<div class=\"splitText\">" + c + "</div>";
|
||||
}
|
||||
if (aString.length == 0 || aString === " ") {
|
||||
aString = " ";
|
||||
}
|
||||
//return aString;
|
||||
return "<div class=\"digit\">" + aString + "</div>";
|
||||
});
|
||||
|
||||
Handlebars.registerHelper('ifEquals', function(arg1, arg2, options) {
|
||||
return (arg1 == arg2) ? options.fn(this) : options.inverse(this);
|
||||
});
|
82
data/js/script.js
Normal file
82
data/js/script.js
Normal file
|
@ -0,0 +1,82 @@
|
|||
var screens = ["Block Height", "Moscow Time", "Ticker", "Time"];
|
||||
|
||||
getBcStatus = () => {
|
||||
fetch('/api/status', {
|
||||
method: 'get'
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(jsonData => {
|
||||
|
||||
var source = document.getElementById("entry-template").innerHTML;
|
||||
var template = Handlebars.compile(source);
|
||||
var context = { currentScreen: jsonData.currentScreen, rendered: jsonData.rendered, data: jsonData.data, screens: screens };
|
||||
document.getElementById('output').innerHTML = template(context);
|
||||
})
|
||||
.catch(err => {
|
||||
//error block
|
||||
});
|
||||
}
|
||||
|
||||
interval = setInterval(getBcStatus, 2500);
|
||||
getBcStatus();
|
||||
|
||||
fetch('/api/settings', {
|
||||
method: 'get'
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(jsonData => {
|
||||
var fgColor = ("0x" + jsonData.fgColor.toString(16).toUpperCase());
|
||||
if (jsonData.epdColors == 2) {
|
||||
document.getElementById('fgColor').querySelector('[value="0xF800"]').remove();
|
||||
document.getElementById('bgColor').querySelector('[value="0xF800"]').remove();
|
||||
}
|
||||
|
||||
document.getElementById('output').classList.add("fg-" + jsonData.fgColor.toString(16));
|
||||
document.getElementById('output').classList.add("bg-" + jsonData.bgColor.toString(16));
|
||||
|
||||
document.getElementById('fgColor').value = fgColor;
|
||||
document.getElementById('bgColor').value = "0x" + jsonData.bgColor.toString(16).toUpperCase();
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('error', err);
|
||||
});
|
||||
|
||||
|
||||
var settingsForm = document.querySelector('#settingsForm');
|
||||
settingsForm.onsubmit = function (event) {
|
||||
var formData = new FormData(settingsForm);
|
||||
|
||||
fetch("/api/settings",
|
||||
{
|
||||
body: formData,
|
||||
method: "post"
|
||||
}).then(() => {
|
||||
console.log('Submitted');
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
var textForm = document.querySelector('#customTextForm');
|
||||
textForm.onsubmit = function (event) {
|
||||
var formData = new FormData(textForm);
|
||||
|
||||
fetch('/api/show/text/' + encodeURIComponent(formData.get('customText')), {
|
||||
method: 'get'
|
||||
})
|
||||
.then(response => response.json())
|
||||
.catch(err => {
|
||||
//error block
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
changeScreen = (id) => {
|
||||
fetch('/api/show/screen/' + encodeURIComponent(id), {
|
||||
method: 'get'
|
||||
})
|
||||
.then(response => response.json())
|
||||
.catch(err => {
|
||||
//error block
|
||||
});
|
||||
}
|
BIN
doc/assets/ESP32-DOIT-DEV-KIT-v1-pinout-mischianti.png
Normal file
BIN
doc/assets/ESP32-DOIT-DEV-KIT-v1-pinout-mischianti.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 725 KiB |
BIN
doc/assets/btclock.jpg
Normal file
BIN
doc/assets/btclock.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 196 KiB |
BIN
doc/assets/webinterface.png
Normal file
BIN
doc/assets/webinterface.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
BIN
doc/assets/wemos_wiring.png
Normal file
BIN
doc/assets/wemos_wiring.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 221 KiB |
7
partition.csv
Normal file
7
partition.csv
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Name, Type, SubType, Offset, Size, Flags
|
||||
nvs, data, nvs, 36K, 20K,
|
||||
otadata, data, ota, 56K, 8K,
|
||||
app0, app, ota_0, 64K, 1600K,
|
||||
app1, app, ota_1, , 1600K,
|
||||
spiffs, data, spiffs, , 600K,
|
||||
coredump, data, coredump,, 64K,
|
|
32
platformio.ini
Normal file
32
platformio.ini
Normal file
|
@ -0,0 +1,32 @@
|
|||
; PlatformIO Project Configuration File
|
||||
;
|
||||
; Build options: build flags, source filter
|
||||
; Upload options: custom upload port, speed and extra flags
|
||||
; Library options: dependencies, extra library storages
|
||||
; Advanced options: extra scripting
|
||||
;
|
||||
; Please visit documentation for the other options and examples
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[env]
|
||||
platform = espressif32
|
||||
board = esp32dev
|
||||
framework = arduino
|
||||
monitor_speed = 115200
|
||||
monitor_rts = 0
|
||||
monitor_dtr = 0
|
||||
upload_speed = 921600
|
||||
board_build.partitions = partition.csv
|
||||
lib_deps =
|
||||
zinggjm/GxEPD2@^1.5.2
|
||||
bblanchon/ArduinoJson@^6.21.1
|
||||
fbiego/ESP32Time@^2.0.0
|
||||
https://github.com/me-no-dev/ESPAsyncWebServer.git
|
||||
|
||||
[env:esp32dev_bw]
|
||||
build_flags =
|
||||
-D IS_BW
|
||||
|
||||
[env:esp32dev_3c]
|
||||
build_flags =
|
||||
-D IS_3C
|
10
src/config.h.example
Normal file
10
src/config.h.example
Normal file
|
@ -0,0 +1,10 @@
|
|||
#define WIFI_SSID ""
|
||||
#define WIFI_PASSWORD ""
|
||||
|
||||
#define NTP_SERVER "nl.pool.ntp.org"
|
||||
|
||||
#define FONT_SMALL Oswald_Regular20pt7b
|
||||
#define FONT_BIG Oswald_Regular90pt7b
|
||||
|
||||
#define TIME_OFFSET_SECONDS 3600
|
||||
#define OTA_PASSWORD "changeme"
|
488
src/fonts/oswald-20.h
Normal file
488
src/fonts/oswald-20.h
Normal file
|
@ -0,0 +1,488 @@
|
|||
const uint8_t Oswald_Regular20pt7bBitmaps[] PROGMEM = {
|
||||
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x77, 0x76, 0x66, 0x66, 0x66, 0x66,
|
||||
0x66, 0x60, 0x00, 0xFF, 0xFF, 0xF7, 0xF3, 0xF9, 0xFC, 0xFE, 0x77, 0x3B,
|
||||
0x9D, 0x8E, 0xC7, 0x63, 0x80, 0x07, 0x87, 0x83, 0xC7, 0xC1, 0xE3, 0xC1,
|
||||
0xF1, 0xE0, 0xF0, 0xF0, 0x78, 0x78, 0x3C, 0x3C, 0x1E, 0x1E, 0x0F, 0x1F,
|
||||
0x07, 0x8F, 0x07, 0xC7, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x78,
|
||||
0x78, 0x3C, 0x7C, 0x1E, 0x3C, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xF9, 0xE3, 0xE0, 0xF1, 0xF0, 0x78, 0xF0, 0x7C, 0x78, 0x3C, 0x3C,
|
||||
0x1E, 0x1E, 0x0F, 0x0F, 0x07, 0x8F, 0x83, 0xC7, 0xC1, 0xE3, 0xC1, 0xF1,
|
||||
0xE0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0F, 0xE0, 0x3F, 0xF0, 0x7F,
|
||||
0xF8, 0xFE, 0xFC, 0xF0, 0x3C, 0xF0, 0x1E, 0xF0, 0x1E, 0xF0, 0x1E, 0xF0,
|
||||
0x1C, 0xF0, 0x00, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F,
|
||||
0x80, 0x0F, 0xE0, 0x07, 0xF0, 0x03, 0xF8, 0x01, 0xF8, 0x00, 0xFC, 0x00,
|
||||
0x7E, 0x00, 0x3E, 0x20, 0x1E, 0xF0, 0x1E, 0xF0, 0x1F, 0xF0, 0x1F, 0xF0,
|
||||
0x1E, 0xF8, 0x1E, 0x7C, 0x3E, 0x3F, 0xFC, 0x3F, 0xF8, 0x0F, 0xF0, 0x00,
|
||||
0x80, 0x00, 0x80, 0x00, 0x80, 0x0F, 0x80, 0x1E, 0x00, 0x3F, 0xE0, 0x1C,
|
||||
0x00, 0x7F, 0xF0, 0x3C, 0x00, 0x78, 0xF0, 0x3C, 0x00, 0x78, 0x70, 0x38,
|
||||
0x00, 0xF0, 0x78, 0x38, 0x00, 0xF0, 0x78, 0x78, 0x00, 0xF0, 0x78, 0x78,
|
||||
0x00, 0xF0, 0x78, 0x70, 0x00, 0xF0, 0x78, 0x70, 0x00, 0xF0, 0x78, 0xF0,
|
||||
0x00, 0x70, 0x78, 0xF0, 0x00, 0x78, 0x70, 0xE0, 0x00, 0x78, 0xF1, 0xE0,
|
||||
0x00, 0x7F, 0xF1, 0xE0, 0x00, 0x3F, 0xE1, 0xC0, 0xF8, 0x1F, 0xC1, 0xC3,
|
||||
0xFE, 0x00, 0x03, 0xC7, 0xFE, 0x00, 0x03, 0xC7, 0x9F, 0x00, 0x03, 0x87,
|
||||
0x0F, 0x00, 0x07, 0x8F, 0x07, 0x00, 0x07, 0x8F, 0x07, 0x00, 0x07, 0x8F,
|
||||
0x07, 0x00, 0x07, 0x0F, 0x07, 0x00, 0x0F, 0x0F, 0x07, 0x00, 0x0F, 0x0F,
|
||||
0x07, 0x00, 0x0E, 0x0F, 0x07, 0x00, 0x0E, 0x0F, 0x0F, 0x00, 0x1E, 0x07,
|
||||
0x8F, 0x00, 0x1E, 0x07, 0xFF, 0x00, 0x1C, 0x03, 0xFE, 0x00, 0x3C, 0x01,
|
||||
0xFC, 0x07, 0xE0, 0x00, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xF7, 0xC0, 0x3C,
|
||||
0x3E, 0x03, 0xC1, 0xE0, 0x7C, 0x1E, 0x07, 0xC1, 0xE0, 0x3C, 0x3E, 0x03,
|
||||
0xC3, 0xC0, 0x3C, 0x3C, 0x01, 0xE7, 0x80, 0x1E, 0x70, 0x00, 0xEF, 0x00,
|
||||
0x0F, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xFC, 0x1F, 0x1F, 0xC1,
|
||||
0xE3, 0xDE, 0x1E, 0x7D, 0xF1, 0xE7, 0x8F, 0x1E, 0x78, 0x7B, 0xCF, 0x87,
|
||||
0xFC, 0xF8, 0x3F, 0xCF, 0x01, 0xF8, 0xF8, 0x1F, 0x87, 0x83, 0xFC, 0x7C,
|
||||
0x7F, 0xF7, 0xFF, 0xFF, 0x3F, 0xF9, 0xF0, 0xFE, 0x0F, 0xFE, 0xEE, 0xEE,
|
||||
0xEC, 0xCC, 0x07, 0x1F, 0x1F, 0x3C, 0x78, 0x78, 0x78, 0x70, 0xF0, 0xF0,
|
||||
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
|
||||
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x78, 0x78,
|
||||
0x78, 0x38, 0x3E, 0x1F, 0x0F, 0x01, 0xE0, 0xF0, 0xF8, 0x3C, 0x3C, 0x1E,
|
||||
0x1E, 0x1E, 0x1E, 0x1E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0E,
|
||||
0x1E, 0x1E, 0x1E, 0x1E, 0x1C, 0x3C, 0x7C, 0xF8, 0xF0, 0x80, 0x07, 0x00,
|
||||
0x38, 0x01, 0xC1, 0x0E, 0x2E, 0x73, 0x7F, 0x7D, 0xFF, 0xC1, 0xF0, 0x0F,
|
||||
0x80, 0xEC, 0x0E, 0x70, 0x71, 0xC7, 0x0E, 0x08, 0x40, 0x07, 0x80, 0x1E,
|
||||
0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFC, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01,
|
||||
0xE0, 0xFF, 0xFF, 0xF3, 0x36, 0xEC, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF,
|
||||
0xF0, 0x00, 0x70, 0x0F, 0x00, 0xF0, 0x0E, 0x00, 0xE0, 0x1E, 0x01, 0xE0,
|
||||
0x1C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x38, 0x07, 0x80, 0x78, 0x07, 0x00,
|
||||
0x70, 0x0F, 0x00, 0xF0, 0x0E, 0x01, 0xE0, 0x1E, 0x01, 0xE0, 0x1C, 0x03,
|
||||
0xC0, 0x3C, 0x03, 0xC0, 0x38, 0x07, 0x80, 0x78, 0x07, 0x00, 0x70, 0x0F,
|
||||
0x00, 0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x3F, 0x7E, 0x7C, 0x1E, 0x78,
|
||||
0x1E, 0xF8, 0x1F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8,
|
||||
0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8,
|
||||
0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8,
|
||||
0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0x78, 0x1F, 0x78, 0x1E, 0x7E, 0x3E, 0x3F,
|
||||
0xFC, 0x1F, 0xF8, 0x0F, 0xF0, 0x01, 0xC1, 0xF0, 0xFD, 0xFF, 0xFF, 0xFF,
|
||||
0xFC, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C,
|
||||
0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03,
|
||||
0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x07, 0xE0, 0x3F,
|
||||
0xF0, 0xFF, 0xF3, 0xFF, 0xE7, 0x83, 0xFF, 0x03, 0xFC, 0x07, 0xF8, 0x0F,
|
||||
0xF0, 0x1F, 0xE0, 0x3C, 0x00, 0x78, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0x80,
|
||||
0x1F, 0x00, 0x7C, 0x00, 0xF0, 0x03, 0xE0, 0x0F, 0x80, 0x1E, 0x00, 0x7C,
|
||||
0x01, 0xF0, 0x03, 0xC0, 0x0F, 0x80, 0x3E, 0x00, 0x78, 0x01, 0xF0, 0x03,
|
||||
0xC0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xE0, 0x7F,
|
||||
0xE1, 0xFF, 0xF3, 0xF7, 0xEF, 0x83, 0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x0F,
|
||||
0xF0, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xF0, 0x07, 0xC0, 0x7F, 0x00,
|
||||
0xFC, 0x01, 0xF8, 0x03, 0xF8, 0x01, 0xF8, 0x00, 0xF0, 0x01, 0xF0, 0x01,
|
||||
0xE0, 0x03, 0xC0, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F,
|
||||
0xC1, 0xFF, 0xC7, 0xCF, 0xFF, 0x8F, 0xFE, 0x0F, 0xF0, 0x00, 0xF8, 0x01,
|
||||
0xF8, 0x01, 0xF8, 0x03, 0xF8, 0x03, 0xF8, 0x03, 0xF8, 0x07, 0x78, 0x07,
|
||||
0x78, 0x0F, 0x78, 0x0E, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x3C, 0x78, 0x3C,
|
||||
0x78, 0x3C, 0x78, 0x78, 0x78, 0x78, 0x78, 0xF0, 0x78, 0xF0, 0x78, 0xF0,
|
||||
0x78, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x78, 0x00,
|
||||
0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00,
|
||||
0x78, 0x7F, 0xFC, 0xFF, 0xF9, 0xFF, 0xF3, 0xFF, 0xE7, 0x00, 0x0E, 0x00,
|
||||
0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x03, 0x84, 0x07,
|
||||
0x7F, 0x0F, 0xFF, 0x1F, 0xFF, 0x3C, 0x1F, 0x78, 0x1E, 0x00, 0x3C, 0x00,
|
||||
0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0xF8, 0x0F, 0xF0, 0x1F,
|
||||
0xE0, 0x3F, 0xC0, 0x7F, 0xC1, 0xF7, 0xC7, 0xCF, 0xFF, 0x8F, 0xFE, 0x0F,
|
||||
0xF0, 0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x3F, 0xFE, 0x7C, 0x1E, 0x78,
|
||||
0x1F, 0x78, 0x1F, 0x78, 0x0F, 0xF8, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0,
|
||||
0x00, 0xF0, 0x00, 0xF3, 0xF0, 0xF7, 0xFC, 0xFF, 0xFE, 0xFC, 0x3E, 0xF8,
|
||||
0x1E, 0xF0, 0x1F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0,
|
||||
0x0F, 0xF8, 0x0F, 0x78, 0x1F, 0x78, 0x1E, 0x78, 0x1E, 0x3E, 0x3E, 0x3F,
|
||||
0xFC, 0x1F, 0xF8, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0,
|
||||
0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03,
|
||||
0xC0, 0x1E, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x01, 0xE0,
|
||||
0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03,
|
||||
0xC0, 0x1E, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x07, 0xE0, 0x1F,
|
||||
0xF8, 0x3F, 0xFC, 0x7E, 0x7C, 0x78, 0x3E, 0x78, 0x1E, 0xF8, 0x1E, 0xF0,
|
||||
0x1E, 0xF0, 0x1E, 0xF8, 0x1E, 0x78, 0x1E, 0x78, 0x3E, 0x7C, 0x3C, 0x3F,
|
||||
0xFC, 0x1F, 0xF8, 0x0F, 0xF0, 0x3F, 0xF8, 0x7E, 0x7C, 0x78, 0x3E, 0xF8,
|
||||
0x1E, 0xF0, 0x1E, 0xF0, 0x1F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x1F, 0xF0,
|
||||
0x1E, 0xF0, 0x1E, 0x78, 0x1E, 0x7C, 0x3E, 0x7F, 0xFC, 0x3F, 0xF8, 0x0F,
|
||||
0xF0, 0x07, 0xC0, 0x3F, 0xE0, 0xFF, 0xE3, 0xF7, 0xE7, 0x83, 0xDF, 0x03,
|
||||
0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0xFF,
|
||||
0x01, 0xFE, 0x03, 0xFE, 0x07, 0xFC, 0x1F, 0x7F, 0xFE, 0x7F, 0xFC, 0x7F,
|
||||
0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0xF0, 0x1F,
|
||||
0xE0, 0x3F, 0xC0, 0x7F, 0xC1, 0xE7, 0xC7, 0xCF, 0xFF, 0x0F, 0xFE, 0x07,
|
||||
0xF0, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xF8,
|
||||
0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFE,
|
||||
0x33, 0x9B, 0xC8, 0x00, 0x20, 0x04, 0x01, 0x80, 0xF0, 0x3E, 0x1F, 0x87,
|
||||
0xE1, 0xF8, 0xFC, 0x1F, 0x03, 0x80, 0x7C, 0x0F, 0xC0, 0xFC, 0x07, 0xE0,
|
||||
0x7E, 0x03, 0xE0, 0x3C, 0x03, 0x80, 0x10, 0x02, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
|
||||
0x0C, 0x00, 0xE0, 0x0F, 0x80, 0xFC, 0x07, 0xE0, 0x1F, 0x80, 0xFC, 0x03,
|
||||
0xF0, 0x1F, 0x00, 0xF0, 0x1F, 0x03, 0xF0, 0xFC, 0x1F, 0x87, 0xE0, 0xFC,
|
||||
0x0F, 0x80, 0xE0, 0x0C, 0x00, 0x80, 0x00, 0x0F, 0xE0, 0x3F, 0xF0, 0xFF,
|
||||
0xF3, 0xFF, 0xEF, 0x83, 0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1F,
|
||||
0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0x80, 0x1F, 0x00,
|
||||
0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x00, 0xF0, 0x01, 0xE0,
|
||||
0x03, 0xC0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00,
|
||||
0x1F, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0xE0, 0x03,
|
||||
0xF8, 0x01, 0xF0, 0x07, 0xE0, 0x00, 0xF8, 0x0F, 0xC0, 0x00, 0x7C, 0x0F,
|
||||
0x00, 0x00, 0x3C, 0x1F, 0x00, 0x60, 0x1C, 0x1E, 0x03, 0xFF, 0x1E, 0x3C,
|
||||
0x07, 0xFF, 0x0E, 0x3C, 0x0F, 0xFF, 0x0E, 0x78, 0x1F, 0x0F, 0x0F, 0x78,
|
||||
0x1E, 0x0E, 0x07, 0x78, 0x3E, 0x1E, 0x07, 0x78, 0x3C, 0x1E, 0x07, 0x70,
|
||||
0x3C, 0x1E, 0x07, 0xF0, 0x78, 0x1E, 0x07, 0xF0, 0x78, 0x1E, 0x0E, 0xF0,
|
||||
0x78, 0x1C, 0x0E, 0xF0, 0x78, 0x1C, 0x0E, 0xF0, 0x78, 0x3C, 0x0E, 0xF0,
|
||||
0x78, 0x3C, 0x1C, 0xF0, 0x78, 0x7C, 0x1C, 0x70, 0x7C, 0xFC, 0x38, 0x78,
|
||||
0x3F, 0xDC, 0xF0, 0x78, 0x1F, 0xDF, 0xE0, 0x78, 0x0F, 0x8F, 0x80, 0x3C,
|
||||
0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1F,
|
||||
0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x07, 0xF8, 0x03, 0x00, 0x03,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x1F, 0xFE, 0x00, 0x03,
|
||||
0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xF0, 0x01, 0xFC,
|
||||
0x00, 0x7F, 0x00, 0x1D, 0xC0, 0x07, 0x78, 0x01, 0xDE, 0x00, 0xF7, 0x80,
|
||||
0x3C, 0xE0, 0x0F, 0x38, 0x03, 0x8F, 0x01, 0xE3, 0xC0, 0x78, 0xF0, 0x1E,
|
||||
0x3C, 0x07, 0x87, 0x01, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0xFF,
|
||||
0x83, 0xFF, 0xF0, 0xFF, 0xFC, 0x78, 0x0F, 0x1E, 0x03, 0xC7, 0x80, 0xF1,
|
||||
0xE0, 0x1E, 0xF8, 0x07, 0xBC, 0x01, 0xEF, 0x00, 0x7B, 0xC0, 0x1F, 0xFF,
|
||||
0xE0, 0x7F, 0xFC, 0x3F, 0xFF, 0x1F, 0xFF, 0xCF, 0x81, 0xF7, 0xC0, 0x7B,
|
||||
0xE0, 0x3D, 0xF0, 0x1E, 0xF8, 0x0F, 0x7C, 0x07, 0xBE, 0x03, 0xDF, 0x01,
|
||||
0xEF, 0x81, 0xE7, 0xC7, 0xF3, 0xFF, 0xE1, 0xFF, 0xF0, 0xFF, 0xFE, 0x7C,
|
||||
0x1F, 0xBE, 0x03, 0xDF, 0x01, 0xFF, 0x80, 0x7F, 0xC0, 0x3F, 0xE0, 0x1F,
|
||||
0xF0, 0x0F, 0xF8, 0x07, 0xFC, 0x03, 0xFE, 0x03, 0xFF, 0x01, 0xEF, 0x83,
|
||||
0xF7, 0xFF, 0xF3, 0xFF, 0xF1, 0xFF, 0xE0, 0x07, 0xF0, 0x1F, 0xFC, 0x3F,
|
||||
0xFE, 0x7F, 0x7E, 0x7C, 0x1F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF0, 0x0F, 0xF0,
|
||||
0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x00, 0xF0, 0x00, 0xF0,
|
||||
0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0,
|
||||
0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF8, 0x0F, 0xF8,
|
||||
0x0F, 0x78, 0x1F, 0x7E, 0x3E, 0x3F, 0xFE, 0x1F, 0xFC, 0x0F, 0xF8, 0xFF,
|
||||
0xC0, 0x7F, 0xFC, 0x3F, 0xFF, 0x9F, 0xFF, 0xCF, 0x81, 0xF7, 0xC0, 0x7B,
|
||||
0xE0, 0x3D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01,
|
||||
0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC,
|
||||
0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F,
|
||||
0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xBE, 0x03, 0xDF, 0x03, 0xEF, 0x83,
|
||||
0xE7, 0xFF, 0xF3, 0xFF, 0xF1, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E,
|
||||
0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xFF, 0x9F, 0xFC, 0xFF, 0xE7, 0xC0,
|
||||
0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07,
|
||||
0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00,
|
||||
0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xFF, 0x9F,
|
||||
0xFC, 0xFF, 0xE7, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0,
|
||||
0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03,
|
||||
0xE0, 0x1F, 0x00, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x8F, 0xEF, 0xE7,
|
||||
0x81, 0xF7, 0xC0, 0x7B, 0xE0, 0x3D, 0xE0, 0x1F, 0xF0, 0x0F, 0xF8, 0x07,
|
||||
0xFC, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0,
|
||||
0x00, 0xF0, 0x7F, 0xF8, 0x3F, 0xFC, 0x1F, 0xFE, 0x00, 0xFF, 0x00, 0x7F,
|
||||
0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xFC, 0x03, 0xFE, 0x03,
|
||||
0xEF, 0x01, 0xF7, 0xE3, 0xF9, 0xFF, 0xDC, 0x7F, 0xCE, 0x1F, 0xC7, 0xF8,
|
||||
0x07, 0xFC, 0x03, 0xFE, 0x01, 0xFF, 0x00, 0xFF, 0x80, 0x7F, 0xC0, 0x3F,
|
||||
0xE0, 0x1F, 0xF0, 0x0F, 0xF8, 0x07, 0xFC, 0x03, 0xFE, 0x01, 0xFF, 0x00,
|
||||
0xFF, 0x80, 0x7F, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
|
||||
0x03, 0xFE, 0x01, 0xFF, 0x00, 0xFF, 0x80, 0x7F, 0xC0, 0x3F, 0xE0, 0x1F,
|
||||
0xF0, 0x0F, 0xF8, 0x07, 0xFC, 0x03, 0xFE, 0x01, 0xFF, 0x00, 0xFF, 0x80,
|
||||
0x7F, 0xC0, 0x3F, 0xE0, 0x1F, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
|
||||
0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0,
|
||||
0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C,
|
||||
0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0xFB, 0xFF, 0xFD, 0xFC, 0xF8,
|
||||
0x00, 0xF8, 0x0F, 0x7C, 0x07, 0xBE, 0x07, 0x9F, 0x03, 0xCF, 0x83, 0xC7,
|
||||
0xC1, 0xE3, 0xE1, 0xF1, 0xF0, 0xF0, 0xF8, 0xF8, 0x7C, 0x78, 0x3E, 0x7C,
|
||||
0x1F, 0x3C, 0x0F, 0xBE, 0x07, 0xDE, 0x03, 0xFF, 0x01, 0xFF, 0xC0, 0xFF,
|
||||
0xE0, 0x7F, 0xF0, 0x3F, 0x7C, 0x1F, 0x9E, 0x0F, 0x8F, 0x87, 0xC3, 0xC3,
|
||||
0xE1, 0xE1, 0xF0, 0x78, 0xF8, 0x3C, 0x7C, 0x1F, 0x3E, 0x07, 0x9F, 0x03,
|
||||
0xCF, 0x80, 0xF7, 0xC0, 0x7B, 0xE0, 0x3F, 0xF0, 0x0F, 0xF8, 0x07, 0xC0,
|
||||
0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07,
|
||||
0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8,
|
||||
0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00,
|
||||
0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7F, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x78, 0x00, 0xFB, 0xE0, 0x07, 0xDF, 0x00, 0x3E, 0xF8, 0x01, 0xF7,
|
||||
0xC0, 0x0F, 0xBE, 0x00, 0xFD, 0xF8, 0x07, 0xEF, 0xC0, 0x3F, 0x7E, 0x01,
|
||||
0xFB, 0xF0, 0x0D, 0xDD, 0xC0, 0xEE, 0xEE, 0x07, 0x77, 0x70, 0x3B, 0xBB,
|
||||
0x81, 0xDD, 0xCC, 0x1C, 0xEE, 0x70, 0xE7, 0x73, 0x87, 0x3B, 0x9C, 0x39,
|
||||
0xDC, 0x61, 0x8E, 0xE3, 0x9C, 0x77, 0x1C, 0xE3, 0xB8, 0xE7, 0x1D, 0xC7,
|
||||
0x30, 0xEE, 0x1B, 0x87, 0x70, 0xFC, 0x3B, 0x87, 0xE1, 0xFC, 0x3E, 0x0F,
|
||||
0xE0, 0xF0, 0x7F, 0x07, 0x83, 0xF8, 0x3C, 0x1F, 0xC1, 0xE0, 0xFE, 0x06,
|
||||
0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xFC,
|
||||
0x0F, 0xFC, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xFF, 0x0F, 0xF7,
|
||||
0x0F, 0xF7, 0x8F, 0xF3, 0x8F, 0xF3, 0xCF, 0xF3, 0xCF, 0xF1, 0xCF, 0xF1,
|
||||
0xEF, 0xF0, 0xEF, 0xF0, 0xFF, 0xF0, 0x7F, 0xF0, 0x7F, 0xF0, 0x7F, 0xF0,
|
||||
0x3F, 0xF0, 0x3F, 0xF0, 0x1F, 0xF0, 0x1F, 0xF0, 0x1F, 0xF0, 0x0F, 0xF0,
|
||||
0x0F, 0xF0, 0x07, 0xF0, 0x07, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x8F,
|
||||
0xEF, 0xE7, 0xC0, 0xF7, 0xC0, 0x7F, 0xE0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07,
|
||||
0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x00, 0xFF, 0x00, 0x7F, 0x80, 0x3F, 0xC0,
|
||||
0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x00, 0xFF,
|
||||
0x00, 0x7F, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xFC, 0x03,
|
||||
0xFE, 0x03, 0xEF, 0x01, 0xE7, 0xE1, 0xF1, 0xFF, 0xF0, 0x7F, 0xF0, 0x1F,
|
||||
0xF0, 0xFF, 0xE0, 0xFF, 0xF8, 0xFF, 0xFC, 0xF9, 0xFE, 0xF8, 0x1E, 0xF8,
|
||||
0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8,
|
||||
0x0F, 0xF8, 0x1F, 0xF8, 0x3E, 0xFF, 0xFE, 0xFF, 0xFC, 0xFF, 0xF0, 0xF8,
|
||||
0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8,
|
||||
0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8,
|
||||
0x00, 0xF8, 0x00, 0xF8, 0x00, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x8F,
|
||||
0xEF, 0xE7, 0xC0, 0xF7, 0xC0, 0x7F, 0xE0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07,
|
||||
0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x00, 0xFF, 0x00, 0x7F, 0x80, 0x3F, 0xC0,
|
||||
0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x00, 0xFF,
|
||||
0x00, 0x7F, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xFC, 0x03,
|
||||
0xFE, 0x03, 0xEF, 0x01, 0xE7, 0xE1, 0xF1, 0xFF, 0xF0, 0x7F, 0xF0, 0x1F,
|
||||
0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x60,
|
||||
0x00, 0x10, 0xFF, 0xC0, 0x7F, 0xFC, 0x3F, 0xFF, 0x1F, 0x3F, 0xCF, 0x81,
|
||||
0xE7, 0xC0, 0xFB, 0xE0, 0x3D, 0xF0, 0x1E, 0xF8, 0x0F, 0x7C, 0x07, 0xBE,
|
||||
0x03, 0xDF, 0x03, 0xEF, 0x81, 0xF7, 0xC3, 0xF3, 0xFF, 0xF9, 0xFF, 0xF8,
|
||||
0xFF, 0xF0, 0x7C, 0x7C, 0x3E, 0x1E, 0x1F, 0x0F, 0x0F, 0x87, 0xC7, 0xC1,
|
||||
0xE3, 0xE0, 0xF1, 0xF0, 0x78, 0xF8, 0x3E, 0x7C, 0x0F, 0x3E, 0x07, 0x9F,
|
||||
0x03, 0xCF, 0x80, 0xF7, 0xC0, 0x7B, 0xE0, 0x3D, 0xF0, 0x1F, 0x0F, 0xC0,
|
||||
0x3F, 0xF0, 0x7F, 0xF8, 0xFC, 0xFC, 0xF0, 0x3C, 0xF0, 0x3E, 0xF0, 0x1E,
|
||||
0xF0, 0x1E, 0xF0, 0x1C, 0xF0, 0x00, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00,
|
||||
0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xE0, 0x07, 0xF0, 0x03, 0xF8, 0x01, 0xF8,
|
||||
0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3E, 0x20, 0x1E, 0xF0, 0x1E, 0xF0, 0x1F,
|
||||
0xF0, 0x1F, 0xF0, 0x1E, 0xF8, 0x1E, 0x7C, 0x3E, 0x3F, 0xFC, 0x3F, 0xF8,
|
||||
0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x78, 0x00,
|
||||
0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C,
|
||||
0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00,
|
||||
0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07,
|
||||
0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0,
|
||||
0x03, 0xC0, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x00, 0xFF, 0x00,
|
||||
0x7F, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC,
|
||||
0x01, 0xFE, 0x00, 0xFF, 0x00, 0x7F, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F,
|
||||
0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x00, 0xFF, 0x00, 0x7F, 0x80,
|
||||
0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF8, 0x07, 0xFC, 0x03, 0xDE, 0x03, 0xEF,
|
||||
0x81, 0xE7, 0xE1, 0xF1, 0xFF, 0xF0, 0x7F, 0xF8, 0x1F, 0xF0, 0xF0, 0x03,
|
||||
0xFC, 0x00, 0xFF, 0x80, 0x79, 0xE0, 0x1E, 0x78, 0x07, 0x9E, 0x01, 0xE7,
|
||||
0x80, 0x78, 0xF0, 0x3C, 0x3C, 0x0F, 0x0F, 0x03, 0xC3, 0xC0, 0xF0, 0xF0,
|
||||
0x38, 0x1E, 0x1E, 0x07, 0x87, 0x81, 0xE1, 0xE0, 0x78, 0x78, 0x0F, 0x1C,
|
||||
0x03, 0xCF, 0x00, 0xF3, 0xC0, 0x3C, 0xF0, 0x0F, 0x38, 0x01, 0xFE, 0x00,
|
||||
0x7F, 0x80, 0x1F, 0xE0, 0x07, 0xF8, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xC0, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x07, 0x80, 0xF0, 0x0E,
|
||||
0x03, 0xDC, 0x03, 0x80, 0xF7, 0x01, 0xE0, 0x3D, 0xE0, 0x78, 0x0F, 0x78,
|
||||
0x1F, 0x03, 0x9E, 0x07, 0xC0, 0xE7, 0x81, 0xF0, 0x38, 0xE0, 0xFC, 0x1E,
|
||||
0x38, 0x3F, 0x07, 0x8E, 0x0E, 0xE1, 0xE3, 0xC3, 0xB8, 0x78, 0xF0, 0xEE,
|
||||
0x1C, 0x3C, 0x7B, 0x87, 0x07, 0x1C, 0xE1, 0xC1, 0xC7, 0x1C, 0xF0, 0x71,
|
||||
0xC7, 0x3C, 0x1E, 0x71, 0xCF, 0x07, 0x9C, 0x73, 0x81, 0xEF, 0x1C, 0xE0,
|
||||
0x3B, 0x87, 0xB8, 0x0E, 0xE0, 0xEE, 0x03, 0xB8, 0x3F, 0x80, 0xEE, 0x0F,
|
||||
0xE0, 0x3F, 0x83, 0xF0, 0x0F, 0xC0, 0xFC, 0x01, 0xF0, 0x1F, 0x00, 0x7C,
|
||||
0x07, 0xC0, 0x1F, 0x01, 0xF0, 0x07, 0xC0, 0x7C, 0x01, 0xE0, 0x1E, 0x00,
|
||||
0x78, 0x03, 0x80, 0x1E, 0x00, 0xE0, 0xF0, 0x07, 0xF8, 0x07, 0xDE, 0x03,
|
||||
0xCF, 0x01, 0xE7, 0xC1, 0xE1, 0xE0, 0xF0, 0xF0, 0xF0, 0x3C, 0x78, 0x1E,
|
||||
0x3C, 0x07, 0xBC, 0x03, 0xDE, 0x01, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x00,
|
||||
0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x03, 0xF0, 0x01, 0xFC, 0x01, 0xFE,
|
||||
0x00, 0xFF, 0x00, 0x7B, 0xC0, 0x79, 0xE0, 0x3C, 0x78, 0x3C, 0x3C, 0x1E,
|
||||
0x1F, 0x0F, 0x07, 0x8F, 0x03, 0xC7, 0x80, 0xF7, 0xC0, 0x7B, 0xC0, 0x1F,
|
||||
0xE0, 0x0F, 0xF8, 0x03, 0xDE, 0x00, 0xF7, 0x80, 0x3C, 0xF0, 0x1E, 0x3C,
|
||||
0x07, 0x8F, 0x01, 0xE1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x03, 0xC7,
|
||||
0x80, 0xF1, 0xE0, 0x3C, 0x78, 0x07, 0x3C, 0x01, 0xEF, 0x00, 0x7B, 0xC0,
|
||||
0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01,
|
||||
0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C,
|
||||
0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00,
|
||||
0x07, 0xC0, 0x7F, 0xFE, 0xFF, 0xFD, 0xFF, 0xF0, 0x01, 0xE0, 0x07, 0xC0,
|
||||
0x0F, 0x00, 0x1E, 0x00, 0x7C, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F,
|
||||
0x00, 0x3E, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0x80, 0x0F, 0x00,
|
||||
0x3E, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xC0, 0x07, 0x80, 0x1F, 0x00, 0x3C,
|
||||
0x00, 0x78, 0x01, 0xF0, 0x03, 0xC0, 0x07, 0x80, 0x1F, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8,
|
||||
0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F,
|
||||
0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xC3,
|
||||
0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xFF, 0xFE, 0xF0, 0x0F,
|
||||
0x00, 0x70, 0x07, 0x80, 0x78, 0x03, 0x80, 0x38, 0x03, 0xC0, 0x3C, 0x01,
|
||||
0xC0, 0x1C, 0x01, 0xE0, 0x1E, 0x00, 0xE0, 0x0F, 0x00, 0xF0, 0x0F, 0x00,
|
||||
0x70, 0x07, 0x80, 0x78, 0x03, 0x80, 0x38, 0x03, 0xC0, 0x3C, 0x01, 0xC0,
|
||||
0x1E, 0x01, 0xE0, 0x1E, 0x00, 0xE0, 0x0F, 0x00, 0xF0, 0x07, 0xFF, 0xFF,
|
||||
0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE1, 0xF0,
|
||||
0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E,
|
||||
0x1F, 0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87,
|
||||
0xC3, 0xE1, 0xF0, 0xFF, 0xFF, 0xFE, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x80,
|
||||
0x7F, 0x00, 0xEF, 0x03, 0xDE, 0x07, 0x9C, 0x0E, 0x3C, 0x3C, 0x78, 0x78,
|
||||
0x79, 0xE0, 0xF3, 0xC0, 0xEF, 0x01, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
|
||||
0xF0, 0xF1, 0xE1, 0xC1, 0xC3, 0x83, 0x06, 0x0F, 0x81, 0xFF, 0x1F, 0xFD,
|
||||
0xF3, 0xEF, 0x0F, 0x78, 0x7F, 0xC1, 0xE2, 0x0F, 0x00, 0x78, 0x0F, 0xC1,
|
||||
0xFE, 0x3E, 0xF3, 0xE7, 0xBC, 0x3F, 0xE1, 0xFE, 0x0F, 0xF0, 0x7F, 0x83,
|
||||
0xFC, 0x3F, 0xF3, 0xFF, 0xF7, 0xBF, 0xBC, 0xF9, 0xE0, 0xF0, 0x03, 0xC0,
|
||||
0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0,
|
||||
0x03, 0xCF, 0x8F, 0x7F, 0x3F, 0xFE, 0xFC, 0xFB, 0xC1, 0xEF, 0x07, 0xFC,
|
||||
0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF,
|
||||
0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x07, 0xFC, 0x1E, 0xF8, 0x7B,
|
||||
0xFF, 0xEF, 0x7F, 0x3C, 0xF8, 0x1F, 0x81, 0xFF, 0x1F, 0xFD, 0xF1, 0xEF,
|
||||
0x0F, 0x78, 0x3B, 0xC1, 0xDE, 0x0F, 0xF0, 0x7F, 0x80, 0x3C, 0x01, 0xE0,
|
||||
0x0F, 0x00, 0x78, 0x03, 0xC1, 0xFE, 0x0F, 0xF0, 0x77, 0x83, 0xBC, 0x3D,
|
||||
0xF1, 0xE7, 0xFF, 0x3F, 0xF0, 0xFF, 0x00, 0x00, 0x78, 0x03, 0xC0, 0x1E,
|
||||
0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0xF3, 0xCF,
|
||||
0xFE, 0xFF, 0xFF, 0xDF, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0x83,
|
||||
0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F,
|
||||
0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x8F, 0xBF, 0xFD, 0xFF, 0xE7, 0xEF, 0x1F,
|
||||
0x81, 0xFF, 0x1F, 0xFD, 0xF1, 0xEF, 0x0F, 0x78, 0x3F, 0xC1, 0xFE, 0x0F,
|
||||
0xF0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x78, 0x03, 0xC0, 0x1E,
|
||||
0x0F, 0xF0, 0x7F, 0x83, 0xFC, 0x3F, 0xF1, 0xE7, 0xFF, 0x3F, 0xF0, 0x7F,
|
||||
0x00, 0x01, 0x83, 0xF1, 0xFC, 0x7F, 0x1E, 0x0F, 0x83, 0xE0, 0xF8, 0xFF,
|
||||
0xFF, 0xFF, 0xFC, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83,
|
||||
0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8,
|
||||
0x3E, 0x0F, 0x83, 0xE0, 0x07, 0xC3, 0x0F, 0xF3, 0x8F, 0xFF, 0xEF, 0x0F,
|
||||
0x87, 0x87, 0x83, 0xC1, 0xC1, 0xC0, 0xE0, 0xE0, 0x70, 0x70, 0x38, 0x38,
|
||||
0x1C, 0x1E, 0x0E, 0x0F, 0x0F, 0x07, 0x87, 0x81, 0xFF, 0x80, 0x7F, 0x80,
|
||||
0x3F, 0x80, 0x38, 0x00, 0x38, 0x00, 0x1F, 0x00, 0x0F, 0xFE, 0x07, 0xFF,
|
||||
0xC0, 0xFF, 0xE1, 0xC0, 0xF9, 0xE0, 0x3C, 0xE0, 0x0E, 0x78, 0x0F, 0x3E,
|
||||
0x0F, 0x9F, 0xFF, 0x87, 0xFF, 0x80, 0xFF, 0x00, 0xF0, 0x07, 0x80, 0x3C,
|
||||
0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x87,
|
||||
0xBC, 0xFF, 0xEF, 0xFF, 0xEF, 0xFC, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F,
|
||||
0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0,
|
||||
0x7F, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F,
|
||||
0xFF, 0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F, 0x0F, 0x0F, 0x0F, 0x00,
|
||||
0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x1F, 0xBF, 0xFE, 0xFC, 0x70, 0xF0, 0x01, 0xE0, 0x03, 0xC0,
|
||||
0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01,
|
||||
0xE0, 0x7F, 0xC0, 0xF7, 0x83, 0xEF, 0x07, 0x9E, 0x1E, 0x3C, 0x7C, 0x78,
|
||||
0xF0, 0xF3, 0xE1, 0xEF, 0x83, 0xDF, 0x07, 0xFE, 0x0F, 0xFC, 0x1F, 0xBC,
|
||||
0x3E, 0x78, 0x78, 0xF8, 0xF0, 0xF1, 0xE1, 0xE3, 0xC1, 0xE7, 0x83, 0xCF,
|
||||
0x07, 0x9E, 0x07, 0xBC, 0x0F, 0x78, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xF1, 0xE0, 0xF9, 0xEF, 0xE7, 0xFB, 0xFF, 0xFF, 0xF7,
|
||||
0xC3, 0xF1, 0xEF, 0x07, 0x81, 0xFE, 0x0F, 0x03, 0xFC, 0x1E, 0x07, 0xF8,
|
||||
0x3C, 0x0F, 0xF0, 0x78, 0x1F, 0xE0, 0xF0, 0x3F, 0xC1, 0xE0, 0x7F, 0x83,
|
||||
0xC0, 0xFF, 0x07, 0x81, 0xFE, 0x0F, 0x03, 0xFC, 0x1E, 0x07, 0xF8, 0x3C,
|
||||
0x0F, 0xF0, 0x78, 0x1F, 0xE0, 0xF0, 0x3F, 0xC1, 0xE0, 0x7F, 0x83, 0xC0,
|
||||
0xFF, 0x07, 0x81, 0xFE, 0x0F, 0x03, 0xFC, 0x1E, 0x07, 0x80, 0xF1, 0xF7,
|
||||
0x9F, 0xFF, 0xFF, 0xFD, 0xFF, 0x87, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0,
|
||||
0x7F, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F,
|
||||
0xF0, 0x7F, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xE0,
|
||||
0x1F, 0x81, 0xFF, 0x1F, 0xFD, 0xF1, 0xEF, 0x0F, 0x78, 0x3F, 0xC1, 0xFE,
|
||||
0x0F, 0xF0, 0x7F, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1,
|
||||
0xFE, 0x0F, 0xF0, 0x7F, 0x83, 0xFC, 0x3F, 0xF1, 0xE7, 0xFF, 0x3F, 0xF0,
|
||||
0x7F, 0x00, 0xF1, 0xE3, 0xDF, 0xCF, 0xFF, 0xBF, 0x3E, 0xF0, 0x7B, 0xC1,
|
||||
0xFF, 0x07, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0,
|
||||
0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x7F, 0xC1, 0xFF, 0x07, 0xBE,
|
||||
0x1E, 0xFF, 0xFB, 0xFF, 0xCF, 0x3E, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F,
|
||||
0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x00, 0x1E, 0x79, 0xFF, 0xDF, 0xFE,
|
||||
0xFB, 0xFF, 0x87, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0x83, 0xFC,
|
||||
0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0x83,
|
||||
0xFC, 0x1F, 0xF1, 0xF7, 0xFF, 0xBF, 0xFC, 0xFD, 0xE0, 0x0F, 0x00, 0x78,
|
||||
0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0xF0, 0xFC, 0xFF, 0x7F,
|
||||
0xFF, 0xFE, 0x7E, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0,
|
||||
0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F,
|
||||
0x00, 0x0F, 0x81, 0xFE, 0x1F, 0xF8, 0xF1, 0xE7, 0x07, 0x38, 0x39, 0xC1,
|
||||
0x8F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x80, 0x7E, 0x01, 0xF0,
|
||||
0x07, 0xC0, 0x1E, 0x30, 0x7F, 0x83, 0xFC, 0x1E, 0xF1, 0xE7, 0xFF, 0x1F,
|
||||
0xF0, 0x7F, 0x00, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x0F, 0xFF,
|
||||
0xFF, 0xFF, 0xCF, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C,
|
||||
0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x81,
|
||||
0xFC, 0x7F, 0x0F, 0xC0, 0xF0, 0x7F, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07,
|
||||
0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0x83, 0xFC, 0x1F, 0xE0, 0xFF,
|
||||
0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0x83, 0xFC, 0x1F, 0xF1,
|
||||
0xFF, 0xFF, 0xFF, 0xBD, 0xF9, 0xE0, 0xF0, 0x7F, 0xC1, 0xEF, 0x07, 0xBC,
|
||||
0x1E, 0xF0, 0x79, 0xE1, 0xE7, 0x8F, 0x1E, 0x3C, 0x78, 0xF1, 0xE3, 0xC3,
|
||||
0x8F, 0x0F, 0x38, 0x3C, 0xE0, 0xF7, 0x83, 0xDE, 0x07, 0x78, 0x1D, 0xC0,
|
||||
0x77, 0x01, 0xFC, 0x07, 0xF0, 0x0F, 0xC0, 0x3E, 0x00, 0xF8, 0x00, 0xF0,
|
||||
0x70, 0x7F, 0x83, 0x83, 0xFC, 0x3E, 0x1E, 0xE1, 0xF0, 0xE7, 0x0F, 0x87,
|
||||
0x38, 0x7C, 0x39, 0xC3, 0xE1, 0xCF, 0x1B, 0x1E, 0x79, 0xDC, 0xF1, 0xCE,
|
||||
0xE7, 0x0E, 0x77, 0x38, 0x73, 0xB9, 0xC3, 0x9C, 0xCE, 0x1C, 0xC7, 0x70,
|
||||
0xFE, 0x3F, 0x83, 0xF1, 0xF8, 0x1F, 0x8F, 0xC0, 0xFC, 0x3E, 0x07, 0xC1,
|
||||
0xF0, 0x3E, 0x0F, 0x81, 0xF0, 0x7C, 0x0F, 0x83, 0xC0, 0x3C, 0x0E, 0x00,
|
||||
0xF8, 0x1E, 0xF0, 0x79, 0xE0, 0xF1, 0xE3, 0xC3, 0xC7, 0x83, 0xCE, 0x07,
|
||||
0xBC, 0x07, 0xF8, 0x0F, 0xE0, 0x0F, 0xC0, 0x1F, 0x00, 0x3E, 0x00, 0x7C,
|
||||
0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x1E, 0xF0, 0x3D, 0xE0, 0xF1, 0xE1,
|
||||
0xE3, 0xC7, 0x83, 0xCF, 0x07, 0xBE, 0x07, 0x80, 0xF8, 0x1E, 0xF0, 0x7D,
|
||||
0xE0, 0xF3, 0xC1, 0xE7, 0x83, 0xC7, 0x87, 0x8F, 0x0F, 0x1E, 0x3C, 0x3C,
|
||||
0x78, 0x38, 0xF0, 0x79, 0xE0, 0xF3, 0x81, 0xE7, 0x01, 0xDE, 0x03, 0xBC,
|
||||
0x07, 0x78, 0x0F, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7C, 0x00,
|
||||
0xF8, 0x00, 0xF0, 0x01, 0xE0, 0x03, 0x80, 0x7F, 0x00, 0xFE, 0x01, 0xF0,
|
||||
0x03, 0x00, 0x00, 0x7F, 0xF7, 0xFF, 0x7F, 0xF7, 0xFE, 0x01, 0xE0, 0x3E,
|
||||
0x03, 0xC0, 0x3C, 0x07, 0x80, 0x78, 0x0F, 0x80, 0xF0, 0x1F, 0x01, 0xE0,
|
||||
0x1E, 0x03, 0xC0, 0x3C, 0x07, 0xC0, 0x78, 0x07, 0x80, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xF0, 0x0F, 0x8F, 0xCF, 0xE7, 0xC3, 0xC1, 0xE0, 0xF0, 0x78, 0x3C,
|
||||
0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x3E, 0x3E, 0x1E,
|
||||
0x0F, 0x83, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0,
|
||||
0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xF9, 0xFC, 0x7E, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x7E, 0x3F, 0x07, 0xC3, 0xE1, 0xF0,
|
||||
0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x1E,
|
||||
0x0F, 0x07, 0xE1, 0xF0, 0xF8, 0xF8, 0x78, 0x7C, 0x3E, 0x1F, 0x0F, 0x87,
|
||||
0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xCF, 0xC7, 0xE3,
|
||||
0xE0, 0x0C, 0x00, 0x7E, 0x09, 0xFF, 0xFF, 0xFF, 0xE6, 0x1F, 0x80, 0x0E,
|
||||
0x00 };
|
||||
|
||||
const GFXglyph Oswald_Regular20pt7bGlyphs[] PROGMEM = {
|
||||
{ 0, 1, 1, 9, 0, 0 }, // 0x20 ' '
|
||||
{ 1, 4, 32, 8, 2, -31 }, // 0x21 '!'
|
||||
{ 17, 9, 10, 10, 1, -31 }, // 0x22 '"'
|
||||
{ 29, 17, 32, 19, 1, -31 }, // 0x23 '#'
|
||||
{ 97, 16, 38, 19, 2, -34 }, // 0x24 '$'
|
||||
{ 173, 32, 32, 35, 1, -31 }, // 0x25 '%'
|
||||
{ 301, 20, 32, 24, 2, -31 }, // 0x26 '&'
|
||||
{ 381, 4, 10, 5, 1, -31 }, // 0x27 '''
|
||||
{ 386, 8, 40, 12, 3, -31 }, // 0x28 '('
|
||||
{ 426, 8, 40, 10, 1, -31 }, // 0x29 ')'
|
||||
{ 466, 13, 14, 16, 2, -31 }, // 0x2A '*'
|
||||
{ 489, 14, 16, 16, 1, -23 }, // 0x2B '+'
|
||||
{ 517, 4, 10, 7, 2, -4 }, // 0x2C ','
|
||||
{ 522, 9, 3, 13, 2, -12 }, // 0x2D '-'
|
||||
{ 526, 4, 5, 7, 2, -4 }, // 0x2E '.'
|
||||
{ 529, 12, 32, 14, 1, -31 }, // 0x2F '/'
|
||||
{ 577, 16, 32, 20, 2, -31 }, // 0x30 '0'
|
||||
{ 641, 10, 32, 16, 1, -31 }, // 0x31 '1'
|
||||
{ 681, 15, 32, 19, 2, -31 }, // 0x32 '2'
|
||||
{ 741, 15, 32, 19, 2, -31 }, // 0x33 '3'
|
||||
{ 801, 16, 32, 19, 2, -31 }, // 0x34 '4'
|
||||
{ 865, 15, 32, 19, 2, -31 }, // 0x35 '5'
|
||||
{ 925, 16, 32, 20, 2, -31 }, // 0x36 '6'
|
||||
{ 989, 13, 32, 15, 1, -31 }, // 0x37 '7'
|
||||
{ 1041, 16, 32, 20, 2, -31 }, // 0x38 '8'
|
||||
{ 1105, 15, 32, 20, 2, -31 }, // 0x39 '9'
|
||||
{ 1165, 5, 17, 8, 2, -20 }, // 0x3A ':'
|
||||
{ 1176, 5, 24, 8, 2, -21 }, // 0x3B ';'
|
||||
{ 1191, 11, 21, 15, 1, -21 }, // 0x3C '<'
|
||||
{ 1220, 12, 10, 16, 2, -20 }, // 0x3D '='
|
||||
{ 1235, 12, 21, 15, 2, -21 }, // 0x3E '>'
|
||||
{ 1267, 15, 32, 19, 2, -31 }, // 0x3F '?'
|
||||
{ 1327, 32, 37, 35, 2, -31 }, // 0x40 '@'
|
||||
{ 1475, 18, 32, 19, 1, -31 }, // 0x41 'A'
|
||||
{ 1547, 17, 32, 21, 2, -31 }, // 0x42 'B'
|
||||
{ 1615, 16, 32, 20, 2, -31 }, // 0x43 'C'
|
||||
{ 1679, 17, 32, 21, 2, -31 }, // 0x44 'D'
|
||||
{ 1747, 13, 32, 16, 2, -31 }, // 0x45 'E'
|
||||
{ 1799, 13, 32, 15, 2, -31 }, // 0x46 'F'
|
||||
{ 1851, 17, 32, 21, 2, -31 }, // 0x47 'G'
|
||||
{ 1919, 17, 32, 22, 2, -31 }, // 0x48 'H'
|
||||
{ 1987, 4, 32, 10, 3, -31 }, // 0x49 'I'
|
||||
{ 2003, 9, 33, 12, 0, -31 }, // 0x4A 'J'
|
||||
{ 2041, 17, 32, 19, 2, -31 }, // 0x4B 'K'
|
||||
{ 2109, 13, 32, 16, 2, -31 }, // 0x4C 'L'
|
||||
{ 2161, 21, 32, 26, 2, -31 }, // 0x4D 'M'
|
||||
{ 2245, 16, 32, 21, 2, -31 }, // 0x4E 'N'
|
||||
{ 2309, 17, 32, 21, 2, -31 }, // 0x4F 'O'
|
||||
{ 2377, 16, 32, 19, 2, -31 }, // 0x50 'P'
|
||||
{ 2441, 17, 38, 21, 2, -31 }, // 0x51 'Q'
|
||||
{ 2522, 17, 32, 20, 2, -31 }, // 0x52 'R'
|
||||
{ 2590, 16, 32, 19, 2, -31 }, // 0x53 'S'
|
||||
{ 2654, 15, 32, 16, 1, -31 }, // 0x54 'T'
|
||||
{ 2714, 17, 32, 21, 2, -31 }, // 0x55 'U'
|
||||
{ 2782, 18, 32, 20, 1, -31 }, // 0x56 'V'
|
||||
{ 2854, 26, 32, 29, 1, -31 }, // 0x57 'W'
|
||||
{ 2958, 17, 32, 19, 1, -31 }, // 0x58 'X'
|
||||
{ 3026, 18, 32, 19, 0, -31 }, // 0x59 'Y'
|
||||
{ 3098, 15, 32, 16, 1, -31 }, // 0x5A 'Z'
|
||||
{ 3158, 9, 39, 13, 2, -31 }, // 0x5B '['
|
||||
{ 3202, 12, 32, 14, 1, -31 }, // 0x5C '\'
|
||||
{ 3250, 9, 39, 12, 1, -31 }, // 0x5D ']'
|
||||
{ 3294, 15, 13, 17, 1, -31 }, // 0x5E '^'
|
||||
{ 3319, 13, 3, 13, 0, 3 }, // 0x5F '_'
|
||||
{ 3324, 7, 8, 11, 2, -31 }, // 0x60 '`'
|
||||
{ 3331, 13, 23, 17, 2, -22 }, // 0x61 'a'
|
||||
{ 3369, 14, 32, 18, 2, -31 }, // 0x62 'b'
|
||||
{ 3425, 13, 23, 16, 2, -22 }, // 0x63 'c'
|
||||
{ 3463, 13, 32, 17, 2, -31 }, // 0x64 'd'
|
||||
{ 3515, 13, 23, 16, 2, -22 }, // 0x65 'e'
|
||||
{ 3553, 10, 31, 11, 1, -30 }, // 0x66 'f'
|
||||
{ 3592, 17, 30, 17, 1, -22 }, // 0x67 'g'
|
||||
{ 3656, 13, 32, 17, 2, -31 }, // 0x68 'h'
|
||||
{ 3708, 5, 30, 9, 2, -29 }, // 0x69 'i'
|
||||
{ 3727, 8, 36, 9, -1, -29 }, // 0x6A 'j'
|
||||
{ 3763, 15, 32, 17, 2, -31 }, // 0x6B 'k'
|
||||
{ 3823, 5, 32, 9, 2, -31 }, // 0x6C 'l'
|
||||
{ 3843, 23, 23, 27, 2, -22 }, // 0x6D 'm'
|
||||
{ 3910, 13, 23, 17, 2, -22 }, // 0x6E 'n'
|
||||
{ 3948, 13, 23, 17, 2, -22 }, // 0x6F 'o'
|
||||
{ 3986, 14, 30, 17, 2, -22 }, // 0x70 'p'
|
||||
{ 4039, 13, 30, 17, 2, -22 }, // 0x71 'q'
|
||||
{ 4088, 10, 23, 13, 2, -22 }, // 0x72 'r'
|
||||
{ 4117, 13, 23, 15, 1, -22 }, // 0x73 's'
|
||||
{ 4155, 10, 29, 12, 1, -28 }, // 0x74 't'
|
||||
{ 4192, 13, 23, 17, 2, -22 }, // 0x75 'u'
|
||||
{ 4230, 14, 23, 15, 1, -22 }, // 0x76 'v'
|
||||
{ 4271, 21, 23, 23, 1, -22 }, // 0x77 'w'
|
||||
{ 4332, 15, 23, 15, 0, -22 }, // 0x78 'x'
|
||||
{ 4376, 15, 29, 15, 0, -22 }, // 0x79 'y'
|
||||
{ 4431, 12, 23, 14, 1, -22 }, // 0x7A 'z'
|
||||
{ 4466, 9, 39, 12, 2, -31 }, // 0x7B '{'
|
||||
{ 4510, 4, 38, 9, 3, -31 }, // 0x7C '|'
|
||||
{ 4529, 9, 39, 13, 2, -31 }, // 0x7D '}'
|
||||
{ 4573, 15, 6, 18, 1, -19 } }; // 0x7E '~'
|
||||
|
||||
const GFXfont Oswald_Regular20pt7b PROGMEM = {
|
||||
(uint8_t *)Oswald_Regular20pt7bBitmaps,
|
||||
(GFXglyph *)Oswald_Regular20pt7bGlyphs,
|
||||
0x20, 0x7E, 58 };
|
||||
|
||||
// Approx. 5257 bytes
|
959
src/fonts/oswald-30.h
Normal file
959
src/fonts/oswald-30.h
Normal file
|
@ -0,0 +1,959 @@
|
|||
const uint8_t Oswald_Regular30pt7bBitmaps[] PROGMEM = {
|
||||
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x7D, 0xF7,
|
||||
0xDE, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE7, 0x9E, 0x79, 0xE3,
|
||||
0x8E, 0x30, 0xC3, 0x0C, 0x30, 0xC0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFC, 0xFF, 0xF3, 0xFF, 0xCF, 0xFE, 0x3F, 0xF8, 0xFB, 0xE3, 0xEF,
|
||||
0x8F, 0xBE, 0x3E, 0xF8, 0xFB, 0xC3, 0xEF, 0x0F, 0x3C, 0x3C, 0xF0, 0xF3,
|
||||
0xC3, 0xCF, 0x0F, 0x00, 0x01, 0xF8, 0x3F, 0x80, 0xFC, 0x1F, 0x80, 0xFE,
|
||||
0x0F, 0xC0, 0x7F, 0x07, 0xE0, 0x3F, 0x83, 0xF0, 0x1F, 0x81, 0xF8, 0x0F,
|
||||
0xC1, 0xFC, 0x07, 0xE0, 0xFE, 0x03, 0xF0, 0x7E, 0x03, 0xF8, 0x3F, 0x01,
|
||||
0xFC, 0x1F, 0x80, 0xFC, 0x0F, 0xC0, 0x7E, 0x07, 0xE0, 0x3F, 0x07, 0xF0,
|
||||
0x1F, 0x83, 0xF8, 0x0F, 0xC1, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x7E, 0x0F,
|
||||
0xE0, 0x3F, 0x07, 0xE0, 0x3F, 0x83, 0xF0, 0x1F, 0xC1, 0xF8, 0x0F, 0xC0,
|
||||
0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0x07, 0xE0, 0x3F, 0x03, 0xF0, 0x1F,
|
||||
0x81, 0xF8, 0x0F, 0xC1, 0xFC, 0x07, 0xE0, 0xFE, 0x03, 0xF0, 0x7E, 0x03,
|
||||
0xF8, 0x3F, 0x01, 0xFC, 0x1F, 0x80, 0xFC, 0x0F, 0xC0, 0x7E, 0x07, 0xE0,
|
||||
0x3F, 0x07, 0xF0, 0x1F, 0x83, 0xF8, 0x0F, 0xC1, 0xF8, 0x0F, 0xE0, 0xFC,
|
||||
0x07, 0xF0, 0x7E, 0x03, 0xF8, 0x3F, 0x01, 0xF8, 0x3F, 0x80, 0x00, 0x18,
|
||||
0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0xFF,
|
||||
0x00, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF,
|
||||
0xF8, 0x3F, 0xC3, 0xFC, 0x7F, 0x00, 0xFC, 0x7E, 0x00, 0xFE, 0x7E, 0x00,
|
||||
0x7E, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x3E, 0xFE, 0x00,
|
||||
0x3F, 0x7E, 0x00, 0x20, 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x80,
|
||||
0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x0F, 0xFC,
|
||||
0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF,
|
||||
0xC0, 0x00, 0x3F, 0xE0, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x07,
|
||||
0xFC, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00,
|
||||
0x7F, 0x04, 0x00, 0x7F, 0x7C, 0x00, 0x3F, 0xFC, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x3F, 0x7E, 0x00, 0x3F, 0x7E, 0x00, 0x3F, 0x7E, 0x00, 0x3F, 0x7F, 0x00,
|
||||
0x3F, 0x3F, 0x80, 0x7F, 0x3F, 0xC0, 0xFE, 0x1F, 0xFF, 0xFE, 0x1F, 0xFF,
|
||||
0xFC, 0x0F, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xC0, 0x00, 0x06,
|
||||
0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06,
|
||||
0x00, 0x03, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x0F, 0xFE, 0x00, 0x0F, 0x80,
|
||||
0x00, 0x1F, 0xFF, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0x80,
|
||||
0x00, 0x7F, 0xFF, 0x80, 0x1F, 0x00, 0x00, 0x7E, 0x0F, 0xC0, 0x1F, 0x00,
|
||||
0x00, 0x7C, 0x0F, 0xC0, 0x3F, 0x00, 0x00, 0xFC, 0x07, 0xC0, 0x3F, 0x00,
|
||||
0x00, 0xFC, 0x07, 0xC0, 0x3E, 0x00, 0x00, 0xFC, 0x07, 0xE0, 0x3E, 0x00,
|
||||
0x00, 0xFC, 0x07, 0xE0, 0x7E, 0x00, 0x00, 0xFC, 0x07, 0xE0, 0x7C, 0x00,
|
||||
0x00, 0xFC, 0x07, 0xE0, 0x7C, 0x00, 0x00, 0xFC, 0x07, 0xE0, 0xFC, 0x00,
|
||||
0x00, 0xFC, 0x07, 0xE0, 0xFC, 0x00, 0x00, 0xFC, 0x07, 0xE0, 0xF8, 0x00,
|
||||
0x00, 0xFC, 0x07, 0xC0, 0xF8, 0x00, 0x00, 0xFC, 0x07, 0xC1, 0xF8, 0x00,
|
||||
0x00, 0xFC, 0x0F, 0xC1, 0xF8, 0x00, 0x00, 0x7E, 0x0F, 0xC1, 0xF0, 0x00,
|
||||
0x00, 0x7F, 0x1F, 0xC1, 0xF0, 0x00, 0x00, 0x3F, 0xFF, 0x83, 0xF0, 0x00,
|
||||
0x00, 0x3F, 0xFF, 0x83, 0xE0, 0x00, 0x00, 0x1F, 0xFF, 0x03, 0xE0, 0x3F,
|
||||
0xF0, 0x0F, 0xFC, 0x07, 0xE0, 0x7F, 0xF8, 0x01, 0xE0, 0x07, 0xE0, 0xFF,
|
||||
0xFC, 0x00, 0x00, 0x07, 0xC1, 0xFF, 0xFE, 0x00, 0x00, 0x07, 0xC1, 0xFF,
|
||||
0xFE, 0x00, 0x00, 0x0F, 0xC3, 0xF0, 0x3F, 0x00, 0x00, 0x0F, 0xC3, 0xF0,
|
||||
0x3F, 0x00, 0x00, 0x0F, 0x83, 0xF0, 0x3F, 0x00, 0x00, 0x0F, 0x83, 0xF0,
|
||||
0x3F, 0x00, 0x00, 0x1F, 0x83, 0xF0, 0x1F, 0x00, 0x00, 0x1F, 0x03, 0xF0,
|
||||
0x1F, 0x00, 0x00, 0x1F, 0x03, 0xF0, 0x1F, 0x00, 0x00, 0x3F, 0x03, 0xF0,
|
||||
0x1F, 0x00, 0x00, 0x3F, 0x03, 0xF0, 0x1F, 0x00, 0x00, 0x3E, 0x03, 0xF0,
|
||||
0x1F, 0x00, 0x00, 0x3E, 0x03, 0xF0, 0x3F, 0x00, 0x00, 0x7E, 0x03, 0xF0,
|
||||
0x3F, 0x00, 0x00, 0x7E, 0x03, 0xF0, 0x3F, 0x00, 0x00, 0x7C, 0x03, 0xF0,
|
||||
0x3F, 0x00, 0x00, 0xFC, 0x01, 0xF8, 0x7F, 0x00, 0x00, 0xFC, 0x01, 0xFF,
|
||||
0xFE, 0x00, 0x00, 0xF8, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0xF8, 0x00, 0xFF,
|
||||
0xFC, 0x00, 0x01, 0xF8, 0x00, 0x7F, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x1F,
|
||||
0xE0, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xFE, 0x00, 0x01, 0xFF, 0xFC, 0x00,
|
||||
0x1F, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0x80, 0x0F, 0xF1, 0xFE, 0x00, 0x7F,
|
||||
0x07, 0xF0, 0x07, 0xF0, 0x1F, 0x80, 0x3F, 0x80, 0xFC, 0x01, 0xFC, 0x07,
|
||||
0xE0, 0x0F, 0xC0, 0x3F, 0x00, 0x7E, 0x01, 0xF8, 0x03, 0xF8, 0x0F, 0xC0,
|
||||
0x1F, 0xC0, 0xFE, 0x00, 0x7E, 0x07, 0xE0, 0x03, 0xF0, 0x3F, 0x00, 0x1F,
|
||||
0xC3, 0xF0, 0x00, 0x7E, 0x1F, 0x00, 0x03, 0xF1, 0xF8, 0x00, 0x0F, 0xDF,
|
||||
0x80, 0x00, 0x7E, 0xF8, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x07, 0xF8, 0x00,
|
||||
0x00, 0x3F, 0x80, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01,
|
||||
0xFF, 0x80, 0x7E, 0x1F, 0xFC, 0x03, 0xF1, 0xFF, 0xF0, 0x1F, 0x8F, 0xDF,
|
||||
0xC0, 0xFC, 0xFE, 0x7E, 0x0F, 0xE7, 0xE1, 0xF8, 0x7E, 0x7F, 0x0F, 0xE3,
|
||||
0xF3, 0xF0, 0x3F, 0x1F, 0x9F, 0x80, 0xFD, 0xF8, 0xFC, 0x07, 0xFF, 0xCF,
|
||||
0xE0, 0x1F, 0xFC, 0x7F, 0x00, 0x7F, 0xE3, 0xF8, 0x03, 0xFE, 0x1F, 0xC0,
|
||||
0x0F, 0xF0, 0x7E, 0x00, 0xFF, 0xC3, 0xF0, 0x0F, 0xFF, 0x1F, 0xC0, 0xFF,
|
||||
0xFE, 0x7F, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x3F, 0x8F, 0xFF, 0xF0, 0xFC,
|
||||
0x3F, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x0F, 0x00, 0x60, 0x00, 0x00, 0xFF,
|
||||
0xFF, 0xFE, 0xFB, 0xEF, 0xBE, 0xFB, 0xCF, 0x3C, 0xF3, 0xCF, 0x00, 0x00,
|
||||
0x70, 0x1F, 0x07, 0xF0, 0xFF, 0x0F, 0xE1, 0xF8, 0x1F, 0x83, 0xF0, 0x3F,
|
||||
0x03, 0xF0, 0x3E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E,
|
||||
0x07, 0xE0, 0x7C, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC,
|
||||
0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC,
|
||||
0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC,
|
||||
0x07, 0xC0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E,
|
||||
0x03, 0xE0, 0x3F, 0x03, 0xF0, 0x1F, 0x01, 0xF8, 0x0F, 0xC0, 0xFF, 0x07,
|
||||
0xF0, 0x3F, 0x00, 0xF0, 0xE0, 0x1F, 0x03, 0xF0, 0x7F, 0x07, 0xF0, 0x7E,
|
||||
0x07, 0xE0, 0xFC, 0x0F, 0x81, 0xF8, 0x3F, 0x07, 0xE0, 0x7C, 0x0F, 0x81,
|
||||
0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8,
|
||||
0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F,
|
||||
0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07,
|
||||
0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF0, 0x7E, 0x0F, 0xC1,
|
||||
0xF8, 0x3F, 0x0F, 0xC1, 0xF8, 0x3E, 0x0F, 0xC7, 0xF0, 0xFE, 0x1F, 0x03,
|
||||
0xC0, 0x00, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00,
|
||||
0x1E, 0x00, 0x81, 0xC0, 0x9C, 0x38, 0x77, 0xE7, 0x3F, 0xFF, 0xFF, 0xEF,
|
||||
0xFF, 0xF8, 0x7F, 0xFC, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x0F, 0x78, 0x01,
|
||||
0xEF, 0x00, 0x78, 0xF0, 0x1F, 0x1F, 0x07, 0xC1, 0xF0, 0xF8, 0x3E, 0x06,
|
||||
0x03, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E,
|
||||
0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00,
|
||||
0x00, 0x78, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78,
|
||||
0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x78, 0x00,
|
||||
0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x87, 0x0E, 0x3C, 0x73, 0xEF, 0x8E, 0x10, 0x00, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xC0, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1F,
|
||||
0x80, 0x07, 0xE0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x3F, 0x00, 0x0F, 0xC0,
|
||||
0x03, 0xE0, 0x00, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x03,
|
||||
0xF0, 0x00, 0xFC, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x07, 0xE0, 0x01, 0xF8,
|
||||
0x00, 0x7C, 0x00, 0x1F, 0x00, 0x0F, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0x00,
|
||||
0x7E, 0x00, 0x1F, 0x80, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0xFC, 0x00, 0x3F,
|
||||
0x00, 0x0F, 0x80, 0x03, 0xE0, 0x01, 0xF8, 0x00, 0x7C, 0x00, 0x1F, 0x00,
|
||||
0x07, 0xC0, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x1F, 0x80, 0x07,
|
||||
0xE0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xE0,
|
||||
0x00, 0x00, 0xFF, 0x00, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0xF0, 0x0F, 0xFF,
|
||||
0xF8, 0x1F, 0xFF, 0xFC, 0x3F, 0xC3, 0xFC, 0x3F, 0x80, 0xFE, 0x7F, 0x00,
|
||||
0xFE, 0x7E, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x00, 0x7F, 0xFE, 0x00,
|
||||
0x7F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x3F, 0xFE, 0x00, 0x7F, 0x7E, 0x00, 0x7F, 0x7E, 0x00, 0x7F, 0x7E, 0x00,
|
||||
0x7E, 0x7F, 0x00, 0x7E, 0x3F, 0x00, 0xFE, 0x3F, 0x81, 0xFC, 0x1F, 0xFF,
|
||||
0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x01, 0xFF,
|
||||
0x80, 0x00, 0x08, 0x00, 0x00, 0x7C, 0x01, 0xF0, 0x1F, 0xC0, 0xFF, 0x1F,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xF0, 0x0F, 0xC0,
|
||||
0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0,
|
||||
0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC,
|
||||
0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F,
|
||||
0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F,
|
||||
0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03,
|
||||
0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0x7F, 0x80, 0x03, 0xFF, 0xE0, 0x07, 0xFF,
|
||||
0xF0, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFC, 0x3F, 0xE3, 0xFE, 0x3F, 0x80,
|
||||
0xFE, 0x3F, 0x80, 0x7E, 0x7F, 0x00, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x00,
|
||||
0x3F, 0x7E, 0x00, 0x3F, 0x7E, 0x00, 0x3F, 0x7E, 0x00, 0x3F, 0x7E, 0x00,
|
||||
0x7F, 0x7E, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7E, 0x00, 0x00,
|
||||
0xFE, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x03,
|
||||
0xF8, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F,
|
||||
0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0x7F,
|
||||
0x00, 0x00, 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8,
|
||||
0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xE0,
|
||||
0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00,
|
||||
0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF,
|
||||
0xFE, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x0F, 0xFF,
|
||||
0xF0, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x3F, 0xC3, 0xFC, 0x7F, 0x00,
|
||||
0xFE, 0x7F, 0x00, 0x7E, 0x7E, 0x00, 0x7E, 0xFE, 0x00, 0x7F, 0xFE, 0x00,
|
||||
0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0x00, 0x00,
|
||||
0x7F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFE, 0x00, 0x01,
|
||||
0xFC, 0x00, 0x3F, 0xFC, 0x00, 0x3F, 0xF8, 0x00, 0x3F, 0xE0, 0x00, 0x3F,
|
||||
0x80, 0x00, 0x3F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xF8, 0x00, 0x03,
|
||||
0xFC, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00,
|
||||
0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00,
|
||||
0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00,
|
||||
0x7E, 0x7E, 0x00, 0x7E, 0x7E, 0x00, 0x7E, 0x7F, 0x00, 0xFE, 0x7F, 0x81,
|
||||
0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x07, 0xFF,
|
||||
0xE0, 0x03, 0xFF, 0x80, 0x00, 0x30, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x03,
|
||||
0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x1F, 0xF0, 0x00,
|
||||
0x07, 0xFC, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xF0,
|
||||
0x00, 0x1F, 0xFC, 0x00, 0x0F, 0xBF, 0x00, 0x03, 0xEF, 0xC0, 0x01, 0xFB,
|
||||
0xF0, 0x00, 0x7C, 0xFC, 0x00, 0x1F, 0x3F, 0x00, 0x0F, 0xCF, 0xC0, 0x03,
|
||||
0xE3, 0xF0, 0x01, 0xF8, 0xFC, 0x00, 0x7C, 0x3F, 0x00, 0x3F, 0x0F, 0xC0,
|
||||
0x0F, 0xC3, 0xF0, 0x07, 0xE0, 0xFC, 0x01, 0xF8, 0x3F, 0x00, 0x7E, 0x0F,
|
||||
0xC0, 0x3F, 0x03, 0xF0, 0x0F, 0xC0, 0xFC, 0x07, 0xF0, 0x3F, 0x01, 0xF8,
|
||||
0x0F, 0xC0, 0xFE, 0x03, 0xF0, 0x3F, 0x00, 0xFC, 0x0F, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00,
|
||||
0x3F, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFC, 0x00,
|
||||
0x00, 0x3F, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xFC,
|
||||
0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, 0xC0, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF,
|
||||
0xF1, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF,
|
||||
0x1F, 0xFF, 0xFE, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01,
|
||||
0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F,
|
||||
0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x7C, 0x01, 0xF3,
|
||||
0xFF, 0x03, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x1F, 0xE0,
|
||||
0xFF, 0x3F, 0x80, 0xFE, 0x7E, 0x00, 0xFC, 0xF8, 0x01, 0xFC, 0x00, 0x03,
|
||||
0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F,
|
||||
0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xFF,
|
||||
0xE0, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x3F, 0x7F,
|
||||
0x00, 0x7E, 0xFE, 0x00, 0xFC, 0xFC, 0x03, 0xF9, 0xFC, 0x07, 0xE3, 0xFF,
|
||||
0xFF, 0xC3, 0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x03, 0xFF, 0xF0, 0x01, 0xFF,
|
||||
0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, 0x0F, 0xFF,
|
||||
0xF8, 0x1F, 0xFF, 0xFC, 0x1F, 0xC3, 0xFC, 0x3F, 0x80, 0xFE, 0x3F, 0x00,
|
||||
0x7E, 0x7F, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x00, 0x7F, 0x7E, 0x00,
|
||||
0x7F, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00,
|
||||
0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x1F,
|
||||
0x00, 0xFE, 0x7F, 0xE0, 0xFE, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF,
|
||||
0xFC, 0xFF, 0xC1, 0xFC, 0xFF, 0x00, 0xFE, 0xFE, 0x00, 0x7E, 0xFE, 0x00,
|
||||
0x7E, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00,
|
||||
0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFE, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x00, 0x7F, 0x7E, 0x00, 0x7E, 0x7E, 0x00,
|
||||
0x7E, 0x7F, 0x00, 0xFE, 0x3F, 0x00, 0xFC, 0x3F, 0x81, 0xFC, 0x1F, 0xFF,
|
||||
0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x01, 0xFF,
|
||||
0x80, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00,
|
||||
0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00,
|
||||
0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00,
|
||||
0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x03,
|
||||
0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x3F,
|
||||
0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0xFC,
|
||||
0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x03, 0xF0,
|
||||
0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x7F, 0x00, 0x00, 0xFF,
|
||||
0x00, 0x0F, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x83, 0xFF, 0xFF,
|
||||
0x87, 0xF0, 0x7F, 0x1F, 0xC0, 0x7F, 0x3F, 0x80, 0x7E, 0x7E, 0x00, 0xFC,
|
||||
0xFC, 0x01, 0xFD, 0xF8, 0x03, 0xFB, 0xF0, 0x03, 0xF7, 0xE0, 0x0F, 0xEF,
|
||||
0xC0, 0x1F, 0xDF, 0x80, 0x3F, 0xBF, 0x00, 0x7E, 0x7E, 0x00, 0xFC, 0xFE,
|
||||
0x01, 0xF8, 0xFC, 0x07, 0xE1, 0xFE, 0x1F, 0xC1, 0xFF, 0xFF, 0x01, 0xFF,
|
||||
0xFC, 0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF,
|
||||
0xF0, 0xFE, 0x0F, 0xE3, 0xF8, 0x0F, 0xE7, 0xE0, 0x0F, 0xCF, 0xC0, 0x1F,
|
||||
0xFF, 0x00, 0x1F, 0xFE, 0x00, 0x3F, 0xFC, 0x00, 0x7F, 0xF8, 0x00, 0xFF,
|
||||
0xF0, 0x01, 0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x0F, 0xFF,
|
||||
0x00, 0x1F, 0xFF, 0x00, 0x3F, 0x7E, 0x00, 0xFE, 0xFC, 0x01, 0xF9, 0xFC,
|
||||
0x07, 0xF1, 0xFF, 0x7F, 0xE3, 0xFF, 0xFF, 0x83, 0xFF, 0xFE, 0x03, 0xFF,
|
||||
0xF8, 0x01, 0xFF, 0xC0, 0x00, 0x10, 0x00, 0x00, 0xFE, 0x00, 0x0F, 0xFF,
|
||||
0x00, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x07, 0xF8, 0xFF,
|
||||
0x1F, 0xC0, 0x7E, 0x3F, 0x00, 0xFE, 0xFE, 0x00, 0xFD, 0xF8, 0x01, 0xFB,
|
||||
0xF0, 0x03, 0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x0F, 0xFF,
|
||||
0x00, 0x1F, 0xFE, 0x00, 0x3F, 0xFC, 0x00, 0x7F, 0xF8, 0x00, 0xFF, 0xF0,
|
||||
0x01, 0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, 0x80,
|
||||
0x3F, 0xBF, 0x80, 0xFF, 0x7F, 0xFF, 0xFE, 0x7F, 0xFF, 0xFC, 0x7F, 0xFD,
|
||||
0xF8, 0x7F, 0xF3, 0xF0, 0x7F, 0xC7, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F,
|
||||
0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8,
|
||||
0x00, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, 0x7E,
|
||||
0x00, 0x7E, 0xFE, 0x00, 0xFD, 0xFC, 0x03, 0xF9, 0xFC, 0x0F, 0xE3, 0xFF,
|
||||
0xFF, 0xC3, 0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x03, 0xFF, 0xF0, 0x01, 0xFF,
|
||||
0x80, 0x00, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xE1, 0xC3, 0x8F, 0x3D, 0xF9, 0xE3, 0x00, 0x00, 0x01, 0x80, 0x01, 0xC0,
|
||||
0x01, 0xE0, 0x03, 0xF0, 0x03, 0xF8, 0x07, 0xFC, 0x07, 0xFC, 0x07, 0xFC,
|
||||
0x0F, 0xF8, 0x0F, 0xF8, 0x1F, 0xF0, 0x1F, 0xF0, 0x0F, 0xF0, 0x07, 0xE0,
|
||||
0x03, 0xE0, 0x01, 0xF0, 0x00, 0xFE, 0x00, 0x7F, 0x80, 0x3F, 0xF0, 0x07,
|
||||
0xFC, 0x01, 0xFF, 0x00, 0x3F, 0xE0, 0x0F, 0xF8, 0x03, 0xFE, 0x00, 0x7F,
|
||||
0x80, 0x1F, 0xC0, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x18, 0x00, 0x04, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
|
||||
0x00, 0x70, 0x00, 0x3C, 0x00, 0x1F, 0x80, 0x0F, 0xE0, 0x07, 0xFC, 0x01,
|
||||
0xFF, 0x00, 0x7F, 0xC0, 0x0F, 0xF8, 0x03, 0xFE, 0x00, 0x7F, 0xC0, 0x1F,
|
||||
0xF0, 0x07, 0xF8, 0x00, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x3F, 0x80,
|
||||
0x3F, 0xC0, 0x7F, 0xE0, 0x7F, 0xC0, 0x7F, 0xC0, 0xFF, 0x80, 0xFF, 0x80,
|
||||
0xFF, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x3E, 0x00, 0x1E, 0x00, 0x0C, 0x00,
|
||||
0x04, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x0F, 0xFF, 0x80, 0x3F, 0xFF, 0x80,
|
||||
0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x8F, 0xFD, 0xFF, 0x9F, 0xC0, 0x7F, 0x3F,
|
||||
0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xF8, 0x00, 0xFF, 0xF0, 0x01, 0xFF, 0xE0,
|
||||
0x03, 0xFF, 0xE0, 0x07, 0xEF, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00,
|
||||
0x3F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F,
|
||||
0xE0, 0x00, 0x3F, 0x80, 0x00, 0x7E, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0,
|
||||
0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00,
|
||||
0x1F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01,
|
||||
0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80,
|
||||
0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00,
|
||||
0x30, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF,
|
||||
0xFF, 0xF8, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x0F, 0xFF,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0x1F, 0xFF, 0x8F, 0xFF, 0x80, 0x00, 0x7F, 0xF0,
|
||||
0x00, 0x7F, 0xC0, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xE0, 0x01, 0xFF, 0x00,
|
||||
0x00, 0x07, 0xE0, 0x01, 0xFE, 0x00, 0x00, 0x03, 0xF0, 0x03, 0xF8, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x07, 0xF8, 0x00, 0x00, 0x00, 0xF8, 0x07, 0xF0, 0x00,
|
||||
0x00, 0x00, 0xFC, 0x0F, 0xE0, 0x01, 0xFD, 0xF0, 0x7C, 0x0F, 0xC0, 0x07,
|
||||
0xFF, 0xF0, 0x7C, 0x1F, 0xC0, 0x0F, 0xFF, 0xF0, 0x3E, 0x1F, 0x80, 0x1F,
|
||||
0xFF, 0xF0, 0x3E, 0x3F, 0x80, 0x3F, 0xE3, 0xF0, 0x3E, 0x3F, 0x00, 0x7F,
|
||||
0x83, 0xE0, 0x1E, 0x3F, 0x00, 0x7E, 0x03, 0xE0, 0x1E, 0x3F, 0x00, 0xFE,
|
||||
0x07, 0xE0, 0x1E, 0x7E, 0x00, 0xFC, 0x07, 0xE0, 0x1F, 0x7E, 0x01, 0xF8,
|
||||
0x07, 0xE0, 0x1F, 0x7E, 0x01, 0xF8, 0x07, 0xE0, 0x1F, 0x7E, 0x03, 0xF0,
|
||||
0x07, 0xC0, 0x1F, 0x7E, 0x03, 0xF0, 0x07, 0xC0, 0x1E, 0x7C, 0x03, 0xF0,
|
||||
0x07, 0xC0, 0x1E, 0x7C, 0x03, 0xF0, 0x0F, 0xC0, 0x1E, 0x7C, 0x07, 0xE0,
|
||||
0x0F, 0xC0, 0x1E, 0xFC, 0x07, 0xE0, 0x0F, 0xC0, 0x3E, 0xFC, 0x07, 0xE0,
|
||||
0x0F, 0x80, 0x3E, 0xFC, 0x07, 0xE0, 0x0F, 0x80, 0x3C, 0xFC, 0x07, 0xE0,
|
||||
0x0F, 0x80, 0x7C, 0x7C, 0x07, 0xE0, 0x1F, 0x80, 0x7C, 0x7C, 0x03, 0xF0,
|
||||
0x1F, 0x80, 0xF8, 0x7C, 0x03, 0xF0, 0x3F, 0x80, 0xF0, 0x7E, 0x03, 0xF8,
|
||||
0x7F, 0x81, 0xF0, 0x7E, 0x03, 0xFF, 0xEF, 0x83, 0xE0, 0x7E, 0x01, 0xFF,
|
||||
0xEF, 0x8F, 0xC0, 0x7E, 0x00, 0xFF, 0xEF, 0xFF, 0x80, 0x3F, 0x00, 0x7F,
|
||||
0xC7, 0xFF, 0x00, 0x3F, 0x00, 0x3F, 0x03, 0xFC, 0x00, 0x3F, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFE, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x10, 0x00, 0x00, 0xFF, 0xF0,
|
||||
0x01, 0xF0, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x1F, 0xFF,
|
||||
0xFF, 0xF8, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x01, 0xFF,
|
||||
0xFF, 0xE0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x3F, 0x80,
|
||||
0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07,
|
||||
0xFC, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x03, 0xFE, 0x00,
|
||||
0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xFC, 0x00, 0x03, 0xEF, 0x80, 0x00, 0x7D,
|
||||
0xF0, 0x00, 0x0F, 0xBE, 0x00, 0x03, 0xF7, 0xC0, 0x00, 0x7E, 0xFC, 0x00,
|
||||
0x0F, 0x8F, 0x80, 0x01, 0xF1, 0xF0, 0x00, 0x3E, 0x3E, 0x00, 0x0F, 0xC7,
|
||||
0xC0, 0x01, 0xF8, 0xFC, 0x00, 0x3F, 0x1F, 0x80, 0x07, 0xC1, 0xF0, 0x00,
|
||||
0xF8, 0x3E, 0x00, 0x3F, 0x07, 0xE0, 0x07, 0xE0, 0xFC, 0x00, 0xFC, 0x1F,
|
||||
0x80, 0x1F, 0x01, 0xF0, 0x07, 0xE0, 0x3E, 0x00, 0xFC, 0x07, 0xE0, 0x1F,
|
||||
0x80, 0xFC, 0x03, 0xF0, 0x1F, 0x80, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFE,
|
||||
0x03, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x81, 0xF8,
|
||||
0x03, 0xF0, 0x7E, 0x00, 0x3F, 0x0F, 0xC0, 0x07, 0xE1, 0xF8, 0x00, 0xFC,
|
||||
0x3F, 0x00, 0x1F, 0x8F, 0xE0, 0x03, 0xF1, 0xF8, 0x00, 0x3F, 0x3F, 0x00,
|
||||
0x07, 0xE7, 0xE0, 0x00, 0xFC, 0xFC, 0x00, 0x1F, 0xBF, 0x80, 0x03, 0xF7,
|
||||
0xE0, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xC0, 0x3F, 0xFF, 0xF8,
|
||||
0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x87, 0xE1, 0xFF, 0xE3, 0xF0, 0x07,
|
||||
0xF1, 0xF8, 0x01, 0xFC, 0xFC, 0x00, 0x7E, 0x7E, 0x00, 0x3F, 0x3F, 0x00,
|
||||
0x1F, 0x9F, 0x80, 0x07, 0xCF, 0xC0, 0x03, 0xE7, 0xE0, 0x01, 0xF3, 0xF0,
|
||||
0x01, 0xF9, 0xF8, 0x00, 0xFC, 0xFC, 0x00, 0x7E, 0x7E, 0x00, 0x3F, 0x3F,
|
||||
0x00, 0x3F, 0x1F, 0x80, 0x3F, 0x8F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x03,
|
||||
0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x7E, 0x07, 0xFE,
|
||||
0x3F, 0x00, 0x7F, 0x9F, 0x80, 0x1F, 0xCF, 0xC0, 0x07, 0xF7, 0xE0, 0x03,
|
||||
0xFB, 0xF0, 0x00, 0xFD, 0xF8, 0x00, 0x7E, 0xFC, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x1F, 0xFF, 0x00, 0x0F, 0xFF, 0x80, 0x07, 0xFF, 0xC0, 0x03, 0xFF, 0xE0,
|
||||
0x01, 0xFB, 0xF0, 0x00, 0xFD, 0xF8, 0x00, 0x7E, 0xFC, 0x00, 0x7F, 0x7E,
|
||||
0x00, 0x7F, 0x3F, 0x00, 0x7F, 0x9F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xC7,
|
||||
0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x81, 0xFF, 0xFE, 0x00, 0x00, 0xFF, 0x80,
|
||||
0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x83, 0xFF, 0xFF,
|
||||
0xE1, 0xFE, 0x0F, 0xF1, 0xFC, 0x01, 0xFC, 0xFE, 0x00, 0xFE, 0x7E, 0x00,
|
||||
0x3F, 0x7F, 0x00, 0x1F, 0xBF, 0x80, 0x0F, 0xDF, 0xC0, 0x07, 0xFF, 0xE0,
|
||||
0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE,
|
||||
0x00, 0x3F, 0xFF, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F,
|
||||
0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00,
|
||||
0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00,
|
||||
0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0xFF, 0xFC, 0x00,
|
||||
0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x00, 0x1F, 0xFF, 0x80, 0x0F, 0xFF, 0xC0,
|
||||
0x07, 0xFF, 0xE0, 0x03, 0xF7, 0xF0, 0x01, 0xFB, 0xF8, 0x00, 0xFC, 0xFC,
|
||||
0x00, 0x7E, 0x7E, 0x00, 0x3F, 0x3F, 0x80, 0x3F, 0x8F, 0xE0, 0x3F, 0x87,
|
||||
0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xC0, 0x1F, 0xFF, 0xC0,
|
||||
0x03, 0xFF, 0xC0, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xE8, 0x00, 0xFF, 0xFF,
|
||||
0x80, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0xFC, 0x0F,
|
||||
0xFC, 0xFC, 0x01, 0xFE, 0xFC, 0x00, 0xFE, 0xFC, 0x00, 0x7E, 0xFC, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x7F, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0xFE, 0xFC, 0x00,
|
||||
0xFE, 0xFC, 0x03, 0xFC, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF,
|
||||
0xF0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0xC0, 0x03, 0xF0,
|
||||
0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00,
|
||||
0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0xFF, 0xCF, 0xFF, 0xF3, 0xFF,
|
||||
0xFC, 0xFF, 0xFF, 0x3F, 0xFF, 0xCF, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00,
|
||||
0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0,
|
||||
0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0xC0, 0x03, 0xF0,
|
||||
0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00,
|
||||
0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0xFF, 0x8F, 0xFF, 0xE3, 0xFF,
|
||||
0xF8, 0xFF, 0xFE, 0x3F, 0xFF, 0x8F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00,
|
||||
0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0,
|
||||
0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00,
|
||||
0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0x00, 0xFF, 0x80, 0x03, 0xFF,
|
||||
0xF8, 0x03, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xE1, 0xFE,
|
||||
0x0F, 0xF1, 0xFC, 0x01, 0xFC, 0xFE, 0x00, 0x7E, 0x7E, 0x00, 0x3F, 0x7F,
|
||||
0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xC0, 0x03, 0xFF, 0xE0, 0x01, 0xFF,
|
||||
0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x00,
|
||||
0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xC0, 0x00,
|
||||
0x07, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xFC, 0x07,
|
||||
0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xC0,
|
||||
0x7F, 0xFF, 0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFC,
|
||||
0x00, 0x1F, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x03, 0xFF,
|
||||
0xE0, 0x01, 0xFF, 0xF0, 0x00, 0xFF, 0xF8, 0x00, 0x7E, 0xFC, 0x00, 0x7F,
|
||||
0x7F, 0x00, 0x3F, 0xBF, 0x80, 0x3F, 0xCF, 0xE0, 0x3F, 0xE7, 0xFF, 0xFE,
|
||||
0xF1, 0xFF, 0xFF, 0x78, 0x7F, 0xFF, 0x3C, 0x1F, 0xFF, 0x1E, 0x07, 0xFF,
|
||||
0x0F, 0x00, 0x18, 0x00, 0x00, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x0F, 0xFF,
|
||||
0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00, 0xFF,
|
||||
0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x0F,
|
||||
0xFF, 0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00,
|
||||
0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x1F, 0xFE, 0x00,
|
||||
0x0F, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x01, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x01, 0xFF,
|
||||
0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x1F,
|
||||
0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x01,
|
||||
0xFF, 0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFC, 0x00,
|
||||
0x1F, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x07, 0xFF, 0x80, 0x03, 0xFF, 0xC0,
|
||||
0x01, 0xFF, 0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F,
|
||||
0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F,
|
||||
0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07,
|
||||
0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01,
|
||||
0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0,
|
||||
0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0,
|
||||
0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x3F, 0x81, 0xFE, 0xFF, 0xFB,
|
||||
0xFF, 0xCF, 0xFF, 0x3F, 0xF8, 0xFF, 0x00, 0xFC, 0x00, 0x7E, 0x7E, 0x00,
|
||||
0x3F, 0x3F, 0x00, 0x3F, 0x9F, 0x80, 0x1F, 0x8F, 0xC0, 0x1F, 0xC7, 0xE0,
|
||||
0x0F, 0xC3, 0xF0, 0x0F, 0xE1, 0xF8, 0x07, 0xE0, 0xFC, 0x07, 0xF0, 0x7E,
|
||||
0x03, 0xF0, 0x3F, 0x03, 0xF8, 0x1F, 0x81, 0xF8, 0x0F, 0xC1, 0xFC, 0x07,
|
||||
0xE0, 0xFE, 0x03, 0xF0, 0xFE, 0x01, 0xF8, 0x7F, 0x00, 0xFC, 0x7F, 0x00,
|
||||
0x7E, 0x3F, 0x80, 0x3F, 0x3F, 0x80, 0x1F, 0x9F, 0xC0, 0x0F, 0xDF, 0xC0,
|
||||
0x07, 0xEF, 0xE0, 0x03, 0xF7, 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE,
|
||||
0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xEF, 0xC0, 0x1F, 0xE7, 0xF0, 0x0F, 0xF1,
|
||||
0xF8, 0x07, 0xF0, 0xFC, 0x03, 0xF8, 0x7F, 0x01, 0xF8, 0x1F, 0x80, 0xFC,
|
||||
0x0F, 0xE0, 0x7E, 0x03, 0xF0, 0x3F, 0x01, 0xF8, 0x1F, 0x80, 0xFE, 0x0F,
|
||||
0xC0, 0x3F, 0x07, 0xE0, 0x1F, 0xC3, 0xF0, 0x07, 0xE1, 0xF8, 0x03, 0xF0,
|
||||
0xFC, 0x01, 0xFC, 0x7E, 0x00, 0x7E, 0x3F, 0x00, 0x3F, 0x9F, 0x80, 0x0F,
|
||||
0xCF, 0xC0, 0x07, 0xF7, 0xE0, 0x03, 0xFB, 0xF0, 0x00, 0xFD, 0xF8, 0x00,
|
||||
0x7F, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0,
|
||||
0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80,
|
||||
0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00,
|
||||
0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00,
|
||||
0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00,
|
||||
0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00,
|
||||
0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00,
|
||||
0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00,
|
||||
0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0xFD, 0xFC,
|
||||
0x00, 0x01, 0xFB, 0xF8, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x0F, 0xEF, 0xF0,
|
||||
0x00, 0x1F, 0xDF, 0xE0, 0x00, 0x3F, 0xBF, 0xC0, 0x00, 0xFF, 0x7F, 0xC0,
|
||||
0x01, 0xFE, 0xFF, 0x80, 0x03, 0xFD, 0xFF, 0x00, 0x07, 0xFB, 0xFE, 0x00,
|
||||
0x0F, 0xF7, 0xFC, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xF8, 0x00,
|
||||
0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFB, 0xC0, 0x0F,
|
||||
0xFF, 0xF7, 0xC0, 0x1E, 0xFF, 0xE7, 0x80, 0x3D, 0xFF, 0xCF, 0x00, 0x7B,
|
||||
0xFF, 0x9E, 0x01, 0xF7, 0xFF, 0x3E, 0x03, 0xCF, 0xFE, 0x3C, 0x07, 0x9F,
|
||||
0xFC, 0x78, 0x0F, 0x3F, 0xF8, 0xF0, 0x1E, 0x7F, 0xF1, 0xE0, 0x7C, 0x7F,
|
||||
0xE1, 0xE0, 0xF0, 0xFF, 0xC3, 0xC1, 0xE1, 0xFF, 0x87, 0x83, 0xC3, 0xFF,
|
||||
0x0F, 0x0F, 0x87, 0xFE, 0x1F, 0x1E, 0x0F, 0xFC, 0x1E, 0x3C, 0x1F, 0xF8,
|
||||
0x3C, 0x78, 0x3F, 0xF0, 0x78, 0xF0, 0x7F, 0xE0, 0xF3, 0xC0, 0xFF, 0xC0,
|
||||
0xF7, 0x81, 0xFF, 0x81, 0xEF, 0x03, 0xFF, 0x03, 0xDE, 0x07, 0xFE, 0x07,
|
||||
0xF8, 0x0F, 0xFC, 0x07, 0xF0, 0x1F, 0xF8, 0x0F, 0xE0, 0x3F, 0xF0, 0x1F,
|
||||
0xC0, 0x7F, 0xE0, 0x3F, 0x80, 0xFF, 0xC0, 0x7E, 0x01, 0xFF, 0x80, 0x7C,
|
||||
0x03, 0xFF, 0x00, 0xF8, 0x07, 0xFE, 0x01, 0xF0, 0x0F, 0xFC, 0x03, 0xC0,
|
||||
0x1F, 0xF0, 0x00, 0x3F, 0xF0, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0xE0, 0x01,
|
||||
0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x1F,
|
||||
0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF,
|
||||
0xF8, 0x03, 0xFF, 0xF8, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x1F, 0xFB,
|
||||
0xE0, 0x3F, 0xF7, 0xE0, 0x7F, 0xE7, 0xC0, 0xFF, 0xCF, 0x81, 0xFF, 0x9F,
|
||||
0x83, 0xFF, 0x1F, 0x07, 0xFE, 0x3F, 0x0F, 0xFC, 0x3E, 0x1F, 0xF8, 0x7E,
|
||||
0x3F, 0xF0, 0x7C, 0x7F, 0xE0, 0xF8, 0xFF, 0xC1, 0xF9, 0xFF, 0x81, 0xF3,
|
||||
0xFF, 0x03, 0xF7, 0xFE, 0x03, 0xEF, 0xFC, 0x07, 0xFF, 0xF8, 0x0F, 0xFF,
|
||||
0xF0, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF,
|
||||
0x00, 0x3F, 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xF8, 0x00, 0xFF, 0xF0,
|
||||
0x01, 0xFF, 0xE0, 0x01, 0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x03, 0xFF, 0x00,
|
||||
0x07, 0xFE, 0x00, 0x0F, 0xFC, 0x00, 0x0F, 0x00, 0xFF, 0x80, 0x00, 0xFF,
|
||||
0xFC, 0x00, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x3F, 0xFF, 0xFE, 0x0F,
|
||||
0xF0, 0x7F, 0xC7, 0xF0, 0x07, 0xF1, 0xFC, 0x00, 0xFE, 0x7E, 0x00, 0x3F,
|
||||
0xBF, 0x80, 0x07, 0xEF, 0xE0, 0x01, 0xFB, 0xF8, 0x00, 0x7F, 0xFE, 0x00,
|
||||
0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE,
|
||||
0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F,
|
||||
0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00,
|
||||
0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8,
|
||||
0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF,
|
||||
0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01,
|
||||
0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0,
|
||||
0x01, 0xF9, 0xF8, 0x00, 0x7E, 0x7E, 0x00, 0x3F, 0x9F, 0xC0, 0x0F, 0xC3,
|
||||
0xF8, 0x0F, 0xF0, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF,
|
||||
0x00, 0x7F, 0xFF, 0x80, 0x07, 0xFF, 0x80, 0x00, 0x08, 0x00, 0x00, 0xFF,
|
||||
0xF4, 0x01, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x8F, 0xFF,
|
||||
0xFF, 0x9F, 0x80, 0xFF, 0xBF, 0x00, 0x7F, 0x7E, 0x00, 0x7E, 0xFC, 0x00,
|
||||
0xFF, 0xF8, 0x00, 0xFF, 0xF0, 0x01, 0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x07,
|
||||
0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x1F, 0xFE, 0x00, 0x3F, 0xFC, 0x00, 0x7F,
|
||||
0xF8, 0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x0F, 0xEF, 0xC0, 0x3F, 0xDF,
|
||||
0xFF, 0xFF, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC1, 0xFF,
|
||||
0xFC, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80,
|
||||
0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00,
|
||||
0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00,
|
||||
0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03,
|
||||
0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F,
|
||||
0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0xFF, 0xFC, 0x00,
|
||||
0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFE, 0x0F, 0xF0, 0x7F,
|
||||
0xC7, 0xF0, 0x07, 0xF1, 0xFC, 0x00, 0xFE, 0x7E, 0x00, 0x1F, 0xBF, 0x80,
|
||||
0x07, 0xEF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF,
|
||||
0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F,
|
||||
0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00,
|
||||
0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE,
|
||||
0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F,
|
||||
0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00,
|
||||
0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8,
|
||||
0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xF9,
|
||||
0xF8, 0x00, 0x7E, 0x7E, 0x00, 0x3F, 0x9F, 0xC0, 0x0F, 0xE3, 0xF8, 0x0F,
|
||||
0xF0, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x00, 0x7F,
|
||||
0xFF, 0x80, 0x07, 0xFF, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x7E, 0x00,
|
||||
0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F,
|
||||
0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x06, 0x00, 0x00,
|
||||
0x00, 0x80, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xE0, 0xFF,
|
||||
0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFC, 0x0F, 0xFC, 0xFC, 0x01, 0xFC, 0xFC,
|
||||
0x00, 0xFE, 0xFC, 0x00, 0xFE, 0xFC, 0x00, 0xFE, 0xFC, 0x00, 0x7E, 0xFC,
|
||||
0x00, 0x7E, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x7E, 0xFC,
|
||||
0x00, 0x7E, 0xFC, 0x00, 0xFE, 0xFC, 0x00, 0xFE, 0xFC, 0x00, 0xFE, 0xFC,
|
||||
0x01, 0xFC, 0xFC, 0x07, 0xFC, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF0, 0xFF,
|
||||
0xFF, 0xE0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC,
|
||||
0x0F, 0xC0, 0xFC, 0x0F, 0xE0, 0xFC, 0x07, 0xE0, 0xFC, 0x07, 0xE0, 0xFC,
|
||||
0x07, 0xE0, 0xFC, 0x07, 0xF0, 0xFC, 0x03, 0xF0, 0xFC, 0x03, 0xF0, 0xFC,
|
||||
0x03, 0xF8, 0xFC, 0x01, 0xF8, 0xFC, 0x01, 0xF8, 0xFC, 0x01, 0xF8, 0xFC,
|
||||
0x01, 0xFC, 0xFC, 0x00, 0xFC, 0xFC, 0x00, 0xFC, 0xFC, 0x00, 0xFE, 0xFC,
|
||||
0x00, 0xFE, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x7F, 0xFC,
|
||||
0x00, 0x3F, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x1F,
|
||||
0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x3F, 0x83, 0xFC, 0x7F, 0x00, 0xFC, 0x7E,
|
||||
0x00, 0xFE, 0x7E, 0x00, 0x7E, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x7E, 0xFC,
|
||||
0x00, 0x3E, 0xFE, 0x00, 0x3F, 0x7E, 0x00, 0x20, 0x7E, 0x00, 0x00, 0x7F,
|
||||
0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xE0, 0x00, 0x1F,
|
||||
0xF8, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01,
|
||||
0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x3F, 0xE0, 0x00, 0x1F, 0xF0, 0x00,
|
||||
0x0F, 0xF8, 0x00, 0x07, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00,
|
||||
0x00, 0xFE, 0x00, 0x00, 0x7F, 0x04, 0x00, 0x7F, 0x7C, 0x00, 0x3F, 0xFC,
|
||||
0x00, 0x3F, 0xFE, 0x00, 0x3F, 0x7E, 0x00, 0x3F, 0x7E, 0x00, 0x3F, 0x7E,
|
||||
0x00, 0x3F, 0x7F, 0x00, 0x3F, 0x3F, 0x80, 0x7F, 0x3F, 0xC0, 0xFE, 0x1F,
|
||||
0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x0F, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x01,
|
||||
0xFF, 0xC0, 0x00, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x03, 0xF8, 0x00, 0x0F, 0xE0,
|
||||
0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00,
|
||||
0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F,
|
||||
0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80,
|
||||
0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00,
|
||||
0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE,
|
||||
0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00,
|
||||
0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03,
|
||||
0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8,
|
||||
0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00,
|
||||
0x0F, 0xE0, 0x00, 0x3F, 0x80, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF,
|
||||
0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07,
|
||||
0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80,
|
||||
0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF,
|
||||
0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F,
|
||||
0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00,
|
||||
0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE,
|
||||
0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F,
|
||||
0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00,
|
||||
0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8,
|
||||
0x00, 0x7E, 0x7E, 0x00, 0x1F, 0x9F, 0x80, 0x07, 0xE7, 0xE0, 0x01, 0xF9,
|
||||
0xF8, 0x00, 0xFE, 0x7F, 0x00, 0x3F, 0x8F, 0xE0, 0x1F, 0xC3, 0xFC, 0x0F,
|
||||
0xF0, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x00, 0x7F,
|
||||
0xFF, 0x80, 0x07, 0xFF, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xFE, 0x00, 0x07,
|
||||
0xEF, 0xC0, 0x00, 0xFD, 0xF8, 0x00, 0x1F, 0xBF, 0x00, 0x03, 0xF7, 0xE0,
|
||||
0x00, 0xFC, 0xFE, 0x00, 0x1F, 0x8F, 0xC0, 0x03, 0xF1, 0xF8, 0x00, 0x7E,
|
||||
0x3F, 0x00, 0x0F, 0xC7, 0xF0, 0x03, 0xF0, 0x7E, 0x00, 0x7E, 0x0F, 0xC0,
|
||||
0x0F, 0xC1, 0xF8, 0x01, 0xF8, 0x3F, 0x00, 0x3E, 0x07, 0xF0, 0x0F, 0xC0,
|
||||
0x7E, 0x01, 0xF8, 0x0F, 0xC0, 0x3F, 0x01, 0xF8, 0x07, 0xE0, 0x3F, 0x00,
|
||||
0xF8, 0x03, 0xF0, 0x3F, 0x00, 0x7E, 0x07, 0xE0, 0x0F, 0xC0, 0xFC, 0x01,
|
||||
0xF8, 0x1F, 0x00, 0x1F, 0x83, 0xE0, 0x03, 0xF0, 0xFC, 0x00, 0x7E, 0x1F,
|
||||
0x80, 0x0F, 0xC3, 0xF0, 0x01, 0xF8, 0x7C, 0x00, 0x1F, 0x8F, 0x80, 0x03,
|
||||
0xF3, 0xF0, 0x00, 0x7E, 0x7E, 0x00, 0x0F, 0xCF, 0x80, 0x00, 0xF9, 0xF0,
|
||||
0x00, 0x1F, 0xFE, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x7F, 0xF8, 0x00, 0x0F,
|
||||
0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFF, 0x00,
|
||||
0x00, 0x7F, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F,
|
||||
0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xE0, 0x00,
|
||||
0x00, 0xFC, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0xF8, 0x00,
|
||||
0xFF, 0xF0, 0x01, 0xF0, 0x01, 0xF3, 0xE0, 0x03, 0xE0, 0x03, 0xE7, 0xC0,
|
||||
0x0F, 0xE0, 0x07, 0xCF, 0x80, 0x1F, 0xC0, 0x0F, 0x9F, 0x80, 0x3F, 0x80,
|
||||
0x3F, 0x3F, 0x00, 0x7F, 0x00, 0x7E, 0x7E, 0x00, 0xFE, 0x00, 0xF8, 0x7C,
|
||||
0x03, 0xFE, 0x01, 0xF0, 0xF8, 0x07, 0xFC, 0x03, 0xE1, 0xF0, 0x0F, 0xF8,
|
||||
0x07, 0xC3, 0xE0, 0x1F, 0xF0, 0x0F, 0x87, 0xE0, 0x3D, 0xE0, 0x3F, 0x0F,
|
||||
0xC0, 0x7B, 0xC0, 0x7C, 0x0F, 0x81, 0xF7, 0xC0, 0xF8, 0x1F, 0x03, 0xEF,
|
||||
0x81, 0xF0, 0x3E, 0x07, 0xCF, 0x03, 0xE0, 0x7C, 0x0F, 0x9E, 0x07, 0xC0,
|
||||
0xF8, 0x1E, 0x3C, 0x0F, 0x81, 0xF8, 0x7C, 0x7C, 0x3F, 0x01, 0xF0, 0xF8,
|
||||
0xF8, 0x7C, 0x03, 0xE1, 0xF1, 0xF0, 0xF8, 0x07, 0xC3, 0xE1, 0xE1, 0xF0,
|
||||
0x0F, 0x87, 0x83, 0xC3, 0xE0, 0x1F, 0x1F, 0x07, 0xC7, 0xC0, 0x3F, 0x3E,
|
||||
0x0F, 0x8F, 0x80, 0x3E, 0x7C, 0x1F, 0x3E, 0x00, 0x7C, 0xF8, 0x1E, 0x7C,
|
||||
0x00, 0xF9, 0xE0, 0x3C, 0xF8, 0x01, 0xF3, 0xC0, 0x7D, 0xF0, 0x03, 0xEF,
|
||||
0x80, 0xFB, 0xE0, 0x07, 0xDF, 0x01, 0xF7, 0xC0, 0x07, 0xFE, 0x01, 0xFF,
|
||||
0x00, 0x0F, 0xFC, 0x03, 0xFE, 0x00, 0x1F, 0xF0, 0x07, 0xFC, 0x00, 0x3F,
|
||||
0xE0, 0x0F, 0xF8, 0x00, 0x7F, 0xC0, 0x1F, 0xF0, 0x00, 0xFF, 0x80, 0x3F,
|
||||
0xE0, 0x01, 0xFF, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x7F, 0x00, 0x03,
|
||||
0xF8, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x03,
|
||||
0xF8, 0x00, 0x1F, 0xC0, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x07, 0xC0, 0x00,
|
||||
0x3E, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0xFC, 0x00, 0x0F,
|
||||
0xDF, 0xC0, 0x03, 0xF9, 0xF8, 0x00, 0x7E, 0x3F, 0x00, 0x0F, 0xC3, 0xF0,
|
||||
0x03, 0xF0, 0x7E, 0x00, 0x7E, 0x07, 0xE0, 0x0F, 0x80, 0xFC, 0x03, 0xF0,
|
||||
0x1F, 0xC0, 0x7E, 0x01, 0xF8, 0x1F, 0x80, 0x3F, 0x03, 0xF0, 0x03, 0xF0,
|
||||
0x7C, 0x00, 0x7E, 0x1F, 0x80, 0x07, 0xE3, 0xE0, 0x00, 0xFC, 0xFC, 0x00,
|
||||
0x1F, 0xDF, 0x80, 0x01, 0xFB, 0xE0, 0x00, 0x3F, 0xFC, 0x00, 0x03, 0xFF,
|
||||
0x00, 0x00, 0x7F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00,
|
||||
0x1F, 0xE0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xF0,
|
||||
0x00, 0x03, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x0F, 0xFC, 0x00, 0x03,
|
||||
0xFF, 0xC0, 0x00, 0x7D, 0xF8, 0x00, 0x1F, 0xBF, 0x00, 0x03, 0xF3, 0xF0,
|
||||
0x00, 0x7C, 0x7E, 0x00, 0x1F, 0x87, 0xE0, 0x03, 0xF0, 0xFC, 0x00, 0xFC,
|
||||
0x1F, 0xC0, 0x1F, 0x81, 0xF8, 0x03, 0xE0, 0x3F, 0x00, 0xFC, 0x03, 0xF0,
|
||||
0x1F, 0x80, 0x7E, 0x07, 0xE0, 0x07, 0xE0, 0xFC, 0x00, 0xFC, 0x1F, 0x80,
|
||||
0x1F, 0xC7, 0xE0, 0x01, 0xF8, 0xFC, 0x00, 0x3F, 0x3F, 0x80, 0x03, 0xF7,
|
||||
0xE0, 0x00, 0x7F, 0xFC, 0x00, 0x0F, 0xFF, 0x80, 0x01, 0xFB, 0xF8, 0x00,
|
||||
0x3F, 0x3F, 0x00, 0x0F, 0xE7, 0xE0, 0x01, 0xF8, 0xFC, 0x00, 0x3F, 0x0F,
|
||||
0xC0, 0x0F, 0xE1, 0xF8, 0x01, 0xF8, 0x3F, 0x00, 0x3F, 0x03, 0xF0, 0x0F,
|
||||
0xE0, 0x7E, 0x01, 0xF8, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x07, 0xE0, 0x1F,
|
||||
0x81, 0xF8, 0x03, 0xF0, 0x3F, 0x00, 0x3F, 0x07, 0xE0, 0x07, 0xE1, 0xF8,
|
||||
0x00, 0xFC, 0x3F, 0x00, 0x0F, 0xC7, 0xE0, 0x01, 0xF9, 0xF8, 0x00, 0x3F,
|
||||
0x3F, 0x00, 0x03, 0xF7, 0xE0, 0x00, 0x7F, 0xF8, 0x00, 0x0F, 0xFF, 0x00,
|
||||
0x00, 0xFF, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x3F,
|
||||
0xE0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xE0, 0x00,
|
||||
0x01, 0xF8, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0xFC,
|
||||
0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x7E, 0x00, 0x00,
|
||||
0x0F, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x07, 0xE0,
|
||||
0x00, 0x00, 0xFC, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xF0, 0x00, 0x00,
|
||||
0x7E, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x7F, 0xFF, 0xFB,
|
||||
0xFF, 0xFF, 0xDF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x80, 0x01,
|
||||
0xF8, 0x00, 0x0F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00,
|
||||
0x03, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7E,
|
||||
0x00, 0x07, 0xF0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xC0, 0x00,
|
||||
0xFC, 0x00, 0x07, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x80,
|
||||
0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xE0, 0x00, 0x3F,
|
||||
0x00, 0x03, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00,
|
||||
0x7E, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xC0,
|
||||
0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF0, 0x00, 0x3F,
|
||||
0x80, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x7E,
|
||||
0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0,
|
||||
0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F,
|
||||
0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8,
|
||||
0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01,
|
||||
0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F,
|
||||
0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0,
|
||||
0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFE, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0xC0, 0x01, 0xF0, 0x00,
|
||||
0x7C, 0x00, 0x1F, 0x00, 0x07, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F,
|
||||
0xC0, 0x03, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xE0, 0x01, 0xF8,
|
||||
0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00,
|
||||
0x07, 0xE0, 0x01, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xF0, 0x00,
|
||||
0xFC, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF8, 0x00, 0x3E, 0x00, 0x0F,
|
||||
0x80, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF8,
|
||||
0x00, 0x7E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xFC, 0x00, 0x3F, 0x00,
|
||||
0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00,
|
||||
0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x3F, 0x81,
|
||||
0xFC, 0x0F, 0xE0, 0x7F, 0x03, 0xF8, 0x1F, 0xC0, 0xFE, 0x07, 0xF0, 0x3F,
|
||||
0x81, 0xFC, 0x0F, 0xE0, 0x7F, 0x03, 0xF8, 0x1F, 0xC0, 0xFE, 0x07, 0xF0,
|
||||
0x3F, 0x81, 0xFC, 0x0F, 0xE0, 0x7F, 0x03, 0xF8, 0x1F, 0xC0, 0xFE, 0x07,
|
||||
0xF0, 0x3F, 0x81, 0xFC, 0x0F, 0xE0, 0x7F, 0x03, 0xF8, 0x1F, 0xC0, 0xFE,
|
||||
0x07, 0xF0, 0x3F, 0x81, 0xFC, 0x0F, 0xE0, 0x7F, 0x03, 0xF8, 0x1F, 0xC0,
|
||||
0xFE, 0x07, 0xF0, 0x3F, 0x81, 0xFC, 0x0F, 0xE0, 0x7F, 0x03, 0xF8, 0x1F,
|
||||
0xC0, 0xFE, 0x07, 0xF0, 0x3F, 0x81, 0xFC, 0x0F, 0xE0, 0x7F, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFE, 0x00, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x1F, 0xE0, 0x00,
|
||||
0x7F, 0x80, 0x03, 0xFF, 0x00, 0x0F, 0xFC, 0x00, 0x7E, 0xF8, 0x01, 0xF3,
|
||||
0xE0, 0x07, 0xCF, 0xC0, 0x3E, 0x1F, 0x00, 0xF8, 0x7C, 0x07, 0xE1, 0xF8,
|
||||
0x1F, 0x03, 0xE0, 0xFC, 0x0F, 0xC3, 0xF0, 0x3F, 0x0F, 0x80, 0x7C, 0x7E,
|
||||
0x01, 0xF9, 0xF8, 0x07, 0xEF, 0xC0, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFE, 0x1F, 0x87,
|
||||
0xE0, 0xFC, 0x1F, 0x07, 0xC0, 0xF0, 0x3E, 0x07, 0x81, 0xE0, 0x3C, 0x07,
|
||||
0x03, 0xFF, 0x00, 0x7F, 0xFC, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0xC3, 0xF8,
|
||||
0xFE, 0x3F, 0x83, 0xF9, 0xF8, 0x0F, 0xCF, 0xC0, 0x7E, 0x7E, 0x03, 0xF3,
|
||||
0xF0, 0x1F, 0x9F, 0x80, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x07,
|
||||
0xF8, 0x00, 0xFF, 0xC0, 0x1F, 0xFE, 0x03, 0xFF, 0xF0, 0x3F, 0x9F, 0x87,
|
||||
0xF8, 0xFC, 0x3F, 0x07, 0xE3, 0xF0, 0x3F, 0x3F, 0x81, 0xF9, 0xF8, 0x0F,
|
||||
0xCF, 0xC0, 0x7E, 0x7E, 0x03, 0xF7, 0xF0, 0x1F, 0xBF, 0x80, 0xFC, 0xFC,
|
||||
0x0F, 0xE7, 0xF0, 0xFF, 0x3F, 0xFF, 0xF9, 0xFF, 0xFF, 0xC7, 0xFF, 0x3E,
|
||||
0x1F, 0xF1, 0xF8, 0x7F, 0x0F, 0xC0, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F,
|
||||
0x80, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00,
|
||||
0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC,
|
||||
0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF9, 0xFE, 0x1F, 0xDF, 0xF8,
|
||||
0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x3F, 0xFF, 0xFD, 0xFE, 0x0F, 0xEF, 0xE0,
|
||||
0x3F, 0x7F, 0x01, 0xFB, 0xF8, 0x0F, 0xDF, 0xC0, 0x7F, 0xFE, 0x03, 0xFF,
|
||||
0xF0, 0x1F, 0xFF, 0x80, 0xFF, 0xFC, 0x07, 0xFF, 0xE0, 0x3F, 0xFF, 0x01,
|
||||
0xFF, 0xF8, 0x0F, 0xFF, 0xC0, 0x7F, 0xFE, 0x03, 0xFF, 0xF0, 0x1F, 0xFF,
|
||||
0x80, 0xFF, 0xFC, 0x07, 0xFF, 0xE0, 0x3F, 0xFF, 0x01, 0xFF, 0xF8, 0x0F,
|
||||
0xFF, 0xC0, 0x7E, 0xFE, 0x03, 0xF7, 0xF0, 0x1F, 0xBF, 0x81, 0xFD, 0xFF,
|
||||
0xFF, 0xCF, 0xFF, 0xFE, 0x7F, 0xFF, 0xE3, 0xFB, 0xFF, 0x1F, 0xCF, 0xE0,
|
||||
0x0F, 0xFE, 0x03, 0xFF, 0xE0, 0xFF, 0xFE, 0x3F, 0xFF, 0xE7, 0xF1, 0xFD,
|
||||
0xFC, 0x1F, 0xBF, 0x01, 0xF7, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80, 0xFF,
|
||||
0xF0, 0x1F, 0xFE, 0x03, 0xFF, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07,
|
||||
0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F,
|
||||
0xC0, 0x01, 0xF8, 0x0F, 0xFF, 0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF,
|
||||
0x80, 0xFF, 0xF0, 0x1F, 0xFE, 0x03, 0xEF, 0xE0, 0xFC, 0xFE, 0x3F, 0x9F,
|
||||
0xFF, 0xF1, 0xFF, 0xFC, 0x1F, 0xFF, 0x01, 0xFF, 0xC0, 0x00, 0x03, 0xF0,
|
||||
0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F,
|
||||
0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03,
|
||||
0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x0F, 0xE3, 0xF1, 0xFF,
|
||||
0xBF, 0x3F, 0xFF, 0xF7, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFE,
|
||||
0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF,
|
||||
0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F,
|
||||
0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03,
|
||||
0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0,
|
||||
0x3F, 0xFC, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x07, 0xF7, 0xFB, 0xFF, 0x7F,
|
||||
0xFF, 0xF3, 0xFF, 0xFF, 0x1F, 0xFB, 0xF0, 0xFE, 0x3F, 0x07, 0xFE, 0x03,
|
||||
0xFF, 0xE0, 0xFF, 0xFE, 0x3F, 0xFF, 0xE7, 0xF1, 0xFD, 0xFC, 0x1F, 0xBF,
|
||||
0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80, 0xFF, 0xF0, 0x1F, 0xFE,
|
||||
0x03, 0xFF, 0xC0, 0x7F, 0xF8, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8,
|
||||
0x00, 0x3F, 0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80, 0xFF, 0xF0,
|
||||
0x1F, 0xFE, 0x03, 0xFF, 0xE0, 0xFC, 0xFE, 0x3F, 0x9F, 0xFF, 0xF1, 0xFF,
|
||||
0xFC, 0x1F, 0xFF, 0x01, 0xFF, 0xC0, 0x00, 0xFF, 0x01, 0xFF, 0x03, 0xFF,
|
||||
0x07, 0xFF, 0x07, 0xFF, 0x07, 0xE0, 0x0F, 0xE0, 0x0F, 0xE0, 0x0F, 0xC0,
|
||||
0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0,
|
||||
0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0,
|
||||
0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0,
|
||||
0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0,
|
||||
0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0,
|
||||
0x0F, 0xC0, 0x00, 0x00, 0x01, 0x00, 0xFF, 0x83, 0x81, 0xFF, 0xE3, 0xE1,
|
||||
0xFF, 0xFB, 0xF1, 0xFF, 0xFF, 0xF8, 0xFC, 0x3F, 0xE0, 0xFC, 0x0F, 0xC0,
|
||||
0x7E, 0x03, 0xE0, 0x3E, 0x01, 0xF0, 0x1F, 0x00, 0xF8, 0x0F, 0x80, 0x7C,
|
||||
0x07, 0xC0, 0x3E, 0x03, 0xE0, 0x1F, 0x81, 0xF0, 0x0F, 0xC0, 0xF8, 0x07,
|
||||
0xE0, 0x7C, 0x03, 0xE0, 0x3E, 0x01, 0xF0, 0x1F, 0x80, 0xF8, 0x0F, 0xC0,
|
||||
0xFC, 0x03, 0xF0, 0x7C, 0x01, 0xFF, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x1F,
|
||||
0xFF, 0x00, 0x0F, 0xFE, 0x00, 0x0F, 0x30, 0x00, 0x0F, 0x00, 0x00, 0x0F,
|
||||
0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0xFE, 0x00,
|
||||
0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xF0, 0x07, 0xFF, 0xFC, 0x0F, 0x9F, 0xFE,
|
||||
0x0F, 0x80, 0x3F, 0x8F, 0x80, 0x07, 0xC7, 0xC0, 0x03, 0xE7, 0xC0, 0x01,
|
||||
0xF3, 0xF0, 0x00, 0xF9, 0xF8, 0x00, 0xFC, 0xFF, 0xC7, 0xFC, 0x3F, 0xFF,
|
||||
0xFE, 0x1F, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x00, 0xFF, 0xFC, 0x00, 0x01,
|
||||
0x00, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00,
|
||||
0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00,
|
||||
0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0,
|
||||
0x00, 0xFE, 0x1F, 0xCF, 0xE7, 0xFE, 0xFE, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xF0, 0x7F, 0xFE, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF,
|
||||
0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xE0, 0x3F,
|
||||
0xFE, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x03,
|
||||
0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xE0,
|
||||
0x3F, 0xFE, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xE0, 0x3F, 0xFE,
|
||||
0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF,
|
||||
0xE0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF0, 0x07, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07,
|
||||
0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0,
|
||||
0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC,
|
||||
0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F,
|
||||
0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x0F, 0xE3, 0xFF, 0xFF, 0xFF,
|
||||
0xEF, 0xF9, 0xFE, 0x1C, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0,
|
||||
0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00,
|
||||
0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F,
|
||||
0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x1F, 0xFF, 0x80,
|
||||
0x7E, 0xFE, 0x03, 0xFB, 0xF8, 0x0F, 0xCF, 0xE0, 0x7F, 0x3F, 0x83, 0xF8,
|
||||
0xFE, 0x0F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE3, 0xF8, 0x3F, 0x8F, 0xE0, 0xFE,
|
||||
0x7F, 0x03, 0xF9, 0xF8, 0x0F, 0xEF, 0xE0, 0x3F, 0xFF, 0x00, 0xFF, 0xFE,
|
||||
0x03, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x3F, 0xEF, 0xC0, 0xFF, 0x3F, 0x03,
|
||||
0xFC, 0x7E, 0x0F, 0xE1, 0xF8, 0x3F, 0x87, 0xE0, 0xFE, 0x0F, 0xC3, 0xF8,
|
||||
0x3F, 0x0F, 0xE0, 0xFE, 0x3F, 0x81, 0xF8, 0xFE, 0x07, 0xE3, 0xF8, 0x1F,
|
||||
0xCF, 0xE0, 0x3F, 0x3F, 0x80, 0xFC, 0xFE, 0x01, 0xFB, 0xF8, 0x07, 0xEF,
|
||||
0xE0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x04, 0x00, 0x10, 0x3F, 0x0F, 0xF0,
|
||||
0x7F, 0x8F, 0xCF, 0xFE, 0x3F, 0xF3, 0xF7, 0xFF, 0x9F, 0xFE, 0xFF, 0xFF,
|
||||
0xEF, 0xFF, 0xBF, 0xC1, 0xFF, 0x07, 0xFF, 0xE0, 0x3F, 0x80, 0xFF, 0xF0,
|
||||
0x0F, 0xC0, 0x3F, 0xFC, 0x03, 0xF0, 0x0F, 0xFF, 0x00, 0xFC, 0x03, 0xFF,
|
||||
0xC0, 0x3F, 0x00, 0xFF, 0xF0, 0x0F, 0xC0, 0x3F, 0xFC, 0x03, 0xF0, 0x0F,
|
||||
0xFF, 0x00, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0x00, 0xFF, 0xF0, 0x0F, 0xC0,
|
||||
0x3F, 0xFC, 0x03, 0xF0, 0x0F, 0xFF, 0x00, 0xFC, 0x03, 0xFF, 0xC0, 0x3F,
|
||||
0x00, 0xFF, 0xF0, 0x0F, 0xC0, 0x3F, 0xFC, 0x03, 0xF0, 0x0F, 0xFF, 0x00,
|
||||
0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0x00, 0xFF, 0xF0, 0x0F, 0xC0, 0x3F, 0xFC,
|
||||
0x03, 0xF0, 0x0F, 0xFF, 0x00, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0x00, 0xFF,
|
||||
0xF0, 0x0F, 0xC0, 0x3F, 0xFC, 0x03, 0xF0, 0x0F, 0xFF, 0x00, 0xFC, 0x03,
|
||||
0xFF, 0xC0, 0x3F, 0x00, 0xFF, 0xF0, 0x0F, 0xC0, 0x3F, 0xFC, 0x03, 0xF0,
|
||||
0x0F, 0xFF, 0x00, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0x00, 0xFC, 0xFC, 0x1F,
|
||||
0xCF, 0xC7, 0xFE, 0xFD, 0xFF, 0xEF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xF0,
|
||||
0x7F, 0xFE, 0x07, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC,
|
||||
0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF,
|
||||
0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F,
|
||||
0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03,
|
||||
0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0,
|
||||
0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0x07,
|
||||
0xFC, 0x03, 0xFF, 0xE0, 0xFF, 0xFE, 0x3F, 0xFF, 0xE7, 0xF1, 0xFD, 0xFC,
|
||||
0x1F, 0xBF, 0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80, 0xFF, 0xF0,
|
||||
0x1F, 0xFE, 0x03, 0xFF, 0xC0, 0x7F, 0xF8, 0x0F, 0xFF, 0x01, 0xFF, 0xE0,
|
||||
0x3F, 0xFC, 0x07, 0xFF, 0x80, 0xFF, 0xF0, 0x1F, 0xFE, 0x03, 0xFF, 0xC0,
|
||||
0x7F, 0xF8, 0x0F, 0xFF, 0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80,
|
||||
0xFF, 0xF0, 0x1F, 0xFE, 0x03, 0xFF, 0xE0, 0xFE, 0xFE, 0x3F, 0x9F, 0xFF,
|
||||
0xF1, 0xFF, 0xFC, 0x1F, 0xFF, 0x01, 0xFF, 0x80, 0xFC, 0x7F, 0x07, 0xE7,
|
||||
0xFE, 0x3F, 0x7F, 0xF1, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0x7F, 0x83, 0xFB,
|
||||
0xF0, 0x0F, 0xDF, 0x80, 0x7E, 0xFC, 0x03, 0xF7, 0xE0, 0x1F, 0xFF, 0x00,
|
||||
0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x3F, 0xFE, 0x01, 0xFF, 0xF0, 0x0F, 0xFF,
|
||||
0x80, 0x7F, 0xFC, 0x03, 0xFF, 0xE0, 0x1F, 0xFF, 0x00, 0xFF, 0xF8, 0x07,
|
||||
0xFF, 0xC0, 0x3F, 0xFE, 0x01, 0xFF, 0xF0, 0x0F, 0xFF, 0x80, 0x7F, 0xFC,
|
||||
0x03, 0xF7, 0xE0, 0x1F, 0xBF, 0x00, 0xFD, 0xF8, 0x07, 0xEF, 0xE0, 0x7F,
|
||||
0x7F, 0xFF, 0xF3, 0xFF, 0xFF, 0x9F, 0xFF, 0xF8, 0xFC, 0xFF, 0x87, 0xE3,
|
||||
0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03,
|
||||
0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00,
|
||||
0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x0F, 0xE3, 0xF1, 0xFF, 0xBF,
|
||||
0x3F, 0xFF, 0xF7, 0xFF, 0xFF, 0x7F, 0xFF, 0xF7, 0xE0, 0x7F, 0xFE, 0x03,
|
||||
0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0,
|
||||
0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC,
|
||||
0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF,
|
||||
0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F, 0xFC, 0x03, 0xFF, 0xC0, 0x3F,
|
||||
0xFC, 0x03, 0xFF, 0xE0, 0x3F, 0xFE, 0x07, 0xF7, 0xFF, 0xFF, 0x7F, 0xFF,
|
||||
0xF3, 0xFF, 0xFF, 0x1F, 0xFB, 0xF0, 0xFF, 0x3F, 0x00, 0x03, 0xF0, 0x00,
|
||||
0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00,
|
||||
0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF0,
|
||||
0xFE, 0x1F, 0xFC, 0xFF, 0xFB, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xE0, 0xFF, 0x80, 0xFE, 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xE0,
|
||||
0x1F, 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xFE, 0x01, 0xFC, 0x03, 0xF8, 0x07,
|
||||
0xF0, 0x0F, 0xE0, 0x1F, 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xFE, 0x01, 0xFC,
|
||||
0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0xC0, 0x3F, 0x80, 0x7F, 0x00,
|
||||
0xFE, 0x01, 0xFC, 0x00, 0x03, 0xFC, 0x01, 0xFF, 0xE0, 0x7F, 0xFC, 0x1F,
|
||||
0xFF, 0xC3, 0xF8, 0xFC, 0x7E, 0x0F, 0x9F, 0x80, 0xF3, 0xF0, 0x1F, 0x7E,
|
||||
0x03, 0xEF, 0xC0, 0x60, 0xFC, 0x00, 0x1F, 0xC0, 0x03, 0xFC, 0x00, 0x3F,
|
||||
0xC0, 0x03, 0xFC, 0x00, 0x3F, 0xC0, 0x03, 0xFE, 0x00, 0x3F, 0xE0, 0x03,
|
||||
0xFC, 0x00, 0x3F, 0xC0, 0x03, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xF8, 0x20,
|
||||
0x3F, 0x3C, 0x03, 0xFF, 0x80, 0x7D, 0xF0, 0x0F, 0xBF, 0x01, 0xF7, 0xF0,
|
||||
0x7E, 0x7F, 0x1F, 0xCF, 0xFF, 0xF0, 0xFF, 0xFE, 0x0F, 0xFF, 0x80, 0x7F,
|
||||
0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F,
|
||||
0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F,
|
||||
0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F,
|
||||
0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F,
|
||||
0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F,
|
||||
0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0xE0, 0x0F, 0xF1, 0x07, 0xFF, 0x07,
|
||||
0xFF, 0x03, 0xFF, 0x01, 0xFF, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFC, 0x07,
|
||||
0xFF, 0xC0, 0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFC, 0x07, 0xFF, 0xC0,
|
||||
0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFC,
|
||||
0x07, 0xFF, 0xC0, 0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFC, 0x07, 0xFF,
|
||||
0xC0, 0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F,
|
||||
0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFC, 0x07,
|
||||
0xFF, 0xC0, 0x7F, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF,
|
||||
0x7F, 0x7F, 0xE7, 0xF3, 0xF8, 0x7F, 0xFC, 0x01, 0xFF, 0xE0, 0x1F, 0xBF,
|
||||
0x80, 0xFC, 0xFC, 0x07, 0xE7, 0xE0, 0x3F, 0x3F, 0x01, 0xF9, 0xF8, 0x0F,
|
||||
0xCF, 0xC0, 0xFC, 0x3F, 0x07, 0xE1, 0xF8, 0x3F, 0x0F, 0xC1, 0xF8, 0x7E,
|
||||
0x0F, 0xC3, 0xF0, 0x7C, 0x0F, 0x83, 0xE0, 0x7C, 0x3F, 0x03, 0xF1, 0xF8,
|
||||
0x1F, 0x8F, 0xC0, 0xFC, 0x7C, 0x03, 0xE3, 0xE0, 0x1F, 0x1F, 0x00, 0xF9,
|
||||
0xF8, 0x07, 0xCF, 0xC0, 0x3F, 0x7C, 0x00, 0xFB, 0xE0, 0x07, 0xDF, 0x00,
|
||||
0x3E, 0xF8, 0x01, 0xF7, 0xC0, 0x0F, 0xFE, 0x00, 0x7F, 0xE0, 0x01, 0xFF,
|
||||
0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xC0, 0x03, 0xFE, 0x00, 0x1F, 0xE0, 0x00,
|
||||
0xF8, 0x07, 0xC0, 0x3F, 0xF0, 0x0F, 0x80, 0x7F, 0xE0, 0x3F, 0x01, 0xFF,
|
||||
0xC0, 0x7E, 0x03, 0xEF, 0x80, 0xFC, 0x07, 0xCF, 0x81, 0xFC, 0x0F, 0x9F,
|
||||
0x03, 0xF8, 0x1F, 0x3E, 0x0F, 0xF0, 0x3E, 0x7C, 0x1F, 0xE0, 0x7C, 0xF8,
|
||||
0x3F, 0xC1, 0xF1, 0xF0, 0x7F, 0xC3, 0xE3, 0xE0, 0xF7, 0x87, 0xC3, 0xE1,
|
||||
0xEF, 0x0F, 0x87, 0xC7, 0xDE, 0x1F, 0x0F, 0x8F, 0x3C, 0x3E, 0x1F, 0x1E,
|
||||
0x78, 0x78, 0x3E, 0x3C, 0x79, 0xF0, 0x7C, 0x78, 0xF3, 0xE0, 0x78, 0xF1,
|
||||
0xE7, 0xC0, 0xFB, 0xE3, 0xCF, 0x81, 0xF7, 0x87, 0x9F, 0x03, 0xEF, 0x07,
|
||||
0xBC, 0x07, 0xDE, 0x0F, 0x78, 0x0F, 0xBC, 0x1F, 0xF0, 0x0F, 0xF8, 0x3F,
|
||||
0xE0, 0x1F, 0xE0, 0x7F, 0xC0, 0x3F, 0xC0, 0x7F, 0x80, 0x7F, 0x80, 0xFE,
|
||||
0x00, 0xFF, 0x01, 0xFC, 0x01, 0xFE, 0x03, 0xF8, 0x01, 0xF8, 0x07, 0xF0,
|
||||
0x03, 0xF0, 0x0F, 0xE0, 0x07, 0xE0, 0x0F, 0xC0, 0x0F, 0xC0, 0x1F, 0x00,
|
||||
0xFC, 0x01, 0xFF, 0xE0, 0x1F, 0xDF, 0x80, 0xFC, 0xFC, 0x07, 0xE3, 0xF0,
|
||||
0x7E, 0x1F, 0x83, 0xF0, 0x7E, 0x3F, 0x03, 0xF1, 0xF8, 0x0F, 0xCF, 0x80,
|
||||
0x7E, 0xFC, 0x01, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7F, 0xF0, 0x01, 0xFF,
|
||||
0x00, 0x0F, 0xF8, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00,
|
||||
0xFF, 0x00, 0x07, 0xFC, 0x00, 0x7F, 0xE0, 0x03, 0xFF, 0x80, 0x3F, 0xFC,
|
||||
0x01, 0xFB, 0xF0, 0x0F, 0x9F, 0x80, 0xFC, 0xFC, 0x07, 0xC3, 0xF0, 0x7E,
|
||||
0x1F, 0x83, 0xF0, 0x7E, 0x3F, 0x03, 0xF1, 0xF8, 0x0F, 0xCF, 0x80, 0x7E,
|
||||
0xFC, 0x01, 0xFF, 0xE0, 0x0F, 0xC0, 0xFC, 0x01, 0xFF, 0xE0, 0x0F, 0xFF,
|
||||
0x00, 0x7E, 0xFC, 0x07, 0xF7, 0xE0, 0x3F, 0x3F, 0x01, 0xF9, 0xF8, 0x0F,
|
||||
0xCF, 0xC0, 0x7E, 0x3F, 0x03, 0xE1, 0xF8, 0x3F, 0x0F, 0xC1, 0xF8, 0x7E,
|
||||
0x0F, 0xC1, 0xF0, 0x7E, 0x0F, 0x83, 0xE0, 0x7E, 0x1F, 0x03, 0xF1, 0xF8,
|
||||
0x0F, 0x8F, 0xC0, 0x7C, 0x7C, 0x03, 0xE3, 0xE0, 0x1F, 0x9F, 0x00, 0x7D,
|
||||
0xF8, 0x03, 0xEF, 0xC0, 0x1F, 0x7C, 0x00, 0xFB, 0xE0, 0x07, 0xDF, 0x00,
|
||||
0x1F, 0xF8, 0x00, 0xFF, 0x80, 0x07, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0xFF,
|
||||
0x00, 0x07, 0xF8, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x07, 0xE0, 0x00,
|
||||
0x3F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x80, 0x03, 0xFC, 0x00, 0xFF, 0xC0,
|
||||
0x07, 0xFE, 0x00, 0x3F, 0xE0, 0x01, 0xFC, 0x00, 0x0C, 0x00, 0x00, 0x7F,
|
||||
0xFF, 0xBF, 0xFF, 0xDF, 0xFF, 0xEF, 0xFF, 0xF7, 0xFF, 0xF8, 0x01, 0xF8,
|
||||
0x00, 0xFC, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x7F, 0x00, 0x3F, 0x00, 0x3F,
|
||||
0x80, 0x1F, 0x80, 0x0F, 0xC0, 0x0F, 0xE0, 0x07, 0xE0, 0x07, 0xF0, 0x03,
|
||||
0xF0, 0x01, 0xF8, 0x01, 0xFC, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0x7E, 0x00,
|
||||
0x7F, 0x00, 0x3F, 0x80, 0x1F, 0x80, 0x1F, 0xC0, 0x0F, 0xC0, 0x0F, 0xE0,
|
||||
0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
|
||||
0x00, 0xFC, 0x0F, 0xF0, 0x7F, 0xC3, 0xFF, 0x0F, 0xFC, 0x3F, 0x80, 0xFE,
|
||||
0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F,
|
||||
0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F,
|
||||
0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x7F, 0x01, 0xFC, 0x3F,
|
||||
0xE0, 0xFF, 0x03, 0xF8, 0x0F, 0xF0, 0x3F, 0xE0, 0x1F, 0xC0, 0x7F, 0x00,
|
||||
0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0,
|
||||
0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0,
|
||||
0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xE0, 0x3F, 0x80, 0xFF,
|
||||
0x83, 0xFF, 0x07, 0xFC, 0x0F, 0xF0, 0x1F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFC, 0xFC, 0x03, 0xFC, 0x0F, 0xF8, 0x3F, 0xE0, 0xFF, 0xC0,
|
||||
0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0,
|
||||
0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC,
|
||||
0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F,
|
||||
0x80, 0xFE, 0x01, 0xFF, 0x07, 0xFC, 0x07, 0xF0, 0x3F, 0xC1, 0xFF, 0x0F,
|
||||
0xE0, 0x3F, 0x80, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03,
|
||||
0xF0, 0x0F, 0xC0, 0x3F, 0x00, 0xFC, 0x03, 0xF0, 0x0F, 0xC0, 0x3F, 0x00,
|
||||
0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0,
|
||||
0x7F, 0x0F, 0xFC, 0x3F, 0xE0, 0xFF, 0x83, 0xFC, 0x0F, 0xE0, 0x00, 0x03,
|
||||
0x80, 0x00, 0x3F, 0x80, 0x43, 0xFF, 0x83, 0x9F, 0xFF, 0xBF, 0xFF, 0xFF,
|
||||
0xFD, 0xF3, 0xFF, 0xE7, 0x03, 0xFF, 0x08, 0x03, 0xF0, 0x00, 0x03, 0x80 };
|
||||
|
||||
const GFXglyph Oswald_Regular30pt7bGlyphs[] PROGMEM = {
|
||||
{ 0, 1, 1, 13, 0, 0 }, // 0x20 ' '
|
||||
{ 1, 6, 48, 12, 3, -47 }, // 0x21 '!'
|
||||
{ 37, 14, 15, 16, 1, -47 }, // 0x22 '"'
|
||||
{ 64, 25, 48, 29, 2, -47 }, // 0x23 '#'
|
||||
{ 214, 24, 57, 29, 2, -51 }, // 0x24 '$'
|
||||
{ 385, 48, 48, 52, 2, -47 }, // 0x25 '%'
|
||||
{ 673, 29, 49, 36, 3, -47 }, // 0x26 '&'
|
||||
{ 851, 6, 15, 7, 1, -47 }, // 0x27 '''
|
||||
{ 863, 12, 59, 18, 4, -47 }, // 0x28 '('
|
||||
{ 952, 11, 59, 15, 2, -47 }, // 0x29 ')'
|
||||
{ 1034, 19, 20, 23, 3, -47 }, // 0x2A '*'
|
||||
{ 1082, 22, 24, 24, 1, -35 }, // 0x2B '+'
|
||||
{ 1148, 7, 15, 11, 2, -6 }, // 0x2C ','
|
||||
{ 1162, 13, 5, 19, 3, -19 }, // 0x2D '-'
|
||||
{ 1171, 6, 7, 11, 3, -6 }, // 0x2E '.'
|
||||
{ 1177, 18, 48, 22, 2, -47 }, // 0x2F '/'
|
||||
{ 1285, 24, 49, 30, 3, -47 }, // 0x30 '0'
|
||||
{ 1432, 14, 48, 23, 2, -47 }, // 0x31 '1'
|
||||
{ 1516, 24, 48, 28, 2, -47 }, // 0x32 '2'
|
||||
{ 1660, 24, 49, 28, 2, -47 }, // 0x33 '3'
|
||||
{ 1807, 26, 48, 28, 2, -47 }, // 0x34 '4'
|
||||
{ 1963, 23, 48, 28, 3, -47 }, // 0x35 '5'
|
||||
{ 2101, 24, 49, 30, 3, -47 }, // 0x36 '6'
|
||||
{ 2248, 19, 48, 23, 1, -47 }, // 0x37 '7'
|
||||
{ 2362, 23, 49, 29, 3, -47 }, // 0x38 '8'
|
||||
{ 2503, 23, 49, 30, 3, -47 }, // 0x39 '9'
|
||||
{ 2644, 6, 25, 12, 4, -30 }, // 0x3A ':'
|
||||
{ 2663, 7, 36, 13, 3, -32 }, // 0x3B ';'
|
||||
{ 2695, 17, 30, 22, 2, -31 }, // 0x3C '<'
|
||||
{ 2759, 18, 16, 24, 3, -31 }, // 0x3D '='
|
||||
{ 2795, 17, 30, 22, 3, -31 }, // 0x3E '>'
|
||||
{ 2859, 23, 48, 29, 3, -47 }, // 0x3F '?'
|
||||
{ 2997, 48, 56, 53, 3, -47 }, // 0x40 '@'
|
||||
{ 3333, 27, 48, 29, 1, -47 }, // 0x41 'A'
|
||||
{ 3495, 25, 48, 31, 4, -47 }, // 0x42 'B'
|
||||
{ 3645, 25, 49, 30, 3, -47 }, // 0x43 'C'
|
||||
{ 3799, 24, 48, 31, 4, -47 }, // 0x44 'D'
|
||||
{ 3943, 18, 48, 24, 4, -47 }, // 0x45 'E'
|
||||
{ 4051, 18, 48, 23, 4, -47 }, // 0x46 'F'
|
||||
{ 4159, 25, 49, 31, 3, -47 }, // 0x47 'G'
|
||||
{ 4313, 25, 48, 33, 4, -47 }, // 0x48 'H'
|
||||
{ 4463, 7, 48, 15, 4, -47 }, // 0x49 'I'
|
||||
{ 4505, 14, 49, 18, 0, -47 }, // 0x4A 'J'
|
||||
{ 4591, 25, 48, 29, 4, -47 }, // 0x4B 'K'
|
||||
{ 4741, 19, 48, 23, 4, -47 }, // 0x4C 'L'
|
||||
{ 4855, 31, 48, 39, 4, -47 }, // 0x4D 'M'
|
||||
{ 5041, 23, 48, 31, 4, -47 }, // 0x4E 'N'
|
||||
{ 5179, 26, 49, 32, 3, -47 }, // 0x4F 'O'
|
||||
{ 5339, 23, 48, 28, 4, -47 }, // 0x50 'P'
|
||||
{ 5477, 26, 58, 32, 3, -47 }, // 0x51 'Q'
|
||||
{ 5666, 24, 48, 30, 4, -47 }, // 0x52 'R'
|
||||
{ 5810, 24, 49, 28, 2, -47 }, // 0x53 'S'
|
||||
{ 5957, 22, 48, 24, 1, -47 }, // 0x54 'T'
|
||||
{ 6089, 26, 49, 32, 3, -47 }, // 0x55 'U'
|
||||
{ 6249, 27, 48, 30, 1, -47 }, // 0x56 'V'
|
||||
{ 6411, 39, 48, 43, 2, -47 }, // 0x57 'W'
|
||||
{ 6645, 27, 48, 28, 1, -47 }, // 0x58 'X'
|
||||
{ 6807, 27, 48, 28, 1, -47 }, // 0x59 'Y'
|
||||
{ 6969, 21, 48, 25, 2, -47 }, // 0x5A 'Z'
|
||||
{ 7095, 13, 59, 20, 4, -47 }, // 0x5B '['
|
||||
{ 7191, 18, 48, 22, 2, -47 }, // 0x5C '\'
|
||||
{ 7299, 13, 59, 18, 2, -47 }, // 0x5D ']'
|
||||
{ 7395, 22, 19, 26, 2, -47 }, // 0x5E '^'
|
||||
{ 7448, 20, 5, 20, 0, 4 }, // 0x5F '_'
|
||||
{ 7461, 10, 12, 16, 3, -47 }, // 0x60 '`'
|
||||
{ 7476, 21, 34, 25, 2, -33 }, // 0x61 'a'
|
||||
{ 7566, 21, 48, 26, 3, -47 }, // 0x62 'b'
|
||||
{ 7692, 19, 34, 24, 3, -33 }, // 0x63 'c'
|
||||
{ 7773, 20, 48, 26, 3, -47 }, // 0x64 'd'
|
||||
{ 7893, 19, 34, 25, 3, -33 }, // 0x65 'e'
|
||||
{ 7974, 16, 46, 17, 1, -45 }, // 0x66 'f'
|
||||
{ 8066, 25, 46, 26, 1, -34 }, // 0x67 'g'
|
||||
{ 8210, 20, 48, 26, 3, -47 }, // 0x68 'h'
|
||||
{ 8330, 6, 46, 13, 4, -45 }, // 0x69 'i'
|
||||
{ 8365, 11, 55, 14, -1, -45 }, // 0x6A 'j'
|
||||
{ 8441, 22, 48, 25, 3, -47 }, // 0x6B 'k'
|
||||
{ 8573, 6, 48, 13, 4, -47 }, // 0x6C 'l'
|
||||
{ 8609, 34, 35, 40, 3, -34 }, // 0x6D 'm'
|
||||
{ 8758, 20, 34, 26, 3, -33 }, // 0x6E 'n'
|
||||
{ 8843, 19, 34, 25, 3, -33 }, // 0x6F 'o'
|
||||
{ 8924, 21, 45, 26, 3, -33 }, // 0x70 'p'
|
||||
{ 9043, 20, 45, 26, 3, -33 }, // 0x71 'q'
|
||||
{ 9156, 15, 34, 19, 3, -33 }, // 0x72 'r'
|
||||
{ 9220, 19, 34, 22, 1, -33 }, // 0x73 's'
|
||||
{ 9301, 16, 44, 18, 1, -43 }, // 0x74 't'
|
||||
{ 9389, 20, 34, 26, 3, -33 }, // 0x75 'u'
|
||||
{ 9474, 21, 34, 23, 1, -33 }, // 0x76 'v'
|
||||
{ 9564, 31, 34, 35, 2, -33 }, // 0x77 'w'
|
||||
{ 9696, 21, 34, 23, 1, -33 }, // 0x78 'x'
|
||||
{ 9786, 21, 43, 23, 1, -33 }, // 0x79 'y'
|
||||
{ 9899, 17, 34, 20, 2, -33 }, // 0x7A 'z'
|
||||
{ 9972, 14, 59, 18, 2, -47 }, // 0x7B '{'
|
||||
{ 10076, 6, 57, 14, 4, -47 }, // 0x7C '|'
|
||||
{ 10119, 14, 59, 19, 3, -47 }, // 0x7D '}'
|
||||
{ 10223, 22, 9, 26, 2, -29 } }; // 0x7E '~'
|
||||
|
||||
const GFXfont Oswald_Regular30pt7b PROGMEM = {
|
||||
(uint8_t *)Oswald_Regular30pt7bBitmaps,
|
||||
(GFXglyph *)Oswald_Regular30pt7bGlyphs,
|
||||
0x20, 0x7E, 87 };
|
||||
|
||||
// Approx. 10920 bytes
|
7762
src/fonts/oswald-90.h
Normal file
7762
src/fonts/oswald-90.h
Normal file
File diff suppressed because it is too large
Load diff
296
src/fonts/ubuntu-italic12.h
Normal file
296
src/fonts/ubuntu-italic12.h
Normal file
|
@ -0,0 +1,296 @@
|
|||
const uint8_t Ubuntu_Italic12pt7bBitmaps[] PROGMEM = {
|
||||
0x00, 0x0C, 0x31, 0x86, 0x18, 0x63, 0x0C, 0x30, 0x86, 0x00, 0x00, 0x0E,
|
||||
0x38, 0xE0, 0x66, 0xCF, 0x36, 0x6C, 0xD1, 0x00, 0x01, 0x83, 0x03, 0x06,
|
||||
0x03, 0x06, 0x03, 0x06, 0x7F, 0xFF, 0x7F, 0xFF, 0x0C, 0x18, 0x0C, 0x18,
|
||||
0x1C, 0x38, 0x18, 0x30, 0x18, 0x30, 0xFF, 0xFE, 0xFF, 0xFE, 0x60, 0xC0,
|
||||
0x60, 0xC0, 0x60, 0xC0, 0xC1, 0x80, 0x00, 0x60, 0x07, 0x00, 0x30, 0x07,
|
||||
0xE0, 0xFF, 0x86, 0x08, 0x60, 0x03, 0x00, 0x18, 0x00, 0xE0, 0x03, 0xC0,
|
||||
0x0F, 0x00, 0x1C, 0x00, 0x70, 0x01, 0x80, 0x0C, 0x00, 0x62, 0x0E, 0x3F,
|
||||
0xF0, 0xFE, 0x00, 0xC0, 0x0E, 0x00, 0x60, 0x00, 0x1E, 0x03, 0x23, 0x06,
|
||||
0x63, 0x0C, 0xC3, 0x18, 0xC3, 0x30, 0xC3, 0x70, 0xC6, 0x60, 0xC4, 0xC0,
|
||||
0x79, 0x9E, 0x03, 0x23, 0x06, 0x63, 0x0E, 0xC3, 0x0C, 0xC3, 0x18, 0xC3,
|
||||
0x30, 0xC6, 0x60, 0xC4, 0xC0, 0x78, 0x03, 0xE0, 0x1F, 0xC0, 0xE3, 0x03,
|
||||
0x0C, 0x0C, 0x30, 0x31, 0x80, 0xCE, 0x01, 0xF0, 0x0F, 0x00, 0xFC, 0x27,
|
||||
0x39, 0xD8, 0x66, 0xC0, 0xF3, 0x01, 0xCC, 0x06, 0x38, 0x7C, 0x7F, 0xB0,
|
||||
0xF8, 0x60, 0x6F, 0x6D, 0x00, 0x01, 0x01, 0xC1, 0xC1, 0xC0, 0xC0, 0xC0,
|
||||
0xE0, 0x60, 0x70, 0x30, 0x18, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0,
|
||||
0x60, 0x30, 0x18, 0x06, 0x03, 0x01, 0x00, 0x02, 0x06, 0x06, 0x03, 0x03,
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x0C, 0x0C,
|
||||
0x18, 0x18, 0x30, 0x70, 0xE0, 0x40, 0x1C, 0x0E, 0x37, 0x7D, 0x77, 0xF0,
|
||||
0xE0, 0xD8, 0xEE, 0x22, 0x00, 0x03, 0x00, 0x60, 0x18, 0x03, 0x00, 0x61,
|
||||
0xFF, 0xFF, 0xF8, 0x60, 0x0C, 0x01, 0x80, 0x60, 0x0C, 0x00, 0x18, 0xCC,
|
||||
0x67, 0x33, 0x00, 0xFF, 0xF0, 0xFF, 0x80, 0x00, 0x07, 0x00, 0x06, 0x00,
|
||||
0x0E, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x38, 0x00, 0x30, 0x00, 0x70, 0x00,
|
||||
0x60, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x80, 0x03, 0x00, 0x06,
|
||||
0x00, 0x0E, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x70,
|
||||
0x00, 0x60, 0x00, 0xE0, 0x00, 0x03, 0xC0, 0xFE, 0x1C, 0x73, 0x83, 0x30,
|
||||
0x37, 0x03, 0x60, 0x36, 0x03, 0xC0, 0x3C, 0x06, 0xC0, 0x6C, 0x0E, 0xC0,
|
||||
0xCC, 0x1C, 0xE3, 0x87, 0xF0, 0x3C, 0x00, 0x06, 0x3C, 0xF7, 0xEC, 0xC1,
|
||||
0x86, 0x0C, 0x18, 0x30, 0xE1, 0x83, 0x06, 0x0C, 0x30, 0x60, 0x07, 0xC0,
|
||||
0xFE, 0x1C, 0x71, 0x03, 0x00, 0x30, 0x03, 0x00, 0x60, 0x0E, 0x01, 0xC0,
|
||||
0x38, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0x60, 0x0F, 0xFC, 0xFF, 0xC0,
|
||||
0x07, 0xC0, 0xFE, 0x08, 0x70, 0x03, 0x00, 0x30, 0x07, 0x00, 0xE0, 0x7C,
|
||||
0x07, 0xC0, 0x0E, 0x00, 0x60, 0x06, 0x00, 0x60, 0x0E, 0x41, 0xCF, 0xF8,
|
||||
0x7E, 0x00, 0x00, 0x38, 0x03, 0x80, 0x3C, 0x03, 0x60, 0x33, 0x03, 0x38,
|
||||
0x31, 0x83, 0x8C, 0x18, 0x61, 0x87, 0x18, 0x30, 0xFF, 0xEF, 0xFF, 0x00,
|
||||
0x60, 0x03, 0x00, 0x30, 0x01, 0x80, 0x03, 0xF8, 0x1F, 0xC1, 0x80, 0x0C,
|
||||
0x00, 0xC0, 0x06, 0x00, 0x3C, 0x03, 0xF8, 0x01, 0xC0, 0x07, 0x00, 0x18,
|
||||
0x00, 0xC0, 0x06, 0x00, 0x71, 0x07, 0x1F, 0xF0, 0x7E, 0x00, 0x00, 0xF0,
|
||||
0x3F, 0x0F, 0x01, 0xC0, 0x38, 0x03, 0x00, 0x6F, 0x87, 0xFC, 0xF0, 0xEC,
|
||||
0x06, 0xC0, 0x6C, 0x06, 0xC0, 0x6C, 0x0C, 0xE1, 0xC7, 0xF8, 0x3E, 0x00,
|
||||
0x7F, 0xF7, 0xFF, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x38, 0x07, 0x00, 0x60,
|
||||
0x0C, 0x01, 0xC0, 0x18, 0x03, 0x00, 0x30, 0x06, 0x00, 0x60, 0x0E, 0x00,
|
||||
0xC0, 0x00, 0x07, 0xE0, 0x7F, 0x87, 0x0E, 0x70, 0x33, 0x01, 0x98, 0x0C,
|
||||
0xE0, 0xC3, 0xFC, 0x1F, 0x81, 0xCE, 0x18, 0x39, 0x80, 0xCC, 0x06, 0x60,
|
||||
0x73, 0x87, 0x0F, 0xF0, 0x3F, 0x00, 0x03, 0xE0, 0x7F, 0x87, 0x0E, 0x30,
|
||||
0x33, 0x01, 0x98, 0x0C, 0xC0, 0x67, 0x07, 0x1F, 0xF8, 0x7F, 0x80, 0x0C,
|
||||
0x00, 0xC0, 0x0E, 0x00, 0xE0, 0x1E, 0x1F, 0xC0, 0xF8, 0x00, 0x39, 0xCE,
|
||||
0x00, 0x00, 0x00, 0x00, 0x39, 0xCE, 0x00, 0x0E, 0x1C, 0x38, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x60, 0xC3, 0x06, 0x1C, 0x30, 0xC0, 0x00, 0x10,
|
||||
0x0F, 0x07, 0xE1, 0xF0, 0xF8, 0x0E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80,
|
||||
0x1C, 0x00, 0x00, 0x7F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFE,
|
||||
0xFF, 0xE0, 0x00, 0x03, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x06, 0x03,
|
||||
0xE0, 0xF8, 0x7E, 0x0F, 0x00, 0x80, 0x00, 0x1F, 0x1F, 0xC8, 0x60, 0x30,
|
||||
0x18, 0x18, 0x1C, 0x1C, 0x18, 0x18, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x01,
|
||||
0xC0, 0xE0, 0x70, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF8, 0x07, 0x81, 0xC0,
|
||||
0xE0, 0x0E, 0x1C, 0x00, 0x73, 0x87, 0xC3, 0x31, 0xFE, 0x36, 0x38, 0x63,
|
||||
0x63, 0x0C, 0x3C, 0x60, 0xC3, 0xC6, 0x0C, 0x3C, 0x61, 0x86, 0xC6, 0x18,
|
||||
0x6C, 0x71, 0x8E, 0xC3, 0xFF, 0xCC, 0x1E, 0xF0, 0x60, 0x00, 0x07, 0x00,
|
||||
0x00, 0x38, 0x10, 0x01, 0xFF, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x30, 0x01,
|
||||
0xC0, 0x0F, 0x80, 0x36, 0x01, 0xD8, 0x06, 0x60, 0x31, 0x81, 0xC6, 0x06,
|
||||
0x18, 0x38, 0x61, 0xC1, 0x87, 0xFF, 0x3F, 0xFC, 0xC0, 0x36, 0x00, 0xD8,
|
||||
0x03, 0xC0, 0x0C, 0x0F, 0xF0, 0x3F, 0xE1, 0x81, 0xC6, 0x03, 0x18, 0x0C,
|
||||
0x60, 0x33, 0x03, 0x8F, 0xFC, 0x3F, 0xF0, 0xC0, 0xE3, 0x01, 0x98, 0x06,
|
||||
0x60, 0x19, 0x80, 0xE6, 0x0F, 0x3F, 0xF8, 0xFF, 0x00, 0x01, 0xF8, 0x1F,
|
||||
0xF1, 0xE0, 0x8E, 0x00, 0x30, 0x01, 0x80, 0x06, 0x00, 0x30, 0x00, 0xC0,
|
||||
0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x80, 0x07, 0x06, 0x0F,
|
||||
0xF8, 0x1F, 0xC0, 0x0F, 0xE0, 0x1F, 0xF0, 0x60, 0x70, 0xC0, 0x61, 0x80,
|
||||
0x63, 0x00, 0xCE, 0x01, 0x98, 0x03, 0x30, 0x06, 0x60, 0x0C, 0xC0, 0x33,
|
||||
0x00, 0x66, 0x01, 0x8C, 0x07, 0x18, 0x3C, 0x7F, 0xE0, 0xFF, 0x00, 0x0F,
|
||||
0xF8, 0x7F, 0xC6, 0x00, 0x30, 0x01, 0x80, 0x0C, 0x00, 0xE0, 0x07, 0xF8,
|
||||
0x3F, 0xC1, 0x80, 0x0C, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x1F,
|
||||
0xF8, 0xFF, 0xC0, 0x0F, 0xFC, 0x3F, 0xF1, 0x80, 0x06, 0x00, 0x18, 0x00,
|
||||
0x60, 0x03, 0x00, 0x0F, 0xF8, 0x3F, 0xE0, 0xC0, 0x03, 0x00, 0x18, 0x00,
|
||||
0x60, 0x01, 0x80, 0x06, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x01, 0xFC, 0x0F,
|
||||
0xFC, 0x78, 0x11, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x70, 0x00,
|
||||
0xC0, 0x01, 0x80, 0x33, 0x00, 0xE6, 0x01, 0x8C, 0x03, 0x1C, 0x06, 0x1C,
|
||||
0x18, 0x1F, 0xF0, 0x1F, 0xC0, 0x0C, 0x03, 0x0C, 0x03, 0x18, 0x06, 0x18,
|
||||
0x06, 0x18, 0x06, 0x18, 0x06, 0x38, 0x0C, 0x3F, 0xFC, 0x3F, 0xFC, 0x30,
|
||||
0x0C, 0x30, 0x1C, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0xC0,
|
||||
0x30, 0xC0, 0x30, 0x0C, 0x31, 0x86, 0x18, 0x63, 0x0C, 0x30, 0xC7, 0x18,
|
||||
0x61, 0x86, 0x30, 0xC0, 0x00, 0x18, 0x00, 0xC0, 0x0C, 0x00, 0x60, 0x03,
|
||||
0x00, 0x38, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x06, 0x00, 0x30, 0x01, 0x80,
|
||||
0x0C, 0x00, 0xC1, 0x0E, 0x1F, 0xE0, 0x7E, 0x00, 0x0C, 0x07, 0x0C, 0x0E,
|
||||
0x18, 0x3C, 0x18, 0x70, 0x18, 0xE0, 0x19, 0xC0, 0x3B, 0x80, 0x3F, 0x00,
|
||||
0x3E, 0x00, 0x37, 0x00, 0x33, 0x80, 0x61, 0xC0, 0x61, 0xC0, 0x60, 0xE0,
|
||||
0x60, 0x70, 0xC0, 0x30, 0xC0, 0x38, 0x0C, 0x03, 0x01, 0x80, 0x60, 0x18,
|
||||
0x06, 0x03, 0x80, 0xC0, 0x30, 0x0C, 0x03, 0x01, 0x80, 0x60, 0x18, 0x06,
|
||||
0x03, 0xFF, 0xFF, 0xC0, 0x06, 0x00, 0xE1, 0xC0, 0x1C, 0x3C, 0x07, 0x87,
|
||||
0x81, 0xF1, 0xF0, 0x3E, 0x36, 0x0D, 0xC6, 0xE1, 0xB1, 0xCC, 0x66, 0x31,
|
||||
0x8C, 0xC6, 0x33, 0x18, 0xC6, 0xC3, 0x30, 0xD8, 0xE6, 0x0E, 0x18, 0xC1,
|
||||
0xC3, 0x38, 0x30, 0x66, 0x00, 0x0C, 0xC0, 0x01, 0x80, 0x0C, 0x01, 0x87,
|
||||
0x00, 0xC7, 0x80, 0xC3, 0xE0, 0x61, 0xB0, 0x30, 0xDC, 0x18, 0xE6, 0x18,
|
||||
0x63, 0x8C, 0x30, 0xC6, 0x18, 0x73, 0x0C, 0x1B, 0x8C, 0x0D, 0x86, 0x03,
|
||||
0xC3, 0x01, 0xE1, 0x80, 0xF1, 0x80, 0x30, 0xC0, 0x18, 0x00, 0x03, 0xF0,
|
||||
0x1F, 0xF0, 0x78, 0x71, 0xC0, 0x73, 0x00, 0x6C, 0x00, 0xD8, 0x01, 0xE0,
|
||||
0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x36, 0x00, 0x6C, 0x01, 0x9C, 0x07,
|
||||
0x1C, 0x3C, 0x1F, 0xF0, 0x1F, 0x80, 0x0F, 0xE0, 0x3F, 0xE1, 0x81, 0xC6,
|
||||
0x03, 0x18, 0x0C, 0x60, 0x33, 0x80, 0xCC, 0x06, 0x30, 0x78, 0xFF, 0x83,
|
||||
0xF8, 0x18, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x30, 0x00, 0xC0, 0x00,
|
||||
0x03, 0xF0, 0x1F, 0xF0, 0x78, 0x71, 0xC0, 0x73, 0x00, 0x6C, 0x00, 0xD8,
|
||||
0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x36, 0x00, 0x6C, 0x01,
|
||||
0x9C, 0x07, 0x1C, 0x3C, 0x1F, 0xF0, 0x1F, 0x80, 0x0C, 0x00, 0x1E, 0x00,
|
||||
0x1F, 0x00, 0x0E, 0x00, 0x0F, 0xE0, 0x3F, 0xE1, 0x81, 0xC6, 0x03, 0x18,
|
||||
0x0C, 0x60, 0x33, 0x81, 0xCC, 0x1E, 0x3F, 0xF0, 0xFF, 0x83, 0x0C, 0x18,
|
||||
0x18, 0x60, 0x61, 0x80, 0xC6, 0x03, 0x30, 0x0C, 0xC0, 0x18, 0x03, 0xF0,
|
||||
0x7F, 0xC3, 0x04, 0x30, 0x01, 0x80, 0x0C, 0x00, 0x70, 0x01, 0xE0, 0x07,
|
||||
0x80, 0x0E, 0x00, 0x38, 0x00, 0xC0, 0x06, 0x00, 0x31, 0x07, 0x1F, 0xF0,
|
||||
0x7F, 0x00, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x60, 0x0C, 0x00, 0xC0, 0x0C,
|
||||
0x01, 0xC0, 0x18, 0x01, 0x80, 0x18, 0x03, 0x00, 0x30, 0x03, 0x00, 0x30,
|
||||
0x06, 0x00, 0x60, 0x00, 0x18, 0x06, 0x30, 0x1C, 0xC0, 0x31, 0x80, 0x63,
|
||||
0x00, 0xC6, 0x03, 0x18, 0x06, 0x30, 0x0C, 0x60, 0x39, 0xC0, 0x63, 0x00,
|
||||
0xC6, 0x01, 0x8C, 0x06, 0x18, 0x0C, 0x38, 0x70, 0x3F, 0xE0, 0x3F, 0x00,
|
||||
0xC0, 0x0F, 0x00, 0x6C, 0x01, 0xB0, 0x0C, 0xC0, 0x33, 0x01, 0x8E, 0x0E,
|
||||
0x18, 0x30, 0x61, 0xC1, 0x86, 0x06, 0x30, 0x19, 0xC0, 0x66, 0x01, 0xB0,
|
||||
0x07, 0xC0, 0x0E, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x3C, 0x00, 0x07, 0xC0,
|
||||
0xC0, 0x6C, 0x0C, 0x06, 0xC1, 0xC0, 0xCC, 0x1C, 0x0C, 0xC3, 0x41, 0x8C,
|
||||
0x36, 0x18, 0xC6, 0x63, 0x8C, 0x66, 0x30, 0xCC, 0x67, 0x0D, 0x86, 0x60,
|
||||
0xD8, 0x6E, 0x0F, 0x06, 0xC0, 0xF0, 0x7C, 0x0E, 0x03, 0x80, 0xE0, 0x38,
|
||||
0x00, 0x0C, 0x01, 0xC1, 0x80, 0xE0, 0x60, 0x30, 0x0C, 0x18, 0x03, 0x0C,
|
||||
0x00, 0x66, 0x00, 0x1F, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x78, 0x00,
|
||||
0x33, 0x00, 0x18, 0xC0, 0x0C, 0x18, 0x06, 0x06, 0x03, 0x00, 0xC1, 0x80,
|
||||
0x30, 0xC0, 0x06, 0x00, 0xC0, 0x1F, 0x01, 0x98, 0x18, 0xC0, 0xC3, 0x0C,
|
||||
0x18, 0xC0, 0xE6, 0x03, 0x60, 0x1E, 0x00, 0x70, 0x03, 0x00, 0x18, 0x01,
|
||||
0x80, 0x0C, 0x00, 0x60, 0x07, 0x00, 0x30, 0x00, 0x0F, 0xFE, 0x1F, 0xFC,
|
||||
0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03,
|
||||
0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0E, 0x00, 0x38, 0x00,
|
||||
0x7F, 0xF8, 0xFF, 0xF0, 0x03, 0xE0, 0x7C, 0x18, 0x03, 0x00, 0x60, 0x0C,
|
||||
0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x60, 0x0C, 0x01, 0x80, 0x70, 0x0C,
|
||||
0x01, 0x80, 0x30, 0x0E, 0x01, 0x80, 0x30, 0x06, 0x01, 0xF8, 0x3F, 0x00,
|
||||
0xC6, 0x31, 0x86, 0x31, 0x8C, 0x63, 0x18, 0xC3, 0x18, 0xC6, 0x31, 0x8C,
|
||||
0x31, 0x8C, 0x60, 0x07, 0xE0, 0xFC, 0x03, 0x00, 0x60, 0x0C, 0x03, 0x80,
|
||||
0x60, 0x0C, 0x01, 0x80, 0x70, 0x0C, 0x01, 0x80, 0x30, 0x0C, 0x01, 0x80,
|
||||
0x30, 0x06, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC1, 0xF0, 0x3E, 0x00, 0x01,
|
||||
0x80, 0x38, 0x06, 0xC0, 0xCC, 0x1C, 0xC3, 0x86, 0x30, 0x66, 0x07, 0x40,
|
||||
0x20, 0xFF, 0xFF, 0xFF, 0x67, 0x1C, 0x71, 0x00, 0x03, 0xE0, 0xFF, 0x3C,
|
||||
0x33, 0x06, 0x60, 0x6E, 0x06, 0xC0, 0x6C, 0x0C, 0xC0, 0xCC, 0x0C, 0xE1,
|
||||
0xC7, 0xFC, 0x3E, 0xC0, 0x0C, 0x00, 0xC0, 0x1C, 0x01, 0x80, 0x18, 0x01,
|
||||
0xBC, 0x1F, 0xE3, 0x87, 0x30, 0x33, 0x03, 0x30, 0x36, 0x03, 0x60, 0x76,
|
||||
0x06, 0x60, 0xEC, 0x3C, 0xFF, 0x87, 0xE0, 0x07, 0xE3, 0xFC, 0xE1, 0x38,
|
||||
0x06, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x82, 0x3F, 0xC1,
|
||||
0xF0, 0x00, 0x0C, 0x00, 0x70, 0x01, 0x80, 0x06, 0x00, 0x18, 0x0F, 0xC0,
|
||||
0xFF, 0x0F, 0x0C, 0x30, 0x61, 0x81, 0x86, 0x06, 0x30, 0x38, 0xC0, 0xC3,
|
||||
0x03, 0x0C, 0x0C, 0x38, 0x70, 0x7F, 0xC0, 0xF3, 0x00, 0x07, 0xC3, 0xFC,
|
||||
0xE1, 0xB0, 0x36, 0x07, 0x83, 0xBF, 0xE7, 0xF0, 0xC0, 0x18, 0x03, 0x82,
|
||||
0x3F, 0xC3, 0xF0, 0x00, 0x7C, 0x07, 0xE0, 0x18, 0x00, 0xE0, 0x03, 0x00,
|
||||
0x0F, 0xC0, 0x7F, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0xC0, 0x03, 0x00,
|
||||
0x0C, 0x00, 0x30, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0xE0, 0x03, 0x00,
|
||||
0x0C, 0x00, 0x60, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0xF0, 0xF0, 0xC3,
|
||||
0x06, 0x18, 0x18, 0x60, 0x63, 0x01, 0x8C, 0x0C, 0x30, 0x30, 0xC0, 0xC3,
|
||||
0x8F, 0x07, 0xF8, 0x0F, 0x60, 0x03, 0x84, 0x1C, 0x3F, 0xF0, 0x7F, 0x00,
|
||||
0x0C, 0x01, 0x80, 0x70, 0x0C, 0x01, 0x80, 0x3F, 0x07, 0xF1, 0x87, 0x30,
|
||||
0x66, 0x0C, 0xC1, 0xB8, 0x36, 0x0C, 0xC1, 0x98, 0x33, 0x06, 0xC1, 0x98,
|
||||
0x30, 0x0C, 0x30, 0x00, 0x18, 0x63, 0x0C, 0x30, 0xC7, 0x18, 0x61, 0x8E,
|
||||
0x30, 0xC0, 0x00, 0x60, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x80, 0x60,
|
||||
0x0C, 0x01, 0x80, 0x30, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x01, 0x80, 0x30,
|
||||
0x06, 0x01, 0xC0, 0x30, 0x7E, 0x0F, 0x00, 0x0C, 0x00, 0xC0, 0x18, 0x01,
|
||||
0x80, 0x18, 0x01, 0x83, 0x10, 0xC3, 0x18, 0x33, 0x03, 0x60, 0x2C, 0x07,
|
||||
0xC0, 0x6C, 0x06, 0x60, 0x63, 0x06, 0x38, 0xC1, 0x8C, 0x1C, 0x18, 0xCE,
|
||||
0x63, 0x18, 0xCC, 0x63, 0x19, 0xCC, 0x63, 0x18, 0xF3, 0x80, 0x0F, 0xCF,
|
||||
0x07, 0xFF, 0xE1, 0x8F, 0x1C, 0xC1, 0x83, 0x30, 0x60, 0xCC, 0x18, 0x33,
|
||||
0x06, 0x0D, 0x83, 0x06, 0x60, 0xC1, 0x98, 0x30, 0x66, 0x0C, 0x1B, 0x06,
|
||||
0x0C, 0xC1, 0x83, 0x00, 0x0F, 0x83, 0xF8, 0x63, 0x98, 0x33, 0x06, 0x60,
|
||||
0xCC, 0x1B, 0x06, 0x60, 0xCC, 0x19, 0x83, 0x60, 0xCC, 0x18, 0x0F, 0x83,
|
||||
0xF8, 0xE3, 0xB8, 0x36, 0x07, 0xC0, 0xF0, 0x1E, 0x07, 0xC0, 0xD8, 0x3B,
|
||||
0x8E, 0x3F, 0x83, 0xE0, 0x07, 0xE0, 0x7F, 0x83, 0x0E, 0x30, 0x31, 0x81,
|
||||
0x8C, 0x0C, 0x60, 0x66, 0x07, 0x30, 0x31, 0x83, 0x8C, 0x78, 0xFF, 0x87,
|
||||
0xF0, 0x30, 0x01, 0x80, 0x18, 0x00, 0xC0, 0x00, 0x03, 0xE0, 0xFF, 0x3C,
|
||||
0x33, 0x06, 0x60, 0x6E, 0x06, 0xC0, 0x6C, 0x0C, 0xC0, 0xCC, 0x0C, 0xE1,
|
||||
0xC7, 0xF8, 0x3D, 0x80, 0x18, 0x03, 0x80, 0x30, 0x03, 0x00, 0x0F, 0x8F,
|
||||
0xC6, 0x06, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x60, 0x30, 0x18, 0x18, 0x0C,
|
||||
0x00, 0x0F, 0x87, 0xF3, 0x88, 0xC0, 0x30, 0x0F, 0x01, 0xF0, 0x1E, 0x01,
|
||||
0x80, 0x64, 0x3B, 0xFC, 0x7E, 0x00, 0x18, 0x0C, 0x0C, 0x06, 0x03, 0xF9,
|
||||
0xFD, 0x80, 0xC0, 0x60, 0x70, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x11, 0xF8,
|
||||
0x78, 0x00, 0x30, 0x66, 0x0D, 0x83, 0x30, 0x66, 0x0D, 0x81, 0xB0, 0x36,
|
||||
0x0C, 0xC1, 0x98, 0x33, 0x8E, 0x3F, 0xC7, 0xD8, 0xE0, 0x6C, 0x1D, 0x83,
|
||||
0x30, 0x66, 0x18, 0xC7, 0x18, 0xC3, 0x38, 0x66, 0x0D, 0xC1, 0xF0, 0x3C,
|
||||
0x03, 0x00, 0xC0, 0xC0, 0xF0, 0x30, 0x7C, 0x0C, 0x1B, 0x07, 0x06, 0xC1,
|
||||
0xC3, 0x30, 0xF0, 0xCE, 0x24, 0x63, 0x99, 0x98, 0x6C, 0x6C, 0x1B, 0x1F,
|
||||
0x07, 0x87, 0x81, 0xE1, 0xE0, 0x70, 0x70, 0x00, 0x18, 0x70, 0xC6, 0x0C,
|
||||
0xC0, 0x7C, 0x07, 0x80, 0x70, 0x07, 0x00, 0xF8, 0x1D, 0x81, 0x9C, 0x30,
|
||||
0xC6, 0x0C, 0xE0, 0x60, 0x0C, 0x0C, 0x30, 0x70, 0xC1, 0x83, 0x06, 0x0C,
|
||||
0x38, 0x38, 0xC0, 0x63, 0x01, 0x98, 0x06, 0x60, 0x1B, 0x00, 0x7C, 0x01,
|
||||
0xE0, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x3F, 0x00, 0xF0, 0x00, 0x1F, 0xF1,
|
||||
0xFF, 0x00, 0x60, 0x0C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07,
|
||||
0x00, 0xE0, 0x0F, 0xFC, 0xFF, 0xC0, 0x03, 0x83, 0xC3, 0x81, 0x80, 0xC0,
|
||||
0x60, 0x60, 0x30, 0x18, 0x18, 0x38, 0x1C, 0x06, 0x03, 0x01, 0x80, 0xC0,
|
||||
0x60, 0x60, 0x30, 0x18, 0x0C, 0x07, 0x81, 0xC0, 0x03, 0x03, 0x06, 0x06,
|
||||
0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30,
|
||||
0x30, 0x60, 0x60, 0x60, 0x60, 0xC0, 0xC0, 0x03, 0x80, 0x78, 0x03, 0x00,
|
||||
0x60, 0x0C, 0x01, 0x80, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x03, 0x80, 0xF0,
|
||||
0x18, 0x06, 0x00, 0xC0, 0x18, 0x07, 0x00, 0xC0, 0x18, 0x03, 0x00, 0xC1,
|
||||
0xF8, 0x3C, 0x00, 0x3C, 0x1B, 0xF1, 0xF8, 0xFD, 0x83, 0xC0 };
|
||||
|
||||
const GFXglyph Ubuntu_Italic12pt7bGlyphs[] PROGMEM = {
|
||||
{ 0, 1, 1, 6, 0, 0 }, // 0x20 ' '
|
||||
{ 1, 6, 17, 6, 2, -16 }, // 0x21 '!'
|
||||
{ 14, 7, 6, 10, 6, -17 }, // 0x22 '"'
|
||||
{ 20, 16, 17, 16, 2, -16 }, // 0x23 '#'
|
||||
{ 54, 13, 23, 14, 2, -19 }, // 0x24 '$'
|
||||
{ 92, 16, 17, 20, 4, -16 }, // 0x25 '%'
|
||||
{ 126, 14, 18, 15, 2, -17 }, // 0x26 '&'
|
||||
{ 158, 3, 6, 6, 6, -17 }, // 0x27 '''
|
||||
{ 161, 9, 23, 8, 4, -18 }, // 0x28 '('
|
||||
{ 187, 8, 23, 8, -1, -18 }, // 0x29 ')'
|
||||
{ 210, 9, 9, 11, 4, -16 }, // 0x2A '*'
|
||||
{ 221, 11, 12, 14, 3, -12 }, // 0x2B '+'
|
||||
{ 238, 5, 7, 6, 0, -2 }, // 0x2C ','
|
||||
{ 243, 6, 2, 7, 2, -7 }, // 0x2D '-'
|
||||
{ 245, 3, 3, 6, 2, -2 }, // 0x2E '.'
|
||||
{ 247, 16, 23, 9, -2, -18 }, // 0x2F '/'
|
||||
{ 293, 12, 17, 14, 3, -16 }, // 0x30 '0'
|
||||
{ 319, 7, 17, 14, 6, -16 }, // 0x31 '1'
|
||||
{ 334, 12, 17, 14, 3, -16 }, // 0x32 '2'
|
||||
{ 360, 12, 17, 14, 3, -16 }, // 0x33 '3'
|
||||
{ 386, 13, 17, 14, 2, -16 }, // 0x34 '4'
|
||||
{ 414, 13, 17, 14, 2, -16 }, // 0x35 '5'
|
||||
{ 442, 12, 17, 14, 3, -16 }, // 0x36 '6'
|
||||
{ 468, 12, 17, 14, 4, -16 }, // 0x37 '7'
|
||||
{ 494, 13, 17, 14, 3, -16 }, // 0x38 '8'
|
||||
{ 522, 13, 17, 14, 2, -16 }, // 0x39 '9'
|
||||
{ 550, 5, 13, 6, 2, -12 }, // 0x3A ':'
|
||||
{ 559, 7, 17, 6, 0, -12 }, // 0x3B ';'
|
||||
{ 574, 12, 11, 14, 3, -12 }, // 0x3C '<'
|
||||
{ 591, 12, 7, 14, 3, -10 }, // 0x3D '='
|
||||
{ 602, 12, 11, 14, 3, -12 }, // 0x3E '>'
|
||||
{ 619, 9, 18, 9, 3, -17 }, // 0x3F '?'
|
||||
{ 640, 20, 21, 22, 3, -16 }, // 0x40 '@'
|
||||
{ 693, 14, 17, 15, 0, -16 }, // 0x41 'A'
|
||||
{ 723, 14, 17, 15, 2, -16 }, // 0x42 'B'
|
||||
{ 753, 14, 17, 14, 3, -16 }, // 0x43 'C'
|
||||
{ 783, 15, 17, 17, 3, -16 }, // 0x44 'D'
|
||||
{ 815, 13, 17, 13, 2, -16 }, // 0x45 'E'
|
||||
{ 843, 14, 17, 13, 2, -16 }, // 0x46 'F'
|
||||
{ 873, 15, 17, 16, 3, -16 }, // 0x47 'G'
|
||||
{ 905, 16, 17, 16, 2, -16 }, // 0x48 'H'
|
||||
{ 939, 6, 17, 6, 2, -16 }, // 0x49 'I'
|
||||
{ 952, 13, 17, 12, 1, -16 }, // 0x4A 'J'
|
||||
{ 980, 16, 17, 15, 2, -16 }, // 0x4B 'K'
|
||||
{ 1014, 10, 17, 12, 2, -16 }, // 0x4C 'L'
|
||||
{ 1036, 19, 17, 20, 2, -16 }, // 0x4D 'M'
|
||||
{ 1077, 17, 17, 17, 2, -16 }, // 0x4E 'N'
|
||||
{ 1114, 15, 17, 18, 4, -16 }, // 0x4F 'O'
|
||||
{ 1146, 14, 17, 14, 2, -16 }, // 0x50 'P'
|
||||
{ 1176, 15, 21, 18, 4, -16 }, // 0x51 'Q'
|
||||
{ 1216, 14, 17, 15, 2, -16 }, // 0x52 'R'
|
||||
{ 1246, 13, 17, 12, 1, -16 }, // 0x53 'S'
|
||||
{ 1274, 12, 17, 13, 4, -16 }, // 0x54 'T'
|
||||
{ 1300, 15, 17, 16, 3, -16 }, // 0x55 'U'
|
||||
{ 1332, 14, 17, 15, 4, -16 }, // 0x56 'V'
|
||||
{ 1362, 20, 17, 22, 5, -16 }, // 0x57 'W'
|
||||
{ 1405, 18, 17, 15, 0, -16 }, // 0x58 'X'
|
||||
{ 1444, 13, 17, 14, 4, -16 }, // 0x59 'Y'
|
||||
{ 1472, 15, 17, 13, 1, -16 }, // 0x5A 'Z'
|
||||
{ 1504, 11, 23, 8, 1, -18 }, // 0x5B '['
|
||||
{ 1536, 5, 23, 9, 3, -18 }, // 0x5C '\'
|
||||
{ 1551, 11, 23, 8, -1, -18 }, // 0x5D ']'
|
||||
{ 1583, 12, 9, 14, 3, -16 }, // 0x5E '^'
|
||||
{ 1597, 12, 2, 12, -1, 3 }, // 0x5F '_'
|
||||
{ 1600, 5, 5, 9, 5, -18 }, // 0x60 '`'
|
||||
{ 1604, 12, 13, 13, 2, -12 }, // 0x61 'a'
|
||||
{ 1624, 12, 18, 13, 2, -17 }, // 0x62 'b'
|
||||
{ 1651, 11, 13, 11, 2, -12 }, // 0x63 'c'
|
||||
{ 1669, 14, 18, 13, 2, -17 }, // 0x64 'd'
|
||||
{ 1701, 11, 13, 12, 2, -12 }, // 0x65 'e'
|
||||
{ 1719, 14, 22, 9, 0, -17 }, // 0x66 'f'
|
||||
{ 1758, 14, 17, 13, 0, -12 }, // 0x67 'g'
|
||||
{ 1788, 11, 18, 13, 2, -17 }, // 0x68 'h'
|
||||
{ 1813, 6, 17, 6, 2, -16 }, // 0x69 'i'
|
||||
{ 1826, 11, 21, 6, -3, -16 }, // 0x6A 'j'
|
||||
{ 1855, 12, 18, 12, 2, -17 }, // 0x6B 'k'
|
||||
{ 1882, 5, 18, 7, 3, -17 }, // 0x6C 'l'
|
||||
{ 1894, 18, 13, 20, 2, -12 }, // 0x6D 'm'
|
||||
{ 1924, 11, 13, 13, 2, -12 }, // 0x6E 'n'
|
||||
{ 1942, 11, 13, 13, 2, -12 }, // 0x6F 'o'
|
||||
{ 1960, 13, 17, 13, 1, -12 }, // 0x70 'p'
|
||||
{ 1988, 12, 17, 13, 2, -12 }, // 0x71 'q'
|
||||
{ 2014, 9, 13, 9, 2, -12 }, // 0x72 'r'
|
||||
{ 2029, 10, 13, 10, 1, -12 }, // 0x73 's'
|
||||
{ 2046, 9, 17, 9, 3, -16 }, // 0x74 't'
|
||||
{ 2066, 11, 13, 13, 3, -12 }, // 0x75 'u'
|
||||
{ 2084, 11, 13, 12, 3, -12 }, // 0x76 'v'
|
||||
{ 2102, 18, 13, 19, 3, -12 }, // 0x77 'w'
|
||||
{ 2132, 12, 13, 11, 1, -12 }, // 0x78 'x'
|
||||
{ 2152, 14, 17, 11, -1, -12 }, // 0x79 'y'
|
||||
{ 2182, 12, 13, 11, 1, -12 }, // 0x7A 'z'
|
||||
{ 2202, 9, 23, 8, 3, -18 }, // 0x7B '{'
|
||||
{ 2228, 8, 23, 7, 1, -18 }, // 0x7C '|'
|
||||
{ 2251, 11, 23, 8, -1, -18 }, // 0x7D '}'
|
||||
{ 2283, 13, 4, 14, 2, -8 } }; // 0x7E '~'
|
||||
|
||||
const GFXfont Ubuntu_Italic12pt7b PROGMEM = {
|
||||
(uint8_t *)Ubuntu_Italic12pt7bBitmaps,
|
||||
(GFXglyph *)Ubuntu_Italic12pt7bGlyphs,
|
||||
0x20, 0x7E, 27 };
|
||||
|
||||
// Approx. 2962 bytes
|
2087
src/fonts/ubuntu-italic40.h
Normal file
2087
src/fonts/ubuntu-italic40.h
Normal file
File diff suppressed because it is too large
Load diff
4672
src/fonts/ubuntu-italic60.h
Normal file
4672
src/fonts/ubuntu-italic60.h
Normal file
File diff suppressed because it is too large
Load diff
6260
src/fonts/ubuntu-italic70.h
Normal file
6260
src/fonts/ubuntu-italic70.h
Normal file
File diff suppressed because it is too large
Load diff
515
src/lib/functions.cpp
Normal file
515
src/lib/functions.cpp
Normal file
|
@ -0,0 +1,515 @@
|
|||
#include "functions.hpp"
|
||||
#include <freertos/FreeRTOS.h>
|
||||
#include <freertos/task.h>
|
||||
#include <cstring>
|
||||
#include "../fonts/oswald-90.h"
|
||||
#include "../fonts/oswald-20.h"
|
||||
#include "../fonts/ubuntu-italic70.h"
|
||||
|
||||
#include "../web.h"
|
||||
|
||||
#ifdef IS_3C
|
||||
GxEPD2_3C<GxEPD2_213_Z98c, GxEPD2_213_Z98c::HEIGHT> displays[7] = {
|
||||
GxEPD2_213_Z98c(/*CS=25*/ 21, /*DC=*/22, /*RST=*/-1, /*BUSY=34*/ 36), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_Z98c(/*CS=33*/ 13, /*DC=*/22, /*RST=*/-1, /*BUSY=36*/ 39), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_Z98c(/*CS=12*/ 5, /*DC=*/22, /*RST=*/-1, /*BUSY=35*/ 34), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_Z98c(/*CS=27*/ 17, /*DC=*/22, /*RST=*/-1, /*BUSY=*/35), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_Z98c(/*CS=14*/ 16, /*DC=*/22, /*RST=*/-1, /*BUSY=39*/ 32), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_Z98c(/*CS=5*/ 4, /*DC=*/22, /*RST=*/-1, /*BUSY=*/33), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_Z98c(/*CS=17*/ 15, /*DC=*/22, /*RST=*/-1, /*BUSY=*/25), // GDEY0213Z98 122x250, SSD1680
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef IS_BW
|
||||
#ifdef IS_S3
|
||||
GxEPD2_BW<GxEPD2_213_B74, GxEPD2_213_B74::HEIGHT> displays[7] = {
|
||||
GxEPD2_213_B74(/*CS=25*/ 40, /*DC=*/1, /*RST=*/-1, /*BUSY=34*/ 4), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=33*/ 39, /*DC=*/1, /*RST=*/-1, /*BUSY=36*/ 5), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=12*/ 9, /*DC=*/1, /*RST=*/-1, /*BUSY=35*/ 6), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=27*/ 10, /*DC=*/1, /*RST=*/-1, /*BUSY=*/7), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=14*/ 3, /*DC=*/1, /*RST=*/-1, /*BUSY=39*/ 15), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=5*/ 8, /*DC=*/1, /*RST=*/-1, /*BUSY=*/16), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=17*/ 18, /*DC=*/1, /*RST=*/-1, /*BUSY=*/17), // GDEY0213Z98 122x250, SSD1680
|
||||
};
|
||||
#else
|
||||
GxEPD2_BW<GxEPD2_213_B74, GxEPD2_213_B74::HEIGHT> displays[7] = {
|
||||
GxEPD2_213_B74(/*CS=25*/ 21, /*DC=*/22, /*RST=*/-1, /*BUSY=34*/ 36), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=33*/ 13, /*DC=*/22, /*RST=*/-1, /*BUSY=36*/ 39), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=12*/ 5, /*DC=*/22, /*RST=*/-1, /*BUSY=35*/ 34), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=27*/ 17, /*DC=*/22, /*RST=*/-1, /*BUSY=*/35), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=14*/ 16, /*DC=*/22, /*RST=*/-1, /*BUSY=39*/ 32), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=5*/ 4, /*DC=*/22, /*RST=*/-1, /*BUSY=*/33), // GDEY0213Z98 122x250, SSD1680
|
||||
GxEPD2_213_B74(/*CS=17*/ 15, /*DC=*/22, /*RST=*/-1, /*BUSY=*/25), // GDEY0213Z98 122x250, SSD1680
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
String epdContent[7];
|
||||
uint displaySize = sizeof(displays) / sizeof(uint);
|
||||
uint32_t lastFullRefresh;
|
||||
bool displayGuard[7] = {false, false, false, false, false, false, false};
|
||||
|
||||
void initDisplays()
|
||||
{
|
||||
for (uint i = 0; i < 7; i++)
|
||||
{
|
||||
displays[i].init();
|
||||
}
|
||||
|
||||
std::string text = "BTClock";
|
||||
|
||||
showCharsInLine(text, &Ubuntu_Italic70pt7b);
|
||||
lastFullRefresh = millis();
|
||||
}
|
||||
|
||||
void fullRefreshWatcher(void *parameter)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
if (millis() - lastFullRefresh > 1800 * 1000)
|
||||
{
|
||||
Serial.println("Doing full refresh");
|
||||
fullRefresh();
|
||||
}
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
}
|
||||
}
|
||||
|
||||
void fullRefresh()
|
||||
{
|
||||
NormalText_T data[7];
|
||||
for (uint i = 0; i < 7; i++)
|
||||
{
|
||||
data[i] = {i, ' '};
|
||||
xTaskCreate(refreshDisplay, "RefreshDisplay" + char(i), 2048, &data[i], 500 + (i + 2), NULL);
|
||||
}
|
||||
lastFullRefresh = millis();
|
||||
}
|
||||
|
||||
uint getDisplayInitTime()
|
||||
{
|
||||
return displays[0].epd2.full_refresh_time * 1.5;
|
||||
}
|
||||
|
||||
void resetAllDisplays()
|
||||
{
|
||||
digitalWrite(RST_PIN, HIGH);
|
||||
pinMode(RST_PIN, OUTPUT);
|
||||
delay(20);
|
||||
digitalWrite(RST_PIN, LOW);
|
||||
delay(20);
|
||||
digitalWrite(RST_PIN, HIGH);
|
||||
delay(200);
|
||||
}
|
||||
|
||||
void clearDisplayVtask(void *parameter)
|
||||
{
|
||||
NormalText_T *data = (NormalText_T *)parameter;
|
||||
|
||||
if (data->displayNum > displaySize)
|
||||
{
|
||||
vTaskDelete(NULL);
|
||||
return;
|
||||
}
|
||||
// displays[data->displayNum].fillScreen(BG_COLOR);
|
||||
showDigit(data->displayNum, data->chr, false, &Ubuntu_Italic70pt7b);
|
||||
/// learDisplay(data->displayNum);
|
||||
// displays[data->displayNum].display(false);
|
||||
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
void clearDisplay(uint dispNum)
|
||||
{
|
||||
displays[dispNum].fillScreen(BG_COLOR);
|
||||
displays[dispNum].display(false);
|
||||
}
|
||||
|
||||
void showNumberWithPair(std::string top, std::string bottom, std::string text)
|
||||
{
|
||||
digitalWrite(RST_PIN, HIGH);
|
||||
pinMode(RST_PIN, OUTPUT);
|
||||
delay(20);
|
||||
digitalWrite(RST_PIN, LOW);
|
||||
delay(20);
|
||||
digitalWrite(RST_PIN, HIGH);
|
||||
delay(200);
|
||||
|
||||
text.insert(text.begin(), 7 - text.length(), ' ');
|
||||
strcpy(blocks, text.c_str());
|
||||
SplitText_T spd = {0, top.c_str(), bottom.c_str()};
|
||||
xTaskCreate(splitTextVtask, "ShowText", 5000, &spd, 10, NULL);
|
||||
NormalText_T data[7];
|
||||
Serial.println(blocks);
|
||||
for (uint i = 1; i < 7; i++)
|
||||
{
|
||||
if (blocks[i] != currentBlocks[i] || true)
|
||||
{
|
||||
|
||||
Serial.println("Writing " + String(blocks[i]) + " to display " + String(i));
|
||||
data[i] = {(i), blocks[i]};
|
||||
|
||||
xTaskCreate(showDigitVtask, "Disp" + char(i), 2048, &data[i], (10 + i * 10), NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void showText(std::string text)
|
||||
{
|
||||
digitalWrite(RST_PIN, HIGH);
|
||||
pinMode(RST_PIN, OUTPUT);
|
||||
delay(20);
|
||||
digitalWrite(RST_PIN, LOW);
|
||||
delay(20);
|
||||
digitalWrite(RST_PIN, HIGH);
|
||||
delay(200);
|
||||
|
||||
text.insert(text.begin(), 7 - text.length(), ' ');
|
||||
strcpy(blocks, text.c_str());
|
||||
// SplitText_T spd = {0, "MSCW", "TIME"};
|
||||
// xTaskCreate(splitTextVtask, "ShowText", 5000, &spd, 10, NULL);
|
||||
NormalText_T data[7];
|
||||
Serial.println(blocks);
|
||||
for (uint i = 0; i < 7; i++)
|
||||
{
|
||||
if (blocks[i] != currentBlocks[i] || true)
|
||||
{
|
||||
|
||||
Serial.println("Writing " + String(blocks[i]) + " to display " + String(i));
|
||||
data[i] = {(i), blocks[i]};
|
||||
|
||||
xTaskCreate(showDigitVtask, "Disp" + char(i), 2048, &data[i], (10 + i * 10), NULL);
|
||||
}
|
||||
}
|
||||
|
||||
std::copy(blocks, blocks + 7, currentBlocks);
|
||||
}
|
||||
|
||||
void waitForDisplayGuard(uint dispNum)
|
||||
{
|
||||
if (!displayGuard[dispNum])
|
||||
return;
|
||||
Serial.print("Displayguard for screen ");
|
||||
Serial.print(dispNum);
|
||||
uint count = 0;
|
||||
while (displayGuard[dispNum])
|
||||
{
|
||||
if (count > 100)
|
||||
{
|
||||
throw std::invalid_argument("Waiting too long.");
|
||||
}
|
||||
Serial.print(".");
|
||||
delay(100);
|
||||
count++;
|
||||
}
|
||||
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
void splitTextVtask(void *parameter)
|
||||
{
|
||||
try
|
||||
{
|
||||
SplitText_T *data = (SplitText_T *)parameter;
|
||||
|
||||
if (data->displayNum > displaySize)
|
||||
{
|
||||
vTaskDelete(NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
uint val = data->displayNum;
|
||||
String top = data->top;
|
||||
String bottom = data->bottom;
|
||||
|
||||
waitForDisplayGuard(val);
|
||||
displayGuard[val] = true;
|
||||
epdContent[val] = top + "/" + bottom;
|
||||
// Serial.println("[VTASK SPLITTEXT] Writing " + String(data->top) + "/" + String(data->bottom) + " to display " + String(val));
|
||||
splitText(val, top, bottom);
|
||||
displayGuard[val] = false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
Serial.println("Error in splitText Vtask");
|
||||
}
|
||||
// displays[data->displayNum].hibernate();
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
void showDigitVtask(void *parameter)
|
||||
{
|
||||
NormalText_T *data = (NormalText_T *)parameter;
|
||||
|
||||
if (data->displayNum > displaySize)
|
||||
{
|
||||
vTaskDelete(NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
uint val = data->displayNum;
|
||||
char chr = data->chr;
|
||||
|
||||
waitForDisplayGuard(val);
|
||||
|
||||
displayGuard[val] = true;
|
||||
#ifdef DEBUG
|
||||
Serial.println("[VTASK DIGIT] Writing " + String(chr) + " to display " + String(val));
|
||||
#endif
|
||||
epdContent[val] = String(chr);
|
||||
|
||||
showDigit(val, chr);
|
||||
displayGuard[val] = false;
|
||||
// displays[data->displayNum].hibernate();
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
void splitText(uint dispNr, String top, String bottom)
|
||||
{
|
||||
splitText(displays[dispNr], top, bottom);
|
||||
}
|
||||
|
||||
template <typename GxEPD2_Type, template <typename, const uint16_t> class GxGFX_Type>
|
||||
void splitText(GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> &disp, String top, String bottom)
|
||||
{
|
||||
disp.setRotation(2);
|
||||
disp.setFont(&FONT_SMALL);
|
||||
disp.setTextColor(FG_COLOR);
|
||||
|
||||
// Top text
|
||||
int16_t ttbx, ttby;
|
||||
uint16_t ttbw, ttbh;
|
||||
disp.getTextBounds(top, 0, 0, &ttbx, &ttby, &ttbw, &ttbh);
|
||||
uint16_t tx = ((disp.width() - ttbw) / 2) - ttbx;
|
||||
uint16_t ty = ((disp.height() - ttbh) / 2) - ttby - ttbh / 2 - 12;
|
||||
|
||||
// Bottom text
|
||||
int16_t tbbx, tbby;
|
||||
uint16_t tbbw, tbbh;
|
||||
disp.getTextBounds(bottom, 0, 0, &tbbx, &tbby, &tbbw, &tbbh);
|
||||
uint16_t bx = ((disp.width() - tbbw) / 2) - tbbx;
|
||||
uint16_t by = ((disp.height() - tbbh) / 2) - tbby + tbbh / 2 + 12;
|
||||
|
||||
// Make separator as wide as the shortest text.
|
||||
uint16_t lineWidth, lineX;
|
||||
if (tbbw < ttbh)
|
||||
lineWidth = tbbw;
|
||||
else
|
||||
lineWidth = ttbw;
|
||||
lineX = round((disp.width() - lineWidth) / 2);
|
||||
|
||||
// disp.firstPage();
|
||||
// do
|
||||
//{
|
||||
disp.fillScreen(BG_COLOR);
|
||||
disp.setCursor(tx, ty);
|
||||
disp.print(top);
|
||||
disp.fillRoundRect(lineX, disp.height() / 2 - 3, lineWidth, 6, 3, FG_COLOR);
|
||||
disp.setCursor(bx, by);
|
||||
disp.print(bottom);
|
||||
|
||||
disp.display(true);
|
||||
disp.hibernate();
|
||||
// } while (disp.nextPage());
|
||||
}
|
||||
|
||||
void showDigit(uint dispNr, char chr)
|
||||
{
|
||||
showDigit(displays[dispNr], chr);
|
||||
}
|
||||
|
||||
void showDigit(uint dispNr, char chr, bool partial)
|
||||
{
|
||||
showDigit(displays[dispNr], chr, partial, &FONT_BIG);
|
||||
}
|
||||
|
||||
void showDigit(uint dispNr, char chr, bool partial, const GFXfont *font)
|
||||
{
|
||||
showDigit(displays[dispNr], chr, partial, font);
|
||||
}
|
||||
|
||||
template <typename GxEPD2_Type, template <typename, const uint16_t> class GxGFX_Type>
|
||||
void showDigit(GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> &disp, char chr)
|
||||
{
|
||||
showDigit(disp, chr, true, &FONT_BIG);
|
||||
}
|
||||
|
||||
template <typename GxEPD2_Type, template <typename, const uint16_t> class GxGFX_Type>
|
||||
void showDigit(GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> &disp, char chr, bool partial, const GFXfont *font)
|
||||
{
|
||||
String str(chr);
|
||||
disp.setRotation(2);
|
||||
disp.setFont(font);
|
||||
disp.setTextColor(FG_COLOR);
|
||||
int16_t tbx, tby;
|
||||
uint16_t tbw, tbh;
|
||||
disp.getTextBounds(str, 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
// center the bounding box by transposition of the origin:
|
||||
uint16_t x = ((disp.width() - tbw) / 2) - tbx;
|
||||
uint16_t y = ((disp.height() - tbh) / 2) - tby;
|
||||
// disp.setPartialWindow(x,y,tbw,tbh);
|
||||
// disp.firstPage();
|
||||
// do
|
||||
// {
|
||||
disp.fillScreen(BG_COLOR);
|
||||
disp.setCursor(x, y);
|
||||
disp.print(str);
|
||||
disp.display(partial);
|
||||
disp.hibernate();
|
||||
// } while (disp.nextPage());
|
||||
}
|
||||
|
||||
void refreshDisplay(void *parameter)
|
||||
{
|
||||
NormalText_T *data = (NormalText_T *)parameter;
|
||||
if (data->displayNum > displaySize)
|
||||
{
|
||||
vTaskDelete(NULL);
|
||||
return;
|
||||
}
|
||||
uint val = data->displayNum;
|
||||
|
||||
waitForDisplayGuard(val);
|
||||
displayGuard[val] = true;
|
||||
displays[val].epd2.refresh(false);
|
||||
displays[val].hibernate();
|
||||
displayGuard[val] = false;
|
||||
delay(displays[val].epd2.full_refresh_time);
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
void renderDisplay(void *parameter)
|
||||
{
|
||||
NormalText_T *data = (NormalText_T *)parameter;
|
||||
|
||||
uint val = data->displayNum;
|
||||
waitForDisplayGuard(val);
|
||||
|
||||
displayGuard[val] = true;
|
||||
displays[val].display(false);
|
||||
displayGuard[val] = false;
|
||||
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
void renderDisplayPartial(void *parameter)
|
||||
{
|
||||
NormalText_T *data = (NormalText_T *)parameter;
|
||||
|
||||
waitForDisplayGuard(data->displayNum);
|
||||
|
||||
displayGuard[data->displayNum] = true;
|
||||
displays[data->displayNum].display(true);
|
||||
displayGuard[data->displayNum] = false;
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
void showCharsInLine(std::string text, const GFXfont *font)
|
||||
{
|
||||
|
||||
int16_t tbx[7], tby[7];
|
||||
uint16_t tbw[7], tbh[7];
|
||||
|
||||
int i = 0;
|
||||
uint16_t largestChar = 0;
|
||||
uint16_t largestCharY = 0;
|
||||
for (int i = 0; i < text.size(); i++)
|
||||
{
|
||||
displays[i].setRotation(2);
|
||||
displays[i].setFont(font);
|
||||
displays[i].setTextColor(FG_COLOR);
|
||||
displays[i].fillScreen(BG_COLOR);
|
||||
displays[i].getTextBounds(String(text[i]), 0, 0, &tbx[i], &tby[i], &tbw[i], &tbh[i]);
|
||||
if (tbh[i] > largestChar)
|
||||
{
|
||||
largestChar = tbh[i];
|
||||
largestCharY = tby[i];
|
||||
}
|
||||
}
|
||||
|
||||
NormalText_T data[7];
|
||||
i = 0;
|
||||
for (uint i = 0; i < text.size(); i++)
|
||||
{
|
||||
uint16_t x = ((displays[i].width() - tbw[i]) / 2) - tbx[i];
|
||||
uint16_t y = ((displays[i].height() - largestChar) / 2) - largestCharY;
|
||||
|
||||
displays[i].setCursor(x, y);
|
||||
displays[i].print(String(text[i]));
|
||||
data[i] = {i, ' '};
|
||||
xTaskCreate(renderDisplay, "ClearDisp" + char(i), 2048, &data[i], (i + 2), NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void showChar(uint dispNum, String text, const GFXfont *font)
|
||||
{
|
||||
showChar(displays[dispNum], text, font);
|
||||
NormalText_T data = {dispNum, ' '};
|
||||
xTaskCreate(renderDisplayPartial, "RP", 2048, &data, 10, NULL);
|
||||
delay(50); // This is slowing down the update, but causes errors otherwise.
|
||||
}
|
||||
|
||||
template <typename GxEPD2_Type, template <typename, const uint16_t> class GxGFX_Type>
|
||||
void showChar(GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> &disp, String text, const GFXfont *font)
|
||||
{
|
||||
// GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> disp = displays[dispNum];
|
||||
|
||||
disp.setRotation(2);
|
||||
disp.setFont(font);
|
||||
disp.setTextColor(FG_COLOR);
|
||||
int16_t tbx, tby;
|
||||
uint16_t tbw, tbh;
|
||||
disp.getTextBounds(text, 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
// center the bounding box by transposition of the origin:
|
||||
uint16_t x = ((disp.width() - tbw) / 2) - tbx;
|
||||
uint16_t y = ((disp.height() - tbh) / 2) - tby;
|
||||
// disp.setPartialWindow(x,y,tbw,tbh);
|
||||
// disp.firstPage();
|
||||
// do
|
||||
// {
|
||||
disp.fillScreen(BG_COLOR);
|
||||
disp.setCursor(x, y);
|
||||
disp.print(text);
|
||||
}
|
||||
|
||||
void hibernateAll()
|
||||
{
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
Serial.print("Hibernate Display ");
|
||||
Serial.println(i);
|
||||
displays[i].hibernate();
|
||||
}
|
||||
}
|
||||
|
||||
String getBitcoinPrice()
|
||||
{
|
||||
HTTPClient http;
|
||||
StaticJsonDocument<64> doc;
|
||||
|
||||
http.begin("https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd");
|
||||
int httpCode = http.GET();
|
||||
|
||||
if (httpCode > 0)
|
||||
{
|
||||
DeserializationError error = deserializeJson(doc, http.getString());
|
||||
|
||||
if (error)
|
||||
{
|
||||
Serial.print(F("deserializeJson() failed: "));
|
||||
Serial.println(error.f_str());
|
||||
return "0";
|
||||
}
|
||||
}
|
||||
|
||||
return doc["bitcoin"]["usd"].as<String>();
|
||||
}
|
||||
|
||||
String getBlockHeight()
|
||||
{
|
||||
HTTPClient http;
|
||||
http.begin("https://mempool.bitcoin.nl/api/blocks/tip/height");
|
||||
int httpCode = http.GET();
|
||||
|
||||
return http.getString();
|
||||
}
|
54
src/lib/functions.hpp
Normal file
54
src/lib/functions.hpp
Normal file
|
@ -0,0 +1,54 @@
|
|||
#include <iostream>
|
||||
#include <stdio.h>
|
||||
#include <string>
|
||||
#include <ArduinoJson.h>
|
||||
#include <HTTPClient.h>
|
||||
#include <config.h>
|
||||
|
||||
#include "shared.hpp"
|
||||
|
||||
using namespace std;
|
||||
|
||||
void showText(std::string text);
|
||||
void showNumberWithPair(std::string top, std::string bottom, std::string text);
|
||||
|
||||
template <typename GxEPD2_Type, template <typename, const uint16_t> class GxGFX_Type>
|
||||
void splitText(GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> &disp, String top, String bottom);
|
||||
|
||||
void splitText(uint dispNr, String top, String bottom);
|
||||
|
||||
uint getDisplayInitTime();
|
||||
|
||||
template <typename GxEPD2_Type, template <typename, const uint16_t> class GxGFX_Type>
|
||||
void showDigit(GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> &disp, char chr);
|
||||
|
||||
template <typename GxEPD2_Type, template <typename, const uint16_t> class GxGFX_Type>
|
||||
void showDigit(GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> &disp, char chr, bool partial, const GFXfont *font);
|
||||
|
||||
void showDigit(uint dispNr, char chr, bool partial, const GFXfont *font);
|
||||
void showDigit(uint dispNr, char chr, bool partial);
|
||||
void showDigit(uint dispNr, char chr);
|
||||
|
||||
template <typename GxEPD2_Type, template <typename, const uint16_t> class GxGFX_Type>
|
||||
void showChar(GxGFX_Type<GxEPD2_Type, GxEPD2_Type::HEIGHT> &disp, String text, const GFXfont *font);
|
||||
|
||||
void showChar(uint dispNum, String text, const GFXfont *font);
|
||||
|
||||
void fullRefresh();
|
||||
void fullRefreshWatcher(void *parameter);
|
||||
void refreshDisplay(void *parameter);
|
||||
|
||||
void clearDisplayVtask(void *parameter);
|
||||
void clearDisplay(uint dispNum);
|
||||
void showCharsInLine(std::string text, const GFXfont *font);
|
||||
void waitForDisplayGuard(uint dispNum);
|
||||
|
||||
void showDigitVtask(void *parameter);
|
||||
void splitTextVtask(void *parameter);
|
||||
void renderDisplay(void *parameter);
|
||||
|
||||
void initDisplays();
|
||||
void resetAllDisplays();
|
||||
void hibernateAll();
|
||||
String getBlockHeight();
|
||||
String getBitcoinPrice();
|
4
src/lib/shared.cpp
Normal file
4
src/lib/shared.cpp
Normal file
|
@ -0,0 +1,4 @@
|
|||
#include "shared.hpp"
|
||||
|
||||
int FG_COLOR = GxEPD_WHITE;
|
||||
int BG_COLOR = GxEPD_BLACK;
|
42
src/lib/shared.hpp
Normal file
42
src/lib/shared.hpp
Normal file
|
@ -0,0 +1,42 @@
|
|||
#pragma once
|
||||
|
||||
//#include <string>
|
||||
#ifdef IS_BW
|
||||
#include <GxEPD2_BW.h>
|
||||
#endif
|
||||
#ifdef IS_3C
|
||||
#include <GxEPD2_3C.h>
|
||||
#endif
|
||||
#include <cstdint>
|
||||
#include "structs.h"
|
||||
#pragma once
|
||||
|
||||
#include <Preferences.h>
|
||||
|
||||
//template <typename GxEPD2_Type, template <a, const uint16_t> class GxGFX_Type>
|
||||
//extern GxEPD2_3C<GxEPD2_213_Z98c, GxEPD2_213_Z98c::HEIGHT> displays[7];
|
||||
|
||||
extern char blocks[8];
|
||||
extern char currentBlocks[8];
|
||||
extern String blockNr;
|
||||
|
||||
#ifndef OTA_NAME
|
||||
#define OTA_NAME "btclock"
|
||||
#endif
|
||||
|
||||
extern int FG_COLOR;
|
||||
extern int BG_COLOR;
|
||||
extern const int RST_PIN;
|
||||
extern unsigned int currentScreen;
|
||||
extern Preferences preferences;
|
||||
extern String epdContent[7];
|
||||
extern bool timerRunning;
|
||||
extern uint timerSeconds;
|
||||
extern uint32_t moment;
|
||||
|
||||
const int SCREEN_BLOCK_HEIGHT = 0;
|
||||
const int SCREEN_MSCW_TIME = 1;
|
||||
const int SCREEN_BTC_TICKER = 2;
|
||||
const int SCREEN_TIME = 3;
|
||||
const int screens[4] = { SCREEN_BLOCK_HEIGHT, SCREEN_MSCW_TIME, SCREEN_BTC_TICKER, SCREEN_TIME };
|
||||
const uint screenAmount = sizeof(screens) / sizeof(uint);
|
20
src/lib/structs.h
Normal file
20
src/lib/structs.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#pragma once
|
||||
|
||||
typedef struct {
|
||||
const char *ssid;
|
||||
const char *password;
|
||||
const char *client_hostname;
|
||||
} local_wifi_sta_config_t;
|
||||
|
||||
typedef struct SplitText_T
|
||||
{
|
||||
uint displayNum;
|
||||
String top;
|
||||
String bottom;
|
||||
} GenericSplitText_T;
|
||||
|
||||
typedef struct NormalText_T
|
||||
{
|
||||
uint displayNum;
|
||||
char chr;
|
||||
} GenericNormalText_T;
|
297
src/main.cpp
Normal file
297
src/main.cpp
Normal file
|
@ -0,0 +1,297 @@
|
|||
#define ENABLE_GxEPD2_GFX 0
|
||||
|
||||
#include <WiFiClient.h>
|
||||
#include <ESP32Time.h>
|
||||
#include <Preferences.h>
|
||||
#include <ArduinoOTA.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "web.h"
|
||||
#include "lib/shared.hpp"
|
||||
#include "lib/functions.hpp"
|
||||
#include "fonts/ubuntu-italic12.h"
|
||||
#include "fonts/ubuntu-italic60.h"
|
||||
|
||||
Preferences preferences;
|
||||
|
||||
const int RST_PIN = 2;
|
||||
char blocks[8];
|
||||
char currentBlocks[8];
|
||||
unsigned int currentScreen;
|
||||
|
||||
// GMT+1 is 3600 seconds time difference
|
||||
ESP32Time rtc(TIME_OFFSET_SECONDS);
|
||||
bool timerRunning = true;
|
||||
uint timerSeconds;
|
||||
String currentShownTime = "";
|
||||
uint32_t moment;
|
||||
uint otaProgressValue;
|
||||
|
||||
void showMscwTime();
|
||||
void showBlockHeight();
|
||||
void showBtcUsd();
|
||||
void showSimpleTime();
|
||||
|
||||
void screenHandler(void *parameter);
|
||||
void otaHandler(void *parameter);
|
||||
void timebasedChange(void *parameter);
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
preferences.begin("btclock", false);
|
||||
resetAllDisplays();
|
||||
initDisplays();
|
||||
|
||||
uint initStart = millis();
|
||||
|
||||
#if CONFIG_LWIP_IPV6
|
||||
WiFi.enableIpV6();
|
||||
#endif
|
||||
WiFi.hostname(OTA_NAME);
|
||||
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
|
||||
Serial.println("Connecting");
|
||||
while (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
|
||||
WiFi.setAutoReconnect(true);
|
||||
WiFi.setAutoConnect(true);
|
||||
Serial.println(WiFi.localIP());
|
||||
Serial.println(WiFi.localIPv6());
|
||||
|
||||
ArduinoOTA.onStart([]()
|
||||
{
|
||||
std::string text = "Update.";
|
||||
|
||||
showCharsInLine(text, &Ubuntu_Italic60pt7b);
|
||||
delay(2000); });
|
||||
|
||||
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total)
|
||||
{
|
||||
if (otaProgressValue == round(int(progress / (total / 100))))
|
||||
return;
|
||||
otaProgressValue = round(int(progress / (total / 100)));
|
||||
showChar(6, String(otaProgressValue) + "%", &Ubuntu_Italic12pt7b); });
|
||||
|
||||
ArduinoOTA.setHostname(OTA_NAME);
|
||||
ArduinoOTA.setPassword(OTA_PASSWORD);
|
||||
ArduinoOTA.begin();
|
||||
|
||||
// one common reset for all displays
|
||||
|
||||
configTime(3600, 0, NTP_SERVER);
|
||||
struct tm timeinfo;
|
||||
|
||||
while (!getLocalTime(&timeinfo))
|
||||
{
|
||||
configTime(3600, 0, NTP_SERVER);
|
||||
delay(500);
|
||||
Serial.println("Retry set time");
|
||||
}
|
||||
|
||||
rtc.setTimeStruct(timeinfo);
|
||||
|
||||
setupWebserver();
|
||||
|
||||
FG_COLOR = preferences.getUInt("fgColor", FG_COLOR);
|
||||
BG_COLOR = preferences.getUInt("bgColor", BG_COLOR);
|
||||
timerSeconds = preferences.getUInt("timerSeconds", 1800);
|
||||
|
||||
currentScreen = preferences.getUInt("currentScreen", 0);
|
||||
Serial.print("Current screen: ");
|
||||
Serial.println(currentScreen);
|
||||
|
||||
// Get the size of the flash memory
|
||||
uint32_t flash_size = ESP.getFlashChipSize();
|
||||
|
||||
Serial.print("Flash size: ");
|
||||
Serial.print(flash_size);
|
||||
Serial.println(" bytes");
|
||||
|
||||
Serial.print("Waiting for display init");
|
||||
while (millis() - initStart < getDisplayInitTime())
|
||||
{
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
|
||||
xTaskCreate(otaHandler, "ota", 10000, NULL, 10000, NULL);
|
||||
xTaskCreate(screenHandler, "screen", 10000, NULL, 5, NULL);
|
||||
xTaskCreate(timebasedChange, "tbc", 5000, NULL, 15, NULL);
|
||||
xTaskCreate(fullRefreshWatcher, "refreshWatch", 5000, NULL, 15, NULL);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// ArduinoOTA.handle();
|
||||
}
|
||||
|
||||
void otaHandler(void *parameter)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
ArduinoOTA.handle();
|
||||
vTaskDelay(250 / portTICK_PERIOD_MS);
|
||||
}
|
||||
}
|
||||
|
||||
void screenHandler(void *parameter)
|
||||
{
|
||||
int displayedScreen = -1;
|
||||
for (;;)
|
||||
{
|
||||
if (displayedScreen != currentScreen)
|
||||
{
|
||||
resetAllDisplays();
|
||||
|
||||
switch (currentScreen)
|
||||
{
|
||||
case SCREEN_BLOCK_HEIGHT:
|
||||
showBlockHeight();
|
||||
break;
|
||||
case SCREEN_MSCW_TIME:
|
||||
showMscwTime();
|
||||
break;
|
||||
case SCREEN_BTC_TICKER:
|
||||
showBtcUsd();
|
||||
break;
|
||||
case SCREEN_TIME:
|
||||
showSimpleTime();
|
||||
break;
|
||||
}
|
||||
|
||||
displayedScreen = currentScreen;
|
||||
#ifdef IS_BW
|
||||
}
|
||||
else if (displayedScreen == SCREEN_TIME)
|
||||
{
|
||||
showSimpleTime();
|
||||
#endif
|
||||
}
|
||||
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
}
|
||||
}
|
||||
|
||||
void timebasedChange(void *parameter)
|
||||
{
|
||||
moment = millis();
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (millis() - moment > timerSeconds * 1000 && timerRunning)
|
||||
{
|
||||
currentScreen = (currentScreen + 1) % screenAmount;
|
||||
preferences.putUInt("currentScreen", currentScreen);
|
||||
moment = millis();
|
||||
}
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
}
|
||||
}
|
||||
|
||||
void showSimpleTime()
|
||||
{
|
||||
if (currentShownTime.compareTo(rtc.getTime("%H:%M").c_str()) != 0)
|
||||
{
|
||||
resetAllDisplays();
|
||||
showNumberWithPair(String(rtc.getDay()).c_str(), String(rtc.getMonth() + 1).c_str(), rtc.getTime("%H:%M").c_str());
|
||||
currentShownTime = rtc.getTime("%H:%M").c_str();
|
||||
}
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
void showMscwTime()
|
||||
{
|
||||
#ifdef DEBUG
|
||||
Serial.println("Show Moscow Time");
|
||||
#endif
|
||||
|
||||
String btcPrice = getBitcoinPrice();
|
||||
|
||||
std::string moscowTime = std::to_string(int(round(1 / btcPrice.toFloat() * 10e7)));
|
||||
|
||||
moscowTime.insert(moscowTime.begin(), 7 - moscowTime.length(), ' ');
|
||||
strcpy(blocks, moscowTime.c_str());
|
||||
|
||||
#ifdef DEBUG
|
||||
Serial.println(blocks);
|
||||
#endif
|
||||
static SplitText_T spd = {0, "MSCW", "TIME"};
|
||||
xTaskCreate(splitTextVtask, "STv", 5000, &spd, 20, NULL);
|
||||
NormalText_T data[7];
|
||||
for (uint i = 1; i < 7; i++)
|
||||
{
|
||||
if (blocks[i] != currentBlocks[i])
|
||||
{
|
||||
data[i] = {i, blocks[i]};
|
||||
|
||||
xTaskCreate(showDigitVtask, "Disp" + char(i), 2048, &data[i], 2 + i, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
std::copy(blocks, blocks + 7, currentBlocks);
|
||||
delay(2000);
|
||||
}
|
||||
|
||||
void showBtcUsd()
|
||||
{
|
||||
#ifdef DEBUG
|
||||
Serial.println("Show BTC price");
|
||||
#endif
|
||||
|
||||
std::string btcUsd = ("$" + getBitcoinPrice()).c_str();
|
||||
|
||||
btcUsd.insert(btcUsd.begin(), 7 - btcUsd.length(), ' ');
|
||||
strcpy(blocks, btcUsd.c_str());
|
||||
|
||||
Serial.println(blocks);
|
||||
|
||||
static SplitText_T spd = {0, "BTC", "USD"};
|
||||
xTaskCreate(splitTextVtask, "STv", 5000, &spd, 1, NULL);
|
||||
|
||||
NormalText_T data[7];
|
||||
for (uint i = 1; i < 7; i++)
|
||||
{
|
||||
if (blocks[i] != currentBlocks[i])
|
||||
{
|
||||
data[i] = {i, blocks[i]};
|
||||
|
||||
xTaskCreate(showDigitVtask, "Disp" + char(i), 2048, &data[i], 2, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
std::copy(blocks, blocks + 7, currentBlocks);
|
||||
delay(2000);
|
||||
}
|
||||
|
||||
void showBlockHeight()
|
||||
{
|
||||
#ifdef DEBUG
|
||||
Serial.println("Show BlockHeight");
|
||||
#endif
|
||||
std::string blockNrString = getBlockHeight().c_str();
|
||||
|
||||
blockNrString.insert(blockNrString.begin(), 7 - blockNrString.length(), ' ');
|
||||
strcpy(blocks, blockNrString.c_str());
|
||||
|
||||
Serial.println(blocks);
|
||||
SplitText_T spd = {0, "BLOCK", "HEIGHT"};
|
||||
xTaskCreate(splitTextVtask, "STv", 5000, &spd, 1, NULL);
|
||||
|
||||
NormalText_T data[7];
|
||||
for (uint i = 1; i < 7; i++)
|
||||
{
|
||||
if (blocks[i] != currentBlocks[i])
|
||||
{
|
||||
data[i] = {i, blocks[i]};
|
||||
|
||||
xTaskCreate(showDigitVtask, "Disp" + char(i), 2048, &data[i], 2, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
std::copy(blocks, blocks + 7, currentBlocks);
|
||||
delay(2000);
|
||||
}
|
222
src/web.cpp
Normal file
222
src/web.cpp
Normal file
|
@ -0,0 +1,222 @@
|
|||
#include "SPIFFS.h"
|
||||
#include <WebServer.h>
|
||||
#include "ESPAsyncWebServer.h"
|
||||
#include <ArduinoJson.h>
|
||||
#include <ESPmDNS.h>
|
||||
#include "lib/functions.hpp"
|
||||
#include <string>
|
||||
|
||||
class OneParamRewrite : public AsyncWebRewrite
|
||||
{
|
||||
protected:
|
||||
String _urlPrefix;
|
||||
int _paramIndex;
|
||||
String _paramsBackup;
|
||||
|
||||
public:
|
||||
OneParamRewrite(const char *from, const char *to)
|
||||
: AsyncWebRewrite(from, to)
|
||||
{
|
||||
|
||||
_paramIndex = _from.indexOf('{');
|
||||
|
||||
if (_paramIndex >= 0 && _from.endsWith("}"))
|
||||
{
|
||||
_urlPrefix = _from.substring(0, _paramIndex);
|
||||
int index = _params.indexOf('{');
|
||||
if (index >= 0)
|
||||
{
|
||||
_params = _params.substring(0, index);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_urlPrefix = _from;
|
||||
}
|
||||
_paramsBackup = _params;
|
||||
}
|
||||
|
||||
bool match(AsyncWebServerRequest *request) override
|
||||
{
|
||||
if (request->url().startsWith(_urlPrefix))
|
||||
{
|
||||
if (_paramIndex >= 0)
|
||||
{
|
||||
_params = _paramsBackup + request->url().substring(_paramIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
_params = _paramsBackup;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
AsyncWebServer server(80);
|
||||
|
||||
void setupWebserver()
|
||||
{
|
||||
// Initialize SPIFFS
|
||||
if (!SPIFFS.begin(true))
|
||||
{
|
||||
Serial.println("An Error has occurred while mounting SPIFFS");
|
||||
return;
|
||||
}
|
||||
|
||||
// Route for root / web page
|
||||
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{ request->send(SPIFFS, "/index.html", String(), false); });
|
||||
|
||||
server.addRewrite(new OneParamRewrite("/api/show/screen/{s}", "/api/show/screen?s={s}"));
|
||||
server.addRewrite(new OneParamRewrite("/api/show/text/{text}", "/api/show/text?t={text}"));
|
||||
server.addRewrite(new OneParamRewrite("/api/show/number/{number}", "/api/show/number?t={number}"));
|
||||
|
||||
server.on("/api/status", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
DynamicJsonDocument root(1024);
|
||||
root["currentScreen"] = String(currentScreen);
|
||||
root["rendered"] = blocks;
|
||||
JsonArray data = root.createNestedArray("data");
|
||||
copyArray(epdContent, data);
|
||||
String responseText;
|
||||
serializeJson(root, responseText);
|
||||
|
||||
request->send(200, "application/json", responseText); });
|
||||
|
||||
server.on("/api/action/pause", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
timerRunning = false;
|
||||
Serial.println("Update timer paused");
|
||||
|
||||
request->send(200); });
|
||||
|
||||
server.on("/api/full_refresh", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
fullRefresh();
|
||||
|
||||
request->send(200); });
|
||||
|
||||
server.on("/api/action/timer_restart", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
moment = millis();
|
||||
timerRunning = true;
|
||||
Serial.println("Update timer restarted");
|
||||
|
||||
request->send(200); });
|
||||
|
||||
server.on("/api/action/update", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
|
||||
if(request->hasParam("rate")) {
|
||||
AsyncWebParameter* p = request->getParam("rate");
|
||||
timerSeconds = stoi(p->value().c_str()) * 60;
|
||||
preferences.putUInt("timerSeconds", timerSeconds);
|
||||
}
|
||||
|
||||
moment = millis();
|
||||
timerRunning = true;
|
||||
|
||||
request->send(200); });
|
||||
|
||||
server.on("/api/settings", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
DynamicJsonDocument root(1024);
|
||||
root["fgColor"] = FG_COLOR;
|
||||
root["bgColor"] = BG_COLOR;
|
||||
root["timerSeconds"] = timerSeconds;
|
||||
root["timerRunning"] = timerRunning;
|
||||
#ifdef IS_BW
|
||||
root["epdColors"] = 2;
|
||||
#else
|
||||
root["epdColors"] = 3;
|
||||
#endif
|
||||
String responseText;
|
||||
serializeJson(root, responseText);
|
||||
request->send(200, "application/json", responseText); });
|
||||
|
||||
server.on("/api/settings", HTTP_POST, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
int params = request->params();
|
||||
bool settingsChanged = false;
|
||||
if(request->hasParam("fgColor", true)) {
|
||||
AsyncWebParameter* fgColor = request->getParam("fgColor", true);
|
||||
preferences.putUInt("fgColor", strtol(fgColor->value().c_str(), NULL, 16));
|
||||
Serial.print("Setting foreground color to ");
|
||||
Serial.println(fgColor->value().c_str());
|
||||
settingsChanged = true;
|
||||
}
|
||||
if(request->hasParam("bgColor", true)) {
|
||||
AsyncWebParameter* bgColor = request->getParam("bgColor", true);
|
||||
|
||||
preferences.putUInt("bgColor", strtol(bgColor->value().c_str(), NULL, 16));
|
||||
Serial.print("Setting background color to ");
|
||||
Serial.println(bgColor->value().c_str());
|
||||
settingsChanged = true;
|
||||
}
|
||||
|
||||
request->send(200);
|
||||
if (settingsChanged) {
|
||||
Serial.println("Settings changed");
|
||||
} });
|
||||
|
||||
server.on("/api/show/screen", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
//Check if GET parameter exists
|
||||
if(request->hasParam("s")) {
|
||||
AsyncWebParameter* p = request->getParam("s");
|
||||
currentScreen = stoi(p->value().c_str());
|
||||
}
|
||||
request->send(200); });
|
||||
|
||||
server.on("/api/show/text", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
//Check if GET parameter exists
|
||||
if(request->hasParam("t")) {
|
||||
AsyncWebParameter* p = request->getParam("t");
|
||||
showText(p->value().c_str());
|
||||
}
|
||||
request->send(200); });
|
||||
|
||||
server.on("/api/show/number", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||
{
|
||||
//Check if GET parameter exists
|
||||
if(request->hasParam("pair")) {
|
||||
AsyncWebParameter* pair = request->getParam("pair");
|
||||
AsyncWebParameter* t = request->getParam("t");
|
||||
String top = (pair->value().substring(0, pair->value().indexOf("/")));
|
||||
String bottom = pair->value().substring((pair->value().indexOf("/")+1));
|
||||
|
||||
showNumberWithPair(top.c_str(), bottom.c_str(), t->value().c_str());
|
||||
}
|
||||
request->send(200); });
|
||||
|
||||
server.onNotFound([](AsyncWebServerRequest *request)
|
||||
{
|
||||
if (request->method() == HTTP_OPTIONS) {
|
||||
request->send(200);
|
||||
} else {
|
||||
request->send(404);
|
||||
} });
|
||||
|
||||
server.serveStatic("/css", SPIFFS, "/css/");
|
||||
server.serveStatic("/js", SPIFFS, "/js/");
|
||||
server.serveStatic("/font", SPIFFS, "/font/");
|
||||
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*");
|
||||
|
||||
// Start server
|
||||
server.begin();
|
||||
if (!MDNS.begin(OTA_NAME))
|
||||
{
|
||||
Serial.println("Error setting up MDNS responder!");
|
||||
while (1)
|
||||
{
|
||||
delay(1000);
|
||||
}
|
||||
}
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
}
|
2
src/web.h
Normal file
2
src/web.h
Normal file
|
@ -0,0 +1,2 @@
|
|||
void setupWebserver();
|
||||
|
11
test/README
Normal file
11
test/README
Normal file
|
@ -0,0 +1,11 @@
|
|||
|
||||
This directory is intended for PlatformIO Test Runner and project tests.
|
||||
|
||||
Unit Testing is a software testing method by which individual units of
|
||||
source code, sets of one or more MCU program modules together with associated
|
||||
control data, usage procedures, and operating procedures, are tested to
|
||||
determine whether they are fit for use. Unit testing finds problems early
|
||||
in the development cycle.
|
||||
|
||||
More information about PlatformIO Unit Testing:
|
||||
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html
|
Loading…
Reference in a new issue