Files
crosspoint-reader-mod/lib/EpdFont/builtinFonts/notosans_12_bold.h

2442 lines
185 KiB
C
Raw Normal View History

Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
/**
* generated by fontconvert.py
* name: notosans_12_bold
* size: 12
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
* mode: 2-bit compressed: true
* Command used: fontconvert.py notosans_12_bold 12 ../builtinFonts/source/NotoSans/NotoSans-Bold.ttf --2bit --compress
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
*/
#pragma once
#include "EpdFontData.h"
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
static const uint8_t notosans_12_boldBitmaps[24080] = {
0xAD, 0x58, 0x3D, 0x8F, 0xDD, 0xC6, 0x15, 0xBD, 0x24, 0x63, 0x31, 0x11, 0x81, 0x8C, 0x0B, 0x0B,
0x09, 0xEC, 0x82, 0x8D, 0x1B, 0x0B, 0x49, 0xD8, 0xA4, 0x49, 0x11, 0x0F, 0xA3, 0x2D, 0x5C, 0xA4,
0x90, 0x0B, 0x29, 0x2E, 0x5C, 0xD8, 0xA5, 0xE3, 0x14, 0x9B, 0x1F, 0xE0, 0x68, 0x68, 0x6F, 0x61,
0x20, 0x8D, 0xD4, 0x04, 0x29, 0x6D, 0x04, 0x41, 0x60, 0xCB, 0x85, 0x52, 0xA4, 0x5C, 0x69, 0x68,
0x6D, 0x21, 0x04, 0x2A, 0x96, 0xF2, 0xC6, 0x50, 0x61, 0x20, 0xA2, 0xB2, 0x42, 0x04, 0xC5, 0xC5,
0x8E, 0xB4, 0x14, 0xC4, 0xDD, 0x9D, 0x99, 0xEB, 0x73, 0xC9, 0xA7, 0xD5, 0x4A, 0x5E, 0x39, 0x46,
0x10, 0xEE, 0x7B, 0x6F, 0xF8, 0x86, 0x8F, 0xC3, 0xFB, 0x71, 0xEE, 0xB9, 0x67, 0xD6, 0x5C, 0xB8,
0xBD, 0x13, 0xCC, 0x1B, 0xD7, 0x87, 0xA0, 0xD5, 0x9A, 0xF3, 0x44, 0xE9, 0xBF, 0xA2, 0xFD, 0xA0,
0xAB, 0x8D, 0xBA, 0xEE, 0x82, 0x91, 0x29, 0xCC, 0xF7, 0xAB, 0x2F, 0x1D, 0x69, 0x48, 0x2D, 0x75,
0x54, 0xBE, 0xD2, 0x51, 0x95, 0xB7, 0x54, 0x15, 0x2D, 0x69, 0xD5, 0x96, 0xCC, 0xB1, 0xC2, 0xFB,
0xF9, 0x68, 0xEF, 0xD0, 0x6A, 0x45, 0xE4, 0x35, 0x1D, 0x0B, 0xE6, 0x94, 0x61, 0xF6, 0xF2, 0x4E,
0xDD, 0x2A, 0x65, 0x58, 0x35, 0xEB, 0x47, 0xCA, 0xBA, 0x81, 0xF2, 0x6B, 0x03, 0xD1, 0x8F, 0x88,
0x0A, 0x22, 0xC3, 0x8D, 0x65, 0x6F, 0x39, 0xE8, 0xAB, 0x47, 0xD4, 0xBD, 0x36, 0x8D, 0x8E, 0x4C,
0xA0, 0x9C, 0x07, 0xAA, 0xB8, 0x25, 0xF6, 0xF4, 0x63, 0xA6, 0xA2, 0xFC, 0xE7, 0x89, 0xAB, 0xDB,
0x58, 0x07, 0xAF, 0x23, 0x7C, 0x8B, 0xD2, 0x96, 0xE8, 0xAF, 0x44, 0xCF, 0xD1, 0xE2, 0x30, 0x1D,
0xFD, 0x8E, 0x4A, 0x26, 0xD5, 0x66, 0xBB, 0x63, 0x3A, 0x88, 0x45, 0x1A, 0xCF, 0xF2, 0x45, 0x47,
0x2F, 0x17, 0x9F, 0x8E, 0x72, 0xAA, 0x09, 0xB3, 0x57, 0x6E, 0x86, 0x74, 0xD7, 0x7B, 0x3B, 0x2A,
0x2E, 0x4F, 0x6E, 0xB5, 0x66, 0xE3, 0xEE, 0x70, 0x86, 0xE8, 0x62, 0xB5, 0xD4, 0x93, 0xBA, 0x3C,
0x68, 0x4A, 0x87, 0x6A, 0xC9, 0xD1, 0x99, 0x14, 0xB3, 0xAA, 0x55, 0xEB, 0x5D, 0x32, 0x92, 0xF5,
0x84, 0x79, 0xA6, 0x47, 0x47, 0x19, 0x61, 0x37, 0xEC, 0x22, 0xE6, 0x9E, 0xCA, 0x36, 0x52, 0xE2,
0x15, 0x4E, 0xAE, 0x05, 0xCC, 0xD8, 0x96, 0x32, 0x76, 0x30, 0x68, 0x4C, 0x3F, 0x82, 0xF9, 0xFA,
0xFD, 0xC8, 0xC5, 0xC0, 0xAF, 0x78, 0x56, 0xAE, 0xE4, 0x8E, 0x31, 0xAF, 0xC6, 0x8C, 0xEB, 0x29,
0x24, 0xCC, 0x3C, 0xE4, 0x7C, 0x0B, 0xB6, 0x8B, 0x07, 0xE5, 0x15, 0x89, 0xF0, 0x7B, 0xE7, 0xD2,
0xA1, 0x6C, 0x43, 0xEE, 0x74, 0xED, 0x73, 0x57, 0x35, 0x21, 0x1B, 0x54, 0xA7, 0x6B, 0x0C, 0x45,
0x5F, 0xC1, 0xA7, 0x90, 0xFA, 0xCC, 0xE5, 0xAE, 0xE8, 0x34, 0x9E, 0xAC, 0xBA, 0xDC, 0x65, 0x43,
0x3A, 0x26, 0x9E, 0x3C, 0x85, 0x03, 0x7F, 0x3E, 0xF1, 0xE9, 0x98, 0x0D, 0xF2, 0xBB, 0xB2, 0x15,
0xC7, 0x6B, 0x42, 0x9A, 0x52, 0x47, 0xE7, 0xDE, 0xF9, 0x9E, 0x66, 0x7B, 0x96, 0xF9, 0xE6, 0x6F,
0xE2, 0x29, 0xD8, 0x91, 0xEE, 0xB9, 0xC4, 0x1B, 0x3A, 0xA3, 0x9A, 0x24, 0x21, 0xFA, 0x39, 0x91,
0xAA, 0x91, 0x1E, 0x22, 0x24, 0xE7, 0x0C, 0x69, 0xE6, 0x75, 0xE6, 0xBB, 0xE7, 0xE3, 0x47, 0x8F,
0x5F, 0xC1, 0xA1, 0xBA, 0x50, 0x5E, 0x1E, 0x75, 0x06, 0x4F, 0x8F, 0x9D, 0x32, 0x01, 0x7F, 0xFE,
0x27, 0xD5, 0x97, 0x3B, 0xE1, 0x3B, 0x44, 0xB9, 0xA3, 0xAA, 0x81, 0x0D, 0x18, 0x75, 0x03, 0xBB,
0x0A, 0x19, 0x93, 0x79, 0xAC, 0x31, 0x22, 0x54, 0xFB, 0x23, 0xA5, 0x7E, 0x3F, 0xAA, 0x45, 0x44,
0xE4, 0x3C, 0x62, 0xEA, 0xCA, 0xDE, 0x9E, 0xF0, 0x99, 0xD7, 0x6D, 0xB5, 0xE6, 0x53, 0xAF, 0x9B,
0x72, 0x63, 0x4C, 0xC2, 0xC3, 0xA1, 0x2D, 0x65, 0x12, 0xA1, 0x68, 0x63, 0x8E, 0x2C, 0x32, 0xAC,
0xEC, 0xC8, 0xCE, 0x56, 0x95, 0x5D, 0x1E, 0x52, 0x44, 0x39, 0xE8, 0xAD, 0x8D, 0xBB, 0xE1, 0xBB,
0x65, 0x97, 0x04, 0x7A, 0xEA, 0x07, 0x8E, 0x17, 0xB8, 0x2E, 0x38, 0x66, 0x48, 0x83, 0xEA, 0x6C,
0xFB, 0x66, 0x06, 0x63, 0x34, 0xF2, 0x37, 0x12, 0xD9, 0x9A, 0xCA, 0x9E, 0x72, 0xC9, 0xF1, 0x34,
0xA7, 0x1C, 0x65, 0x8B, 0x2F, 0xCC, 0x1B, 0x8C, 0x27, 0x30, 0x4F, 0x69, 0xAB, 0x62, 0x5D, 0x71,
0x4C, 0x64, 0x89, 0xDA, 0x36, 0xD3, 0x8F, 0xE0, 0x35, 0x7C, 0xFD, 0x24, 0x08, 0x4E, 0x12, 0x8E,
0xF4, 0xCC, 0xF2, 0x38, 0xAD, 0x91, 0xE2, 0x99, 0xFA, 0x72, 0x9D, 0x7B, 0xDC, 0xBB, 0x02, 0xE8,
0x94, 0x3C, 0x5B, 0x4D, 0x80, 0x53, 0x85, 0x87, 0x61, 0x00, 0x9E, 0xAA, 0x48, 0xF9, 0x56, 0x4F,
0x3E, 0x52, 0x75, 0xB2, 0xCF, 0xFB, 0x48, 0xC0, 0x96, 0xAE, 0x63, 0xBE, 0x7B, 0x61, 0xD7, 0x32,
0xEF, 0x01, 0x33, 0xC7, 0x4E, 0xF3, 0xAB, 0x12, 0x3D, 0xB9, 0x4F, 0xF5, 0x15, 0x7B, 0x44, 0x01,
0x3E, 0xB4, 0xF1, 0xF4, 0xAB, 0xC8, 0xB3, 0xEA, 0x28, 0xBB, 0xFF, 0x2A, 0x0C, 0x6A, 0x0C, 0xFB,
0xE2, 0x4B, 0x6E, 0xA8, 0x9C, 0x6D, 0xB7, 0x78, 0xFA, 0xDF, 0xA9, 0xDA, 0x44, 0x80, 0x61, 0x6D,
0x89, 0x47, 0x3D, 0x3C, 0xAC, 0x23, 0x2B, 0x71, 0x74, 0xC5, 0xCE, 0xB4, 0x68, 0x09, 0x5B, 0xC7,
0x5F, 0x93, 0x5E, 0x96, 0xD0, 0x8C, 0xFA, 0xBE, 0x45, 0xC4, 0x11, 0x7F, 0xB5, 0x31, 0x52, 0xA8,
0xDA, 0xF2, 0x5A, 0xCC, 0xE4, 0x91, 0x0D, 0x6E, 0x20, 0x3B, 0x4E, 0xD8, 0x65, 0xBE, 0x8E, 0x98,
0x60, 0xB8, 0x76, 0xFA, 0xB5, 0xFD, 0x08, 0x4C, 0x4B, 0x75, 0xD3, 0xB3, 0x4D, 0x2D, 0x11, 0x4C,
0xC4, 0xD1, 0x45, 0x7C, 0x49, 0x26, 0xA6, 0x88, 0xB4, 0x73, 0xF6, 0xB9, 0xCE, 0x11, 0x2B, 0xDE,
0x1A, 0xAA, 0x4E, 0x5F, 0x46, 0x86, 0xCB, 0x4E, 0x37, 0x7C, 0xD2, 0x65, 0x1C, 0x48, 0xF1, 0x8C,
0x8C, 0xE5, 0x01, 0x69, 0x5F, 0x13, 0x10, 0xD4, 0x6A, 0x03, 0x26, 0x55, 0xBB, 0xDC, 0xC2, 0x9B,
0x94, 0xC7, 0x03, 0x18, 0xCA, 0xD9, 0xC3, 0x79, 0xA7, 0x3B, 0xBB, 0x32, 0x02, 0x43, 0x75, 0xB9,
0x36, 0x08, 0x78, 0xAA, 0x8D, 0x50, 0x04, 0x90, 0x54, 0x67, 0x83, 0x4F, 0x2E, 0x89, 0x87, 0x7E,
0x2A, 0x8B, 0xD2, 0x7D, 0xDF, 0x06, 0x80, 0xAE, 0x56, 0x88, 0x14, 0x8E, 0x87, 0x28, 0x96, 0x63,
0x41, 0x80, 0xC5, 0xBB, 0xB1, 0xEA, 0xC3, 0x81, 0xFA, 0x0F, 0xEA, 0x9A, 0xAF, 0x56, 0x9C, 0x96,
0x73, 0x54, 0x0D, 0x48, 0x10, 0x21, 0x36, 0x63, 0xC2, 0x7D, 0x0E, 0x40, 0x05, 0xCA, 0xE0, 0xA7,
0x41, 0x28, 0x11, 0x9C, 0x94, 0x67, 0x14, 0x95, 0xF2, 0xDB, 0xB7, 0xCF, 0x9F, 0x9F, 0x4B, 0xCA,
0xCD, 0xEB, 0x54, 0xD3, 0x17, 0x61, 0xB5, 0x7A, 0xAE, 0xBD, 0x01, 0x78, 0xE9, 0xE0, 0x01, 0xCC,
0xC2, 0xF3, 0x96, 0x9D, 0xDC, 0x5A, 0x85, 0x84, 0x87, 0x82, 0xCF, 0xC9, 0xA2, 0xC0, 0xCB, 0xB3,
0x0B, 0x47, 0x85, 0x33, 0x07, 0x64, 0xF8, 0x67, 0x12, 0xC3, 0x40, 0xC0, 0x33, 0xE2, 0x2C, 0x66,
0xB4, 0x24, 0x7C, 0x44, 0xC9, 0x7E, 0x4C, 0xFE, 0x26, 0x57, 0xB2, 0x30, 0x39, 0x8C, 0xBB, 0x53,
0x7B, 0x4B, 0x6E, 0xC7, 0x73, 0xCA, 0x9D, 0x5F, 0x45, 0x49, 0x90, 0xEA, 0x55, 0xFB, 0x4C, 0x1D,
0x8A, 0xCE, 0xB0, 0x5A, 0x71, 0x96, 0x2F, 0xDF, 0x1D, 0x4C, 0xE6, 0xDE, 0x59, 0xAD, 0x6A, 0x5F,
0x1A, 0xF0, 0x68, 0x7E, 0x63, 0xCD, 0xA9, 0xCB, 0xDB, 0x0E, 0x7C, 0xE4, 0x57, 0xAB, 0x15, 0x7F,
0xA6, 0x5A, 0x02, 0x0A, 0x33, 0xA7, 0x6F, 0x46, 0x9A, 0xC2, 0x02, 0x2C, 0x26, 0xB0, 0xFC, 0x0F,
0xCB, 0xA8, 0x93, 0xC9, 0xB9, 0x8A, 0xCF, 0x61, 0x56, 0x4A, 0x5B, 0x8A, 0xA4, 0x42, 0xD5, 0x64,
0x7B, 0xC2, 0x89, 0x82, 0x8B, 0x7B, 0x98, 0x8E, 0x88, 0x7F, 0xD9, 0x45, 0x98, 0x04, 0x10, 0xE8,
0xD6, 0xD4, 0xF9, 0xCE, 0xEB, 0x20, 0x5A, 0x60, 0x18, 0xF7, 0xC3, 0x5F, 0x14, 0x87, 0xEE, 0x88,
0x61, 0x77, 0x31, 0x98, 0x86, 0xCC, 0xFA, 0x00, 0x1F, 0x2C, 0x9F, 0xC3, 0xD5, 0x1E, 0x17, 0x4F,
0xBA, 0xD2, 0x03, 0xAF, 0xEB, 0x2E, 0xC3, 0x60, 0xCF, 0xEE, 0x5A, 0x4C, 0x0A, 0x15, 0x38, 0x4E,
0xEC, 0x3C, 0x59, 0xDD, 0x70, 0x59, 0xC0, 0x35, 0x84, 0x77, 0x44, 0x53, 0x52, 0x1C, 0xEB, 0xB9,
0x4D, 0xC4, 0x1A, 0x18, 0x48, 0xE4, 0xE7, 0x21, 0xED, 0x16, 0xF5, 0x8A, 0x42, 0x97, 0x7A, 0x97,
0x40, 0x16, 0x88, 0x70, 0x05, 0x93, 0xF1, 0x50, 0xA9, 0x75, 0x89, 0x39, 0xCA, 0xF2, 0x45, 0x79,
0x2E, 0x42, 0xD6, 0xE4, 0x33, 0xD2, 0x60, 0xC9, 0xC4, 0x19, 0x52, 0x1C, 0x9F, 0x9B, 0x11, 0x8F,
0xDB, 0x46, 0x8F, 0xB8, 0x81, 0xE0, 0x83, 0xFD, 0x79, 0x06, 0xAB, 0x42, 0x1C, 0x34, 0xB7, 0x49,
0x44, 0x4F, 0x7A, 0xE0, 0x61, 0x89, 0x2B, 0x85, 0x33, 0x60, 0x69, 0xC8, 0xC4, 0x1A, 0xCB, 0x0F,
0x98, 0xB7, 0x98, 0xED, 0xE7, 0xA7, 0x58, 0xAC, 0x90, 0x40, 0x48, 0x77, 0x03, 0x1A, 0xD6, 0xEF,
0x9F, 0x46, 0x51, 0x3C, 0x9A, 0x8D, 0x53, 0xD9, 0xF7, 0xD3, 0x1D, 0x37, 0x98, 0xCD, 0x81, 0x3B,
0xE4, 0x71, 0xDB, 0x13, 0x8A, 0x0E, 0xDE, 0xB1, 0x38, 0x9D, 0x8F, 0x17, 0x80, 0x40, 0x20, 0x6C,
0x32, 0x38, 0xD2, 0x6F, 0x2B, 0xE4, 0x41, 0x8B, 0x87, 0xED, 0xEC, 0xA5, 0xAD, 0xD1, 0x7A, 0xF1,
0x36, 0xF2, 0x6E, 0xC0, 0xB6, 0x2D, 0xDE, 0x3D, 0xCA, 0x6F, 0x4C, 0x7D, 0x31, 0x37, 0x29, 0x8F,
0xFA, 0xBE, 0x35, 0xF9, 0x8D, 0x34, 0xEE, 0x7B, 0xF6, 0xB8, 0xA3, 0x07, 0x8E, 0xFB, 0xA7, 0xCD,
0x93, 0x57, 0x1F, 0x7D, 0x75, 0x1A, 0xC6, 0xDE, 0x83, 0x29, 0x48, 0x13, 0xAC, 0xD4, 0xED, 0xD7,
0x4F, 0x4C, 0x90, 0xDF, 0x80, 0x5A, 0x0E, 0xBD, 0x7A, 0xD8, 0x49, 0x31, 0x82, 0x8F, 0xA3, 0x0A,
0x93, 0x89, 0x0A, 0xB9, 0xB0, 0x27, 0x31, 0x87, 0x95, 0x5A, 0x40, 0x08, 0x1C, 0xD0, 0xA9, 0x7B,
0x11, 0xF9, 0x91, 0x38, 0x34, 0x88, 0x03, 0x29, 0x24, 0x45, 0x7F, 0x16, 0x69, 0xBA, 0x5A, 0x00,
0x83, 0x6A, 0x40, 0x5B, 0x71, 0xC8, 0xE3, 0x26, 0xF2, 0xD8, 0xD9, 0x29, 0xF7, 0xDF, 0xF6, 0x35,
0x49, 0x12, 0xBC, 0x2C, 0x0A, 0x29, 0xC0, 0xEC, 0x52, 0x3E, 0xAA, 0x00, 0x6E, 0xD7, 0x01, 0x70,
0x31, 0x21, 0x7A, 0xBA, 0x18, 0xE2, 0x45, 0xF2, 0x21, 0x9E, 0xA1, 0x31, 0x44, 0x9D, 0x0E, 0xF8,
0x58, 0x72, 0x21, 0x56, 0x2B, 0x7D, 0x88, 0xEA, 0x6A, 0x87, 0x8F, 0xF5, 0x36, 0xC4, 0x62, 0x0B,
0x1F, 0x28, 0xFE, 0x00, 0xDA, 0xA5, 0x10, 0x53, 0xF9, 0x40, 0x5D, 0x07, 0x80, 0xCA, 0x68, 0x14,
0xF7, 0x3A, 0x28, 0x72, 0x9B, 0xD1, 0xAF, 0xC1, 0x93, 0x46, 0x9B, 0xB6, 0x5C, 0xBF, 0x3D, 0xE6,
0xDB, 0x23, 0xFF, 0xC2, 0x47, 0xE5, 0x8C, 0x7E, 0x2F, 0x94, 0xEB, 0xBD, 0xBE, 0xB2, 0x3D, 0xE6,
0x23, 0x9A, 0x07, 0xA3, 0xD8, 0x4A, 0x5E, 0xEF, 0x53, 0xDE, 0x1E, 0x49, 0x63, 0xA2, 0x60, 0x54,
0x1F, 0xCF, 0x64, 0x2B, 0x8C, 0x89, 0xC4, 0x0E, 0x52, 0x72, 0x5D, 0x39, 0xE6, 0x0C, 0xA0, 0x2B,
0x04, 0x8C, 0xCC, 0x95, 0x51, 0x2A, 0xAD, 0x21, 0xFD, 0xC5, 0x80, 0x82, 0x40, 0x55, 0x54, 0xD3,
0x09, 0x90, 0xA2, 0xD7, 0xC0, 0x22, 0x80, 0x06, 0xD9, 0x77, 0xB9, 0xA9, 0x1C, 0xB0, 0x11, 0x84,
0xC0, 0x1A, 0x5A, 0x9E, 0x89, 0x93, 0x6C, 0x44, 0x47, 0x40, 0xA9, 0xF1, 0x66, 0x78, 0x5D, 0xEA,
0x12, 0x06, 0xDE, 0x70, 0xF9, 0x03, 0x84, 0x98, 0x5F, 0x67, 0x20, 0xE4, 0x24, 0xF3, 0x52, 0xFC,
0xF8, 0xEB, 0xFD, 0xB4, 0x5D, 0x00, 0xF5, 0xFF, 0x63, 0x54, 0x7C, 0x68, 0x54, 0x47, 0xB3, 0x68,
0x9B, 0x68, 0x48, 0x4B, 0xB3, 0x13, 0x3B, 0x93, 0x53, 0x30, 0x13, 0x18, 0xE8, 0x85, 0x2E, 0x80,
0x10, 0x28, 0x32, 0xBB, 0xE2, 0x13, 0x04, 0x30, 0x07, 0x06, 0x74, 0x3B, 0x95, 0x27, 0x77, 0x20,
0x0C, 0xB4, 0x6A, 0xBF, 0x40, 0xC8, 0x08, 0x84, 0xB8, 0x19, 0x21, 0x7A, 0xC3, 0xCF, 0x16, 0xA7,
0x7C, 0xAB, 0xE4, 0xA8, 0xA5, 0x68, 0xDE, 0xB2, 0x53, 0x3F, 0x83, 0x8C, 0xD3, 0xD2, 0xAB, 0x9A,
0x14, 0x3E, 0x18, 0x3F, 0xF5, 0x73, 0x69, 0xE9, 0x43, 0x1A, 0x27, 0x84, 0x0C, 0x73, 0xA0, 0xCC,
0xDC, 0xC4, 0xE1, 0xE4, 0xDD, 0xD7, 0xC2, 0x69, 0xE9, 0x87, 0x42, 0xCC, 0xDF, 0x7A, 0xF8, 0x86,
0x1A, 0x3C, 0xF4, 0xEB, 0x2E, 0x64, 0xC8, 0x6D, 0x50, 0xAA, 0x9A, 0x29, 0xB2, 0xC9, 0x17, 0xA2,
0x43, 0x6C, 0x06, 0xD3, 0xA1, 0x9D, 0x82, 0x89, 0xA1, 0xAF, 0x5D, 0xD5, 0xC2, 0x57, 0xF4, 0x56,
0xE4, 0xC4, 0x92, 0xC8, 0x2B, 0x11, 0x9E, 0xC4, 0xE8, 0xE3, 0x25, 0x7E, 0x93, 0x0D, 0xA8, 0xAE,
0x68, 0x40, 0x96, 0x5B, 0x20, 0x4D, 0x09, 0xAE, 0xF0, 0x7C, 0x09, 0x3A, 0xCC, 0xE4, 0x82, 0xB4,
0x7B, 0x2B, 0x2B, 0x90, 0xBE, 0x32, 0x24, 0x68, 0xA6, 0xD0, 0x2D, 0xB6, 0x47, 0x48, 0x1B, 0x8D,
0x56, 0x5E, 0x38, 0xB5, 0x55, 0x73, 0xE2, 0xF3, 0x2F, 0x7B, 0x4C, 0x9C, 0xD8, 0x41, 0x6F, 0x57,
0x7D, 0xD0, 0x85, 0x03, 0xD5, 0xA8, 0xCF, 0x40, 0x2F, 0x90, 0x92, 0xC8, 0xF5, 0x17, 0xBD, 0xD1,
0x75, 0xB6, 0x37, 0xA8, 0x1B, 0x2D, 0x5D, 0xF2, 0xD2, 0x31, 0x20, 0xE8, 0xD1, 0x43, 0x21, 0x53,
0xA5, 0x1D, 0x72, 0x8B, 0xB2, 0x20, 0xF0, 0x17, 0x3C, 0x33, 0x6D, 0x02, 0x59, 0x4D, 0x5C, 0x43,
0x50, 0x37, 0x65, 0x0F, 0x63, 0x83, 0x38, 0x03, 0x0A, 0xCE, 0xC5, 0x2E, 0xA1, 0x69, 0xC9, 0x7B,
0x2E, 0x1C, 0x0E, 0xFE, 0x4B, 0x81, 0xD5, 0x24, 0x0A, 0x2F, 0x16, 0xA3, 0x30, 0x5E, 0x0D, 0x6C,
0x42, 0x21, 0xA4, 0xE8, 0xEB, 0x52, 0xEF, 0x35, 0xB0, 0x04, 0xDB, 0xAB, 0xAE, 0x18, 0x24, 0xD3,
0x05, 0x24, 0x88, 0xA8, 0x4F, 0x40, 0x0D, 0x4B, 0x21, 0x85, 0x56, 0xA4, 0x02, 0x96, 0x44, 0x7B,
0x15, 0xE0, 0x3E, 0xED, 0x0D, 0x8C, 0x43, 0x5C, 0x01, 0x13, 0x7C, 0x73, 0x52, 0x41, 0xB3, 0x86,
0x5C, 0xC0, 0xFC, 0xD1, 0x19, 0x0C, 0xCD, 0xC7, 0xFD, 0x33, 0x40, 0x01, 0x88, 0x00, 0xB3, 0xB3,
0xDE, 0xE1, 0xDB, 0xBB, 0x6F, 0xB4, 0x06, 0x71, 0x72, 0xE5, 0xA1, 0xC3, 0x1D, 0xF4, 0x9A, 0xFE,
0x92, 0x74, 0xF7, 0x6C, 0x90, 0x88, 0xAB, 0x56, 0x94, 0x96, 0x91, 0xFE, 0x9F, 0x8E, 0xA2, 0xB7,
0x91, 0x30, 0xA0, 0xC4, 0x48, 0x42, 0x00, 0x15, 0x88, 0x73, 0xD9, 0x96, 0x08, 0x5A, 0xCD, 0x7D,
0xFE, 0xB7, 0x6D, 0x2E, 0xA5, 0x23, 0x36, 0x11, 0x87, 0x0E, 0xBF, 0x8F, 0x66, 0x47, 0x36, 0x33,
0x00, 0xF6, 0x30, 0xD5, 0x24, 0x64, 0x0C, 0x21, 0x03, 0x55, 0xD9, 0x60, 0xEB, 0x44, 0x17, 0x73,
0x68, 0x04, 0x9D, 0x0C, 0xC9, 0xA8, 0xB1, 0x4F, 0x3A, 0x47, 0x2F, 0x01, 0xF8, 0x1A, 0x41, 0x25,
0xDB, 0x40, 0x73, 0x0F, 0xB4, 0x9A, 0xD8, 0x0E, 0xAE, 0xC8, 0x86, 0xE8, 0xC5, 0x59, 0x6B, 0x1E,
0xB3, 0x22, 0xCD, 0x78, 0xCF, 0x73, 0x6D, 0x21, 0xE4, 0xD7, 0x9D, 0xDA, 0xE6, 0x0B, 0xD8, 0x09,
0x9A, 0x9C, 0x7F, 0x29, 0x16, 0xC1, 0x70, 0xD1, 0x81, 0x07, 0x07, 0x5B, 0x6B, 0xCB, 0x93, 0xE2,
0xEC, 0xCD, 0xAC, 0x38, 0xA1, 0xF8, 0x29, 0x42, 0x78, 0x6E, 0x8E, 0x92, 0x3D, 0x48, 0xB8, 0x6C,
0xD2, 0xCE, 0x7B, 0x28, 0xDD, 0x72, 0xEE, 0x6F, 0xF6, 0x16, 0x36, 0x62, 0xA5, 0xDC, 0xF2, 0x26,
0xE8, 0xE0, 0x20, 0x73, 0x23, 0xFA, 0xA6, 0xFD, 0xA1, 0x16, 0x75, 0xEC, 0xD3, 0x05, 0xE8, 0x9F,
0x20, 0x1E, 0xB4, 0x09, 0xDE, 0xF5, 0x92, 0x81, 0x6B, 0xBC, 0xD5, 0xAB, 0x3D, 0x28, 0x49, 0x2F,
0x4A, 0x18, 0xFB, 0xB6, 0x62, 0x6F, 0x80, 0x80, 0x48, 0x84, 0xB7, 0xAE, 0xF0, 0x9E, 0x33, 0x6E,
0x7A, 0x9C, 0x3D, 0x07, 0x82, 0x4A, 0xC5, 0x2F, 0x20, 0xA6, 0xD6, 0x17, 0x3E, 0x7F, 0x63, 0x6B,
0xEE, 0x79, 0x76, 0x4A, 0x26, 0x16, 0x7E, 0xD6, 0xFE, 0x67, 0x55, 0x36, 0x25, 0x66, 0x41, 0x8A,
0x22, 0x00, 0x2B, 0xC0, 0xD4, 0xE7, 0x52, 0x67, 0x64, 0xEF, 0xC0, 0x56, 0x8B, 0xA9, 0x0E, 0x92,
0x18, 0xB5, 0x86, 0xD0, 0x95, 0x5F, 0x3F, 0x4D, 0xC3, 0xD1, 0x15, 0xDE, 0x9B, 0x76, 0xBB, 0x27,
0xD8, 0x36, 0x7A, 0xAB, 0x2D, 0x78, 0xDF, 0xB6, 0xAD, 0x0E, 0x7A, 0x22, 0xF7, 0xD0, 0x0E, 0x50,
0x32, 0x9F, 0xF2, 0xFA, 0xC2, 0x9F, 0x9F, 0x12, 0x63, 0x57, 0xB7, 0x06, 0xEE, 0x5A, 0xE6, 0xFA,
0x90, 0xE0, 0x9A, 0x06, 0xC1, 0x85, 0x6E, 0xF3, 0x7A, 0x30, 0xA2, 0x9D, 0x41, 0x67, 0x07, 0x77,
0x55, 0x4F, 0x0E, 0x1D, 0x15, 0xD7, 0x7D, 0x7C, 0x9E, 0xD2, 0x3F, 0x47, 0x7D, 0x76, 0x73, 0x3C,
0xF0, 0x01, 0x9F, 0x2E, 0x26, 0x0C, 0x84, 0xBD, 0x85, 0xB3, 0x8F, 0x31, 0x7E, 0xC3, 0x1F, 0xA2,
0xE4, 0xCD, 0xA8, 0xA1, 0xE4, 0x27, 0x2A, 0x14, 0x63, 0x64, 0xDF, 0x32, 0x7F, 0x3D, 0x2E, 0xFA,
0x1C, 0x7B, 0x9B, 0x56, 0xAF, 0x04, 0x64, 0xB9, 0x13, 0xAA, 0x9A, 0x99, 0x4B, 0x1A, 0xF5, 0x54,
0x81, 0xAA, 0x37, 0xAD, 0x6E, 0x6C, 0x83, 0x76, 0xB6, 0x34, 0x4A, 0xB3, 0x7F, 0xDC, 0x94, 0xFD,
0x8F, 0xE3, 0xC5, 0x78, 0x64, 0x27, 0x7B, 0x00, 0x61, 0x31, 0x4E, 0x52, 0x64, 0x8D, 0x0B, 0x5E,
0x82, 0x8B, 0xBA, 0x2F, 0x37, 0xE1, 0xAB, 0x60, 0xA8, 0x6A, 0x81, 0x22, 0x14, 0xC5, 0x7F, 0x3F,
0x3D, 0x9E, 0x8F, 0xD9, 0x36, 0x0F, 0x5A, 0x96, 0x79, 0x25, 0x08, 0xEC, 0xFC, 0xD3, 0xE3, 0x24,
0x03, 0x60, 0x81, 0xCC, 0xB4, 0xE8, 0x3B, 0x59, 0x28, 0x46, 0xE0, 0xE2, 0xAA, 0x4B, 0x21, 0x3E,
0xD1, 0xFD, 0x12, 0x30, 0x08, 0x7A, 0x95, 0xA8, 0x2A, 0x73, 0x99, 0x2F, 0x0C, 0xD2, 0x56, 0x4A,
0x9E, 0xA4, 0xE8, 0xF1, 0x62, 0x80, 0xC1, 0x4E, 0xE0, 0x1C, 0x73, 0xD9, 0xEA, 0xCE, 0x0B, 0xC2,
0x06, 0x31, 0x66, 0x32, 0x1B, 0x71, 0x5B, 0xE3, 0xC9, 0xA3, 0x6C, 0x87, 0xDB, 0x43, 0x72, 0x4A,
0xFF, 0x13, 0x52, 0x1E, 0x2B, 0x83, 0xE3, 0xF9, 0xE6, 0xBD, 0xA8, 0xED, 0x26, 0xDF, 0xD1, 0xBD,
0xB0, 0x77, 0x83, 0x55, 0x9F, 0xF8, 0x38, 0x12, 0x6B, 0xE6, 0xAB, 0xA2, 0x30, 0x9F, 0xE3, 0x1A,
0xBB, 0xEB, 0x0C, 0x1D, 0x4D, 0x84, 0x0D, 0xF0, 0xFA, 0x0F, 0xD2, 0xE6, 0x13, 0x14, 0xD0, 0x4D,
0x9E, 0xB7, 0x47, 0x1F, 0xCA, 0x7F, 0x19, 0xB0, 0xA9, 0x8F, 0x1F, 0x69, 0xBE, 0x0B, 0x35, 0x6F,
0x85, 0x86, 0x40, 0x54, 0x20, 0xA5, 0xFD, 0x53, 0x60, 0x9C, 0xE5, 0x9F, 0x3A, 0xD3, 0x26, 0xE8,
0x78, 0x7D, 0xF4, 0x8F, 0xF0, 0x1B, 0x1C, 0x7E, 0xFD, 0xB0, 0x61, 0x63, 0x14, 0xA0, 0x1A, 0xD9,
0x6F, 0x97, 0xBC, 0xD5, 0x99, 0xF1, 0xA2, 0x3C, 0xE5, 0x3C, 0x1D, 0xFD, 0x53, 0xA0, 0x69, 0x23,
0x08, 0xB2, 0x76, 0xB2, 0x51, 0xD4, 0xEF, 0x22, 0x0B, 0x05, 0xA4, 0x11, 0x2C, 0xDE, 0xC1, 0x73,
0xC0, 0x5C, 0x0A, 0x71, 0xD6, 0xB2, 0xF5, 0x04, 0xE0, 0x70, 0xFA, 0x36, 0xBD, 0xDD, 0x3C, 0xFF,
0xFE, 0x50, 0x88, 0x1E, 0x6C, 0xB8, 0xD3, 0x2B, 0x5E, 0xC5, 0xDC, 0x55, 0x9F, 0x3E, 0x70, 0x36,
0x09, 0x55, 0x85, 0x3D, 0xD0, 0xE6, 0x5D, 0xF4, 0x38, 0xFB, 0x72, 0xF9, 0x41, 0x9B, 0x3F, 0xE8,
0x76, 0x11, 0x8B, 0x55, 0xB5, 0x05, 0xA9, 0xD0, 0x62, 0x77, 0x5C, 0x41, 0x8D, 0x60, 0x83, 0x53,
0x43, 0x46, 0x40, 0x76, 0x06, 0x2C, 0x75, 0xF4, 0x43, 0x14, 0x75, 0xCD, 0xF9, 0x64, 0x60, 0x16,
0xE5, 0xDF, 0x55, 0x3D, 0x24, 0x16, 0x68, 0xC0, 0x4F, 0xED, 0x47, 0x89, 0x8E, 0x39, 0x0B, 0x89,
0x8A, 0xE6, 0xD4, 0x89, 0xD6, 0xD4, 0xED, 0x79, 0x3A, 0xF2, 0xD0, 0xEC, 0xE2, 0x71, 0xB3, 0x09,
0x89, 0x4F, 0x61, 0x76, 0xBE, 0x30, 0x5B, 0xD6, 0xD0, 0xF3, 0xA6, 0x64, 0xB1, 0x3F, 0x49, 0x78,
0x5A, 0x35, 0x03, 0xAB, 0x60, 0x93, 0x48, 0xC7, 0xCF, 0x23, 0xC0, 0x41, 0x08, 0x38, 0x9F, 0x14,
0xBF, 0x04, 0xB5, 0x99, 0x45, 0x3F, 0xBA, 0x22, 0x7E, 0xAF, 0x65, 0x33, 0x1E, 0xF1, 0xA2, 0x17,
0x1A, 0x8D, 0xDD, 0x52, 0xEE, 0xD0, 0x20, 0x2E, 0x51, 0xD5, 0x14, 0x7D, 0x36, 0xFE, 0x00, 0x3B,
0xE1, 0x34, 0xD6, 0xCB, 0x03, 0x8A, 0x50, 0x66, 0xA6, 0x4B, 0x65, 0x0B, 0xBD, 0x02, 0xDE, 0x73,
0xEF, 0x3C, 0xE5, 0x78, 0x6B, 0x87, 0xB4, 0x43, 0x53, 0x35, 0xB5, 0xEA, 0xD0, 0x7E, 0xE0, 0x09,
0xBA, 0x3C, 0x96, 0xA9, 0x86, 0x3C, 0x14, 0x11, 0xE5, 0x39, 0xCD, 0x4C, 0x97, 0xD0, 0xA7, 0x27,
0xBC, 0x56, 0x7D, 0xA2, 0xF9, 0x2F, 0xB2, 0xC5, 0xC5, 0xEE, 0x58, 0x32, 0xF7, 0x15, 0xB5, 0x58,
0x3D, 0x6C, 0xDD, 0xD6, 0x15, 0x3E, 0x24, 0xED, 0x30, 0x31, 0x81, 0x5E, 0x23, 0x95, 0x81, 0xA6,
0x81, 0xCD, 0x25, 0x1D, 0x6A, 0x38, 0xE2, 0x9A, 0x41, 0xCE, 0x65, 0xE2, 0x21, 0x43, 0x06, 0x0B,
0x88, 0xD5, 0x0C, 0x1E, 0x9C, 0xB1, 0x29, 0x0A, 0xA8, 0x43, 0x80, 0x64, 0x88, 0x74, 0xA9, 0x78,
0xF0, 0xA0, 0x21, 0x06, 0xDA, 0xA0, 0x43, 0x81, 0x26, 0x43, 0x86, 0xC4, 0x0D, 0xA0, 0x0C, 0x06,
0x9A, 0x41, 0x12, 0x69, 0x6B, 0xF0, 0xE0, 0x41, 0x8C, 0x05, 0x43, 0x43, 0x06, 0x31, 0x8D, 0x53,
0xB7, 0xF1, 0xF0, 0x28, 0x8B, 0x86, 0x28, 0xE9, 0x92, 0xA7, 0xDF, 0xE1, 0x7B, 0xFA, 0x49, 0x22,
0xBB, 0xAD, 0x10, 0xF3, 0x3D, 0x3E, 0x92, 0xF7, 0x5D, 0x9E, 0x9F, 0x7B, 0xCE, 0xF9, 0xCE, 0x39,
0xF7, 0x99, 0xF0, 0xDE, 0x46, 0x73, 0x8C, 0x9C, 0x51, 0xAB, 0xD5, 0x42, 0xD9, 0x98, 0x0B, 0xCB,
0x0F, 0x1A, 0x33, 0xF3, 0xCF, 0x8F, 0x09, 0x87, 0x92, 0xAF, 0x93, 0x6E, 0xF8, 0xDC, 0x84, 0x6C,
0xA3, 0xE2, 0x90, 0xCE, 0x48, 0x27, 0x7B, 0xBE, 0x19, 0x45, 0xE5, 0x33, 0x8A, 0x1B, 0x4C, 0xA0,
0xF4, 0x4E, 0x7F, 0x3E, 0x1D, 0x96, 0x57, 0x29, 0x6C, 0xE3, 0x88, 0xCB, 0x90, 0xEB, 0xA0, 0x3A,
0xE4, 0x59, 0x22, 0x26, 0x99, 0x3E, 0xB3, 0xF9, 0xB1, 0xE6, 0x46, 0x31, 0xC7, 0x78, 0x50, 0x25,
0xC9, 0x3F, 0x0D, 0x39, 0x2D, 0xFE, 0xDF, 0x3E, 0x30, 0x42, 0xA7, 0xDF, 0x1C, 0x31, 0xC2, 0xB3,
0x0E, 0xA7, 0xEA, 0x88, 0xAC, 0xA6, 0xD9, 0x28, 0xAE, 0xC3, 0x7B, 0x95, 0x66, 0x3B, 0xC9, 0x73,
0x43, 0x34, 0x94, 0x52, 0xB0, 0xDA, 0x92, 0x7E, 0xD9, 0xBA, 0xD6, 0xAB, 0x54, 0x1E, 0x94, 0x29,
0xA9, 0xA5, 0x8A, 0xA2, 0x0F, 0x21, 0x60, 0x43, 0x94, 0x96, 0xF4, 0x2C, 0xFF, 0x8B, 0x52, 0x2E,
0x9D, 0x0B, 0x0F, 0x62, 0x8A, 0x20, 0x27, 0xE8, 0xE2, 0x91, 0xCE, 0xF7, 0x1F, 0x29, 0x25, 0x7A,
0x77, 0xE7, 0x10, 0x79, 0x87, 0x76, 0x9E, 0x7E, 0x8B, 0xA7, 0xB4, 0xD6, 0x7C, 0xB7, 0xFA, 0xFD,
0x3C, 0xF9, 0x20, 0x5A, 0x39, 0x5C, 0x69, 0xB3, 0x9C, 0x9B, 0x39, 0x6F, 0xBD, 0xD2, 0xD1, 0x56,
0x6E, 0x6A, 0x32, 0x39, 0x48, 0x78, 0x9B, 0xF1, 0x7C, 0xCA, 0x37, 0xB8, 0xC0, 0x1B, 0xEF, 0x04,
0xE6, 0xD2, 0xD6, 0x97, 0x76, 0x74, 0xA8, 0xD3, 0x9E, 0xC6, 0xA1, 0x52, 0xF0, 0xEF, 0x34, 0xA1,
0x9A, 0x82, 0x4C, 0xD1, 0x9B, 0x41, 0x76, 0x35, 0xE4, 0xE0, 0xCC, 0x54, 0x35, 0xA4, 0x8E, 0xAB,
0x98, 0x4E, 0x7D, 0x3E, 0x42, 0xF4, 0xF6, 0xB5, 0x92, 0xA8, 0xE7, 0x67, 0xE4, 0x7D, 0x86, 0x65,
0x3B, 0xFE, 0xD6, 0x69, 0xA2, 0xAB, 0xC5, 0x2C, 0x79, 0xD7, 0xB3, 0xB4, 0x1E, 0xF6, 0xB2, 0xF1,
0xA9, 0xD2, 0xCF, 0x29, 0x22, 0x7F, 0xE3, 0x7C, 0x49, 0x0E, 0x56, 0x78, 0x70, 0x3C, 0xC1, 0x2F,
0x71, 0x79, 0xF4, 0xF4, 0x13, 0x33, 0x67, 0x79, 0x39, 0x7F, 0x50, 0xCD, 0x69, 0x7E, 0xB9, 0xB8,
0x4C, 0x47, 0x1D, 0x72, 0x2A, 0x95, 0xA8, 0x82, 0x89, 0x55, 0xA9, 0xCA, 0x34, 0x4E, 0x5F, 0xA9,
0x3D, 0x1B, 0xE5, 0x9E, 0xD5, 0x99, 0x5F, 0xE3, 0xAC, 0x74, 0x12, 0x14, 0x86, 0x9E, 0xA2, 0xCB,
0x20, 0xA2, 0x99, 0x17, 0x99, 0x57, 0xAF, 0x5C, 0xC1, 0x72, 0x87, 0x44, 0x10, 0xC2, 0x81, 0x30,
0xEF, 0x1E, 0x3B, 0x67, 0x1A, 0x7C, 0xEC, 0x7E, 0x4A, 0x1C, 0xF9, 0x13, 0x94, 0xD0, 0x4D, 0x70,
0x26, 0x59, 0x9D, 0x55, 0xC7, 0xBD, 0xAC, 0x3C, 0xF5, 0xB9, 0xF2, 0xB2, 0xB7, 0xB3, 0xD3, 0x93,
0xD4, 0x23, 0x2E, 0xBC, 0xCF, 0xBC, 0xAF, 0x92, 0xE3, 0x6F, 0x29, 0x15, 0x5F, 0x2D, 0x46, 0x42,
0x28, 0x51, 0x9E, 0x1E, 0xF6, 0xAE, 0xC7, 0xBF, 0xDA, 0x4F, 0x89, 0x63, 0x63, 0x63, 0xAF, 0x31,
0xB7, 0x10, 0x02, 0x4B, 0xE7, 0xB6, 0x1E, 0xFF, 0xA3, 0x9A, 0xAB, 0xD5, 0x9C, 0xD7, 0xBB, 0xF6,
0x80, 0x6D, 0x68, 0x69, 0x94, 0xE8, 0xD7, 0xF0, 0xA5, 0x98, 0xBC, 0x9C, 0xA8, 0x82, 0x3F, 0x0C,
0xE4, 0xBD, 0x2F, 0xEE, 0x71, 0x7A, 0xEF, 0x3F, 0x43, 0x74, 0xF2, 0xCA, 0x95, 0xF7, 0x99, 0xD7,
0xE4, 0x9F, 0x51, 0x9F, 0xCF, 0x70, 0xF9, 0x46, 0x43, 0x9A, 0xC2, 0xAC, 0xFF, 0x51, 0xBC, 0xCC,
0xF5, 0x95, 0x4F, 0x69, 0x34, 0x90, 0xBF, 0x46, 0x27, 0x28, 0x74, 0x38, 0x36, 0x05, 0x4D, 0x90,
0xFA, 0xEB, 0xF9, 0xBB, 0x5C, 0x8E, 0x63, 0x31, 0x82, 0x3A, 0x2C, 0x74, 0x3C, 0x4B, 0x27, 0xE3,
0x23, 0x7F, 0xAC, 0x9D, 0x46, 0x27, 0xE1, 0xD2, 0xFE, 0x17, 0xB7, 0xD1, 0x99, 0x59, 0x62, 0x6E,
0x34, 0xF7, 0x96, 0xB6, 0xEC, 0x1C, 0x42, 0xC0, 0xAB, 0x89, 0xBE, 0x7F, 0x71, 0x99, 0xAF, 0x41,
0x18, 0xCD, 0xCB, 0x37, 0xD8, 0x8E, 0xA4, 0xBC, 0x70, 0x73, 0xF7, 0x62, 0x78, 0x61, 0x01, 0x97,
0x88, 0x17, 0xB2, 0xD4, 0x8E, 0xD0, 0xEB, 0x0B, 0x19, 0x8D, 0x8C, 0x90, 0xF7, 0x88, 0x0B, 0x8E,
0xE1, 0x08, 0x11, 0x7A, 0x08, 0x91, 0x65, 0xA0, 0x97, 0x4D, 0xE1, 0xF7, 0xB0, 0x57, 0x69, 0x6E,
0xF2, 0xB0, 0xFD, 0x79, 0xA9, 0x32, 0x8C, 0x79, 0xB8, 0x9C, 0x24, 0x84, 0x91, 0xCB, 0x65, 0xFD,
0xE2, 0x44, 0xB0, 0xE2, 0xAE, 0xE5, 0xB3, 0xCD, 0x64, 0xC8, 0x34, 0x4F, 0x0E, 0x1D, 0xA5, 0x49,
0xBF, 0x70, 0x9B, 0xB0, 0xD8, 0xF6, 0x06, 0x39, 0xE1, 0x20, 0x94, 0x06, 0x55, 0x50, 0x99, 0xC4,
0x5C, 0xB4, 0x6E, 0x1D, 0x66, 0x94, 0x3C, 0x09, 0x0F, 0xA2, 0x30, 0x46, 0x34, 0xAA, 0xCC, 0xE5,
0x24, 0xC8, 0x69, 0xAB, 0xF0, 0x60, 0xB5, 0xDA, 0xC5, 0x42, 0x4F, 0x92, 0x78, 0x4A, 0x32, 0x0B,
0xDE, 0xC5, 0xA4, 0x57, 0x3A, 0xB5, 0x76, 0x2D, 0x4D, 0x86, 0x53, 0x4C, 0xE1, 0xD9, 0x8C, 0x33,
0xF2, 0xF3, 0xBF, 0x23, 0x9C, 0xCB, 0x77, 0x2C, 0xB9, 0xD5, 0x88, 0x26, 0xB2, 0x11, 0x57, 0x34,
0x1B, 0x70, 0x8B, 0x37, 0xF1, 0x2A, 0x46, 0xF4, 0xFF, 0x4C, 0x3E, 0xBC, 0x03, 0xF2, 0x11, 0x83,
0xFC, 0xA5, 0x95, 0x02, 0xE4, 0x9D, 0x1A, 0xE4, 0x69, 0x0E, 0xE4, 0x31, 0x0F, 0xB3, 0x8D, 0x50,
0xC4, 0xCF, 0x2C, 0x99, 0x31, 0x8C, 0x68, 0xC6, 0x22, 0x28, 0x04, 0xB7, 0x1C, 0x91, 0xF0, 0x48,
0x85, 0xE1, 0x73, 0x13, 0x78, 0x05, 0xDE, 0x52, 0xD3, 0x91, 0xDA, 0x2D, 0x29, 0xAC, 0xFC, 0x82,
0x0E, 0xCF, 0x29, 0x04, 0xBF, 0x0E, 0xDF, 0xAB, 0x72, 0xA3, 0xFD, 0x8A, 0x9B, 0x39, 0x55, 0x99,
0xCA, 0x0E, 0x57, 0x20, 0x3B, 0x59, 0x81, 0xC1, 0xFD, 0x8A, 0x82, 0xEB, 0xB7, 0x40, 0xE3, 0x22,
0x33, 0x69, 0x0F, 0x3F, 0x1D, 0x47, 0xD1, 0x0A, 0x5E, 0x4C, 0x26, 0x93, 0xAF, 0x8E, 0x07, 0xA1,
0x18, 0xC6, 0x72, 0x6F, 0xE0, 0xC2, 0xA4, 0x6A, 0x8A, 0x72, 0xF1, 0x01, 0xC8, 0x65, 0xE2, 0x21,
0xF3, 0x1D, 0x3C, 0xA0, 0x0D, 0xB8, 0xA6, 0xB1, 0xFE, 0x54, 0x57, 0x5C, 0x3F, 0xA8, 0xE4, 0x25,
0x48, 0x40, 0x2F, 0x0E, 0x28, 0x28, 0x09, 0x35, 0x86, 0x2F, 0x43, 0x5D, 0xF2, 0xB6, 0xA0, 0x83,
0x01, 0x8D, 0xE0, 0x3E, 0x86, 0x5B, 0x4C, 0x0C, 0xF3, 0x96, 0x5C, 0x0B, 0xA0, 0x84, 0xE3, 0xC5,
0x88, 0xA1, 0x1A, 0x20, 0xC6, 0x70, 0x6A, 0x6E, 0x1C, 0x40, 0x65, 0xA1, 0x73, 0x62, 0x40, 0xA8,
0x58, 0x91, 0xCC, 0x62, 0xD5, 0xC1, 0xA9, 0x1C, 0x9E, 0x30, 0x4B, 0x65, 0x35, 0xC0, 0xCB, 0x2B,
0x1E, 0x2B, 0xAF, 0x34, 0xEB, 0x13, 0xF4, 0xEF, 0xC3, 0xF9, 0x6B, 0xD8, 0xE9, 0xF1, 0xF0, 0x0A,
0x93, 0x82, 0x02, 0x9E, 0x27, 0xDA, 0x84, 0xB3, 0xFD, 0xCC, 0xDD, 0xD6, 0x09, 0x0F, 0xA4, 0x1A,
0x89, 0x3A, 0xB0, 0xD0, 0x50, 0xD9, 0x5F, 0x83, 0x18, 0x29, 0xF4, 0x56, 0x5F, 0x5B, 0x72, 0x1A,
0x55, 0x60, 0x0D, 0x18, 0x04, 0x00, 0xE4, 0xE6, 0x83, 0x34, 0x09, 0x04, 0x27, 0xC0, 0x22, 0x0F,
0x81, 0x3F, 0x58, 0x26, 0x55, 0x22, 0x11, 0x01, 0x29, 0xC9, 0xB7, 0x1C, 0x4B, 0x86, 0x7A, 0x21,
0x88, 0x29, 0xC0, 0xAB, 0x34, 0x0F, 0x4F, 0x71, 0xE2, 0xD1, 0xC7, 0xC5, 0xC7, 0xAF, 0x06, 0x0B,
0x74, 0xE2, 0x04, 0x22, 0xF7, 0xEB, 0xA2, 0x4F, 0xFE, 0xA7, 0x35, 0x0F, 0xC6, 0xE1, 0xCE, 0x22,
0x85, 0xE0, 0x27, 0xC7, 0x6E, 0x93, 0x7E, 0x70, 0x0E, 0x02, 0x0B, 0x23, 0x23, 0x02, 0x78, 0x36,
0x04, 0xBF, 0x30, 0x37, 0xF0, 0xD3, 0x14, 0x64, 0x4A, 0xAF, 0xF6, 0x41, 0x34, 0xFA, 0x76, 0xFC,
0xDB, 0x73, 0xF2, 0x76, 0x2C, 0x6F, 0x37, 0x5D, 0xB6, 0xA8, 0xA0, 0x24, 0x85, 0x85, 0x24, 0x6D,
0xA4, 0x66, 0x13, 0x63, 0xF6, 0xBA, 0x25, 0x5F, 0x68, 0xCB, 0x61, 0xDA, 0x18, 0x9A, 0x62, 0xB0,
0x56, 0x8D, 0x9B, 0x23, 0x65, 0x08, 0x7F, 0x4C, 0xA7, 0x34, 0xEE, 0x5C, 0x5F, 0x3C, 0x1F, 0xF1,
0x41, 0x90, 0x4E, 0x4A, 0x01, 0x0F, 0x20, 0xE6, 0xB7, 0xF4, 0x1C, 0xC4, 0x2F, 0xC0, 0x22, 0xF1,
0x21, 0x80, 0xC0, 0x79, 0x27, 0x14, 0x34, 0xC7, 0xDA, 0xFB, 0xDC, 0x27, 0x00, 0x12, 0x89, 0x50,
0x31, 0x82, 0x20, 0x24, 0x02, 0x19, 0x6E, 0x99, 0xB7, 0x9A, 0xB1, 0xB3, 0xB2, 0x16, 0xA0, 0xE6,
0x75, 0xB9, 0x01, 0xB5, 0x01, 0x8F, 0xBD, 0x66, 0x49, 0xED, 0x8E, 0xF6, 0x98, 0x53, 0x6E, 0xFB,
0x24, 0xC4, 0x2E, 0x71, 0x17, 0x0A, 0x07, 0xA2, 0x00, 0x7F, 0x4E, 0xEB, 0xE0, 0x9B, 0x6A, 0x02,
0x48, 0x72, 0x00, 0x0A, 0x27, 0xDC, 0xBC, 0x89, 0x16, 0xAA, 0xC9, 0xCE, 0xA1, 0x90, 0x21, 0x56,
0xBA, 0xD1, 0xBD, 0x73, 0x25, 0x83, 0x09, 0x85, 0xDB, 0xE7, 0xC4, 0x8B, 0x76, 0x46, 0xB7, 0x3A,
0x0A, 0x58, 0xB4, 0xB0, 0x24, 0x80, 0x4C, 0x01, 0xCC, 0x03, 0x55, 0xCB, 0x1C, 0x71, 0x0C, 0x80,
0x02, 0x8E, 0x63, 0xF2, 0x8F, 0x6E, 0x7C, 0x5E, 0x92, 0x39, 0x92, 0x28, 0x2C, 0x5E, 0xD3, 0x02,
0xB6, 0x62, 0x45, 0x24, 0x9F, 0x48, 0x4A, 0x2F, 0x4C, 0x7D, 0xD8, 0x8F, 0xD4, 0x3A, 0x32, 0x4F,
0x16, 0x0A, 0x20, 0x6B, 0xFD, 0xFB, 0xF6, 0x45, 0xE0, 0xAF, 0x38, 0x13, 0xF8, 0x06, 0x9C, 0x7B,
0x7B, 0xD4, 0xDB, 0xF7, 0x36, 0x84, 0x64, 0x32, 0xF7, 0xF9, 0x60, 0xBA, 0xB4, 0x93, 0xEA, 0x5A,
0x7C, 0xB4, 0x13, 0x59, 0xF3, 0x75, 0xAE, 0x1E, 0xC1, 0x18, 0x3F, 0x21, 0x72, 0x34, 0xE6, 0x65,
0x01, 0x6F, 0xC8, 0xD2, 0x55, 0xE2, 0x82, 0x89, 0xBE, 0x6D, 0x6A, 0x55, 0xBA, 0xE2, 0xDC, 0x3A,
0x67, 0xF2, 0x6B, 0x73, 0x9B, 0xB0, 0xFC, 0xB9, 0x5E, 0xE1, 0x4A, 0xAD, 0xB3, 0x95, 0x6C, 0xE6,
0xB4, 0x60, 0xCE, 0x67, 0x60, 0xA3, 0x0C, 0x3E, 0x98, 0x4B, 0x5D, 0x01, 0xCF, 0xCA, 0x3D, 0x6E,
0x81, 0xD4, 0xC3, 0x2E, 0x10, 0xBB, 0x2D, 0x29, 0x4A, 0x51, 0xC6, 0x38, 0x55, 0x3F, 0x4B, 0x20,
0x1F, 0x2C, 0x82, 0xD8, 0x1A, 0xE7, 0x8E, 0x85, 0xB2, 0x46, 0x73, 0x12, 0x2E, 0xAE, 0x94, 0xFE,
0xDA, 0x46, 0xEB, 0xD8, 0x56, 0x23, 0x3B, 0x5C, 0xB4, 0xE1, 0x62, 0x91, 0xBE, 0xB2, 0x56, 0xAB,
0x55, 0xDB, 0x3A, 0xAD, 0xD6, 0x89, 0x5E, 0x59, 0x2C, 0x7C, 0x46, 0xDC, 0xA7, 0x16, 0xA6, 0x60,
0x9D, 0xB8, 0xBC, 0x58, 0x90, 0xEE, 0xE7, 0x1D, 0xB7, 0x4B, 0xCB, 0x42, 0x5D, 0xC9, 0x5A, 0x47,
0x03, 0xDC, 0x88, 0x60, 0xBB, 0x08, 0x81, 0x14, 0x74, 0x71, 0x9A, 0x98, 0x52, 0x17, 0xC4, 0x17,
0x11, 0x38, 0x16, 0x91, 0xA0, 0x6F, 0xD6, 0x80, 0x6A, 0xF8, 0x76, 0xF4, 0x15, 0x12, 0x50, 0x77,
0xB3, 0x8C, 0x11, 0x2B, 0x65, 0xF6, 0x42, 0x2B, 0x75, 0x49, 0xED, 0xB2, 0x84, 0x79, 0x0E, 0x97,
0xA9, 0x51, 0xF8, 0xD5, 0xB4, 0xE7, 0xE8, 0x38, 0x9A, 0x58, 0xE2, 0x77, 0x0F, 0xC8, 0x3F, 0x46,
0x86, 0x46, 0xB0, 0x42, 0x82, 0x77, 0x15, 0xDE, 0x51, 0x6F, 0x73, 0x7C, 0x3C, 0x0C, 0xC3, 0xA4,
0x04, 0x02, 0x00, 0x67, 0x5B, 0x00, 0x8C, 0x72, 0xEF, 0x0C, 0x54, 0xC6, 0xFF, 0xAE, 0x38, 0x86,
0xBC, 0x11, 0x02, 0xAB, 0x3C, 0x49, 0xBC, 0x20, 0x66, 0x6E, 0x08, 0x55, 0x00, 0x85, 0xDE, 0xE1,
0xD3, 0xDD, 0x88, 0x08, 0x0B, 0x56, 0x18, 0x16, 0x94, 0x4E, 0x71, 0x12, 0x95, 0x1D, 0xA0, 0x45,
0x12, 0x52, 0xE3, 0x12, 0x56, 0x72, 0x3C, 0xEF, 0x27, 0x28, 0xA8, 0x00, 0x52, 0xA6, 0x83, 0xFC,
0xA3, 0x8F, 0x93, 0x17, 0xEA, 0x7C, 0x7A, 0x41, 0xC7, 0x0D, 0xAA, 0x49, 0x9F, 0x0B, 0xAC, 0x17,
0x71, 0xEC, 0x71, 0xAE, 0xEE, 0x56, 0x7A, 0xAA, 0x19, 0xA6, 0x77, 0x0F, 0x91, 0xB0, 0x7F, 0x12,
0x9C, 0xB7, 0xE0, 0xF3, 0xD2, 0x56, 0xED, 0x72, 0x37, 0xE0, 0xAE, 0xF8, 0x46, 0xED, 0xAD, 0x81,
0xFB, 0x04, 0xB8, 0xAB, 0xF7, 0x9A, 0xF4, 0xE5, 0x12, 0xDC, 0x27, 0xC0, 0xFD, 0xFD, 0x04, 0x2B,
0x8A, 0xD8, 0x47, 0xFF, 0x03, 0xEE, 0xD9, 0x80, 0xBB, 0x01, 0x77, 0xD5, 0x03, 0x9B, 0x3F, 0xEC,
0xB5, 0x64, 0x50, 0xF7, 0x11, 0xD9, 0x2F, 0xB7, 0x3D, 0x27, 0x40, 0xF0, 0xA6, 0x02, 0x38, 0x12,
0xAA, 0x5D, 0x31, 0x85, 0x38, 0x7C, 0xD4, 0xE3, 0x4C, 0xEE, 0xB4, 0x26, 0x0F, 0x4B, 0x09, 0x51,
0x31, 0x9D, 0xE1, 0x78, 0x97, 0x7C, 0xD5, 0xE1, 0xBE, 0x50, 0xEF, 0xD7, 0x39, 0x3F, 0x29, 0x75,
0x28, 0xA3, 0x70, 0xCE, 0xEB, 0xD8, 0xCF, 0xA3, 0x9F, 0x92, 0xBA, 0x53, 0x9C, 0x22, 0x75, 0x0B,
0x30, 0xF3, 0x4A, 0x41, 0x43, 0x5D, 0x17, 0x8B, 0x12, 0x57, 0xF5, 0xFE, 0x2B, 0xB9, 0x3D, 0x8F,
0xF7, 0x90, 0x65, 0x3E, 0xAC, 0x7C, 0x2B, 0x08, 0x84, 0xFA, 0x0F, 0xE1, 0x92, 0xEF, 0xAE, 0xFA,
0x20, 0x15, 0xCA, 0xB2, 0xA8, 0x64, 0x30, 0x02, 0xC3, 0x65, 0x52, 0x97, 0x07, 0x95, 0x34, 0x6D,
0x41, 0xD5, 0xAF, 0xD0, 0xE1, 0x55, 0xD0, 0x13, 0xF1, 0x8D, 0x42, 0x96, 0x74, 0xDD, 0xA1, 0xBF,
0xE0, 0xEB, 0xC3, 0xCE, 0xB4, 0x6B, 0xAE, 0xA5, 0x9F, 0x66, 0x01, 0x5F, 0x61, 0xBF, 0x58, 0x86,
0xEB, 0xD6, 0x69, 0x98, 0x4C, 0x9A, 0x85, 0xBD, 0x52, 0xAD, 0xB7, 0x33, 0xB6, 0xEB, 0x5C, 0xAC,
0x7A, 0x30, 0xBA, 0xDB, 0x90, 0x77, 0x87, 0x93, 0x36, 0x92, 0xD3, 0x80, 0xBF, 0x52, 0x47, 0x84,
0xA5, 0x4E, 0xD4, 0xE0, 0x34, 0x99, 0x46, 0x85, 0x0F, 0x2C, 0x1C, 0x9C, 0x48, 0x1E, 0x53, 0x98,
0x93, 0x44, 0x56, 0x27, 0x3E, 0x9A, 0x22, 0xE0, 0xA2, 0x9C, 0xD3, 0x7F, 0x69, 0xF4, 0x34, 0xD8,
0x5E, 0xE2, 0x62, 0xC7, 0x4A, 0xB1, 0xD8, 0x45, 0x24, 0xF3, 0xBB, 0xB1, 0x67, 0xC5, 0x17, 0x4B,
0xC5, 0xAD, 0x2B, 0xAD, 0x7F, 0x50, 0x3A, 0xE7, 0x2D, 0x20, 0x5A, 0x71, 0xBA, 0x58, 0x05, 0x6B,
0x68, 0xE3, 0xD1, 0xB6, 0xEA, 0x4D, 0xF4, 0xD2, 0xEB, 0xA5, 0xA9, 0x66, 0x77, 0x6D, 0xDD, 0x7D,
0x51, 0xF5, 0x4D, 0xD0, 0x81, 0x89, 0x00, 0xA0, 0xA3, 0x96, 0xA2, 0xE9, 0x22, 0x8C, 0xE7, 0x0E,
0x44, 0xC4, 0xAD, 0x4E, 0xB8, 0xDC, 0x8B, 0xB7, 0x38, 0x7B, 0x2B, 0xE8, 0xEC, 0x36, 0x5E, 0xA1,
0xD0, 0xC9, 0x34, 0xD7, 0x4F, 0x89, 0x74, 0x51, 0x76, 0x78, 0xBC, 0xC4, 0xBA, 0xEA, 0x96, 0x75,
0x1E, 0x2D, 0x96, 0x20, 0xE2, 0x59, 0xBE, 0xC7, 0x21, 0xAF, 0x5C, 0xE3, 0x5B, 0x92, 0x1D, 0xFC,
0xE4, 0xAA, 0x57, 0x19, 0x6A, 0xC2, 0xEC, 0xB0, 0x13, 0x1F, 0x84, 0x80, 0xC0, 0x3C, 0xD4, 0x78,
0x7E, 0x98, 0x82, 0x57, 0x13, 0xA9, 0x45, 0x9F, 0x4D, 0xFA, 0x3B, 0x01, 0x28, 0xBA, 0x2C, 0x6C,
0x9E, 0x5C, 0x86, 0xED, 0xE1, 0xAC, 0xBF, 0x41, 0xDE, 0x45, 0xF2, 0xEE, 0xAD, 0x35, 0xA2, 0x46,
0xAA, 0x33, 0xBD, 0xD8, 0xA6, 0xAB, 0xDC, 0xD8, 0xB0, 0x89, 0xFA, 0x98, 0x96, 0x98, 0xCB, 0xBE,
0x94, 0x2E, 0xDD, 0x7E, 0x4B, 0x39, 0xE4, 0xB1, 0x23, 0xDB, 0x25, 0xB1, 0x4E, 0x8E, 0x99, 0xDB,
0x17, 0x56, 0xBB, 0xFD, 0x17, 0x70, 0x46, 0x75, 0x12, 0x77, 0x3E, 0x85, 0xAA, 0x52, 0x95, 0x68,
0xC8, 0x9F, 0xE6, 0x71, 0xFE, 0x6E, 0xD6, 0x60, 0x55, 0xD8, 0x47, 0x4A, 0xDE, 0x46, 0xB3, 0xF4,
0x4E, 0x80, 0x7E, 0x9D, 0x6B, 0x5D, 0xBC, 0x01, 0xF4, 0x4B, 0xB7, 0xED, 0xC5, 0x9D, 0xAF, 0x9B,
0xEC, 0x17, 0xE2, 0x6D, 0x6C, 0x5D, 0x80, 0x28, 0x9A, 0x76, 0x74, 0x4A, 0xC0, 0xD7, 0x20, 0x77,
0x20, 0x7F, 0xBB, 0xAF, 0x8F, 0x04, 0x1B, 0x40, 0xCB, 0x12, 0x80, 0xA9, 0xCA, 0x68, 0xB9, 0xF2,
0x36, 0x9B, 0xB1, 0xB6, 0xBF, 0x27, 0x84, 0x62, 0x58, 0x22, 0x07, 0x89, 0x3E, 0x68, 0xFF, 0x96,
0x41, 0x70, 0x7F, 0x4F, 0x66, 0xFA, 0x81, 0x8F, 0x1C, 0x88, 0xC8, 0x0F, 0x7D, 0xE4, 0xFF, 0x26,
0xF2, 0x23, 0x13, 0x47, 0x77, 0x00, 0xDD, 0x59, 0x0A, 0xAB, 0x66, 0xE9, 0x85, 0x5C, 0xDD, 0x7B,
0xF0, 0xFA, 0x56, 0x9F, 0x42, 0x2F, 0xEB, 0xF0, 0x91, 0xE9, 0x50, 0xB4, 0x39, 0xE3, 0x75, 0x51,
0x57, 0x6C, 0x83, 0x72, 0x1A, 0x03, 0x1C, 0x04, 0x32, 0x4F, 0xC6, 0xAA, 0xF0, 0xEA, 0xAE, 0x74,
0xDB, 0xEF, 0x46, 0x3A, 0xBC, 0xA0, 0x0A, 0xB3, 0xFE, 0x54, 0x54, 0x26, 0x0F, 0xF9, 0xEC, 0x16,
0x71, 0x75, 0xBF, 0x88, 0x3B, 0x72, 0x59, 0x5A, 0xD4, 0x56, 0x36, 0x2A, 0x40, 0xE5, 0x61, 0xB7,
0xA7, 0x82, 0x57, 0x0B, 0x3B, 0xDF, 0xAF, 0xDC, 0x40, 0x1F, 0xC3, 0x3A, 0x79, 0xD4, 0x4F, 0x27,
0xFD, 0x4B, 0xA8, 0xC2, 0x5A, 0xE4, 0x6C, 0xB4, 0x1F, 0x28, 0xAE, 0x60, 0xE3, 0x42, 0x6A, 0xFC,
0xCA, 0xE5, 0x34, 0x11, 0x44, 0xDA, 0x94, 0xC4, 0x05, 0x58, 0x8B, 0x56, 0x4A, 0x41, 0xA5, 0xF0,
0xAB, 0xD2, 0x45, 0x81, 0xA0, 0x17, 0x78, 0xA6, 0x52, 0x5D, 0x96, 0xEC, 0x03, 0xFC, 0x17, 0x81,
0xD4, 0x6A, 0x41, 0xAF, 0xA5, 0xCF, 0x43, 0x19, 0x71, 0x3F, 0xC2, 0x24, 0x8D, 0xBA, 0x10, 0x24,
0x2A, 0xB3, 0x64, 0x65, 0x0B, 0xE6, 0x61, 0xDB, 0x33, 0xDD, 0xA5, 0xC3, 0xDB, 0xA8, 0xE8, 0x42,
0xC6, 0x01, 0xCC, 0xB9, 0xFD, 0xF2, 0x2C, 0xBD, 0x2C, 0xE6, 0x80, 0x41, 0xB1, 0x70, 0xB5, 0x89,
0xF5, 0xCD, 0xD2, 0x15, 0x29, 0x44, 0x98, 0x54, 0xF2, 0xB7, 0x0B, 0x3B, 0x99, 0xEB, 0x9D, 0x30,
0x82, 0xDA, 0xBB, 0xD9, 0x06, 0x4D, 0x0B, 0xCC, 0x25, 0x94, 0x06, 0x2D, 0xFB, 0x41, 0x29, 0xC1,
0x10, 0x0E, 0xB2, 0x85, 0x09, 0x33, 0x95, 0x4C, 0x1E, 0x98, 0x92, 0x53, 0x2B, 0x32, 0x5B, 0x85,
0xEA, 0x35, 0x54, 0x0E, 0xC7, 0x03, 0x57, 0x0D, 0x24, 0xC6, 0xB8, 0xD4, 0x79, 0x7A, 0x09, 0x15,
0xF6, 0xF7, 0xD6, 0x18, 0xE5, 0x49, 0xB4, 0x60, 0x7D, 0x1B, 0x6D, 0x4A, 0x62, 0x40, 0xC1, 0xD1,
0xD5, 0xBF, 0x6E, 0xFE, 0x05, 0xA5, 0x2A, 0xF3, 0x0B, 0x4B, 0x43, 0x0E, 0x1D, 0x94, 0x8A, 0x04,
0x35, 0x1A, 0xE0, 0x00, 0x8B, 0xFD, 0x11, 0xED, 0xDD, 0x53, 0xFC, 0x84, 0x86, 0xA4, 0x82, 0x93,
0xE0, 0x76, 0x76, 0xE3, 0x34, 0xD8, 0x90, 0x56, 0xAF, 0x63, 0xF1, 0x25, 0x4F, 0x57, 0x91, 0x4D,
0x7D, 0x64, 0xA9, 0x8D, 0x86, 0xA3, 0x70, 0x65, 0xFD, 0x56, 0x93, 0xD6, 0xFA, 0x06, 0xFB, 0x75,
0xD4, 0x61, 0x53, 0x8E, 0xE8, 0xEB, 0xF6, 0x29, 0xA9, 0x9F, 0xFB, 0xC4, 0x95, 0xDB, 0x6D, 0x63,
0x9E, 0x8C, 0x8F, 0xFC, 0x19, 0xC6, 0x36, 0x49, 0xB8, 0xBC, 0xDF, 0x65, 0xCF, 0x3E, 0x5D, 0xC8,
0xBD, 0xDC, 0xD4, 0x73, 0x3B, 0x22, 0xA0, 0x9F, 0xF4, 0x6B, 0xD9, 0x71, 0x1E, 0xD4, 0xE7, 0x07,
0xA6, 0x24, 0x1B, 0x2C, 0x58, 0x04, 0x7D, 0x36, 0x0B, 0xB2, 0xE8, 0xC0, 0x94, 0xDC, 0xFC, 0x1D,
0xD2, 0x2A, 0xF7, 0x50, 0x7B, 0x1E, 0xEA, 0x50, 0xC3, 0xFD, 0x98, 0x3E, 0x7D, 0x18, 0x89, 0xE5,
0xCE, 0xBF, 0xA3, 0x25, 0x8B, 0xBC, 0xCB, 0xFC, 0x25, 0xB7, 0x8D, 0xCF, 0xD3, 0x3B, 0xD5, 0x85,
0xA8, 0x05, 0x08, 0xF6, 0xAA, 0x6D, 0xD5, 0x8E, 0x7C, 0x44, 0xBF, 0xEB, 0x8A, 0x09, 0x84, 0x44,
0x8A, 0xE6, 0xBE, 0xF1, 0x6A, 0xAF, 0x0E, 0x07, 0x3B, 0xE5, 0x75, 0xB7, 0x53, 0x6E, 0xD2, 0x4E,
0x09, 0x17, 0xB1, 0x2A, 0xFD, 0xB8, 0xA0, 0x12, 0x12, 0xA2, 0x6C, 0xC6, 0x63, 0xC9, 0xA5, 0xC4,
0x92, 0xCA, 0x43, 0xDC, 0x6E, 0x9F, 0x7D, 0x4E, 0xB8, 0x6B, 0x2A, 0xC9, 0x06, 0xD0, 0x6F, 0x16,
0x24, 0x2A, 0x45, 0x47, 0x42, 0x35, 0xA0, 0xBE, 0xA9, 0x51, 0x10, 0x64, 0xD1, 0x52, 0xEB, 0x49,
0x19, 0x72, 0x51, 0xCC, 0xFD, 0xA1, 0xFD, 0xF1, 0x36, 0xA9, 0x58, 0x54, 0xF4, 0x57, 0x0B, 0x00,
0x11, 0xB4, 0xA7, 0x47, 0xFB, 0x05, 0xD7, 0x27, 0xF4, 0xCB, 0x69, 0xF4, 0x7D, 0xAA, 0xF0, 0xAB,
0x28, 0x8B, 0x32, 0x13, 0xB7, 0xD4, 0x02, 0x44, 0x6C, 0x94, 0x79, 0x15, 0xFA, 0x85, 0xBB, 0x80,
0x96, 0xDE, 0xCE, 0x1E, 0xBF, 0x94, 0x82, 0x82, 0xC6, 0x52, 0x05, 0x41, 0x79, 0xF4, 0xBA, 0x1E,
0xB0, 0x54, 0x41, 0x01, 0xE4, 0x2D, 0xFA, 0x0F, 0xB5, 0x5A, 0xBF, 0x6F, 0xDD, 0xD6, 0x15, 0x3E,
0x24, 0x63, 0x11, 0x30, 0x81, 0xD0, 0x43, 0x0C, 0x34, 0x0E, 0x50, 0x2E, 0x1D, 0x12, 0xA3, 0x30,
0xFF, 0x81, 0xC4, 0x97, 0x89, 0x86, 0x00, 0xCD, 0x60, 0x03, 0x8D, 0xE0, 0x21, 0x83, 0x3B, 0x74,
0x28, 0xBC, 0xB8, 0x7F, 0x40, 0x2A, 0xB2, 0xD1, 0x90, 0x21, 0x83, 0xB4, 0x14, 0x1D, 0xED, 0xC1,
0x43, 0xA2, 0x0C, 0xCE, 0xD0, 0x41, 0x01, 0x2C, 0x91, 0x8E, 0x80, 0x66, 0xF0, 0x20, 0xC6, 0x8A,
0xE1, 0x21, 0x83, 0xE9, 0xCA, 0x80, 0xD3, 0x64, 0x10, 0xED, 0x47, 0x57, 0x57, 0xD2, 0x25, 0x4F,
0xBF, 0x73, 0xF9, 0x24, 0x4B, 0xB6, 0x64, 0xEB, 0x97, 0x9F, 0x2D, 0x3E, 0xFE, 0xBC, 0xF7, 0xBB,
0xE7, 0x9E, 0xF3, 0x9D, 0xEF, 0x5C, 0x3E, 0xBA, 0x34, 0x9D, 0x50, 0xC0, 0x86, 0x28, 0xE5, 0x8C,
0xEC, 0x27, 0xC4, 0x01, 0x71, 0x49, 0x14, 0x33, 0x91, 0xB7, 0x5E, 0xE3, 0x92, 0xCA, 0x28, 0x78,
0x8C, 0xD3, 0x5D, 0x54, 0x50, 0x54, 0x76, 0xE4, 0x9A, 0xB0, 0x26, 0x55, 0xA4, 0x89, 0xBF, 0xFA,
0x89, 0xA6, 0x9C, 0xB9, 0x08, 0x99, 0x5B, 0x87, 0x99, 0x2B, 0x55, 0x12, 0x7B, 0x86, 0x82, 0x26,
0xCD, 0x28, 0x5D, 0x68, 0xC8, 0x33, 0x23, 0xD3, 0xD7, 0x5C, 0xEE, 0x70, 0x97, 0xB4, 0xEF, 0xE4,
0xA5, 0xCF, 0x4C, 0xB8, 0xF1, 0x77, 0xB8, 0x8B, 0x72, 0x3A, 0x99, 0x17, 0xCC, 0x35, 0xAF, 0x1B,
0x4E, 0x72, 0x55, 0xC4, 0x0B, 0x75, 0x38, 0xE0, 0xEB, 0x26, 0xE5, 0xD4, 0xE7, 0x8F, 0x0A, 0x81,
0x73, 0x9E, 0x12, 0x0A, 0x93, 0xB3, 0x02, 0xB0, 0x20, 0x97, 0x1B, 0xA2, 0x11, 0x4D, 0xAF, 0x06,
0xE9, 0x31, 0x7A, 0xCD, 0x2B, 0xC3, 0x24, 0x97, 0x9B, 0x4A, 0xBA, 0x6C, 0xED, 0xF1, 0x56, 0x8B,
0x8E, 0xEB, 0x90, 0x3B, 0x37, 0x51, 0x05, 0x05, 0xB5, 0xF3, 0x89, 0x41, 0x0B, 0x21, 0xE7, 0x0B,
0x4D, 0x30, 0x30, 0xAE, 0xC1, 0x58, 0xD4, 0x1A, 0x7F, 0xCF, 0x2B, 0x75, 0xDA, 0xDC, 0x78, 0x25,
0xA8, 0xD0, 0x5A, 0x8C, 0x3F, 0x5F, 0xAC, 0x21, 0x23, 0x0F, 0x7F, 0xC6, 0x26, 0xC7, 0x91, 0x33,
0xB3, 0x4F, 0x6B, 0x7A, 0xA5, 0xFC, 0x77, 0x80, 0x68, 0xFC, 0x3C, 0x85, 0x68, 0xEB, 0x5B, 0x0B,
0xD8, 0x01, 0xCE, 0xB0, 0x02, 0x3A, 0xA2, 0xA0, 0x1C, 0x9E, 0x59, 0xC5, 0xA8, 0x8D, 0x2F, 0x78,
0x9A, 0xE0, 0x03, 0x5C, 0x08, 0x65, 0x18, 0x19, 0xB9, 0x2D, 0xEE, 0xC1, 0x14, 0xC4, 0xB8, 0x2F,
0x4F, 0xC8, 0xC1, 0x15, 0xE9, 0x58, 0xDA, 0x8A, 0x34, 0x4D, 0x29, 0xE6, 0x2C, 0xC6, 0x5C, 0x47,
0x5C, 0x0D, 0xA7, 0x88, 0x7C, 0x23, 0x6D, 0xC3, 0x00, 0xB3, 0xF6, 0x30, 0x7F, 0x00, 0x67, 0x8B,
0x58, 0xAB, 0xEA, 0x4F, 0x68, 0x2E, 0x87, 0xA1, 0x36, 0xFE, 0xA3, 0xB9, 0xB4, 0xF8, 0x8D, 0x62,
0x98, 0xD7, 0xD8, 0x69, 0xEE, 0x3F, 0xAA, 0x22, 0x0F, 0xC6, 0x8C, 0x27, 0x4B, 0xA7, 0x09, 0x8A,
0x23, 0x06, 0xC7, 0x19, 0xDA, 0x0E, 0x17, 0x9B, 0x38, 0xB9, 0x71, 0x20, 0x70, 0x51, 0x66, 0x2F,
0xB9, 0xE8, 0xC5, 0x9D, 0x3A, 0x6A, 0xCB, 0x8D, 0xA3, 0xE7, 0x44, 0x50, 0xBC, 0x73, 0x20, 0xCB,
0xF9, 0x55, 0x9C, 0xF9, 0x03, 0x8D, 0xE0, 0x86, 0xF3, 0x99, 0x23, 0x06, 0x17, 0x65, 0xB3, 0xC1,
0x40, 0xBB, 0x38, 0xE6, 0xE2, 0x20, 0xE0, 0xE2, 0x6C, 0x96, 0xE2, 0x7B, 0x25, 0xA9, 0xCE, 0xCE,
0x30, 0x3E, 0x01, 0xB0, 0xA1, 0x9F, 0x04, 0x31, 0x30, 0xD1, 0x5E, 0xE0, 0xC9, 0xDA, 0x65, 0x55,
0x78, 0x2D, 0x93, 0xBF, 0x0E, 0x0F, 0x62, 0x84, 0x0B, 0x7A, 0x82, 0xAF, 0x7B, 0xE0, 0xAA, 0x68,
0xB9, 0x26, 0x4E, 0x8B, 0xC0, 0xB0, 0xC3, 0x8B, 0xCC, 0x1D, 0x82, 0xA7, 0x54, 0xFC, 0x40, 0xBC,
0x65, 0x1E, 0x03, 0x62, 0x4C, 0x8B, 0x67, 0x30, 0xA3, 0xE1, 0x00, 0x4D, 0x4B, 0xD4, 0x36, 0x82,
0x65, 0x4D, 0xDA, 0x41, 0x43, 0xE9, 0x0F, 0x5C, 0xB8, 0x1D, 0xB0, 0x05, 0x35, 0x26, 0x4E, 0x15,
0x01, 0x1A, 0xA3, 0xB8, 0xC0, 0x80, 0x73, 0xDC, 0x89, 0xAF, 0xA8, 0x8E, 0xA4, 0x3B, 0xF4, 0x97,
0x32, 0x86, 0x92, 0xD6, 0xBD, 0xF5, 0x2C, 0x44, 0x8F, 0x31, 0x06, 0x60, 0xCC, 0xD4, 0x9D, 0x54,
0x87, 0x00, 0x89, 0xFB, 0x55, 0x09, 0x94, 0x3A, 0xBD, 0x03, 0x4C, 0xC0, 0x71, 0x8F, 0x9B, 0x70,
0x85, 0x8D, 0x67, 0x54, 0xE1, 0x74, 0xB0, 0x2F, 0x8F, 0xA2, 0xE1, 0x02, 0x48, 0x01, 0x91, 0x2B,
0x81, 0xEA, 0x71, 0x97, 0x90, 0x05, 0x86, 0x8E, 0x5D, 0xF4, 0x13, 0x60, 0x5C, 0x27, 0xD3, 0x1F,
0xE5, 0x50, 0xFD, 0x07, 0xD3, 0xB3, 0x5E, 0xE3, 0xD6, 0x9B, 0xFC, 0x01, 0x07, 0x1A, 0xCD, 0x94,
0x41, 0xCD, 0x49, 0x3C, 0xDF, 0x52, 0x2E, 0x87, 0x02, 0x4E, 0xB0, 0xA5, 0x1D, 0x53, 0x7A, 0xDF,
0x22, 0x3B, 0x35, 0x3D, 0x95, 0xF3, 0x67, 0x98, 0x1F, 0x58, 0x9B, 0x57, 0x98, 0x97, 0x99, 0xF3,
0x3B, 0x1F, 0xB3, 0x4C, 0xA1, 0xD0, 0x0C, 0x1B, 0xE6, 0x01, 0xF3, 0xC2, 0x93, 0x31, 0xF4, 0xF8,
0xF4, 0x6C, 0xC7, 0xBC, 0x0E, 0x40, 0xDB, 0xD8, 0x99, 0xF2, 0x29, 0xE0, 0x71, 0x85, 0x42, 0xDC,
0x36, 0x4D, 0xD4, 0xF5, 0x3B, 0x17, 0xD1, 0x98, 0x7C, 0x72, 0xEB, 0x1C, 0x78, 0xF6, 0x44, 0xFE,
0xCB, 0x0D, 0x0C, 0x62, 0x98, 0x2E, 0xDE, 0xA0, 0x13, 0x8D, 0x77, 0x9B, 0xD9, 0xE3, 0xC6, 0x99,
0xB3, 0x26, 0x82, 0x0D, 0xA4, 0xE5, 0x76, 0xEC, 0x9C, 0x30, 0x9C, 0xF4, 0x87, 0xAE, 0x99, 0x05,
0xC5, 0xD8, 0x1F, 0xFB, 0xAE, 0x87, 0x67, 0x05, 0x26, 0x77, 0x3B, 0x71, 0x6E, 0xB0, 0x0A, 0xEE,
0xAC, 0x63, 0xD0, 0x6C, 0x1D, 0xDF, 0x6D, 0xBC, 0xB5, 0x76, 0xAC, 0xEB, 0x51, 0x80, 0x4C, 0xC5,
0x55, 0x61, 0xD9, 0xA0, 0xFB, 0x5A, 0x98, 0xCE, 0xE7, 0x8D, 0x5C, 0xE0, 0xD5, 0x14, 0x55, 0x94,
0x26, 0xF4, 0xE7, 0x03, 0xC1, 0xB0, 0xC4, 0x0D, 0x4F, 0xD1, 0xE4, 0xA0, 0x83, 0x37, 0xE9, 0x40,
0x30, 0xF6, 0x6F, 0x7D, 0x7A, 0x8F, 0xBC, 0x8A, 0x22, 0x4B, 0xC8, 0x30, 0xE8, 0xB7, 0xFB, 0x9C,
0x00, 0x38, 0x7A, 0x60, 0x69, 0x9D, 0x74, 0x62, 0x99, 0x12, 0x30, 0x1C, 0x1D, 0xDC, 0x6F, 0xE7,
0x5C, 0x86, 0x6F, 0x1E, 0xD4, 0x12, 0x5E, 0x1D, 0x65, 0xE9, 0xE5, 0xC2, 0x47, 0x04, 0xE4, 0xC5,
0x41, 0x27, 0x04, 0x0C, 0x84, 0x2B, 0x11, 0x40, 0x28, 0x64, 0x3D, 0xED, 0xF5, 0xD4, 0xF1, 0x96,
0x50, 0x06, 0xA2, 0x03, 0x61, 0x14, 0x76, 0xF4, 0xD7, 0x18, 0xE1, 0x8A, 0x8C, 0x07, 0x8A, 0xB0,
0x3C, 0x04, 0xB6, 0x60, 0x23, 0x7F, 0xA9, 0xFC, 0x65, 0x2E, 0x62, 0x08, 0x7F, 0x95, 0x6B, 0x22,
0xED, 0x1A, 0x0C, 0x05, 0x0C, 0x82, 0xF0, 0x4F, 0x6D, 0xA8, 0xF7, 0x3C, 0x52, 0x4B, 0x0F, 0xD1,
0xAD, 0x2A, 0xCC, 0xFE, 0x66, 0x8F, 0xCB, 0x2F, 0x15, 0xE7, 0x88, 0x8F, 0x85, 0x26, 0x5E, 0xD7,
0x5E, 0x87, 0xD0, 0x43, 0x6C, 0x4B, 0x84, 0xD5, 0x6E, 0xD7, 0x0A, 0x69, 0xA4, 0x0B, 0x1D, 0x3F,
0x42, 0x2B, 0x91, 0x61, 0x1B, 0x82, 0xE1, 0x20, 0x09, 0x35, 0x8E, 0x15, 0xB7, 0x23, 0x42, 0x4F,
0x27, 0x20, 0x38, 0x3E, 0x75, 0x64, 0x8A, 0x4A, 0x34, 0x0D, 0x6A, 0x5C, 0xA5, 0xA3, 0x06, 0xEE,
0xD0, 0x6B, 0x6E, 0x15, 0x64, 0x20, 0x8B, 0x60, 0xD3, 0xE5, 0x0F, 0x0F, 0x5C, 0x3E, 0xAE, 0xEE,
0x89, 0xDB, 0x8A, 0x86, 0xAB, 0xF4, 0x2A, 0x2C, 0x0E, 0x85, 0xE0, 0x6B, 0xAB, 0x15, 0x4E, 0xD1,
0xD1, 0x01, 0x3F, 0x4A, 0x90, 0xCE, 0xC7, 0x43, 0x43, 0xA0, 0x11, 0xF1, 0x3A, 0xB7, 0xD7, 0xB5,
0x6E, 0x6D, 0xE5, 0x13, 0x58, 0x4A, 0x25, 0x9B, 0xC0, 0xD3, 0xC3, 0x02, 0x47, 0x88, 0x48, 0x82,
0x9D, 0x43, 0xAE, 0x2D, 0x63, 0x69, 0x17, 0xD9, 0x44, 0xE5, 0x9B, 0x99, 0x6A, 0x5B, 0xE2, 0xDA,
0xFA, 0x19, 0xBB, 0xC0, 0xCF, 0xA5, 0xB5, 0xCD, 0xC3, 0x3E, 0xDF, 0xCB, 0xD8, 0x45, 0x97, 0xC7,
0x05, 0x9D, 0x75, 0x86, 0x51, 0x25, 0x32, 0x4D, 0x82, 0x5C, 0xEC, 0x2F, 0xA2, 0x6A, 0x78, 0x02,
0x36, 0xEA, 0xB8, 0xB5, 0x39, 0x2B, 0x6C, 0x23, 0xE4, 0x30, 0x04, 0x25, 0x18, 0x22, 0x51, 0x59,
0x54, 0x86, 0x95, 0xDF, 0x78, 0x1A, 0xAC, 0xD6, 0xED, 0x74, 0x42, 0xE0, 0x16, 0x96, 0x03, 0x2E,
0xAE, 0x8E, 0xA5, 0x3F, 0x0A, 0x34, 0x63, 0x37, 0xE1, 0xE6, 0x05, 0x90, 0x0D, 0x6F, 0xDD, 0x3C,
0x19, 0x4B, 0x8B, 0x2D, 0x57, 0x77, 0xDD, 0x54, 0x16, 0x21, 0x94, 0x33, 0x70, 0x69, 0xBA, 0xF8,
0x24, 0xB1, 0x80, 0xBB, 0xB8, 0xF1, 0xD6, 0x59, 0x4B, 0x26, 0x56, 0x95, 0x64, 0xCE, 0x74, 0xC2,
0x50, 0x17, 0x56, 0x9E, 0x56, 0x59, 0x58, 0xE1, 0xDE, 0x09, 0xBD, 0xED, 0x30, 0x0B, 0xB2, 0x6F,
0x78, 0xFD, 0xD6, 0x72, 0xF7, 0x7B, 0x5F, 0xB4, 0x29, 0xEC, 0x23, 0xFC, 0xD8, 0x3C, 0xA5, 0xD2,
0x62, 0xE7, 0x5D, 0x5F, 0xF2, 0x2D, 0xEE, 0x85, 0x0E, 0x7A, 0x37, 0x5D, 0x5F, 0xFA, 0x95, 0x5F,
0x77, 0x85, 0x81, 0xDC, 0x6B, 0x43, 0x39, 0xDA, 0x89, 0x1D, 0x77, 0xDD, 0x3D, 0x3D, 0x7D, 0x05,
0x5C, 0x6E, 0xA4, 0xBF, 0x05, 0x7E, 0x0C, 0xA7, 0xAC, 0xD1, 0x2E, 0xDB, 0xA1, 0x3D, 0xBB, 0x93,
0xB6, 0x72, 0x4F, 0xBD, 0xF9, 0x04, 0x7A, 0x10, 0xD8, 0x32, 0x84, 0x1D, 0x77, 0x4E, 0xD0, 0x47,
0xD9, 0x99, 0x94, 0x6F, 0xB3, 0x1E, 0x59, 0xB5, 0x03, 0x9A, 0x67, 0x13, 0x33, 0x8A, 0x0B, 0x51,
0x12, 0xBB, 0x6C, 0x1C, 0x6E, 0xEC, 0x7D, 0xCF, 0x3C, 0x8B, 0xAE, 0x54, 0x86, 0x46, 0x5F, 0xB0,
0xD9, 0x33, 0x7E, 0xB7, 0x42, 0x80, 0x34, 0xA4, 0xCE, 0xA3, 0x7C, 0x99, 0xA5, 0xE0, 0xAE, 0xE9,
0x4E, 0xA1, 0xFD, 0x4E, 0x4D, 0x2E, 0xE9, 0x2D, 0x9B, 0x33, 0x51, 0x38, 0xF1, 0xBF, 0xFC, 0xDF,
0x62, 0xC9, 0x59, 0xDB, 0x88, 0x03, 0x96, 0xF1, 0xC4, 0x65, 0x30, 0x84, 0x9D, 0xDB, 0x97, 0x1D,
0x1F, 0x32, 0x0D, 0xF7, 0x9C, 0x3E, 0xB7, 0xAD, 0x31, 0x35, 0x59, 0x61, 0x8A, 0x72, 0xB8, 0x7D,
0xFC, 0x1D, 0x37, 0x41, 0x0D, 0x39, 0x65, 0xAC, 0x0A, 0x13, 0x39, 0x26, 0xBA, 0xEC, 0xE5, 0x27,
0xD2, 0x16, 0x44, 0xD0, 0xB7, 0x21, 0x72, 0x4A, 0xE4, 0xAC, 0xB0, 0x13, 0x4B, 0x4E, 0x12, 0x79,
0xDB, 0x3D, 0xA5, 0xAD, 0xF0, 0x7B, 0x13, 0x34, 0x9D, 0xDB, 0x9E, 0xB2, 0x7A, 0xDA, 0xBD, 0x36,
0x72, 0xB5, 0xC3, 0xB3, 0x59, 0x1E, 0x56, 0xF1, 0xBC, 0x0E, 0xEA, 0x17, 0x1E, 0x48, 0x69, 0x85,
0x1E, 0xA5, 0xFD, 0xDC, 0x50, 0xDC, 0x4A, 0x42, 0xB4, 0x7A, 0x3A, 0xF1, 0x10, 0x10, 0x77, 0xEB,
0x98, 0x66, 0x6C, 0xC8, 0x6E, 0xD1, 0xBD, 0xFB, 0xF9, 0x2F, 0x6A, 0x14, 0x01, 0xAB, 0x6D, 0xD5,
0xD8, 0xC3, 0x05, 0x9D, 0x19, 0xFF, 0xB1, 0x3E, 0xEB, 0x08, 0xCF, 0x1C, 0x9F, 0x7A, 0xB9, 0xC7,
0x6E, 0xEC, 0xC6, 0x25, 0x12, 0x62, 0xAA, 0xFB, 0xD2, 0x21, 0x1C, 0xC0, 0x58, 0xE7, 0xEA, 0x40,
0x63, 0x9A, 0x0B, 0x48, 0x55, 0x51, 0x93, 0xE1, 0x63, 0x38, 0xE3, 0x3D, 0xA1, 0x5B, 0x14, 0x3F,
0x0C, 0x13, 0x61, 0x92, 0x6E, 0x77, 0x64, 0xAF, 0x06, 0x08, 0xFB, 0xB0, 0x51, 0x45, 0x54, 0xC3,
0xC0, 0x4B, 0xC6, 0x72, 0x30, 0xD1, 0xB1, 0xF3, 0x3D, 0xD7, 0x98, 0x9E, 0x4F, 0x8F, 0xF7, 0x47,
0x5D, 0xCF, 0x44, 0xC3, 0x30, 0xC7, 0xE1, 0xE9, 0x09, 0xC8, 0xD3, 0xB0, 0x52, 0x85, 0x9A, 0x00,
0xB7, 0xA8, 0x12, 0x32, 0x61, 0x48, 0x69, 0xD2, 0x59, 0x29, 0x82, 0x38, 0xAC, 0xD2, 0x02, 0x86,
0xCD, 0xD0, 0xDD, 0xA8, 0x1E, 0xF2, 0xDC, 0xC9, 0xC4, 0x92, 0xB2, 0xB0, 0x75, 0x88, 0x76, 0xDE,
0x26, 0x3A, 0x9D, 0x1C, 0xBF, 0x2A, 0x80, 0x74, 0xD0, 0xE0, 0x81, 0x44, 0x7D, 0x8E, 0xB0, 0x81,
0x3B, 0xDB, 0x3A, 0x00, 0x1E, 0x2A, 0xC1, 0x7F, 0xAE, 0xF6, 0x74, 0x54, 0x63, 0x82, 0x2A, 0xB8,
0x38, 0x0A, 0x6A, 0xD5, 0x57, 0x21, 0x99, 0x08, 0x40, 0xD0, 0xFB, 0xD9, 0x9E, 0xF1, 0x8D, 0xB5,
0xAF, 0xB2, 0xF3, 0xE6, 0xED, 0xE5, 0x80, 0x11, 0x64, 0x90, 0x5E, 0x12, 0xC6, 0x5E, 0x1B, 0x34,
0x51, 0x71, 0xD6, 0xD2, 0xEC, 0x5E, 0xFE, 0xED, 0x6F, 0xEE, 0x25, 0x1A, 0x8C, 0xED, 0x87, 0x68,
0x8C, 0xA8, 0x15, 0xE3, 0xCA, 0x54, 0x63, 0xA2, 0x27, 0x9F, 0x89, 0x91, 0xE1, 0x86, 0x4E, 0x9E,
0x5B, 0xAA, 0xF5, 0xDB, 0x98, 0xD4, 0x39, 0x26, 0x94, 0x45, 0xA8, 0x7D, 0xEA, 0xBD, 0xF7, 0xA3,
0xBE, 0x18, 0xE8, 0x59, 0x35, 0x39, 0xAF, 0xEB, 0x97, 0x11, 0x86, 0xDD, 0xEC, 0xE2, 0xC9, 0x5E,
0xCD, 0xBE, 0x66, 0xBF, 0x61, 0x67, 0x6A, 0xE7, 0x5E, 0x76, 0x6A, 0xEC, 0xCA, 0xFC, 0x5A, 0xAB,
0xAE, 0x2F, 0xEA, 0x6B, 0xCF, 0xF7, 0x12, 0xD4, 0xF6, 0xF9, 0x70, 0xCB, 0xD7, 0x09, 0x4C, 0x42,
0x42, 0x36, 0x19, 0x82, 0x57, 0xE0, 0xC3, 0x98, 0x1F, 0x5C, 0x8B, 0xB6, 0xDC, 0xC2, 0xAD, 0x14,
0x51, 0xF8, 0x7A, 0x8E, 0x60, 0x35, 0x9E, 0xE0, 0x0A, 0xD7, 0xAA, 0x58, 0x3B, 0xDB, 0x2E, 0x0D,
0xD5, 0x22, 0x7C, 0x15, 0x45, 0x02, 0x85, 0x70, 0xEB, 0x7E, 0x2D, 0x41, 0x02, 0xCD, 0x1F, 0x70,
0xE1, 0x18, 0x78, 0x15, 0xC4, 0x00, 0x45, 0x0B, 0x5C, 0xF9, 0x83, 0x15, 0xE3, 0x98, 0x2E, 0xCD,
0x52, 0x35, 0xD9, 0x44, 0x0B, 0x15, 0xA3, 0x8C, 0x8E, 0x7F, 0x30, 0x9D, 0x67, 0x52, 0x95, 0xA5,
0x93, 0x0B, 0x55, 0xB8, 0x32, 0xD0, 0x0E, 0x9B, 0x0E, 0x72, 0x01, 0x43, 0xE1, 0x85, 0x8A, 0x72,
0x14, 0xDA, 0x61, 0x5F, 0x26, 0xA2, 0x03, 0xA1, 0xA0, 0xB6, 0x5F, 0xB5, 0x81, 0x37, 0xFB, 0xDA,
0x1B, 0x08, 0x7F, 0xC3, 0xB7, 0x3E, 0x6C, 0x55, 0x11, 0x2F, 0x1A, 0xA7, 0x45, 0x1E, 0x5E, 0xD4,
0xBB, 0x7C, 0x21, 0xF1, 0xA7, 0xCA, 0x08, 0x92, 0x04, 0xD0, 0x6A, 0x40, 0x43, 0xA2, 0x56, 0x69,
0x11, 0x2D, 0x3C, 0xD4, 0x40, 0xC2, 0xEF, 0x1B, 0x94, 0x95, 0xA9, 0xFA, 0xAC, 0x05, 0x34, 0xF5,
0xFD, 0x40, 0xFB, 0x1A, 0x48, 0xA0, 0x64, 0xB2, 0x08, 0x48, 0x5C, 0x06, 0x12, 0x85, 0x13, 0x01,
0xA0, 0x0D, 0x8B, 0x73, 0x3A, 0x86, 0x10, 0xF3, 0x61, 0x3A, 0x57, 0xC8, 0x44, 0x50, 0xBE, 0x7D,
0x00, 0x58, 0xB6, 0x25, 0x48, 0x2B, 0x88, 0x79, 0x69, 0x47, 0x6D, 0x0A, 0x2B, 0x9A, 0xC3, 0x71,
0xF0, 0x10, 0xE7, 0x44, 0xFB, 0x87, 0xFA, 0xD5, 0xD8, 0x15, 0x9D, 0xB8, 0xAD, 0x10, 0x4A, 0x36,
0x5C, 0x30, 0xD8, 0xF7, 0x00, 0x84, 0xA9, 0xAC, 0xF6, 0x73, 0x8C, 0x5D, 0x1E, 0x11, 0x87, 0xF8,
0xC3, 0xDF, 0xBB, 0xC4, 0xA8, 0x94, 0xDF, 0x97, 0x75, 0x07, 0x78, 0xDA, 0x87, 0xE8, 0xA1, 0xC6,
0xF4, 0x59, 0xF9, 0xC2, 0xBD, 0xA3, 0x76, 0x64, 0xDD, 0x48, 0xBC, 0xC9, 0xFA, 0xD2, 0xF6, 0x53,
0x79, 0xB9, 0x31, 0x5B, 0x19, 0x06, 0xDC, 0x60, 0xC0, 0x2C, 0xB3, 0x55, 0x47, 0x0B, 0x4B, 0x1D,
0xC6, 0x97, 0xDE, 0x34, 0x5D, 0x20, 0xE3, 0x63, 0x8C, 0x2F, 0x5A, 0x97, 0x35, 0x13, 0x23, 0x82,
0x48, 0x65, 0xFE, 0xD3, 0xF1, 0x81, 0x4A, 0x65, 0xB6, 0x90, 0x60, 0xFA, 0x69, 0x02, 0xBE, 0x5F,
0x65, 0x61, 0x84, 0x37, 0x33, 0xD8, 0xE9, 0x60, 0xFB, 0x60, 0xA3, 0x97, 0xCF, 0x56, 0x54, 0xDA,
0x52, 0x16, 0x45, 0x23, 0x54, 0xA4, 0x2F, 0x66, 0x2B, 0x21, 0x6B, 0x32, 0xEC, 0x5A, 0x59, 0x53,
0x0C, 0x43, 0x02, 0x17, 0x50, 0xD7, 0x25, 0x81, 0x5D, 0x7F, 0xCC, 0x52, 0x88, 0x32, 0x62, 0x28,
0x32, 0x1F, 0x3A, 0x9B, 0xD4, 0x2D, 0x0D, 0x1E, 0xCC, 0x13, 0x8A, 0x7F, 0x6A, 0x50, 0xE7, 0xC9,
0xCE, 0x5D, 0x9C, 0x01, 0x91, 0x93, 0x9A, 0x87, 0x8B, 0x69, 0xE8, 0x6F, 0x96, 0xE5, 0xCB, 0x12,
0x02, 0x5C, 0xD3, 0xC8, 0x46, 0xED, 0xE7, 0x4E, 0x7F, 0x29, 0xAB, 0xB5, 0x7E, 0xCF, 0x6F, 0xA8,
0x69, 0x71, 0x4F, 0x81, 0x5E, 0xC0, 0xA9, 0x1A, 0x7C, 0x7E, 0xAB, 0x76, 0x41, 0x60, 0xD1, 0xBD,
0x1A, 0xBE, 0x2E, 0x4D, 0x8B, 0x9E, 0x4F, 0xBF, 0xE3, 0xEB, 0x4D, 0x68, 0xD7, 0x98, 0xAC, 0x3A,
0xB7, 0x75, 0x58, 0x90, 0xC5, 0x64, 0x0B, 0x31, 0x57, 0x5A, 0x1E, 0x59, 0xA5, 0x57, 0x88, 0x19,
0x45, 0x19, 0xCD, 0xB8, 0x95, 0x8F, 0x44, 0x2C, 0xED, 0x5F, 0x9E, 0x3A, 0x38, 0x74, 0xBB, 0x1C,
0x21, 0x35, 0x83, 0x48, 0xF7, 0x70, 0xBE, 0x22, 0xB7, 0x9A, 0x79, 0x95, 0xD0, 0xED, 0x32, 0xE9,
0x42, 0xE5, 0x3F, 0x36, 0x64, 0xC6, 0xE9, 0x4C, 0x90, 0x1C, 0x0E, 0x3A, 0x1A, 0x66, 0xEE, 0x5C,
0xA9, 0x02, 0xEA, 0x5C, 0xB6, 0x91, 0xF6, 0xDB, 0xB1, 0xD1, 0x56, 0x32, 0xA4, 0x55, 0xA4, 0x36,
0x3E, 0x90, 0x69, 0x21, 0x1F, 0x7E, 0x92, 0x7C, 0x0C, 0xA4, 0xD8, 0xBD, 0x8B, 0xDD, 0x3B, 0x1F,
0xA7, 0x19, 0x6E, 0xB0, 0xAA, 0x15, 0xFE, 0x86, 0x6F, 0x87, 0xED, 0xB2, 0xB9, 0x6D, 0x4C, 0xC9,
0x16, 0x8E, 0x21, 0x8B, 0x70, 0x43, 0x88, 0x6F, 0x41, 0xB0, 0x40, 0x36, 0xB7, 0xB6, 0xB7, 0x36,
0x6C, 0xE2, 0xD6, 0x43, 0xA1, 0xA7, 0xEC, 0x58, 0xF2, 0x7F, 0x5C, 0x04, 0x58, 0x9C, 0x4F, 0xE1,
0x49, 0x0C, 0xEC, 0x70, 0x65, 0xA9, 0x6B, 0x64, 0x71, 0xCF, 0xE7, 0xC4, 0x91, 0x46, 0xA7, 0x51,
0x48, 0x74, 0xCC, 0x15, 0x6A, 0xB0, 0xBC, 0xA3, 0x2D, 0x1F, 0x49, 0x18, 0x5D, 0xCF, 0xF4, 0xB3,
0xC3, 0xC5, 0xBB, 0x9F, 0x65, 0xD9, 0x45, 0xD6, 0xEE, 0xF0, 0x78, 0x1B, 0x5A, 0x51, 0x14, 0x55,
0xC0, 0x33, 0x0A, 0xE1, 0xD3, 0xAF, 0x20, 0xB6, 0xB2, 0x92, 0xEE, 0x99, 0x18, 0x9A, 0x15, 0x2A,
0xA6, 0xC8, 0x33, 0x16, 0x59, 0xE4, 0x30, 0x24, 0x6C, 0x6B, 0x47, 0x4E, 0x52, 0x92, 0x4A, 0xE0,
0x27, 0x52, 0x4D, 0x92, 0x7B, 0x75, 0x3C, 0xBC, 0xA5, 0x55, 0x5E, 0xF1, 0xDA, 0x68, 0x67, 0xCB,
0x8E, 0x1D, 0xA5, 0x59, 0xDE, 0x89, 0xD2, 0xAA, 0x6C, 0xC9, 0x53, 0xA4, 0x28, 0x79, 0xF2, 0x09,
0x23, 0x4B, 0x83, 0x7E, 0x23, 0xBD, 0x48, 0x22, 0x43, 0xEF, 0xB6, 0x4E, 0xFA, 0xCE, 0x0C, 0x75,
0x98, 0x86, 0x0E, 0xAB, 0x7B, 0x1D, 0xA6, 0x16, 0xCD, 0x50, 0xDE, 0x58, 0x1D, 0x96, 0x58, 0x06,
0x97, 0x5A, 0xE8, 0x4D, 0xE1, 0xC0, 0xA5, 0xC7, 0x9D, 0xCA, 0x97, 0xF8, 0xBF, 0xAA, 0x12, 0xA3,
0xEF, 0x90, 0x7F, 0x6D, 0x3D, 0x8C, 0xBD, 0x1A, 0xA2, 0x68, 0x48, 0xD8, 0xE3, 0xE0, 0xEB, 0x5C,
0x92, 0xBC, 0xA6, 0x61, 0x86, 0x38, 0x1A, 0xE3, 0xB8, 0x3A, 0xB8, 0x6D, 0xE0, 0x38, 0x95, 0xD7,
0xED, 0xDD, 0x38, 0xB6, 0xAA, 0xB5, 0xB5, 0xDB, 0x9C, 0x55, 0x40, 0x78, 0x90, 0x1F, 0x44, 0xDC,
0x29, 0xA9, 0xF4, 0xFF, 0x92, 0x5B, 0x51, 0x9D, 0x96, 0xA4, 0x2C, 0xF5, 0x4B, 0xE1, 0x27, 0x6C,
0xD6, 0xD9, 0xC9, 0xE5, 0xC6, 0xED, 0xAC, 0xF0, 0x68, 0x2E, 0x6F, 0xBC, 0xBB, 0xDA, 0x36, 0x3D,
0x74, 0xF9, 0x41, 0xC8, 0x26, 0xE7, 0x81, 0x71, 0xCE, 0x35, 0xA2, 0xDA, 0x15, 0x27, 0x08, 0x40,
0xF1, 0x9D, 0x36, 0xF1, 0x56, 0xD6, 0xF2, 0x05, 0xEE, 0xA2, 0x0D, 0xC9, 0xBD, 0xA9, 0xE5, 0xCF,
0xD8, 0x97, 0x2C, 0x87, 0x01, 0x81, 0x14, 0x88, 0x8A, 0x6B, 0xB1, 0xB9, 0x61, 0x51, 0xEC, 0x07,
0xC4, 0x01, 0x7B, 0x9D, 0xB1, 0xE7, 0xE2, 0x84, 0x22, 0x8C, 0x01, 0x14, 0x42, 0x23, 0x1D, 0xF2,
0xD9, 0x2D, 0x66, 0x55, 0xBC, 0xC1, 0x89, 0x2B, 0x2B, 0xCE, 0x8D, 0x50, 0x68, 0xDA, 0x50, 0xF4,
0x23, 0xA9, 0xF4, 0x6B, 0x3C, 0x78, 0x1F, 0x13, 0x1A, 0xD9, 0x2E, 0x94, 0x78, 0x54, 0x5E, 0xB9,
0x36, 0x7E, 0xE2, 0xA4, 0x0D, 0x1F, 0x36, 0xF2, 0xC6, 0xC5, 0x8E, 0xE6, 0x10, 0x66, 0xD8, 0xEE,
0x0D, 0x7B, 0x37, 0x43, 0x6A, 0x57, 0x46, 0x19, 0xCC, 0xF3, 0xE8, 0x42, 0x3B, 0x26, 0x49, 0x51,
0xF2, 0xE1, 0xDE, 0xBF, 0xC2, 0x3E, 0x81, 0x4A, 0x3D, 0x81, 0x91, 0xE5, 0x95, 0xAC, 0xE9, 0xD2,
0x55, 0xD1, 0x7B, 0x0A, 0x85, 0xD6, 0x97, 0x4A, 0x96, 0x74, 0x8A, 0x5C, 0xEE, 0x81, 0xFC, 0xC4,
0x33, 0x9B, 0xBB, 0x48, 0x94, 0x2C, 0xCA, 0x13, 0xEC, 0xF4, 0xA9, 0x2C, 0x20, 0x41, 0x26, 0x78,
0xB5, 0xCB, 0x59, 0xA0, 0x37, 0xA2, 0xC6, 0xB5, 0xBA, 0x0A, 0x44, 0x6D, 0xBD, 0xEB, 0xB0, 0x40,
0x6D, 0xAE, 0x8F, 0xB2, 0xE3, 0x74, 0x83, 0x6E, 0x78, 0x95, 0xE0, 0x8D, 0x7F, 0xB1, 0x25, 0x59,
0xC4, 0x16, 0x90, 0xD5, 0x03, 0x79, 0x3F, 0x9A, 0xAD, 0x87, 0x48, 0xEA, 0x3E, 0x30, 0x86, 0x2C,
0x05, 0x0B, 0xBD, 0x10, 0xC9, 0x85, 0xF6, 0xBC, 0xBC, 0x5B, 0xC8, 0xB9, 0x96, 0xAF, 0x5D, 0x91,
0xEC, 0x68, 0x9D, 0x78, 0x2D, 0x63, 0x1E, 0x05, 0x35, 0x3F, 0x67, 0x1D, 0x59, 0x63, 0x7E, 0x9D,
0xE2, 0x4E, 0xD3, 0x1A, 0x17, 0x5E, 0x36, 0x33, 0xAC, 0xB5, 0xC2, 0xE5, 0x9D, 0x57, 0xB3, 0x76,
0x3E, 0xFC, 0x15, 0xDE, 0x73, 0xA5, 0xF1, 0x8D, 0xBC, 0x14, 0x51, 0x36, 0x03, 0xF5, 0x31, 0x30,
0x13, 0xA0, 0x72, 0xAF, 0x83, 0xE5, 0x8E, 0xBE, 0x89, 0x92, 0x7E, 0x8D, 0xE3, 0xAB, 0x34, 0x8B,
0xEE, 0x42, 0xD3, 0xEC, 0xF8, 0xA5, 0x32, 0x08, 0x3F, 0xBF, 0x45, 0x33, 0x3F, 0x70, 0xD7, 0xFA,
0xFC, 0x85, 0x34, 0xE3, 0x4C, 0x7F, 0x85, 0x89, 0x92, 0xDC, 0x52, 0xF6, 0x75, 0xB9, 0xB7, 0xFE,
0x52, 0x40, 0x5B, 0x0E, 0x51, 0xB8, 0x46, 0x0F, 0x91, 0x9F, 0x41, 0x7C, 0xB2, 0x50, 0x05, 0x2F,
0x6D, 0x36, 0x75, 0x8D, 0x92, 0x68, 0xB2, 0x99, 0x00, 0x65, 0xEA, 0x3F, 0x77, 0x43, 0x95, 0x8A,
0x0A, 0x73, 0xC1, 0x8B, 0xE9, 0x22, 0xF8, 0x3D, 0xE2, 0xE5, 0x32, 0xD5, 0x36, 0x0F, 0x39, 0x89,
0x03, 0x0F, 0x7D, 0x4F, 0x96, 0xD3, 0xAD, 0xBE, 0x8B, 0xFA, 0x97, 0x5F, 0xBB, 0x2F, 0x1A, 0xEE,
0x7C, 0x78, 0xBD, 0x74, 0xBA, 0xB4, 0x44, 0x7A, 0x00, 0x3A, 0xD1, 0x02, 0x69, 0x9F, 0xBF, 0x1D,
0x3A, 0x26, 0x8B, 0xD7, 0x9E, 0xB5, 0x67, 0x41, 0xF1, 0xD4, 0x81, 0x71, 0x52, 0x9C, 0x21, 0xF8,
0xE1, 0x61, 0x08, 0xA7, 0x77, 0xDF, 0x25, 0xA9, 0xC3, 0xE4, 0x85, 0x24, 0x59, 0x9F, 0xE9, 0xF6,
0x8C, 0x13, 0x87, 0x5D, 0x9E, 0xF8, 0xAB, 0x9C, 0xA4, 0xA8, 0xAC, 0x3B, 0x49, 0x83, 0x0E, 0xB7,
0x1B, 0xEF, 0x00, 0x31, 0x47, 0x44, 0x75, 0x6D, 0x3B, 0x41, 0x07, 0xAE, 0x0D, 0xB4, 0x03, 0x4D,
0xB8, 0x95, 0x5C, 0xAB, 0x60, 0x95, 0xC9, 0xD2, 0x6D, 0x66, 0x29, 0x1C, 0x2D, 0x8E, 0xD2, 0xAC,
0x16, 0xED, 0xAD, 0xDA, 0x7B, 0x02, 0x81, 0xA5, 0xE8, 0xB7, 0x7E, 0x76, 0x60, 0xB3, 0x1E, 0xD2,
0x13, 0x0B, 0xFB, 0x7A, 0x45, 0x4A, 0xD7, 0xF7, 0xC8, 0xBE, 0xC7, 0xF7, 0x1F, 0x0C, 0xDF, 0xD2,
0x96, 0x07, 0x80, 0x03, 0xAB, 0xCB, 0xAB, 0xA3, 0x4F, 0xD1, 0xE2, 0x03, 0xBB, 0xDE, 0xEE, 0xCC,
0x6C, 0x7D, 0x75, 0x23, 0x0B, 0x7B, 0x62, 0x46, 0x19, 0x36, 0xA6, 0xA5, 0x0A, 0x37, 0x72, 0xAC,
0x48, 0x1A, 0xFB, 0x7B, 0x06, 0x49, 0xFB, 0x69, 0x12, 0x35, 0xB2, 0x60, 0x1B, 0xA0, 0x48, 0x1D,
0x45, 0x01, 0x5E, 0xC4, 0xA0, 0x8F, 0xAE, 0x09, 0xEB, 0xA8, 0x18, 0x9F, 0xF3, 0xB4, 0xD7, 0xC4,
0x57, 0x6E, 0xB6, 0xB8, 0x61, 0xB1, 0x86, 0xEA, 0x9C, 0xAF, 0xDB, 0xB8, 0xF0, 0x1F, 0x99, 0x78,
0xB2, 0xA2, 0x76, 0xCE, 0x1F, 0x40, 0x32, 0xE6, 0x49, 0x0B, 0x82, 0x59, 0x2E, 0x54, 0x8E, 0x14,
0x5C, 0x5B, 0x76, 0x6D, 0x1C, 0x84, 0x2D, 0xAA, 0x3E, 0xD0, 0x2C, 0xF4, 0xEE, 0xB0, 0xAC, 0xEE,
0x6B, 0x4A, 0xC9, 0xD3, 0x42, 0x40, 0xA2, 0xAC, 0x29, 0xCC, 0xC6, 0x87, 0x57, 0x2E, 0xD1, 0xA5,
0xEC, 0xD4, 0xE7, 0x4D, 0x20, 0x0B, 0x5C, 0x19, 0xC4, 0xCA, 0x84, 0x09, 0x3B, 0xBF, 0x8E, 0x6F,
0xAE, 0xD4, 0xB9, 0xD3, 0xC6, 0x71, 0x58, 0x85, 0x4B, 0x8F, 0x9A, 0x96, 0xF2, 0xB3, 0xD1, 0x95,
0xC2, 0x5F, 0x29, 0xD7, 0xD0, 0xF6, 0x8D, 0x70, 0x19, 0x64, 0x5B, 0xC0, 0xED, 0x62, 0xED, 0xB3,
0xD5, 0xA9, 0x15, 0x89, 0x96, 0xD9, 0x7C, 0xB1, 0x24, 0xD9, 0xCD, 0x31, 0x29, 0x79, 0x55, 0xD4,
0xBF, 0x1B, 0x4D, 0xDC, 0x16, 0xF2, 0xC2, 0xC4, 0x65, 0xD0, 0x88, 0x3C, 0x0B, 0x9A, 0xD8, 0x2E,
0x6A, 0x41, 0xA9, 0x23, 0xFF, 0x21, 0xC9, 0xE5, 0x52, 0x58, 0xE9, 0x5E, 0x7B, 0x86, 0x2F, 0xF8,
0xEB, 0x7F, 0x79, 0x60, 0x17, 0x3A, 0x5A, 0x85, 0xD9, 0xB4, 0xEB, 0x04, 0xC7, 0xAF, 0xD2, 0x25,
0xDB, 0x5E, 0x16, 0x95, 0x39, 0x01, 0x36, 0x6C, 0xA7, 0xA3, 0x32, 0x80, 0xD9, 0xC2, 0x45, 0x30,
0xD9, 0x15, 0x28, 0x6E, 0xE9, 0xA7, 0xB1, 0x61, 0x29, 0x39, 0x55, 0x5E, 0xD8, 0x43, 0x36, 0xC9,
0xCB, 0xFA, 0xA8, 0xEE, 0x0B, 0x63, 0x6D, 0x7F, 0x32, 0x40, 0xF4, 0xAF, 0x33, 0x20, 0x64, 0x05,
0x9A, 0x46, 0x06, 0x3C, 0xFF, 0x1A, 0x1D, 0x39, 0x7A, 0xF8, 0x0A, 0x7A, 0x97, 0x3A, 0xBA, 0x5F,
0x69, 0x43, 0x30, 0x2E, 0xB1, 0xE8, 0x04, 0xBE, 0x3F, 0x76, 0xC1, 0xD8, 0x97, 0xFE, 0x20, 0xB6,
0xE1, 0xC2, 0xDA, 0xD3, 0xBD, 0xB8, 0x7F, 0x77, 0x34, 0xDC, 0x13, 0x65, 0xCF, 0xF2, 0xC6, 0x94,
0xB7, 0xFC, 0x4E, 0x24, 0x21, 0xFB, 0x4B, 0x8C, 0xD3, 0xD3, 0x48, 0x45, 0xAD, 0x88, 0x4E, 0xDF,
0xAE, 0xE7, 0x4B, 0xFA, 0xC9, 0xFA, 0xD5, 0x7D, 0x74, 0x8C, 0x16, 0x71, 0x29, 0xE5, 0x2E, 0xED,
0x5F, 0xDC, 0x8A, 0x22, 0xEE, 0x8B, 0x03, 0x1A, 0x49, 0x8E, 0x08, 0xCF, 0xF8, 0xC6, 0xEA, 0xD6,
0x3B, 0xFB, 0xC7, 0xF3, 0x9C, 0x54, 0x38, 0x3C, 0x9E, 0xF8, 0xE9, 0x0F, 0x2E, 0xB2, 0xFD, 0xE2,
0x49, 0x4D, 0xC4, 0xF3, 0x8C, 0x62, 0x63, 0x0F, 0x2B, 0x7F, 0xD8, 0xFC, 0x1F, 0x75, 0x53, 0x4D,
0x6C, 0xDC, 0x44, 0x14, 0xFE, 0xBC, 0xDE, 0x5D, 0x93, 0x35, 0xC9, 0x44, 0xB0, 0x2B, 0x35, 0x40,
0xEA, 0x1C, 0xA3, 0xB2, 0x89, 0x2F, 0x39, 0x04, 0x69, 0x77, 0x3D, 0x55, 0x0F, 0x39, 0xE4, 0xC0,
0xA2, 0x76, 0x2F, 0x14, 0xA4, 0x1C, 0xB8, 0xD0, 0x82, 0x88, 0x50, 0x2A, 0x05, 0xB4, 0x89, 0x1D,
0x82, 0x14, 0x09, 0x09, 0x9A, 0x03, 0xE2, 0xC2, 0x25, 0x87, 0x0A, 0x15, 0x5F, 0x62, 0x95, 0x20,
0x2A, 0xD4, 0x64, 0x9D, 0xE6, 0x90, 0x43, 0x04, 0x72, 0x1A, 0x89, 0x1C, 0x7A, 0x71, 0xFA, 0x2B,
0xE5, 0xD0, 0x9A, 0xCA, 0x29, 0xDE, 0x66, 0xEC, 0x61, 0xBC, 0xA1, 0x52, 0xA0, 0x62, 0x6C, 0x8D,
0xC7, 0xEF, 0xBD, 0x79, 0xF3, 0xDE, 0xF7, 0x7D, 0x03, 0x18, 0x9E, 0x1A, 0x64, 0x18, 0x66, 0x01,
0xB4, 0x2C, 0x93, 0x9A, 0xB4, 0x86, 0x74, 0x28, 0x31, 0x4C, 0x26, 0xFF, 0xC9, 0x6A, 0x88, 0x54,
0x6F, 0x8A, 0x1F, 0xEE, 0x3E, 0xE6, 0xFD, 0x79, 0xFF, 0x94, 0x3D, 0xCF, 0x99, 0xC1, 0x5D, 0x11,
0x60, 0xA4, 0x0B, 0x76, 0xCA, 0xBE, 0xDA, 0x8B, 0x77, 0x02, 0x65, 0x83, 0x27, 0x0A, 0x0F, 0x32,
0x6D, 0x20, 0x13, 0x19, 0x1B, 0xAC, 0x80, 0x21, 0x65, 0x21, 0x88, 0x4D, 0xB2, 0x4E, 0x8B, 0x17,
0x4E, 0xF3, 0x39, 0x13, 0x4C, 0xF3, 0x9A, 0x62, 0x97, 0xEA, 0xF1, 0x9D, 0xF9, 0xDF, 0x89, 0x11,
0xEA, 0x34, 0xCD, 0x71, 0xF9, 0x4E, 0x94, 0x68, 0x0B, 0xFE, 0x4A, 0x35, 0x3D, 0x52, 0xA7, 0x8C,
0x3C, 0x0C, 0x65, 0xEE, 0x81, 0x5B, 0xC5, 0x19, 0x31, 0x50, 0x2C, 0x36, 0xAB, 0x47, 0x4F, 0xA7,
0x26, 0xE3, 0xB2, 0x47, 0x36, 0x03, 0x79, 0x2F, 0x42, 0xD0, 0x04, 0x85, 0x46, 0x5F, 0x09, 0xC7,
0xBE, 0x1A, 0xAA, 0x9D, 0x5F, 0xE7, 0x61, 0x3E, 0x02, 0x7A, 0xD1, 0x0A, 0x0C, 0xBE, 0x79, 0x7F,
0x76, 0x45, 0xF2, 0x15, 0x8F, 0x91, 0x9B, 0x91, 0xB1, 0x10, 0x96, 0x40, 0xB6, 0x99, 0xBE, 0x11,
0x1A, 0xB2, 0x5F, 0x84, 0x29, 0x87, 0xC6, 0x1C, 0x23, 0xEE, 0xAA, 0x44, 0x8F, 0x59, 0x45, 0x55,
0x11, 0x4C, 0xAA, 0x04, 0xD0, 0xC5, 0x5A, 0x66, 0x24, 0xD0, 0xAD, 0x19, 0x80, 0xBE, 0xF1, 0xE6,
0x06, 0x93, 0xDC, 0x6C, 0xAF, 0x4C, 0x6B, 0xF3, 0x6C, 0x44, 0x42, 0xAB, 0x6D, 0xFB, 0xB2, 0xD5,
0x83, 0x51, 0xF8, 0x72, 0xA4, 0x79, 0x9C, 0x84, 0x26, 0xA5, 0xE8, 0xAA, 0x4D, 0xAF, 0x54, 0xFB,
0x0B, 0x08, 0xB4, 0xF1, 0x44, 0x40, 0xF8, 0xA0, 0x4D, 0x10, 0xA4, 0xC5, 0x06, 0x9F, 0x7C, 0x9F,
0x10, 0x2C, 0x95, 0x52, 0xAB, 0x54, 0x37, 0xE4, 0xC0, 0x90, 0x9F, 0xF2, 0xD6, 0x6E, 0x78, 0x8E,
0xB8, 0x2C, 0x7D, 0xDB, 0xE6, 0x5E, 0x9C, 0xD5, 0x6E, 0x47, 0x71, 0xF6, 0x18, 0x56, 0xC7, 0xE0,
0xC9, 0x9D, 0x66, 0xFA, 0x99, 0x60, 0x10, 0x27, 0x33, 0x91, 0xE2, 0x1B, 0xFC, 0x76, 0x28, 0x21,
0xAC, 0x2A, 0xEE, 0xEC, 0xD9, 0x44, 0x5D, 0x3C, 0x42, 0xC7, 0xE4, 0xBB, 0xFB, 0xAB, 0x93, 0xD8,
0x45, 0x77, 0x2F, 0x68, 0xBD, 0x7E, 0x9E, 0xF4, 0x08, 0x66, 0xEA, 0x75, 0x41, 0x41, 0xA8, 0xDE,
0x6A, 0xC7, 0x02, 0x48, 0x39, 0xF9, 0x87, 0x4A, 0x83, 0xC9, 0x07, 0x6C, 0x18, 0x51, 0x2F, 0xC6,
0xAD, 0x61, 0x93, 0xDF, 0xE2, 0x51, 0xBE, 0xFD, 0x1F, 0xC0, 0xFC, 0x8A, 0x96, 0x30, 0xA3, 0x15,
0x56, 0xD4, 0xC5, 0xE7, 0x2C, 0xB7, 0x78, 0xC2, 0x39, 0x6F, 0x34, 0xCE, 0x72, 0xBE, 0xD7, 0x68,
0x88, 0x4C, 0x9C, 0x3F, 0xB3, 0xED, 0x45, 0xD5, 0x72, 0xF8, 0xE1, 0xD6, 0xE3, 0xA4, 0xAC, 0x78,
0xC7, 0x75, 0x70, 0x44, 0x91, 0xD8, 0xC0, 0x3A, 0x53, 0xA9, 0xD1, 0x68, 0x9C, 0x4B, 0x4D, 0xD3,
0x30, 0x5C, 0x3D, 0xD4, 0x22, 0x99, 0x61, 0xA8, 0x13, 0x03, 0x21, 0x04, 0x41, 0x57, 0x80, 0x4C,
0x00, 0xD9, 0x83, 0xE2, 0x42, 0xB5, 0x40, 0x68, 0x8A, 0x7E, 0xB5, 0xE3, 0xBC, 0x0E, 0x84, 0x90,
0x84, 0xD3, 0xEF, 0x38, 0xDD, 0xD4, 0xA9, 0x01, 0x42, 0x98, 0x82, 0xAC, 0x89, 0x1B, 0x43, 0xFD,
0xCD, 0xA9, 0x4E, 0xDB, 0x62, 0xE2, 0x71, 0xA9, 0x41, 0x4B, 0x8D, 0x71, 0x9E, 0x2C, 0xC1, 0x46,
0xE1, 0x57, 0x7B, 0xDF, 0xB6, 0x73, 0x39, 0x99, 0x33, 0x27, 0xB8, 0x9F, 0xCB, 0x41, 0x79, 0x5F,
0x9F, 0x0B, 0x3F, 0xDF, 0xCE, 0x76, 0xCD, 0x38, 0xA3, 0x43, 0x3D, 0xCD, 0xFA, 0x0B, 0xBD, 0x88,
0x8A, 0x5D, 0x92, 0xEA, 0x5F, 0x10, 0x2E, 0xC7, 0x82, 0x79, 0x77, 0x16, 0xDA, 0x51, 0x7F, 0x71,
0x45, 0xF1, 0x4A, 0xDA, 0x76, 0x54, 0xED, 0x11, 0xD1, 0xB9, 0xBA, 0xB4, 0x97, 0x0C, 0x1A, 0xDA,
0xD6, 0xDD, 0x27, 0xE1, 0x5A, 0xB6, 0x26, 0xD1, 0xAB, 0x06, 0xD9, 0x89, 0xCD, 0x54, 0xC4, 0x26,
0x8F, 0x3F, 0x6B, 0x7C, 0x3C, 0x99, 0x96, 0xD3, 0x2D, 0x7E, 0x5F, 0x38, 0xE2, 0xB8, 0x88, 0x4F,
0x2D, 0xC4, 0x92, 0xD7, 0x2F, 0xA5, 0xB8, 0xBD, 0xFA, 0xA5, 0x7E, 0xB0, 0xBB, 0xCC, 0x3E, 0x7D,
0x94, 0x36, 0xB5, 0x24, 0xC4, 0x2C, 0x85, 0x68, 0x74, 0x19, 0x0F, 0x76, 0x45, 0xED, 0x3A, 0x25,
0xE2, 0x1E, 0x09, 0x5B, 0x7A, 0x32, 0xFD, 0x82, 0x37, 0xDF, 0x6A, 0xCD, 0x81, 0x6A, 0xDB, 0x3B,
0x9C, 0x8D, 0x0C, 0xA7, 0x08, 0x0E, 0x58, 0xDA, 0xF2, 0x19, 0xCE, 0x0A, 0x85, 0x0E, 0x9E, 0x81,
0xE1, 0x06, 0x42, 0x75, 0x5C, 0x48, 0x37, 0x59, 0x7C, 0x8D, 0x5E, 0x4C, 0xD3, 0xCF, 0xE0, 0xDD,
0xBA, 0x82, 0x52, 0x8E, 0x22, 0x8F, 0x2E, 0x48, 0x14, 0xC5, 0xEE, 0x22, 0xA4, 0xB1, 0x5B, 0xC0,
0x4B, 0x33, 0x03, 0xC0, 0x82, 0x88, 0xC9, 0x4E, 0x0E, 0x42, 0xB2, 0x50, 0x17, 0x4F, 0x8E, 0x96,
0xE0, 0x75, 0xFD, 0x90, 0xA2, 0x00, 0xE5, 0xBE, 0x74, 0x2E, 0x27, 0x84, 0xE1, 0xF2, 0x01, 0x62,
0x35, 0xCD, 0x51, 0x61, 0x3A, 0x59, 0x9B, 0xAE, 0x0C, 0xE7, 0x44, 0x5C, 0xCB, 0xD7, 0xF9, 0xBC,
0x5B, 0xB9, 0x74, 0xE0, 0xE9, 0x16, 0x1C, 0x01, 0xD9, 0x7B, 0xFA, 0x7A, 0x58, 0x73, 0xB3, 0xD2,
0xD6, 0x5D, 0x6F, 0x4D, 0x72, 0x47, 0x54, 0xAF, 0xB9, 0x36, 0x82, 0xA5, 0xBC, 0xE2, 0x47, 0xE4,
0x9B, 0xCD, 0x3B, 0xBF, 0x2D, 0x8D, 0x2C, 0x61, 0xBA, 0x46, 0x86, 0x9B, 0x03, 0x20, 0x5B, 0x4F,
0xE3, 0xBE, 0xB4, 0x58, 0xF3, 0x8F, 0xB6, 0x3E, 0x27, 0x94, 0xD1, 0x21, 0xE9, 0x51, 0x41, 0xFD,
0xF9, 0xE0, 0xCE, 0x41, 0x54, 0x94, 0xA9, 0xB1, 0xFE, 0x51, 0xC6, 0xC2, 0x0D, 0x11, 0x52, 0x33,
0x2C, 0x64, 0x44, 0x2F, 0xDF, 0xB5, 0x82, 0x8C, 0x90, 0x92, 0x85, 0xD7, 0xF9, 0xBD, 0xFF, 0x77,
0x98, 0x9C, 0xC7, 0x17, 0x6C, 0xFB, 0xC7, 0xE7, 0x5F, 0x95, 0x7F, 0x0B, 0x4D, 0x48, 0xF0, 0x59,
0xB2, 0x76, 0x41, 0xE8, 0xD0, 0x41, 0x6E, 0x79, 0x11, 0x79, 0x7E, 0x05, 0x92, 0xD8, 0x42, 0x09,
0xB7, 0x79, 0x60, 0x2C, 0x42, 0x61, 0xAB, 0x22, 0xE1, 0x2C, 0xFE, 0x35, 0x5E, 0xCE, 0xDB, 0xB6,
0xBD, 0xBC, 0xCD, 0x53, 0xFD, 0x1E, 0x49, 0x57, 0x8C, 0xAC, 0xB8, 0x50, 0x31, 0x9E, 0xF0, 0x95,
0xC3, 0xE5, 0xBE, 0x5E, 0x71, 0xC3, 0xC7, 0xC6, 0x75, 0x36, 0x85, 0x67, 0xD6, 0x87, 0xC8, 0xAC,
0x97, 0xAF, 0x6D, 0x95, 0x27, 0x84, 0x4D, 0x79, 0xBB, 0x5C, 0x76, 0x9C, 0x43, 0xEB, 0x0A, 0x9C,
0x6B, 0x37, 0xB7, 0xD4, 0x72, 0x65, 0x36, 0xF8, 0xC0, 0x02, 0x92, 0xAA, 0x6C, 0x8D, 0x66, 0xF6,
0xF3, 0x62, 0xA9, 0xE2, 0x27, 0xBE, 0xC2, 0x55, 0xE7, 0x97, 0xC7, 0x7D, 0x03, 0xC8, 0xB8, 0x2A,
0x86, 0xA3, 0xEB, 0x4F, 0xD2, 0xD0, 0xF2, 0x84, 0x48, 0xA0, 0xAC, 0xAD, 0x4E, 0x47, 0x7F, 0x8D,
0x93, 0x29, 0x47, 0x4C, 0x03, 0x13, 0x75, 0xF4, 0x3F, 0xDC, 0xF6, 0xA6, 0xFA, 0x33, 0x40, 0x41,
0x0D, 0xFD, 0xD1, 0x1E, 0xF9, 0xDE, 0xA0, 0x73, 0x69, 0x67, 0xE3, 0x6B, 0xC5, 0x21, 0xD6, 0x09,
0x0C, 0x55, 0x88, 0x23, 0xFB, 0x6A, 0x70, 0x72, 0xB4, 0x78, 0xE2, 0x6F, 0xCD, 0x7C, 0x4D, 0x8C,
0xDD, 0x56, 0x96, 0xDE, 0x25, 0xA9, 0x2A, 0x76, 0x8B, 0x49, 0x28, 0x04, 0xEE, 0x64, 0x22, 0x01,
0xCD, 0x5E, 0x78, 0x31, 0xD0, 0xC4, 0xE6, 0x76, 0x06, 0x70, 0xFA, 0x52, 0x16, 0x90, 0x5E, 0x78,
0x51, 0x0A, 0x5A, 0x65, 0x03, 0xD1, 0x42, 0x59, 0xF4, 0x62, 0x5A, 0x18, 0xA0, 0x7A, 0x31, 0x01,
0x8C, 0xA0, 0xDB, 0xA4, 0xAC, 0x85, 0x16, 0x46, 0xA0, 0x02, 0x1A, 0xDD, 0xB3, 0x98, 0x85, 0x34,
0x89, 0x11, 0x48, 0x4F, 0x08, 0xE4, 0x45, 0x2F, 0x7A, 0x61, 0x17, 0x69, 0x15, 0x12, 0x2D, 0xB4,
0x28, 0xCA, 0x6A, 0xB5, 0x16, 0x5A, 0x14, 0x6D, 0x49, 0x71, 0x46, 0x5A, 0x14, 0x65, 0xB1, 0x5C,
0x54, 0x15, 0xC9, 0x9B, 0xEF, 0x3B, 0x97, 0xAF, 0xAA, 0x64, 0xCB, 0xB2, 0x65, 0xAB, 0x07, 0xA9,
0x7A, 0xE4, 0xE3, 0xBB, 0x8F, 0xBC, 0xBF, 0xE7, 0x7C, 0xE7, 0xF7, 0x3E, 0xA5, 0x54, 0x9A, 0xA9,
0x34, 0x51, 0xA9, 0x52, 0x3F, 0x56, 0x4A, 0x05, 0xC6, 0xE4, 0x66, 0x30, 0x66, 0xAB, 0x9F, 0x9F,
0xAB, 0x95, 0x2E, 0x94, 0x51, 0x9E, 0x31, 0x2B, 0xC6, 0x68, 0xD3, 0x99, 0xF9, 0x9F, 0x76, 0x2A,
0xDC, 0x29, 0x5D, 0x93, 0x7B, 0xF7, 0xBB, 0xD9, 0x10, 0x2F, 0xB7, 0xF9, 0x6C, 0x76, 0x4E, 0x29,
0x77, 0x5A, 0xBA, 0xFB, 0x5E, 0xF3, 0xD0, 0xD6, 0x70, 0xE3, 0x28, 0x1E, 0xDB, 0x29, 0xDD, 0x92,
0x7B, 0xB3, 0xD4, 0x98, 0x0A, 0x8F, 0x99, 0x02, 0x4D, 0x1B, 0x35, 0xB3, 0x70, 0xF7, 0xA8, 0x62,
0x7F, 0x94, 0xD3, 0xA3, 0x3B, 0x7E, 0x83, 0x53, 0x64, 0x06, 0x14, 0x19, 0x93, 0x38, 0xBC, 0xC3,
0x6F, 0xBD, 0x41, 0x45, 0x25, 0x2A, 0x4A, 0x93, 0xB0, 0xC6, 0x5D, 0xBA, 0xF0, 0x1B, 0xC7, 0xA8,
0xE8, 0x9A, 0x69, 0x54, 0xFA, 0x9A, 0x29, 0x9C, 0x3E, 0x6E, 0xF1, 0xD4, 0x8C, 0x92, 0xBF, 0xA0,
0xC1, 0xCD, 0x4A, 0x27, 0xEA, 0x7D, 0x7E, 0xCA, 0x31, 0x0A, 0xD3, 0xF3, 0x35, 0x8F, 0xCE, 0xA8,
0x6F, 0xF8, 0x92, 0xBF, 0x7C, 0x48, 0x22, 0x63, 0xD0, 0x85, 0x2E, 0xEC, 0x9D, 0xD2, 0x64, 0x1C,
0x8A, 0x8A, 0x2A, 0x7C, 0x71, 0x6F, 0x82, 0xFE, 0x77, 0xE8, 0x7E, 0x1D, 0xDF, 0x9D, 0x4F, 0xF2,
0x44, 0xA1, 0x37, 0xCA, 0x43, 0xF7, 0xFD, 0x41, 0xFD, 0x59, 0x88, 0x62, 0x7C, 0x55, 0xF8, 0xE6,
0xD1, 0x58, 0x91, 0x6B, 0xEE, 0x44, 0xA6, 0xC7, 0x7C, 0xE6, 0xD9, 0x9B, 0x39, 0x1E, 0xC7, 0xAB,
0x50, 0xBA, 0xC5, 0x30, 0x33, 0xCF, 0xD4, 0x2A, 0xED, 0x94, 0x8F, 0x67, 0x31, 0xE4, 0xE1, 0x8E,
0x8B, 0xAE, 0xA2, 0xC3, 0xCD, 0x02, 0x9A, 0x63, 0xE7, 0xBF, 0xF8, 0xA7, 0xF6, 0xFC, 0xEA, 0xC7,
0x4B, 0xE9, 0xAF, 0x7E, 0xAC, 0xF6, 0x60, 0xA0, 0x75, 0xF8, 0xB5, 0xFF, 0x68, 0x4C, 0x17, 0x61,
0x8D, 0x9E, 0x9B, 0xAF, 0xBB, 0x08, 0x5A, 0xF4, 0x71, 0x08, 0x7B, 0x3B, 0x6B, 0xE8, 0x8D, 0xD2,
0x18, 0x85, 0x52, 0x1C, 0x0F, 0x46, 0xF7, 0xE8, 0x0D, 0x8C, 0x5E, 0xF5, 0x32, 0x3B, 0x3A, 0xD1,
0xFC, 0xA2, 0x0C, 0x37, 0xDF, 0x55, 0x5E, 0x03, 0xC2, 0xA8, 0x14, 0x6A, 0xC1, 0x33, 0xA9, 0xD2,
0x7F, 0x34, 0x45, 0x24, 0xB5, 0xF9, 0xAC, 0x7A, 0x70, 0xA5, 0xFA, 0x8C, 0x4D, 0x44, 0x55, 0x9A,
0x85, 0x75, 0xBC, 0x61, 0x4A, 0x8F, 0x83, 0xAC, 0xF1, 0x44, 0xA7, 0x41, 0x1A, 0xE6, 0x8E, 0x4A,
0xEC, 0x84, 0xA3, 0x32, 0x4E, 0xBF, 0xDF, 0x7E, 0xED, 0x99, 0x7F, 0x89, 0x9C, 0x6B, 0x39, 0xB7,
0x2C, 0xF7, 0x3B, 0x9E, 0x31, 0x85, 0x38, 0x3B, 0xFD, 0xCE, 0xF5, 0x01, 0x96, 0xDB, 0x7B, 0xD0,
0x55, 0x9E, 0x87, 0x84, 0x44, 0x28, 0xF4, 0x87, 0x39, 0xAE, 0x9D, 0x63, 0x8F, 0x46, 0x1A, 0x14,
0xF2, 0x93, 0x8B, 0x4D, 0xAC, 0x00, 0x49, 0x10, 0x8F, 0x80, 0xF0, 0xCA, 0xB4, 0xC2, 0x57, 0x46,
0x28, 0xF0, 0x2B, 0x2E, 0xF8, 0x47, 0x0A, 0xC1, 0xA4, 0xAB, 0xA8, 0xB0, 0xCC, 0x25, 0x83, 0x0A,
0x6A, 0xD0, 0x6A, 0xC5, 0x19, 0x40, 0x6B, 0x89, 0x71, 0x06, 0x65, 0x38, 0xE9, 0xA0, 0x53, 0x4E,
0x1C, 0xE7, 0x58, 0xDE, 0x8F, 0x63, 0x42, 0x7C, 0x94, 0x83, 0xD8, 0x8D, 0xFC, 0xA7, 0xB8, 0x5F,
0xE3, 0xB9, 0x10, 0xCF, 0x07, 0x9D, 0xAD, 0x0C, 0x54, 0x11, 0x97, 0xE8, 0x1D, 0xDA, 0x70, 0x9A,
0xB1, 0x7E, 0x1F, 0x83, 0x0C, 0x71, 0x44, 0x38, 0x34, 0x8E, 0x14, 0xC7, 0xD0, 0x1B, 0xB7, 0xEF,
0x8D, 0xB7, 0xDE, 0x9B, 0xE0, 0x41, 0x6F, 0xC2, 0x6B, 0xBD, 0x89, 0x3F, 0xEC, 0x8D, 0x3E, 0xD4,
0x9B, 0x1C, 0x53, 0xD3, 0xE1, 0xE0, 0x14, 0x81, 0x9B, 0x4C, 0x85, 0x03, 0x2C, 0xA4, 0x8E, 0xCE,
0x00, 0x13, 0xB0, 0x00, 0xE1, 0x56, 0x07, 0x7A, 0x46, 0x7B, 0xB3, 0xEF, 0x4E, 0xF9, 0x89, 0x23,
0xF0, 0xDA, 0xB8, 0x70, 0x3B, 0xAF, 0x55, 0x83, 0x0C, 0x3A, 0x2A, 0xE3, 0xC2, 0xEB, 0xC2, 0x12,
0x0C, 0x58, 0xAB, 0xF0, 0x76, 0x0B, 0xEE, 0xC5, 0x23, 0x1A, 0x64, 0xE3, 0x1B, 0x4C, 0x1F, 0x09,
0x47, 0xA3, 0xA3, 0x71, 0x8D, 0xCF, 0x0D, 0xEA, 0x43, 0x67, 0xD3, 0x66, 0xCA, 0x58, 0xE0, 0x08,
0xA0, 0x82, 0xE1, 0xDA, 0x73, 0xF0, 0x80, 0x96, 0x6F, 0xF6, 0x71, 0xE7, 0x8F, 0x30, 0x20, 0x8B,
0x05, 0x56, 0x57, 0x07, 0xD1, 0x60, 0xC8, 0x09, 0x32, 0x6C, 0x91, 0xAC, 0xB8, 0x85, 0xF9, 0x49,
0x75, 0xA6, 0x82, 0xCF, 0x50, 0x3C, 0x60, 0x35, 0xA2, 0x72, 0x50, 0x6E, 0x27, 0x40, 0x94, 0x26,
0xFE, 0xA3, 0x63, 0x2D, 0xD7, 0xBD, 0x00, 0x69, 0xF7, 0x84, 0x98, 0x0A, 0x5D, 0xE5, 0x9A, 0x04,
0x0D, 0xA1, 0x71, 0xA5, 0xC1, 0x3A, 0x82, 0x03, 0x42, 0x4B, 0x5C, 0xE1, 0xFA, 0x7C, 0x62, 0xEC,
0xB2, 0xF2, 0x0D, 0x54, 0x8E, 0xA7, 0xF0, 0x5D, 0x03, 0x68, 0x58, 0x01, 0x8D, 0x63, 0xD2, 0xE5,
0xCD, 0x31, 0x67, 0xE4, 0x81, 0x9E, 0xB7, 0xE4, 0x66, 0x31, 0x24, 0xAD, 0x19, 0x33, 0x57, 0x47,
0xDB, 0xB7, 0xA8, 0xF4, 0xCC, 0x66, 0x8E, 0x5B, 0x5A, 0xA9, 0xDA, 0xC9, 0x51, 0x88, 0xB5, 0x8A,
0x57, 0x6B, 0xD2, 0x69, 0xBE, 0x42, 0x12, 0x65, 0xB3, 0x43, 0xF2, 0x2D, 0x51, 0x0B, 0xF4, 0x2A,
0x44, 0x5B, 0x8C, 0xA7, 0xF9, 0xB4, 0x20, 0x4B, 0x16, 0x82, 0x02, 0x5F, 0x3C, 0x0D, 0xDB, 0x27,
0x22, 0xAA, 0xD3, 0xE1, 0xE4, 0xF1, 0x84, 0xF5, 0x06, 0xA5, 0x1A, 0xC1, 0xA1, 0xED, 0x13, 0x40,
0x6C, 0xD7, 0x69, 0x02, 0xEA, 0x3B, 0x9F, 0x8F, 0x78, 0x9E, 0xEF, 0x42, 0x79, 0xDE, 0x4E, 0xEC,
0x5F, 0x9F, 0xB7, 0x22, 0x63, 0x2C, 0x1D, 0x04, 0xFB, 0x2B, 0xE2, 0xB6, 0x1A, 0xC8, 0x9B, 0xE0,
0x83, 0x1C, 0x44, 0x44, 0x3C, 0x88, 0x4A, 0x34, 0x3E, 0xF8, 0x0D, 0xC8, 0x1A, 0x14, 0x0A, 0x78,
0xF5, 0xBA, 0x74, 0xAE, 0x96, 0xB1, 0x34, 0x02, 0x3E, 0x1D, 0x49, 0x0A, 0x8C, 0x08, 0x80, 0xCD,
0xCF, 0xD6, 0xCA, 0x1D, 0xA2, 0x8F, 0x06, 0x10, 0x94, 0xDF, 0xB0, 0x89, 0x43, 0x3D, 0x58, 0x26,
0xCF, 0xD2, 0xC4, 0x00, 0x92, 0xA2, 0x32, 0xAC, 0x75, 0xE9, 0x37, 0xAE, 0x89, 0x44, 0x4C, 0x80,
0x1A, 0xD4, 0xAC, 0x69, 0x50, 0xC7, 0x87, 0x98, 0xDA, 0xBF, 0x72, 0xD1, 0x77, 0x3C, 0x83, 0x1E,
0xF9, 0xED, 0x6C, 0xDE, 0xBA, 0xA8, 0x3F, 0x37, 0xD9, 0xCC, 0x71, 0x34, 0x00, 0x08, 0x07, 0x21,
0x05, 0x9F, 0x27, 0x3E, 0xC7, 0x0B, 0x42, 0xF3, 0x4D, 0xFF, 0x3C, 0x99, 0xCB, 0x39, 0x32, 0x93,
0x78, 0x4D, 0x9C, 0xB9, 0x03, 0x5A, 0xCA, 0xC1, 0x24, 0xFB, 0x17, 0x9F, 0x2B, 0xF3, 0x3E, 0x37,
0x90, 0x21, 0x22, 0x6A, 0xCB, 0x19, 0xB5, 0x40, 0x7E, 0x4F, 0x62, 0x49, 0xE2, 0x22, 0x2C, 0x83,
0xDA, 0xAF, 0xDD, 0x0E, 0x74, 0x82, 0x95, 0x53, 0x31, 0x40, 0x3E, 0xA8, 0x03, 0x14, 0xB8, 0x2C,
0x00, 0x11, 0x17, 0x79, 0x16, 0x3C, 0x34, 0xA5, 0x4B, 0x60, 0xCF, 0x75, 0x85, 0x02, 0x82, 0x7A,
0x5E, 0x72, 0x74, 0x35, 0x87, 0x57, 0xAB, 0xB8, 0xC7, 0x94, 0x63, 0x90, 0x2D, 0x46, 0x39, 0x74,
0xEA, 0x83, 0x7E, 0xF8, 0x40, 0x75, 0xFD, 0xF0, 0x96, 0x6A, 0xFB, 0x41, 0xBB, 0x0D, 0x4E, 0x87,
0xEB, 0x7E, 0x88, 0x4F, 0x55, 0xFD, 0x10, 0x5E, 0x2D, 0x71, 0x5A, 0x29, 0xFA, 0x21, 0x58, 0xC3,
0x09, 0x98, 0xD2, 0x0F, 0x9E, 0x51, 0xFD, 0xE0, 0xF2, 0x84, 0xC5, 0xED, 0x9F, 0x02, 0x22, 0xBB,
0xFE, 0xD6, 0xE7, 0xD3, 0xAF, 0xC6, 0x94, 0x7A, 0x94, 0xCE, 0x0D, 0xB5, 0x98, 0x5A, 0x10, 0x21,
0x6A, 0x7D, 0xCE, 0x4D, 0x48, 0xE2, 0x4A, 0x4F, 0xB7, 0x04, 0x82, 0x44, 0xE9, 0xAB, 0xCD, 0xEE,
0x0B, 0x60, 0x84, 0xBE, 0x02, 0x99, 0xDD, 0x12, 0x35, 0x0E, 0x41, 0x9F, 0xA9, 0x85, 0x4A, 0x63,
0xD2, 0x68, 0x2A, 0x72, 0x5B, 0x24, 0xF7, 0xD6, 0xB4, 0x0F, 0x37, 0xE6, 0x9F, 0x01, 0xE2, 0x76,
0xF5, 0x2E, 0x1F, 0x32, 0x2D, 0x28, 0x74, 0xBB, 0x3F, 0x06, 0xBE, 0xCB, 0xD3, 0x22, 0x5A, 0xAD,
0xFD, 0x8D, 0x0E, 0x98, 0xF1, 0x06, 0x69, 0x74, 0xCE, 0x98, 0xC3, 0xE6, 0x1F, 0xD5, 0x36, 0x55,
0x53, 0xF8, 0xD8, 0x0F, 0xBB, 0xF5, 0x17, 0x0C, 0xAD, 0x8D, 0x7A, 0xA7, 0xD8, 0xAD, 0xBF, 0x24,
0xCA, 0xED, 0x05, 0xD8, 0x45, 0x98, 0x60, 0x3C, 0xA2, 0xBF, 0x0C, 0xA2, 0xBF, 0xBC, 0x18, 0x5A,
0xC9, 0x98, 0x8D, 0xFA, 0x4B, 0x6A, 0x47, 0x82, 0x01, 0x3D, 0x78, 0xA3, 0x9F, 0xC7, 0xB2, 0x82,
0xFF, 0xD5, 0x37, 0x7F, 0x23, 0xBD, 0x13, 0x03, 0xDE, 0xC6, 0x04, 0x15, 0x3A, 0x0B, 0x2B, 0x4A,
0x4B, 0xA7, 0x77, 0x89, 0x34, 0x3D, 0x10, 0x1C, 0xCA, 0xD0, 0x00, 0xA0, 0x8E, 0x56, 0x0B, 0x8C,
0xBA, 0xB2, 0x42, 0x82, 0x58, 0x4E, 0x6D, 0x8A, 0x0C, 0x9B, 0x62, 0x52, 0x23, 0x1C, 0x22, 0x55,
0x76, 0xFD, 0xC5, 0x1C, 0x65, 0x40, 0x31, 0x98, 0x43, 0x7F, 0x80, 0x42, 0x21, 0x5A, 0x85, 0x01,
0x91, 0xBC, 0x56, 0xA7, 0xA5, 0x71, 0x3B, 0xBF, 0x4B, 0x81, 0x31, 0x26, 0x2E, 0xF0, 0x7F, 0x15,
0x94, 0x0A, 0x4E, 0x82, 0xF8, 0xEA, 0x74, 0x91, 0x3B, 0x26, 0xEC, 0xE3, 0xCB, 0x56, 0x7D, 0xC8,
0x02, 0x81, 0x96, 0x58, 0xC6, 0xBA, 0x5D, 0xA7, 0x52, 0x47, 0x65, 0x5A, 0x4C, 0xD8, 0x90, 0x99,
0x44, 0x77, 0x21, 0x3A, 0x62, 0xF2, 0x00, 0xE4, 0x50, 0x99, 0x29, 0x0B, 0xA0, 0x86, 0x44, 0x1D,
0xF5, 0x67, 0x25, 0x3D, 0xF7, 0x86, 0x1E, 0x32, 0x90, 0x98, 0x04, 0x05, 0x05, 0x0D, 0x0B, 0xB8,
0xE9, 0xC2, 0x1D, 0x30, 0xC5, 0xBA, 0x84, 0x6A, 0xD3, 0x8A, 0xF4, 0x21, 0x28, 0x7E, 0xCB, 0x8B,
0x29, 0x1A, 0xAF, 0x18, 0x01, 0x45, 0xE9, 0xAE, 0x3B, 0xBD, 0x70, 0xCE, 0xEB, 0xC4, 0x7B, 0x04,
0xCA, 0xFD, 0xB4, 0x55, 0xFA, 0x6C, 0xA5, 0x86, 0x34, 0x93, 0x8F, 0x90, 0xCC, 0xFA, 0x4C, 0x8D,
0x39, 0x5E, 0x5F, 0x68, 0xA9, 0xF3, 0x60, 0x1D, 0xB3, 0xBF, 0xB8, 0x8B, 0xA5, 0x86, 0x24, 0x57,
0x21, 0x26, 0x1C, 0x93, 0xAF, 0xB6, 0x3F, 0xE6, 0xD0, 0x5C, 0xBC, 0x0D, 0x72, 0x74, 0xB4, 0x06,
0xDE, 0x56, 0x69, 0x0E, 0x2E, 0x77, 0x06, 0xB2, 0xB7, 0xBF, 0xF5, 0xED, 0x8A, 0x7B, 0x14, 0xB3,
0xD7, 0x83, 0xF0, 0x82, 0x65, 0x0A, 0xB4, 0x83, 0x5B, 0xC0, 0x63, 0x00, 0x90, 0x3E, 0xE4, 0xA3,
0xF9, 0x61, 0xDE, 0x1F, 0x97, 0x7C, 0x36, 0xF8, 0x2E, 0x5F, 0x00, 0xAF, 0x0E, 0x9B, 0x9D, 0xF6,
0x8C, 0x55, 0xA1, 0x2B, 0x51, 0xCE, 0x5A, 0xA1, 0x9C, 0x41, 0xCE, 0x5A, 0xF8, 0x34, 0xAC, 0xC8,
0xB0, 0x01, 0xA7, 0x33, 0x07, 0xEB, 0x39, 0xA2, 0xE3, 0x92, 0x81, 0x3C, 0xB9, 0xB8, 0x77, 0x84,
0x94, 0x55, 0x12, 0x52, 0x32, 0x6F, 0xB8, 0x44, 0x9A, 0x8D, 0x2B, 0x6A, 0xB5, 0x54, 0x98, 0x71,
0xE1, 0xF0, 0x22, 0x17, 0x75, 0x96, 0xF7, 0xE0, 0x66, 0x88, 0x6E, 0xAA, 0x1F, 0x54, 0x03, 0x49,
0x24, 0xE4, 0x67, 0x32, 0xB4, 0x70, 0x34, 0x8A, 0xA0, 0x2F, 0x6B, 0x23, 0x1A, 0x84, 0x31, 0x9E,
0xE9, 0x8F, 0x41, 0x57, 0xA8, 0x81, 0x23, 0xC0, 0xDB, 0x9A, 0xC0, 0xBB, 0x0C, 0x6C, 0x37, 0x28,
0x8A, 0x1A, 0x82, 0x18, 0x85, 0x70, 0x87, 0xBA, 0x07, 0x68, 0x98, 0xF9, 0x97, 0x99, 0x1C, 0xCA,
0xB7, 0x67, 0x55, 0x0C, 0x7D, 0xCF, 0x00, 0x18, 0x0C, 0xD1, 0x9B, 0x2D, 0xB2, 0x82, 0x2D, 0xA1,
0x15, 0xD8, 0x1C, 0xA2, 0x73, 0x39, 0xF9, 0x23, 0x2A, 0xDB, 0x10, 0xA3, 0xF5, 0x5F, 0x39, 0xBB,
0x80, 0xC0, 0xCC, 0x4E, 0x2E, 0xD5, 0x98, 0x21, 0x5A, 0x32, 0xF3, 0xF3, 0x56, 0xC9, 0xC1, 0x98,
0x94, 0xFE, 0x5F, 0x20, 0x6D, 0x5B, 0x5E, 0x2C, 0x50, 0xA9, 0x9A, 0x1A, 0x32, 0x9D, 0x3A, 0x60,
0x40, 0xD6, 0xC0, 0x14, 0x48, 0xED, 0x98, 0x5D, 0x74, 0x80, 0x80, 0xCB, 0x24, 0x52, 0x28, 0x3A,
0x3A, 0x73, 0x06, 0xFD, 0x61, 0x8F, 0xEA, 0x09, 0xA7, 0xE1, 0x43, 0x4A, 0x1D, 0xBD, 0xC2, 0xE1,
0x1B, 0xFD, 0xC7, 0x8E, 0xC5, 0x90, 0xFF, 0xE1, 0xC3, 0x0E, 0x64, 0x97, 0x9E, 0x01, 0x6F, 0x78,
0x60, 0x97, 0xB4, 0x8C, 0x21, 0x79, 0x30, 0x88, 0xC3, 0xEC, 0x7E, 0x83, 0x8A, 0xD2, 0x61, 0xDA,
0xDC, 0x01, 0xD3, 0xB2, 0xCB, 0x98, 0x8B, 0xCB, 0x66, 0xDE, 0xD0, 0x54, 0xA1, 0x9D, 0x82, 0x31,
0x5E, 0xA6, 0x74, 0x33, 0x17, 0x65, 0x40, 0x1E, 0x51, 0x7B, 0x1D, 0x55, 0x1C, 0xEE, 0x82, 0x96,
0x1C, 0xA7, 0x97, 0x61, 0xA4, 0x70, 0x99, 0x28, 0xD4, 0x9C, 0xFC, 0x8E, 0xB2, 0xF6, 0x58, 0xF6,
0xA2, 0x2F, 0xA0, 0xE4, 0x1C, 0xE3, 0x9C, 0x16, 0x66, 0xAB, 0xD3, 0x65, 0xBC, 0x0C, 0xF1, 0xC5,
0x27, 0xCC, 0xA5, 0x2E, 0x32, 0xAB, 0x45, 0xDA, 0xBC, 0xBF, 0x3D, 0xD6, 0x05, 0xDA, 0x27, 0x80,
0x9F, 0x26, 0x1C, 0x8E, 0x10, 0x2D, 0x41, 0x30, 0xFE, 0x03, 0x93, 0xE5, 0x39, 0x67, 0xA5, 0x35,
0x25, 0xD4, 0x44, 0x6A, 0x6D, 0xD1, 0x2D, 0x50, 0x3C, 0x28, 0xFD, 0x26, 0x3E, 0xA1, 0xA6, 0xCB,
0x26, 0x6F, 0x02, 0x2C, 0x70, 0x64, 0xE1, 0xEA, 0xE0, 0x84, 0x6A, 0x20, 0x08, 0xB2, 0x19, 0x5C,
0xC0, 0x5C, 0x3A, 0x77, 0x37, 0x5D, 0x46, 0x57, 0x50, 0x81, 0x3E, 0x99, 0x9F, 0xA9, 0xC2, 0x87,
0x2D, 0xBA, 0x79, 0x71, 0xC0, 0x08, 0x43, 0x28, 0x1C, 0x93, 0xC9, 0x59, 0x2A, 0x7D, 0xAB, 0xEB,
0x47, 0x07, 0xB2, 0xE6, 0x93, 0x4E, 0xCE, 0x64, 0xB2, 0x48, 0x61, 0xC5, 0x83, 0x88, 0x22, 0x47,
0xB3, 0xEB, 0x80, 0xCD, 0xE7, 0xD3, 0xF2, 0x03, 0xCE, 0xE6, 0x96, 0x09, 0xE4, 0xA0, 0x71, 0x39,
0x3D, 0x7E, 0xAE, 0xD4, 0xCF, 0x55, 0x8E, 0x6A, 0x20, 0x4C, 0x41, 0x3F, 0x6E, 0x07, 0x09, 0x9F,
0xDE, 0x38, 0xBE, 0x26, 0xDC, 0x09, 0xEE, 0x25, 0x9E, 0x60, 0xAE, 0xF6, 0x99, 0x7B, 0xC4, 0x1C,
0x30, 0x46, 0xA2, 0x8E, 0x40, 0xC7, 0xC6, 0xFF, 0xDB, 0xD0, 0xFF, 0x03, 0xB4, 0xA2, 0x33, 0x10,
0xFE, 0xA9, 0x16, 0xE8, 0xD6, 0xE9, 0x77, 0xB0, 0xD2, 0x1B, 0x8F, 0x86, 0xD1, 0x5A, 0x14, 0x6B,
0x49, 0x99, 0x74, 0x0D, 0xA8, 0x75, 0xBD, 0xCD, 0x13, 0x10, 0xF7, 0x29, 0xAA, 0x1B, 0x6D, 0x04,
0xCD, 0x4C, 0x67, 0xF9, 0x3B, 0xAD, 0x87, 0x21, 0xCF, 0x9A, 0x45, 0x6D, 0xDA, 0xD8, 0xF4, 0x7B,
0x48, 0x6D, 0x3D, 0xD8, 0x0E, 0x08, 0xEA, 0x01, 0x51, 0x67, 0x31, 0xD1, 0x66, 0x1F, 0xC8, 0x85,
0x73, 0xD2, 0xC5, 0xC2, 0xB7, 0x17, 0xD4, 0x89, 0x1C, 0x82, 0xB0, 0x8A, 0xA9, 0x36, 0x0F, 0x98,
0xFC, 0x53, 0x5B, 0xE6, 0x93, 0xCF, 0xCD, 0xA3, 0x36, 0x1F, 0x3A, 0x6D, 0x96, 0x42, 0x72, 0x12,
0xA7, 0xB4, 0xC0, 0x3D, 0x61, 0x3D, 0x93, 0x1C, 0xF5, 0x6B, 0x0D, 0xF8, 0x2B, 0x22, 0x74, 0x87,
0xF6, 0x92, 0xDA, 0xBB, 0x38, 0x7B, 0xB1, 0xF5, 0x64, 0xB4, 0x99, 0x20, 0x60, 0xAB, 0xF3, 0x21,
0x5E, 0x30, 0x67, 0xDF, 0x31, 0x6B, 0xCB, 0x66, 0xAB, 0x12, 0x12, 0x43, 0xDD, 0xE8, 0x04, 0xE8,
0xEA, 0x82, 0x3A, 0x38, 0x87, 0x7A, 0x06, 0xA0, 0x09, 0xEC, 0xD5, 0x01, 0x53, 0xF9, 0x39, 0x29,
0x33, 0x09, 0xD1, 0x3D, 0x93, 0x96, 0x21, 0x74, 0xA5, 0xC1, 0x07, 0x09, 0xC7, 0x15, 0x6E, 0x0E,
0x2B, 0xBF, 0x73, 0xB1, 0x24, 0x5A, 0x3A, 0x51, 0xEB, 0xDF, 0x18, 0x2E, 0x82, 0xC6, 0x80, 0xB1,
0x06, 0x29, 0x44, 0x81, 0x7D, 0x43, 0x25, 0xC2, 0xF4, 0x60, 0xCD, 0xD1, 0x52, 0x9C, 0x64, 0x6A,
0x92, 0x8B, 0x11, 0xC2, 0x79, 0x2B, 0x23, 0x33, 0xB4, 0xC1, 0x9A, 0x49, 0xBD, 0x2D, 0x73, 0xEB,
0xDA, 0xA6, 0x69, 0xBA, 0xF7, 0xF3, 0x5E, 0xEB, 0xD8, 0xFC, 0xC4, 0xBC, 0x66, 0x4A, 0x50, 0x7F,
0xA3, 0xEB, 0xBC, 0x87, 0x8E, 0x6C, 0x92, 0x2E, 0xA8, 0xD1, 0xC3, 0x34, 0x8B, 0x56, 0x2B, 0x7F,
0x03, 0x5A, 0x20, 0x6C, 0xEE, 0xF4, 0xC6, 0xC2, 0xAA, 0x31, 0x1B, 0xB4, 0x16, 0x26, 0xF9, 0xE3,
0xDF, 0x64, 0xD0, 0x6A, 0xF3, 0x45, 0x62, 0x1B, 0x98, 0xD5, 0x03, 0x83, 0xE4, 0x09, 0x04, 0x18,
0x6D, 0x63, 0xA8, 0x12, 0x8E, 0x25, 0x5F, 0x17, 0x0A, 0x0D, 0x39, 0xA0, 0x21, 0x09, 0xC6, 0x96,
0x6E, 0x27, 0x93, 0x09, 0xBA, 0xC5, 0x5A, 0x3B, 0x77, 0xAC, 0xE8, 0xB1, 0x5A, 0x1F, 0x6F, 0xE2,
0x3C, 0xA4, 0xE3, 0x82, 0xA1, 0xA2, 0x62, 0x68, 0x82, 0xA7, 0x69, 0x11, 0xAE, 0x55, 0xDE, 0x16,
0x4C, 0x45, 0x8C, 0x2E, 0x2F, 0xA2, 0xB5, 0x36, 0xDC, 0x10, 0x3C, 0xEA, 0xF4, 0x59, 0x32, 0x3F,
0x81, 0x78, 0x10, 0x8E, 0x1A, 0x3F, 0xA8, 0xFC, 0x4E, 0xC0, 0xE5, 0x6E, 0x75, 0xF5, 0x23, 0x2C,
0xD9, 0x6E, 0x9B, 0x06, 0xFA, 0x43, 0x5A, 0xEE, 0x01, 0x31, 0x60, 0x7D, 0x5C, 0x41, 0xB3, 0x13,
0xD3, 0xBE, 0x35, 0x64, 0xCB, 0x5C, 0xC8, 0x15, 0x42, 0x9B, 0x92, 0xF0, 0x09, 0x1F, 0x0E, 0x66,
0xCE, 0xF9, 0xB8, 0xA4, 0x18, 0xF5, 0xB1, 0x32, 0x01, 0xCF, 0x15, 0xA8, 0x11, 0x7A, 0x2A, 0xBE,
0xEC, 0xD1, 0x85, 0x41, 0x43, 0xD4, 0x13, 0x5E, 0x51, 0x59, 0x4C, 0x90, 0xA6, 0x20, 0x6C, 0xAC,
0x1E, 0x40, 0xF9, 0x08, 0x13, 0x2A, 0x04, 0x64, 0x86, 0x83, 0x2D, 0xB6, 0x12, 0x57, 0x94, 0x04,
0x51, 0x17, 0xF2, 0xB1, 0xC8, 0x81, 0xB6, 0x45, 0x5D, 0xA9, 0xF2, 0xC5, 0x9E, 0xFC, 0xA8, 0x4B,
0x3F, 0xEA, 0x83, 0x1A, 0x93, 0x1D, 0x17, 0x06, 0x32, 0x02, 0x6A, 0xB1, 0xDB, 0x05, 0x0F, 0xB1,
0x7A, 0xF1, 0xD5, 0x06, 0x45, 0xE0, 0xCE, 0xA0, 0x89, 0xB7, 0x06, 0x59, 0x98, 0x8E, 0x4E, 0xB8,
0x64, 0xA7, 0xAE, 0x27, 0x54, 0x7F, 0x22, 0xD9, 0x7B, 0x0E, 0xAC, 0x78, 0xC8, 0xD0, 0xA7, 0x01,
0xE4, 0x84, 0xB2, 0xE1, 0x83, 0x3B, 0xA8, 0x7C, 0xB0, 0xD3, 0xA0, 0xCD, 0x70, 0x0B, 0xBA, 0xCA,
0x5C, 0x4D, 0x25, 0x05, 0xD0, 0xFC, 0x11, 0x25, 0xD3, 0xC1, 0x64, 0x3F, 0x18, 0x35, 0xF7, 0x5A,
0x58, 0xBE, 0x15, 0x3A, 0x93, 0xC5, 0xC5, 0x57, 0x7C, 0xB4, 0x46, 0x0F, 0xB5, 0x8B, 0xDA, 0x36,
0x9C, 0xDB, 0x66, 0x67, 0xCF, 0x9D, 0x50, 0x07, 0x2F, 0x15, 0xE1, 0x56, 0xED, 0x41, 0x61, 0x37,
0x00, 0x8A, 0xD5, 0x32, 0xDC, 0x18, 0x8E, 0xF1, 0x4E, 0x3C, 0x54, 0xFC, 0xC7, 0xB9, 0xC7, 0x24,
0x12, 0x48, 0x73, 0xA2, 0x26, 0x62, 0x5A, 0x3C, 0xD3, 0xE9, 0x0B, 0x7F, 0x17, 0xC0, 0xF3, 0x17,
0x80, 0x60, 0xF8, 0x1F, 0x40, 0x28, 0xC3, 0x33, 0x5D, 0xEE, 0xC8, 0xFE, 0x35, 0xB9, 0xB4, 0x62,
0x7E, 0x5B, 0xF0, 0xDB, 0xCB, 0x9F, 0x9F, 0xB8, 0xA0, 0xD8, 0xB6, 0x1C, 0xF2, 0x85, 0x39, 0xA2,
0x46, 0x4B, 0x09, 0xE3, 0xBC, 0xD8, 0xAB, 0xC1, 0x19, 0xC4, 0xD3, 0xC1, 0x77, 0x70, 0x16, 0x0E,
0xB0, 0xBF, 0x59, 0xC4, 0x63, 0x7B, 0xCF, 0x00, 0x86, 0x41, 0xFA, 0x60, 0x21, 0x5E, 0x98, 0xA3,
0xB8, 0x30, 0x30, 0x49, 0xF0, 0x64, 0xB4, 0xBA, 0x9E, 0x5F, 0x83, 0x79, 0x32, 0xE0, 0xAB, 0xF0,
0x63, 0x18, 0x2B, 0x3D, 0xBE, 0x32, 0x30, 0xDD, 0x4C, 0x83, 0x0B, 0x30, 0xCC, 0x05, 0xEB, 0xE6,
0x93, 0x17, 0x5A, 0x14, 0xF1, 0x0D, 0x01, 0xC0, 0x47, 0xD0, 0x0C, 0xCE, 0x62, 0xF5, 0xB7, 0x68,
0x28, 0x18, 0x88, 0x38, 0x80, 0xAC, 0x62, 0x5F, 0xD4, 0x58, 0x76, 0x01, 0xC0, 0x01, 0x47, 0x3A,
0x87, 0x82, 0x5A, 0x7F, 0x08, 0xA5, 0x72, 0x20, 0x70, 0x41, 0xB6, 0xC9, 0x90, 0x2E, 0xA8, 0xE8,
0x8E, 0x07, 0x79, 0x89, 0xB5, 0x05, 0xB7, 0xE8, 0xB7, 0x87, 0xA0, 0x21, 0x78, 0x3D, 0xEC, 0xD3,
0x24, 0x5E, 0xC1, 0x00, 0x72, 0xE8, 0x02, 0xA0, 0xC2, 0x4B, 0x65, 0xF0, 0xB0, 0xD5, 0x99, 0x5E,
0xA9, 0x60, 0x23, 0xEA, 0x93, 0x58, 0x70, 0xE2, 0xE2, 0xE1, 0xD6, 0x31, 0xF5, 0x28, 0xF8, 0x4E,
0x4C, 0xB2, 0x54, 0x1C, 0x1C, 0xD7, 0x30, 0x28, 0xD8, 0x79, 0x1F, 0xF5, 0x4E, 0x1F, 0x6E, 0xE6,
0x65, 0x2A, 0xBE, 0x92, 0x32, 0xBE, 0x06, 0x93, 0x3B, 0x2A, 0x0D, 0xBE, 0x2B, 0xA3, 0x9B, 0x9D,
0x38, 0x6D, 0x69, 0x3E, 0x50, 0x9F, 0x20, 0xFB, 0x88, 0x5E, 0x15, 0x3C, 0x02, 0x92, 0x00, 0xB1,
0xD1, 0x03, 0x28, 0xDF, 0xDE, 0x46, 0x3F, 0x3F, 0x58, 0x5D, 0x6C, 0xCD, 0xF2, 0x66, 0x5A, 0x38,
0xE1, 0x70, 0xA9, 0x10, 0xC9, 0xDC, 0xD0, 0x71, 0xEB, 0x66, 0xE7, 0xDC, 0xF6, 0x2D, 0xB5, 0x14,
0x17, 0x7B, 0x5D, 0xA9, 0x21, 0xBE, 0x43, 0xE3, 0x9C, 0x58, 0x5D, 0xE4, 0xB0, 0x3E, 0x57, 0xD7,
0xDF, 0xD8, 0xB2, 0xEB, 0x9A, 0x0B, 0x83, 0xA3, 0xC5, 0x3D, 0x7A, 0x33, 0xA7, 0x24, 0x8F, 0xA1,
0xA0, 0xBC, 0x20, 0xB2, 0x31, 0xBD, 0x91, 0x84, 0x02, 0xA8, 0x9D, 0x3A, 0xBE, 0x7E, 0xC4, 0x6A,
0xB6, 0x71, 0x03, 0x4C, 0xA5, 0x0B, 0xA0, 0xD6, 0x90, 0x40, 0x00, 0xA7, 0xC3, 0xE8, 0x32, 0xC1,
0x40, 0x67, 0xF4, 0x09, 0xA5, 0x18, 0x39, 0x80, 0x7E, 0xFB, 0x63, 0xA2, 0xA6, 0x8E, 0x25, 0xD0,
0xB3, 0x26, 0x04, 0x35, 0x62, 0x18, 0x89, 0x41, 0x92, 0x26, 0x61, 0xE1, 0xD6, 0x02, 0x8F, 0x5F,
0x2B, 0xA8, 0x77, 0x20, 0xAD, 0xDC, 0x07, 0x0C, 0x63, 0x4D, 0x54, 0xE8, 0x0A, 0x33, 0x4F, 0x0D,
0x11, 0xA0, 0xA2, 0x87, 0x1D, 0x48, 0x9B, 0x1D, 0x20, 0x98, 0xAE, 0x1A, 0x68, 0x08, 0xFB, 0x0C,
0xAC, 0x9E, 0x45, 0x0F, 0x4B, 0x45, 0x2B, 0x19, 0x26, 0xF3, 0x1F, 0x00, 0xA7, 0x17, 0xC1, 0x6E,
0x9F, 0x58, 0x87, 0x44, 0x3C, 0xF7, 0xB0, 0xFB, 0x6B, 0xB5, 0xF7, 0xD7, 0xED, 0xA0, 0xCF, 0xDC,
0xDE, 0x75, 0x7A, 0xE5, 0x97, 0x6F, 0xBD, 0xFF, 0xAB, 0xF7, 0xFF, 0xFC, 0x45, 0x90, 0xE7, 0xB9,
0xA7, 0x78, 0x83, 0x95, 0xFA, 0x00, 0x33, 0x37, 0xA8, 0xBF, 0x16, 0x82, 0x19, 0x9E, 0xF6, 0xEF,
0xF6, 0x69, 0x97, 0xA2, 0xF7, 0xD4, 0x38, 0xE8, 0x55, 0xA3, 0x8D, 0x20, 0x8A, 0xB4, 0x3E, 0x29,
0xE6, 0x42, 0x78, 0x17, 0xF6, 0x70, 0x42, 0xB3, 0x8B, 0xB3, 0x9B, 0xE1, 0x12, 0x8A, 0x15, 0xF4,
0x8E, 0xB8, 0x84, 0xF4, 0x75, 0x80, 0x7D, 0xA0, 0xC3, 0x55, 0xF2, 0x76, 0x67, 0x4A, 0xDC, 0x10,
0xD2, 0x11, 0x61, 0x6D, 0x63, 0x4A, 0x74, 0xA2, 0x3F, 0x70, 0x86, 0x38, 0xA4, 0x88, 0x40, 0xA4,
0xF0, 0x5C, 0x74, 0x08, 0xF3, 0xAE, 0xB0, 0xF0, 0xB2, 0x78, 0x75, 0x59, 0x68, 0x78, 0x67, 0xBC,
0x82, 0x3B, 0xA1, 0x2E, 0xD1, 0xEF, 0x4E, 0xEF, 0x5A, 0x87, 0x42, 0x82, 0xDE, 0xF3, 0x5A, 0x75,
0xA5, 0xA6, 0x0A, 0xB6, 0xDB, 0x4E, 0x5D, 0xB7, 0xCF, 0xAC, 0x09, 0x10, 0xAB, 0x07, 0x71, 0x49,
0x3A, 0x53, 0x4E, 0x78, 0x36, 0xDD, 0x43, 0x7C, 0xB0, 0x5D, 0x58, 0xA8, 0x61, 0xA1, 0x10, 0xCB,
0x37, 0xB0, 0x26, 0xCB, 0xF3, 0x16, 0x62, 0x58, 0x00, 0xFD, 0x34, 0x89, 0xCE, 0x0F, 0x82, 0x44,
0x06, 0x12, 0xAD, 0xDC, 0x91, 0xA7, 0xFB, 0x13, 0x7A, 0x7E, 0x2B, 0x6A, 0x0C, 0x38, 0xF7, 0xB4,
0x70, 0x71, 0x5D, 0xF0, 0x6C, 0x43, 0x09, 0xDB, 0xE7, 0xC6, 0xEB, 0x00, 0x0F, 0x50, 0xF6, 0x20,
0x8D, 0x3A, 0x76, 0x1A, 0x67, 0x74, 0x3C, 0x05, 0x5D, 0xF8, 0xED, 0xD2, 0x40, 0xE3, 0xA9, 0x33,
0x18, 0x40, 0xDF, 0xA5, 0x18, 0x2A, 0x66, 0x05, 0xBD, 0xCB, 0x9B, 0x88, 0xC8, 0x56, 0x33, 0x04,
0x11, 0x71, 0x3A, 0x21, 0x7B, 0x92, 0xFD, 0xA7, 0x51, 0x15, 0x1A, 0x49, 0xA8, 0xA6, 0x43, 0x75,
0xF4, 0xB8, 0xF2, 0x05, 0x94, 0x4A, 0xB7, 0xF7, 0x20, 0x48, 0x75, 0x95, 0xAA, 0xDE, 0x37, 0x0C,
0x85, 0x98, 0x1A, 0x1C, 0x1A, 0xE7, 0xC7, 0x0B, 0x6F, 0xEB, 0x01, 0x56, 0x28, 0x82, 0x28, 0xA0,
0x1F, 0x3A, 0xAD, 0x18, 0x40, 0xEA, 0x64, 0x08, 0x14, 0x55, 0x17, 0x87, 0x0B, 0xCA, 0x9A, 0x60,
0x83, 0x7A, 0xA3, 0x3F, 0x2A, 0x65, 0xB4, 0xDB, 0x3C, 0x6B, 0x4B, 0xA0, 0x01, 0xBF, 0xA7, 0x65,
0x47, 0x33, 0xCF, 0xBE, 0xE3, 0xB3, 0x35, 0xC4, 0x6A, 0xDE, 0xE7, 0x1C, 0xB5, 0xF5, 0xD8, 0xBA,
0xCE, 0x8F, 0xC2, 0xA1, 0xDF, 0x2E, 0xF3, 0xFA, 0x79, 0x61, 0x94, 0x9D, 0xBA, 0xC6, 0x7A, 0x86,
0x8B, 0xAC, 0x07, 0xC4, 0x60, 0x16, 0xA7, 0x1E, 0x8C, 0x85, 0x61, 0x8E, 0x56, 0xC6, 0x16, 0xC9,
0x0A, 0xCA, 0x18, 0xF4, 0x40, 0xA0, 0x1D, 0x96, 0x09, 0x56, 0x0C, 0x0D, 0xFE, 0xCA, 0x06, 0x3A,
0x68, 0x00, 0x19, 0x91, 0xD1, 0xC6, 0xEB, 0x17, 0xEE, 0xCE, 0x27, 0xF4, 0x30, 0x88, 0x53, 0x00,
0x77, 0xC6, 0x74, 0x98, 0x32, 0xEC, 0x24, 0x91, 0x0C, 0xCD, 0x98, 0xDA, 0x4A, 0xAD, 0xAC, 0xE6,
0x4C, 0xCF, 0x38, 0xD0, 0x84, 0xFC, 0xB2, 0xDC, 0xC2, 0x2A, 0x01, 0x47, 0x16, 0xFB, 0xF4, 0x49,
0xEA, 0xD8, 0xC7, 0xD7, 0x8F, 0xD2, 0x5D, 0x42, 0x16, 0x81, 0x29, 0x77, 0x13, 0x7D, 0x1E, 0x84,
0x13, 0xA3, 0xCA, 0xC1, 0x5D, 0x9B, 0xEF, 0x43, 0x42, 0x40, 0x32, 0xA0, 0x9E, 0x91, 0x65, 0x7D,
0x62, 0x60, 0x2C, 0x3E, 0x76, 0x92, 0xD5, 0x06, 0x71, 0x60, 0x0E, 0x06, 0x73, 0x17, 0x83, 0x48,
0xB1, 0x06, 0x4A, 0x4F, 0x7A, 0x80, 0x32, 0x59, 0x92, 0x3A, 0x84, 0x5E, 0x58, 0x05, 0x71, 0x12,
0xB8, 0x3F, 0xE9, 0xB4, 0x4A, 0x03, 0x30, 0x51, 0x17, 0x5F, 0xC6, 0x88, 0x72, 0xBF, 0x49, 0xA1,
0x6F, 0xDC, 0xA6, 0x22, 0x54, 0xA8, 0xFD, 0xE7, 0x50, 0x29, 0xC7, 0x82, 0x8A, 0x97, 0x96, 0x20,
0x3F, 0xB4, 0x72, 0xDA, 0x38, 0xF1, 0x86, 0xBC, 0xF0, 0x6D, 0x7C, 0xB0, 0x0A, 0xAF, 0xDE, 0x86,
0x08, 0xB9, 0xDD, 0xEA, 0xD7, 0x3E, 0xEE, 0xD2, 0xA0, 0xEA, 0x4D, 0x50, 0x41, 0x0D, 0x71, 0x4C,
0x22, 0x11, 0xC9, 0x62, 0xFB, 0x1C, 0xDC, 0x87, 0xEC, 0x56, 0xE1, 0x32, 0xE6, 0x53, 0x45, 0xCB,
0xD4, 0xB2, 0xF5, 0x21, 0x4A, 0x6C, 0x33, 0x11, 0xA7, 0xE6, 0x68, 0x73, 0x63, 0x8E, 0x5F, 0xEF,
0x4D, 0x9A, 0x18, 0xB7, 0x5D, 0x8A, 0x33, 0x28, 0xEB, 0x4B, 0x51, 0x01, 0x25, 0x7D, 0x29, 0x2C,
0xC1, 0xC0, 0x4B, 0x41, 0x6D, 0xC2, 0x72, 0xC9, 0xAF, 0x4D, 0x5C, 0x2C, 0x79, 0x2D, 0x70, 0x67,
0xC9, 0xED, 0x0E, 0x2A, 0x77, 0xA2, 0x3C, 0x8C, 0xA8, 0x51, 0x1A, 0xEA, 0x56, 0x86, 0xCB, 0x0E,
0xC6, 0xBE, 0x8A, 0xDE, 0xA9, 0xBC, 0x47, 0x6F, 0x34, 0xA9, 0x40, 0x16, 0x43, 0x60, 0x34, 0x40,
0x5E, 0xEF, 0x07, 0x60, 0x60, 0xBC, 0x72, 0xB5, 0xD2, 0x5E, 0xD3, 0xA5, 0x5E, 0x9D, 0x86, 0xCB,
0x8D, 0x0E, 0xAB, 0x2E, 0x5E, 0xAE, 0xFB, 0xB0, 0xE8, 0xE9, 0x6C, 0xA2, 0xB3, 0x10, 0x46, 0x3F,
0xE7, 0xDD, 0xED, 0xE7, 0xD3, 0x4C, 0xBC, 0xA7, 0xE2, 0x1F, 0x53, 0xE1, 0xA7, 0x35, 0xFD, 0x49,
0x9C, 0x5B, 0xA2, 0x3D, 0x3D, 0x53, 0xDE, 0x00, 0x81, 0xE7, 0xB7, 0x26, 0x2E, 0xD9, 0x39, 0x60,
0x2A, 0x48, 0x1D, 0xC2, 0xD7, 0xA7, 0x0E, 0x49, 0x46, 0x33, 0x64, 0x0D, 0xC8, 0xE2, 0xFD, 0x93,
0xC9, 0xBB, 0xB1, 0x5D, 0xCF, 0xCA, 0xC7, 0xD4, 0x3A, 0x1D, 0xD6, 0x64, 0xA9, 0x17, 0x05, 0x87,
0xE6, 0x11, 0xCA, 0xCB, 0x70, 0xE5, 0x66, 0x1D, 0x9F, 0xB9, 0x5E, 0xEB, 0xF0, 0x23, 0x74, 0xEA,
0x5A, 0x87, 0x51, 0x77, 0x94, 0xA0, 0x94, 0xB1, 0x9C, 0x21, 0x10, 0x13, 0x49, 0xAC, 0x03, 0x05,
0x8B, 0xD3, 0x2B, 0xC3, 0x7F, 0xE1, 0x35, 0xE4, 0x69, 0x05, 0x2E, 0x95, 0x31, 0x96, 0xE3, 0x34,
0x8A, 0x93, 0xB5, 0x0E, 0xD7, 0x8F, 0x6F, 0x19, 0x50, 0x37, 0x54, 0x0D, 0x2D, 0xFD, 0x39, 0xDD,
0xC0, 0xFE, 0x47, 0x27, 0xA1, 0xDE, 0x7A, 0x2D, 0xAC, 0x6B, 0x5D, 0x0C, 0x7E, 0x63, 0x80, 0x01,
0x99, 0xD1, 0x57, 0x29, 0x1C, 0x8A, 0x83, 0x30, 0x97, 0x26, 0xE1, 0x87, 0x44, 0x78, 0x36, 0x57,
0xC0, 0xA2, 0x0C, 0x21, 0x31, 0x34, 0x90, 0xF6, 0xEE, 0xB1, 0x2D, 0x72, 0x8D, 0xB1, 0x0B, 0x86,
0xD9, 0x1C, 0x40, 0xF5, 0x45, 0x9F, 0x6A, 0xAF, 0xD6, 0xD1, 0xD5, 0xAA, 0x8B, 0x4E, 0xD7, 0x1D,
0xFB, 0xAD, 0xB1, 0xCA, 0x20, 0x05, 0x27, 0x99, 0xCD, 0xB0, 0x6E, 0x49, 0x78, 0xEB, 0x0F, 0x2A,
0x24, 0xF1, 0x3D, 0x22, 0x07, 0xD0, 0x5F, 0xE2, 0x95, 0xC4, 0xE2, 0xC0, 0xAA, 0xB2, 0xD0, 0xDF,
0x52, 0x53, 0x39, 0xA0, 0x4C, 0x9F, 0x32, 0xEC, 0x00, 0x03, 0x18, 0xFD, 0x8E, 0xFB, 0xCB, 0x24,
0x27, 0xA0, 0xB7, 0x89, 0x6C, 0x6E, 0xFC, 0x47, 0x89, 0x44, 0xEE, 0xD2, 0x7B, 0x17, 0x84, 0xA5,
0x73, 0xD1, 0x4D, 0x92, 0xD9, 0x24, 0x3E, 0x04, 0x41, 0x18, 0xE7, 0xC9, 0x01, 0x43, 0x8F, 0x2C,
0xD6, 0xAE, 0x5C, 0xE4, 0xF3, 0xBD, 0x7A, 0xDD, 0x30, 0xE4, 0x15, 0x62, 0xC9, 0x66, 0x87, 0x51,
0x80, 0xEC, 0xBF, 0xD4, 0xA6, 0x10, 0x4F, 0xA6, 0x81, 0xE8, 0x0E, 0x2A, 0x08, 0x04, 0x5A, 0x87,
0xF4, 0x54, 0xA8, 0x99, 0x24, 0x59, 0x72, 0x61, 0xE6, 0x55, 0x71, 0x96, 0x0F, 0xB8, 0x30, 0x4F,
0xBC, 0x30, 0xB9, 0xDB, 0x86, 0x9F, 0xB6, 0xF1, 0xDB, 0xBD, 0xA6, 0x79, 0x60, 0xAC, 0xB1, 0xDF,
0x42, 0xCE, 0xFD, 0x41, 0x89, 0x70, 0x52, 0x71, 0xB6, 0xEB, 0x82, 0x92, 0x46, 0xC2, 0x81, 0xD2,
0x73, 0x06, 0xF5, 0xA5, 0xE8, 0xBC, 0x5F, 0x1F, 0xF4, 0x9B, 0xA8, 0x18, 0xA2, 0x32, 0xF5, 0xBA,
0xF4, 0x50, 0x17, 0x3C, 0xE8, 0x41, 0x17, 0x57, 0x50, 0x94, 0xA2, 0xC8, 0xE9, 0xF4, 0x21, 0x00,
0x32, 0x8B, 0x96, 0x5B, 0xB0, 0x40, 0xD8, 0xA4, 0x41, 0x1B, 0x19, 0xF3, 0xB8, 0x39, 0x92, 0x7C,
0x65, 0xF5, 0xA3, 0xE3, 0xBC, 0xA5, 0xE3, 0x9C, 0x51, 0x14, 0x20, 0x17, 0x34, 0x16, 0xA8, 0x48,
0xB0, 0xF7, 0xE9, 0x1D, 0x6F, 0x00, 0xB7, 0xF9, 0x64, 0x92, 0xDF, 0x42, 0x95, 0x3D, 0x5D, 0x70,
0xB7, 0x1E, 0xCD, 0xBF, 0x0E, 0x4D, 0x54, 0xA1, 0x39, 0x45, 0xBA, 0x55, 0xE9, 0x49, 0x93, 0x44,
0xF4, 0xCB, 0xD0, 0xE6, 0x04, 0xCA, 0x2C, 0x4C, 0x91, 0x66, 0xC7, 0x5C, 0xED, 0xC5, 0x5C, 0xBD,
0x0A, 0xE1, 0x62, 0xC4, 0xDE, 0xEB, 0xCD, 0x7C, 0x7A, 0x4B, 0xC4, 0x4B, 0xFA, 0xB6, 0xF0, 0x51,
0x2F, 0xC1, 0x3E, 0x6B, 0x25, 0x45, 0xB7, 0x1A, 0x80, 0x14, 0x1A, 0x37, 0xB7, 0x3B, 0x48, 0x0F,
0x06, 0x27, 0xE9, 0xA6, 0xCB, 0xE8, 0x0E, 0x11, 0x16, 0x83, 0x9A, 0x52, 0x41, 0x6D, 0xEE, 0xD0,
0x7F, 0xAE, 0xD3, 0x75, 0x2A, 0xD5, 0x18, 0x8E, 0xCF, 0x50, 0x21, 0xC5, 0x26, 0x61, 0x44, 0x45,
0x9C, 0x56, 0x8C, 0x7D, 0xC2, 0xF8, 0x56, 0x12, 0x40, 0xD6, 0x84, 0xB8, 0x3B, 0xFE, 0x03, 0x83,
0x54, 0xC0, 0xC5, 0x24, 0xA8, 0x73, 0xCC, 0x06, 0x58, 0xEA, 0x11, 0x04, 0xCA, 0xD0, 0x59, 0x34,
0xCC, 0x19, 0xAD, 0xAA, 0x76, 0x1C, 0xEF, 0xBD, 0x4E, 0x94, 0xF7, 0x80, 0x2E, 0xB6, 0xD3, 0xA5,
0x52, 0xAF, 0x44, 0xEA, 0x4F, 0xD3, 0x47, 0x51, 0x59, 0xCE, 0x94, 0x2A, 0xBC, 0x02, 0xE0, 0xFE,
0x18, 0x85, 0xF5, 0x2F, 0xA5, 0xEC, 0x3B, 0xF5, 0x5D, 0x3C, 0x5F, 0x43, 0x62, 0x97, 0xD7, 0x0A,
0x91, 0x90, 0xD4, 0x47, 0x02, 0x68, 0x7C, 0x51, 0x41, 0xA1, 0x12, 0x0E, 0x7B, 0xCF, 0xA9, 0x09,
0x5D, 0xDD, 0x61, 0xED, 0x0C, 0x84, 0x30, 0x58, 0xA5, 0xC0, 0x21, 0xFA, 0x64, 0x25, 0x4E, 0x92,
0xBE, 0x0A, 0x99, 0xCF, 0xF7, 0x04, 0x52, 0x85, 0xE5, 0x89, 0xA1, 0x0A, 0x85, 0xF7, 0x94, 0xBD,
0x21, 0x38, 0x5F, 0x2A, 0x50, 0x8F, 0x51, 0x71, 0x9E, 0x49, 0xBD, 0x90, 0xD5, 0xA1, 0x95, 0x1E,
0x84, 0xAB, 0x5A, 0x12, 0x22, 0xA8, 0x00, 0x79, 0x23, 0xB1, 0x8D, 0xBE, 0x5B, 0x89, 0x59, 0x48,
0x67, 0xAC, 0xB5, 0xE2, 0x8F, 0xCE, 0xC9, 0x69, 0x74, 0xC0, 0x17, 0x67, 0xC2, 0xE2, 0xEC, 0x39,
0x75, 0x02, 0xDD, 0x67, 0x0C, 0xF0, 0x32, 0xE5, 0x27, 0xC6, 0x6F, 0x5E, 0x1D, 0x18, 0xAF, 0xA2,
0x1E, 0x01, 0x91, 0x6C, 0x5D, 0xC6, 0x3D, 0xB3, 0x49, 0xFC, 0x3A, 0x95, 0xCC, 0x12, 0xA8, 0x51,
0x74, 0x27, 0xC7, 0x2B, 0x25, 0xB1, 0xD6, 0x83, 0xC5, 0xDB, 0x31, 0x50, 0xD6, 0xAA, 0xFC, 0x7E,
0x4F, 0x47, 0x7F, 0x28, 0x48, 0x8A, 0x5E, 0xF5, 0x96, 0x33, 0xA6, 0x16, 0xFA, 0xD4, 0xA4, 0xB4,
0xDE, 0x01, 0x1B, 0x17, 0x50, 0x56, 0xA4, 0x6D, 0x17, 0xEE, 0xE3, 0x08, 0x18, 0xAB, 0x60, 0x98,
0x21, 0x35, 0xC6, 0x06, 0x34, 0xF5, 0xD6, 0x86, 0xF1, 0x86, 0x19, 0x6F, 0x60, 0x44, 0x92, 0x51,
0xA5, 0xF0, 0x33, 0xFA, 0x19, 0x6F, 0x71, 0x59, 0x16, 0x4A, 0xA0, 0x14, 0x9A, 0x09, 0xD7, 0x89,
0x2B, 0xCB, 0x8C, 0xC8, 0x87, 0xED, 0x9E, 0xB0, 0x8D, 0xFA, 0x5E, 0x98, 0x43, 0xB8, 0xA6, 0x04,
0xA3, 0xB6, 0x23, 0x43, 0x3A, 0x23, 0xFB, 0xA8, 0x97, 0x69, 0x4E, 0x30, 0x71, 0xA6, 0x04, 0x3F,
0x97, 0x26, 0x4D, 0xAF, 0xB4, 0xFB, 0xD2, 0x4B, 0x3B, 0x61, 0x25, 0xD0, 0x92, 0x5E, 0xC3, 0x12,
0xEA, 0xAB, 0x2B, 0x0D, 0x83, 0x01, 0x50, 0x49, 0x55, 0x8C, 0x15, 0x87, 0xD6, 0xC9, 0xA4, 0x92,
0x69, 0x68, 0x32, 0x16, 0x2D, 0x25, 0x14, 0xFB, 0xD8, 0x2B, 0x17, 0xB2, 0x29, 0x0C, 0xD8, 0x2C,
0x1D, 0x7C, 0x63, 0xCF, 0xD2, 0xEA, 0x2C, 0xA7, 0x03, 0x72, 0x3C, 0xAF, 0xE8, 0x7E, 0xE6, 0xC8,
0x4C, 0x15, 0x99, 0x3A, 0xAE, 0x7F, 0xE4, 0xBA, 0x83, 0x58, 0x1D, 0x50, 0xDD, 0x58, 0xC1, 0xBA,
0x3C, 0x3B, 0xE4, 0x32, 0x41, 0x97, 0x38, 0x7B, 0xE1, 0xFD, 0x1A, 0x4A, 0x8A, 0xF7, 0xA8, 0xA7,
0xD6, 0x0C, 0x52, 0x82, 0xE5, 0x95, 0xCE, 0x31, 0x78, 0x1B, 0x7F, 0x44, 0x7B, 0x2B, 0xAA, 0xD3,
0x4A, 0x37, 0x51, 0x1B, 0x48, 0x14, 0x1A, 0xC0, 0xB0, 0x86, 0x33, 0x16, 0x7D, 0x9C, 0x64, 0x52,
0xA9, 0x04, 0xA9, 0x0C, 0x49, 0x36, 0x5A, 0x43, 0xF5, 0xCE, 0x83, 0x63, 0x24, 0x89, 0x25, 0xB5,
0xDD, 0x61, 0xE1, 0x3F, 0x5F, 0x96, 0xEA, 0x08, 0x9D, 0xCA, 0x0D, 0xA0, 0x3A, 0x40, 0x15, 0xBD,
0x4B, 0xA5, 0xAE, 0xD6, 0xD7, 0xD4, 0xBE, 0xFC, 0x74, 0x4B, 0xE5, 0x8D, 0xFD, 0x8A, 0x57, 0x6A,
0xE7, 0x08, 0x1D, 0xBB, 0x50, 0x33, 0x01, 0x36, 0xA0, 0x6B, 0x60, 0x50, 0xA6, 0xAF, 0x74, 0x01,
0xFE, 0xF5, 0x98, 0x76, 0x92, 0x32, 0x81, 0xA9, 0xCC, 0xA7, 0xF9, 0x0C, 0x10, 0x69, 0x99, 0x58,
0x47, 0x0C, 0xC8, 0xDC, 0xBC, 0xC9, 0xD9, 0x38, 0xE4, 0x4E, 0x3B, 0xF8, 0x4F, 0xA9, 0x30, 0xAB,
0x99, 0xF9, 0x79, 0x52, 0x19, 0x19, 0x37, 0xBC, 0xF4, 0x3F, 0x39, 0xE2, 0x6C, 0xA4, 0x8B, 0xD9,
0x73, 0xEE, 0xBB, 0xCE, 0x79, 0x92, 0x3F, 0x84, 0x80, 0x55, 0xA3, 0x45, 0xA3, 0x66, 0x4A, 0x07,
0xCA, 0x4A, 0xFD, 0x6A, 0xE7, 0x0D, 0x7E, 0x1D, 0x96, 0x29, 0x60, 0xC2, 0x84, 0x50, 0x84, 0xFC,
0xCF, 0xB6, 0xD6, 0xA1, 0xE9, 0xE4, 0x91, 0xC9, 0x1C, 0x53, 0xD1, 0xA1, 0x4F, 0x3D, 0x53, 0xA5,
0xD9, 0x14, 0x2B, 0x0E, 0x80, 0x44, 0x6C, 0x54, 0xA1, 0x0D, 0x7B, 0xE7, 0xBD, 0xB8, 0xB6, 0x30,
0x02, 0x42, 0x16, 0x8B, 0x2A, 0x1F, 0x0F, 0x5E, 0xB3, 0x8C, 0xDF, 0xE9, 0xCA, 0xE2, 0x57, 0x40,
0xED, 0x87, 0x04, 0x1C, 0x4B, 0xCA, 0xC6, 0x13, 0x0F, 0x27, 0xAF, 0xC4, 0x82, 0xEE, 0xD2, 0xF2,
0x67, 0xA3, 0x05, 0xBD, 0xDB, 0x29, 0x48, 0xF3, 0x1C, 0x32, 0xA0, 0xA6, 0xE3, 0x22, 0xF8, 0xD2,
0x4B, 0x7D, 0x0F, 0x8D, 0x24, 0xDF, 0xF7, 0x0A, 0xEF, 0x93, 0x92, 0x49, 0x28, 0xA4, 0xDA, 0xB4,
0x51, 0xAF, 0xBC, 0xFC, 0xB7, 0x2F, 0xA9, 0x68, 0x55, 0x6A, 0x80, 0x6D, 0xE5, 0x41, 0x4B, 0xAD,
0xDE, 0x53, 0xB8, 0xFD, 0xC5, 0x1D, 0xF8, 0x7B, 0x39, 0x35, 0x5B, 0xA6, 0x7F, 0x93, 0x4B, 0x57,
0xE4, 0xE6, 0x8A, 0xC9, 0x7F, 0x98, 0xBD, 0xF2, 0x72, 0x74, 0xB5, 0x6C, 0xC2, 0x44, 0xBD, 0x14,
0x7F, 0x58, 0xFF, 0xF2, 0xF7, 0x34, 0xF1, 0x7C, 0xF3, 0x8F, 0x03, 0xB9, 0x07, 0xB7, 0xFD, 0x9B,
0x11, 0x9A, 0x46, 0xA8, 0x2A, 0xDF, 0x93, 0xB7, 0x3D, 0x8E, 0x9C, 0x6D, 0x5E, 0x1A, 0xED, 0x31,
0x6F, 0x50, 0xCE, 0x35, 0x8C, 0xEC, 0x77, 0xBF, 0x50, 0x2F, 0xCC, 0x4C, 0xBF, 0x7F, 0xCA, 0x9F,
0x85, 0x38, 0x73, 0xF8, 0xEF, 0xB8, 0x82, 0x2F, 0xFD, 0xCD, 0x8F, 0xBE, 0x47, 0x4A, 0x53, 0xD9,
0xD3, 0x1F, 0xF2, 0x31, 0xC1, 0x0E, 0x1A, 0xBB, 0x8F, 0xC9, 0xFE, 0x2F, 0xB5, 0xFA, 0xF3, 0xEF,
0x2B, 0xF5, 0x7D, 0x6F, 0x57, 0xE4, 0xD4, 0x1D, 0x69, 0x76, 0xC4, 0xCD, 0x7F, 0xE6, 0x3F, 0xFE,
0xF8, 0x98, 0x42, 0xF7, 0xCF, 0xED, 0xDB, 0xBF, 0xB5, 0x6F, 0xAF, 0xF0, 0xF4, 0x0B, 0x25, 0xD2,
0xE5, 0x4D, 0xF5, 0x33, 0xE5, 0x27, 0x52, 0x94, 0x0B, 0x6B, 0xB1, 0x42, 0x62, 0xC1, 0xD3, 0xFB,
0x25, 0x12, 0xC5, 0x2F, 0xB9, 0xB0, 0x90, 0x80, 0x8E, 0x20, 0xCC, 0xFE, 0xA7, 0x3E, 0x41, 0xFE,
0xC1, 0x44, 0x46, 0xA8, 0xB7, 0xB1, 0xEC, 0xFC, 0x4B, 0xE5, 0x54, 0xEA, 0x25, 0xDB, 0xA9, 0x57,
0x6C, 0x17, 0x5F, 0xB1, 0xF7, 0xFE, 0xAD, 0x7D, 0xFB, 0x05, 0xC9, 0x7C, 0xD1, 0x3D, 0x07, 0x40,
0xA4, 0xB1, 0xA7, 0xFF, 0x28, 0xC9, 0x48, 0x04, 0xB0, 0xFD, 0xE7, 0xC7, 0x5A, 0xA1, 0x90, 0x45,
0x0D, 0x64, 0x09, 0x38, 0x86, 0x20, 0x00, 0xCE, 0xF6, 0xA0, 0x17, 0x43, 0xEB, 0x44, 0xA1, 0xD3,
0xB3, 0xD0, 0x68, 0x14, 0xE6, 0x21, 0x0A, 0xD3, 0x53, 0x0D, 0x59, 0x03, 0x85, 0xE0, 0x8E, 0x44,
0x9F, 0xA9, 0x50, 0x78, 0xBF, 0x66, 0xBA, 0x5B, 0xCB, 0x34, 0x38, 0xB0, 0xC6, 0xBC, 0xA6, 0xE0,
0x5A, 0xA1, 0x5C, 0x78, 0x68, 0xA6, 0xC8, 0x2F, 0x10, 0x97, 0x8E, 0xFE, 0x84, 0x51, 0x38, 0x4C,
0xA5, 0xD6, 0x6C, 0xE6, 0x2E, 0x42, 0x6B, 0x83, 0xDC, 0x48, 0x7F, 0x4B, 0x31, 0x42, 0x3E, 0x5D,
0x18, 0xA1, 0xCC, 0x7D, 0x57, 0x9D, 0xC8, 0xD8, 0x15, 0x2A, 0xDE, 0xD0, 0x0B, 0x1C, 0x09, 0xF0,
0x18, 0x8A, 0x2E, 0x18, 0x19, 0xA7, 0xC1, 0x8A, 0xBD, 0x7E, 0xA7, 0xF6, 0x36, 0x20, 0xBB, 0x42,
0x60, 0x0F, 0xF4, 0x4E, 0xA6, 0xD6, 0xD5, 0xC1, 0xE6, 0xAF, 0x4D, 0x12, 0x9B, 0x39, 0xA0, 0x6F,
0x37, 0x4A, 0x19, 0x99, 0x34, 0xE9, 0x87, 0x27, 0xC9, 0x94, 0x45, 0x60, 0x39, 0xD3, 0x97, 0xB8,
0x54, 0x4B, 0x75, 0x58, 0xFA, 0x66, 0xAC, 0xE1, 0x1B, 0x4A, 0xE8, 0x44, 0x42, 0x79, 0x87, 0xD1,
0xEE, 0x88, 0x47, 0x15, 0x3F, 0x5A, 0xB3, 0xB3, 0x60, 0x86, 0xDE, 0x18, 0x2A, 0x9E, 0x31, 0xF3,
0x62, 0x9C, 0x50, 0xED, 0x7B, 0x2C, 0x72, 0x6C, 0x23, 0xAA, 0xC6, 0xDA, 0xBE, 0xE2, 0x78, 0xC9,
0xD2, 0x6D, 0x4F, 0xCB, 0x66, 0x4E, 0x1B, 0x36, 0x21, 0x2E, 0xE5, 0x0C, 0xFD, 0x3C, 0x9E, 0xD4,
0xB0, 0x56, 0xDF, 0xDC, 0xEA, 0xF2, 0xDE, 0x2C, 0x8C, 0x49, 0x0D, 0xA7, 0x86, 0x8B, 0xB5, 0x51,
0x7F, 0xF9, 0xA5, 0xA4, 0x86, 0x83, 0xB0, 0xE3, 0x3F, 0x17, 0x6B, 0xF8, 0xD4, 0xE0, 0x53, 0xB5,
0xB9, 0xDE, 0x31, 0x77, 0x80, 0x21, 0xEE, 0x41, 0x5F, 0x5E, 0xBD, 0xDD, 0xA5, 0xBD, 0xFE, 0x84,
0x8E, 0x23, 0xE2, 0xB4, 0xF7, 0xC8, 0x34, 0xF8, 0xEE, 0x54, 0xAB, 0xF6, 0xA1, 0x63, 0xEC, 0xE3,
0xF8, 0xA6, 0xE8, 0x7C, 0x4A, 0xED, 0x6B, 0x27, 0xBF, 0x52, 0xA2, 0x9F, 0xDF, 0x38, 0x39, 0xF4,
0x28, 0x45, 0x0B, 0x14, 0xE2, 0xF4, 0xE0, 0xC5, 0x31, 0xE1, 0xA9, 0x62, 0xF5, 0x03, 0x1B, 0x08,
0xBF, 0x7C, 0x29, 0x70, 0x67, 0x93, 0xC6, 0x4A, 0x33, 0x7F, 0x74, 0x9A, 0x49, 0x46, 0x2F, 0xE6,
0x7C, 0x92, 0x0A, 0x82, 0x16, 0x0B, 0x9B, 0xE7, 0xD5, 0xAE, 0x2C, 0xB3, 0xC7, 0xDE, 0xF6, 0x4E,
0x2E, 0x44, 0x66, 0xE0, 0xEB, 0xEE, 0x3C, 0xC4, 0x64, 0x44, 0x23, 0xAC, 0x14, 0xDF, 0x71, 0x69,
0x3F, 0x6E, 0xBF, 0xF2, 0xD1, 0x19, 0x21, 0xC7, 0xFC, 0x51, 0xE9, 0xED, 0x63, 0x87, 0xB9, 0x23,
0x29, 0x3E, 0x12, 0x5D, 0xFE, 0xAD, 0x61, 0xCE, 0x50, 0x03, 0x6D, 0xA4, 0x63, 0x7E, 0x81, 0x91,
0xEC, 0x2E, 0x7B, 0x58, 0x57, 0x06, 0x10, 0xF2, 0x08, 0xB0, 0x93, 0xF4, 0xC2, 0x2C, 0x9A, 0xD4,
0x4A, 0xFE, 0x83, 0x93, 0xF3, 0x9E, 0x10, 0x05, 0x0D, 0xC5, 0x64, 0x3A, 0xB9, 0x4C, 0x65, 0x15,
0xEB, 0xC8, 0xEB, 0x17, 0x30, 0xF1, 0x29, 0x25, 0x8B, 0xCE, 0xA2, 0xE5, 0xD6, 0xB1, 0xA9, 0x20,
0xA8, 0x2F, 0xC9, 0x33, 0x06, 0xC5, 0xD1, 0xB5, 0x60, 0x18, 0x45, 0x63, 0x58, 0x8A, 0xF3, 0x6F,
0x00, 0x1E, 0x4B, 0xCC, 0xB2, 0xA2, 0xCA, 0x28, 0xCE, 0x1A, 0xE6, 0x22, 0x60, 0xFC, 0x03, 0xF3,
0xFB, 0xF4, 0x1C, 0xF4, 0x65, 0x94, 0x89, 0xE2, 0xC0, 0x49, 0x24, 0xA2, 0x0C, 0x92, 0xA1, 0xBA,
0xF2, 0x29, 0xDD, 0x11, 0x34, 0x3F, 0x61, 0xE8, 0xD1, 0x23, 0xA7, 0xC4, 0xE4, 0x44, 0x11, 0x54,
0xDE, 0x1B, 0x87, 0xC4, 0x87, 0x2F, 0xE4, 0xEC, 0x9B, 0xAB, 0x0D, 0x95, 0x6D, 0x0B, 0xD2, 0x62,
0xCC, 0x4C, 0x2D, 0x99, 0x27, 0x7C, 0xA0, 0xE3, 0x6E, 0xEF, 0xB9, 0xD9, 0x77, 0xDD, 0x5E, 0xB4,
0x40, 0x31, 0x6E, 0x31, 0x4E, 0x7D, 0x99, 0x62, 0x64, 0xEE, 0x01, 0x93, 0x67, 0x1E, 0x76, 0x12,
0x36, 0x30, 0x66, 0x3B, 0x51, 0x56, 0xAF, 0x3C, 0xE4, 0x58, 0xAF, 0x53, 0x95, 0x8B, 0x2A, 0xA6,
0x5E, 0xD1, 0x91, 0x03, 0x16, 0xA2, 0xEF, 0x15, 0x1F, 0xBD, 0xCE, 0x31, 0xC5, 0x8E, 0x5E, 0x32,
0x36, 0x98, 0xEE, 0x6A, 0x56, 0xBE, 0xF8, 0x2E, 0x19, 0x6B, 0xBF, 0x17, 0x95, 0xCC, 0xAD, 0xD5,
0x4C, 0x27, 0x6E, 0xEB, 0xB7, 0x58, 0xDD, 0x37, 0x8E, 0xB5, 0xBE, 0x2C, 0x4F, 0x07, 0x85, 0x3A,
0x0E, 0x0D, 0x23, 0x53, 0x1F, 0x48, 0xEE, 0x2A, 0x13, 0x02, 0x61, 0xA0, 0x88, 0xEB, 0x4D, 0x72,
0xCA, 0x38, 0x09, 0xE1, 0x83, 0x41, 0x28, 0x46, 0x72, 0x1B, 0xF4, 0x5A, 0xA5, 0xC2, 0x87, 0xBD,
0xB5, 0xEB, 0xE8, 0x9B, 0xD2, 0x85, 0x2C, 0xE7, 0xFA, 0x4F, 0x31, 0x60, 0xE6, 0x37, 0x9A, 0xB4,
0xF0, 0xB8, 0x68, 0x74, 0xAB, 0x8B, 0xFA, 0x48, 0x95, 0x20, 0x1A, 0x0B, 0xE8, 0xA4, 0xDA, 0xBF,
0x28, 0xDA, 0x08, 0xB3, 0x84, 0xDF, 0x86, 0xCE, 0x7E, 0xDA, 0xA6, 0xB0, 0x68, 0x66, 0x49, 0xF3,
0x38, 0x5B, 0xDB, 0xB2, 0xB7, 0x69, 0x2C, 0xD1, 0xF5, 0xAB, 0x49, 0x5A, 0x9D, 0x9D, 0xC2, 0xDD,
0x87, 0x82, 0x0A, 0x17, 0x62, 0x11, 0xCC, 0xDC, 0x67, 0x57, 0x5B, 0x7D, 0x35, 0x2D, 0x4C, 0x4C,
0x83, 0xA4, 0x0C, 0x3F, 0x1B, 0x24, 0x71, 0x87, 0x3A, 0x30, 0xE8, 0x86, 0x9D, 0xD5, 0x57, 0x71,
0x5B, 0x8C, 0x51, 0xE5, 0x4D, 0xF8, 0xD9, 0x6A, 0xAD, 0xFF, 0x77, 0x04, 0x66, 0x88, 0x41, 0x67,
0xBA, 0x64, 0x7F, 0x86, 0x17, 0x8D, 0xD7, 0xAE, 0xD5, 0xE1, 0x6D, 0xC8, 0x88, 0x33, 0xAD, 0x64,
0xD3, 0x6C, 0x41, 0x79, 0x66, 0x58, 0xFB, 0x2C, 0xB3, 0x69, 0x2A, 0xAF, 0x05, 0xCC, 0xDD, 0xCE,
0x4B, 0xFD, 0x5F, 0x41, 0x70, 0xD0, 0x14, 0x98, 0x1C, 0x4B, 0x6B, 0x08, 0x88, 0x6D, 0xA0, 0x55,
0xC2, 0xE2, 0xE9, 0x6C, 0x02, 0x10, 0xF5, 0x3A, 0x89, 0x2C, 0x69, 0xAA, 0x50, 0x34, 0x22, 0xFA,
0xB4, 0x90, 0x24, 0x3C, 0xD0, 0x46, 0x46, 0xDA, 0x20, 0x5D, 0xD0, 0x24, 0x92, 0x14, 0x23, 0xA6,
0x6C, 0xD3, 0xE1, 0x62, 0x79, 0x5F, 0xFC, 0x2D, 0xA5, 0x3A, 0xBE, 0x0E, 0xFD, 0xBC, 0x76, 0xCF,
0x5B, 0x2F, 0x7E, 0x5C, 0x86, 0x35, 0x58, 0xE9, 0xC1, 0x20, 0x63, 0x0D, 0xA5, 0xDA, 0xC6, 0x5E,
0x3F, 0x60, 0xCE, 0x43, 0xCE, 0x2C, 0xEB, 0x0A, 0x77, 0x32, 0x1F, 0xA0, 0x33, 0x4C, 0x02, 0xA2,
0x4F, 0x05, 0x37, 0x06, 0xCD, 0x0F, 0xD2, 0x82, 0x79, 0x4D, 0xA4, 0x66, 0x31, 0x31, 0xC5, 0xE2,
0x58, 0xAD, 0xA6, 0x49, 0x2A, 0xF8, 0xC4, 0x7A, 0x60, 0xC1, 0x33, 0xC9, 0x3A, 0x68, 0x6C, 0xFE,
0x51, 0x58, 0x47, 0xB5, 0xA4, 0xBE, 0xB0, 0x97, 0xA5, 0x24, 0x89, 0x4E, 0x26, 0xEA, 0xE0, 0x9C,
0xA1, 0xD7, 0xD5, 0x80, 0x7F, 0xAD, 0x91, 0x17, 0x82, 0x1E, 0x1F, 0xB6, 0x14, 0x6B, 0xCA, 0xA6,
0x48, 0xE5, 0x9A, 0xB1, 0x1A, 0x50, 0x5D, 0x4E, 0x8E, 0x44, 0xBF, 0xC5, 0xC8, 0x85, 0x71, 0xD5,
0x31, 0x1D, 0x4A, 0x92, 0x43, 0x25, 0xBB, 0x49, 0x2C, 0x42, 0x42, 0xD0, 0xAE, 0xA2, 0x11, 0xA5,
0xE8, 0x76, 0xA5, 0x9F, 0x69, 0x3E, 0x7D, 0xC2, 0x5D, 0x37, 0x58, 0x34, 0xD0, 0xAE, 0xE1, 0xDA,
0x88, 0xB5, 0x2A, 0x69, 0x3D, 0xC3, 0xD4, 0x60, 0x0C, 0xB7, 0x8B, 0x40, 0x64, 0x7B, 0x17, 0xE9,
0x34, 0x97, 0x04, 0xE6, 0x41, 0x9C, 0x5B, 0xC0, 0x9B, 0xF5, 0x37, 0xE8, 0x8F, 0x15, 0xDF, 0x60,
0xA6, 0x6F, 0x1C, 0xAF, 0x76, 0xDF, 0x71, 0x0F, 0x77, 0x00, 0xD8, 0x99, 0xA1, 0x6F, 0x89, 0x2B,
0x1D, 0xF9, 0x54, 0x92, 0xAF, 0x39, 0x04, 0xDB, 0xAC, 0x4D, 0x39, 0x44, 0x4F, 0xE6, 0xBF, 0xC5,
0x10, 0xBE, 0x50, 0xC4, 0x6E, 0x4E, 0xFE, 0x3B, 0xFD, 0x96, 0x6C, 0xFC, 0x61, 0x6B, 0xDD, 0x03,
0x15, 0x80, 0x76, 0x60, 0x23, 0x95, 0x74, 0x96, 0x1D, 0xF5, 0xB6, 0xBF, 0x7A, 0xEC, 0x22, 0xB7,
0x11, 0x1A, 0x63, 0xB3, 0x8D, 0x64, 0x4D, 0x7B, 0x26, 0x01, 0xD3, 0x35, 0x2A, 0x4A, 0xC0, 0x98,
0xA0, 0x6E, 0x04, 0xE0, 0xAD, 0x12, 0xC0, 0x7C, 0x63, 0x4D, 0xEF, 0x9E, 0x64, 0xF1, 0x18, 0x03,
0x63, 0x53, 0xDF, 0xCD, 0x6D, 0xF6, 0x8C, 0x91, 0x27, 0x20, 0xA1, 0x95, 0xB5, 0x1E, 0x65, 0x1B,
0x87, 0xCD, 0xE9, 0x2D, 0xBC, 0x69, 0x06, 0xA5, 0x18, 0xDD, 0x92, 0xB0, 0xA7, 0x66, 0x7C, 0x63,
0x3D, 0x07, 0x92, 0xFB, 0x29, 0x2E, 0x9D, 0x78, 0x3B, 0x71, 0xEF, 0x20, 0xCD, 0x24, 0x99, 0x2F,
0x49, 0x98, 0x92, 0xF0, 0x2A, 0x17, 0x82, 0x61, 0x20, 0x4A, 0x7A, 0x2C, 0xC5, 0x1D, 0x25, 0x69,
0x12, 0xF4, 0x3E, 0x43, 0x02, 0x84, 0x9F, 0x9B, 0x53, 0x2D, 0x29, 0x10, 0x85, 0x8E, 0x18, 0x2C,
0x29, 0x03, 0x32, 0x61, 0x39, 0xDD, 0x27, 0x22, 0x81, 0x77, 0xD7, 0x0A, 0xB6, 0x84, 0xE3, 0x4E,
0x48, 0x79, 0xBB, 0x13, 0x05, 0x67, 0xB1, 0x30, 0xAE, 0x4D, 0xEF, 0x02, 0x28, 0x37, 0xD2, 0xCD,
0x25, 0xC6, 0x12, 0x06, 0x1F, 0xCA, 0x55, 0x03, 0x69, 0x13, 0x5F, 0x6D, 0xA2, 0x0F, 0xBB, 0xFC,
0x50, 0x17, 0x5D, 0xE1, 0x45, 0x7A, 0xB2, 0x8B, 0x96, 0xBB, 0xF0, 0x7A, 0xAB, 0xAB, 0x3C, 0x3D,
0x64, 0x4E, 0x49, 0x2E, 0xA4, 0x24, 0x77, 0x0E, 0x12, 0xDE, 0x57, 0xE2, 0xE9, 0x93, 0x9C, 0xAA,
0x8C, 0xEE, 0x27, 0x3A, 0xC1, 0xC2, 0xE6, 0x07, 0x49, 0xFE, 0xAA, 0xB9, 0xDC, 0x45, 0xE6, 0x4C,
0x3D, 0xA4, 0x7A, 0xB9, 0xEE, 0x4C, 0xB8, 0xFC, 0x59, 0x17, 0xCF, 0x5D, 0xE9, 0x52, 0x49, 0x23,
0xA7, 0x6F, 0x23, 0x90, 0xA7, 0x17, 0x6C, 0xEF, 0xD2, 0xE9, 0xDE, 0x12, 0x98, 0x4E, 0x6E, 0x99,
0x3F, 0x2D, 0x37, 0x53, 0x3D, 0x31, 0x37, 0x13, 0x73, 0xCE, 0x69, 0xE7, 0x88, 0xF0, 0x14, 0x6C,
0x69, 0xCE, 0x7F, 0xB0, 0x38, 0xC6, 0x1D, 0x23, 0xA6, 0x52, 0xFC, 0x27, 0x71, 0x2E, 0x7F, 0xC1,
0x6A, 0xFA, 0xB3, 0x9D, 0x54, 0x8A, 0xF8, 0x71, 0xB8, 0x5F, 0xFA, 0x36, 0xA9, 0x9E, 0x37, 0x64,
0x76, 0x63, 0x53, 0xC8, 0x24, 0x4B, 0xD8, 0x62, 0xF7, 0x9B, 0x64, 0x6B, 0x9C, 0x86, 0x36, 0xC2,
0x38, 0x92, 0xF7, 0xA4, 0x3B, 0xA6, 0x6F, 0xC3, 0x39, 0x86, 0x5B, 0x85, 0xD9, 0xB4, 0x55, 0x63,
0xB7, 0xDF, 0xF2, 0x04, 0x96, 0xB3, 0xE0, 0x28, 0x25, 0x51, 0x08, 0x14, 0x63, 0x2C, 0x4C, 0x17,
0x6E, 0x9F, 0xDB, 0x00, 0x3E, 0x35, 0x5F, 0xDD, 0x5A, 0x8B, 0x29, 0xFC, 0xEA, 0x63, 0xA2, 0xF6,
0xFE, 0xB7, 0x81, 0xCE, 0x14, 0x87, 0xB1, 0xBC, 0x9A, 0x5E, 0x69, 0xCA, 0xB2, 0x7C, 0x8E, 0x80,
0x9E, 0x79, 0x7D, 0x27, 0x8E, 0xB6, 0x90, 0xE9, 0xA0, 0x9D, 0xF5, 0x8A, 0x19, 0x4B, 0x62, 0xC1,
0xE3, 0x49, 0x11, 0xF8, 0xF8, 0x2C, 0x5D, 0x9A, 0x59, 0x58, 0x3F, 0x12, 0x5A, 0xA5, 0xB8, 0xDA,
0x7B, 0x69, 0x73, 0xF1, 0xBB, 0x76, 0x89, 0x44, 0xE3, 0xDB, 0xFA, 0x92, 0x5D, 0x5D, 0x22, 0xAC,
0x2B, 0x93, 0x04, 0x12, 0xFA, 0x28, 0x24, 0x7E, 0x25, 0x09, 0xAB, 0x22, 0xA6, 0x05, 0x8E, 0x19,
0x01, 0x94, 0x94, 0x55, 0xF1, 0xFA, 0x49, 0xB6, 0xAD, 0x5E, 0x2B, 0x6D, 0xD2, 0x6A, 0x58, 0xDB,
0x48, 0xC4, 0x3C, 0x98, 0x99, 0x0A, 0x93, 0x6B, 0x20, 0x19, 0xC4, 0xDD, 0xF8, 0x55, 0x59, 0x29,
0x8C, 0x4A, 0xEE, 0x3D, 0xA7, 0x4B, 0x4A, 0x9A, 0x94, 0x21, 0x0A, 0x11, 0xAD, 0x4A, 0x78, 0x8D,
0x4E, 0xC5, 0x5A, 0xAE, 0x59, 0xC6, 0xEF, 0x70, 0x4F, 0x8F, 0x7B, 0x87, 0xB4, 0x08, 0xA7, 0x19,
0x17, 0xBB, 0x0F, 0xD2, 0xC7, 0x27, 0x1D, 0x37, 0x85, 0xBD, 0x43, 0x9F, 0xF0, 0x10, 0x17, 0x33,
0xC7, 0xD7, 0x8F, 0x48, 0xD2, 0xA3, 0x2B, 0x06, 0x40, 0x20, 0x96, 0x40, 0x2C, 0xBA, 0xD0, 0x37,
0x2E, 0xBE, 0x21, 0x18, 0x68, 0x83, 0x15, 0x36, 0xA8, 0x50, 0x6F, 0xDB, 0x65, 0x56, 0x91, 0xB7,
0xEE, 0xC5, 0x70, 0x57, 0x31, 0x08, 0xF6, 0xFC, 0x09, 0x70, 0x02, 0xF0, 0x5D, 0x4E, 0x0E, 0x43,
0xD0, 0xDC, 0xB0, 0xF0, 0x75, 0x27, 0xE6, 0xAD, 0xF0, 0x24, 0x1B, 0x4A, 0xFA, 0x6D, 0x4B, 0xF0,
0x8B, 0xA7, 0x5C, 0x49, 0xCA, 0x3C, 0xA3, 0xB8, 0x14, 0xA9, 0x44, 0x7F, 0x48, 0x92, 0x2F, 0x15,
0x15, 0x07, 0x3A, 0x67, 0x74, 0xFD, 0x9B, 0xC2, 0x31, 0x8F, 0xCC, 0xB4, 0xB3, 0xD6, 0x9D, 0x76,
0x43, 0x59, 0x32, 0xA3, 0x1E, 0xF7, 0x75, 0x92, 0xEF, 0x04, 0x74, 0x59, 0x66, 0xDB, 0x06, 0xB5,
0xA4, 0x5D, 0x33, 0x2B, 0x3A, 0x2A, 0x23, 0x14, 0x40, 0xA7, 0xEC, 0x25, 0xC8, 0x44, 0x47, 0xA1,
0x5A, 0x3A, 0xBD, 0xAD, 0x9D, 0xDD, 0xE3, 0x0E, 0x3C, 0xDA, 0x8B, 0xF5, 0xB8, 0xF2, 0xF9, 0xB8,
0xF0, 0x92, 0x6F, 0xDD, 0xA6, 0x89, 0xD3, 0xA5, 0x64, 0x80, 0xDD, 0xC7, 0xE1, 0xCB, 0xF6, 0x38,
0x85, 0xE3, 0xFA, 0xD5, 0x1E, 0x53, 0xDE, 0xA3, 0xDA, 0x7E, 0xD6, 0x7C, 0x0E, 0x3A, 0xBA, 0xBC,
0xEB, 0x78, 0xBB, 0xB7, 0x01, 0x18, 0xB7, 0x47, 0xC7, 0xFE, 0xBE, 0xA6, 0x37, 0x90, 0x4E, 0xC0,
0x21, 0x0F, 0xF1, 0x56, 0x0F, 0xF9, 0x99, 0xF4, 0x53, 0x12, 0x00, 0x08, 0x7C, 0x01, 0xB8, 0x1F,
0x62, 0x20, 0x78, 0x9B, 0xE1, 0x78, 0xA8, 0xFE, 0x4F, 0x37, 0x58, 0x4D, 0xED, 0x57, 0x7E, 0x7C,
0x90, 0x33, 0x5D, 0xB6, 0x35, 0xCC, 0x81, 0x5B, 0x94, 0xCC, 0xC3, 0xA7, 0x24, 0xD5, 0x3F, 0x6E,
0x0C, 0xCA, 0x5B, 0x9A, 0xE9, 0x5C, 0x6C, 0x5D, 0xDD, 0xA4, 0xD7, 0x3B, 0xA6, 0x57, 0x45, 0xD7,
0x61, 0xB5, 0x42, 0xC5, 0x7C, 0xE2, 0xDB, 0x34, 0x1D, 0x56, 0x9C, 0xB9, 0x12, 0xF2, 0x14, 0xD1,
0xAC, 0x42, 0xAC, 0xFC, 0xA1, 0x43, 0xD4, 0x8B, 0x3F, 0x40, 0xEF, 0xA2, 0x15, 0x58, 0xA7, 0x4C,
0x0A, 0xC2, 0xDF, 0x7D, 0x09, 0x40, 0xC6, 0x92, 0x88, 0xFC, 0xAF, 0xFB, 0x79, 0xD8, 0x65, 0x42,
0x6B, 0x96, 0xF8, 0x08, 0x5A, 0x60, 0xDD, 0x12, 0x2A, 0x06, 0x15, 0x85, 0x62, 0xF4, 0xB7, 0x47,
0x3B, 0x2E, 0xCE, 0x85, 0x3B, 0x6C, 0xA1, 0xE2, 0x17, 0x27, 0xFF, 0x01, 0x56, 0xFF, 0x8F, 0xE3,
0x22, 0xBC, 0xCE, 0x94, 0x1A, 0x6D, 0x6C, 0x42, 0xF7, 0xB0, 0x93, 0xB2, 0x0C, 0x86, 0x4F, 0x94,
0xB9, 0xD7, 0x59, 0x6F, 0x64, 0x60, 0x9A, 0xDD, 0x3E, 0x95, 0x7F, 0x8A, 0x1E, 0xCB, 0xF4, 0x58,
0x1F, 0xF1, 0x17, 0x2F, 0x77, 0x46, 0x13, 0x4B, 0xEA, 0xDA, 0x93, 0x46, 0x63, 0xBE, 0x6E, 0x34,
0x22, 0xFC, 0x59, 0xE7, 0xEE, 0x0B, 0x6D, 0x56, 0xCC, 0x67, 0xA6, 0x79, 0xCA, 0xF6, 0x46, 0xA0,
0x0F, 0xEE, 0x41, 0xC7, 0x8F, 0x3A, 0x74, 0x02, 0x6B, 0x89, 0x9F, 0x05, 0x9B, 0x32, 0x1E, 0xCB,
0xAD, 0xE3, 0x6E, 0x37, 0x3B, 0x4A, 0x58, 0xA6, 0x15, 0x33, 0x1B, 0x83, 0x86, 0xC9, 0x16, 0xC4,
0x44, 0x87, 0x81, 0xFC, 0xA8, 0x4A, 0x5F, 0xED, 0xC1, 0x12, 0xD1, 0x35, 0x7A, 0xE5, 0xAF, 0xC0,
0x74, 0x1E, 0xB7, 0x26, 0x89, 0x41, 0x3D, 0xDD, 0xB3, 0xA4, 0x6F, 0x91, 0x5D, 0xE3, 0x8F, 0x7B,
0x28, 0xCC, 0x51, 0x9D, 0x1E, 0x06, 0xD9, 0x35, 0x51, 0x99, 0x16, 0x41, 0xEB, 0x37, 0xF4, 0xF3,
0x62, 0x4A, 0x8C, 0x64, 0x13, 0xC5, 0x50, 0xD7, 0xA3, 0x12, 0x97, 0x33, 0xC9, 0x0B, 0x1C, 0x0C,
0x89, 0x3C, 0xF8, 0x5C, 0x32, 0xCF, 0x45, 0x75, 0x5A, 0x58, 0x9C, 0x6A, 0x4E, 0xCF, 0x33, 0xF9,
0x16, 0x46, 0x5D, 0x63, 0xF7, 0x0A, 0x71, 0xEF, 0x8F, 0xD9, 0xD9, 0x27, 0x44, 0xBF, 0x02, 0x83,
0x53, 0x92, 0x98, 0x26, 0xDB, 0x23, 0x2A, 0xF3, 0x3F, 0xF2, 0x86, 0xFB, 0x82, 0xA0, 0xE7, 0xC0,
0x90, 0x63, 0x3E, 0xE7, 0xCE, 0xA1, 0x24, 0x55, 0x1C, 0xBD, 0x7F, 0x21, 0x62, 0xF6, 0x7B, 0x83,
0xA3, 0x9C, 0x6A, 0x7B, 0x30, 0xA1, 0xCE, 0x41, 0x69, 0x3B, 0xDC, 0xC2, 0x06, 0xA9, 0x60, 0x42,
0xBD, 0x03, 0xDB, 0x3B, 0x4F, 0x68, 0x5F, 0x48, 0xAE, 0x10, 0xBD, 0x0F, 0xFF, 0x1E, 0xBA, 0x1D,
0xD3, 0x66, 0xE8, 0x26, 0xF0, 0x9B, 0x41, 0x48, 0x24, 0x95, 0xC9, 0xDF, 0x17, 0xD3, 0x4D, 0x24,
0xFB, 0x72, 0xFC, 0x31, 0x17, 0x9C, 0xDE, 0x23, 0x6B, 0xF9, 0x7B, 0x9C, 0x62, 0xA7, 0x7F, 0x9D,
0x86, 0x38, 0xED, 0xC8, 0xB8, 0xC0, 0x83, 0xB2, 0x03, 0x93, 0x1E, 0x3C, 0x76, 0x2B, 0x65, 0x5E,
0x92, 0xB8, 0x43, 0xC4, 0xEA, 0x70, 0x7A, 0xBB, 0xA0, 0x4A, 0x9A, 0xE0, 0xE6, 0xBF, 0x9F, 0x12,
0x51, 0x7B, 0x71, 0x6A, 0xE8, 0x4A, 0x90, 0x6E, 0xA4, 0x26, 0x31, 0xBF, 0x05, 0xF0, 0x6C, 0xAE,
0xE0, 0x18, 0xE6, 0x51, 0x93, 0xC9, 0x39, 0x36, 0x4E, 0xD6, 0xA1, 0xDB, 0x87, 0x10, 0x0E, 0x24,
0x8C, 0x0B, 0x5A, 0x31, 0xC4, 0xEC, 0x8C, 0x1B, 0x57, 0x29, 0x82, 0x01, 0x94, 0x44, 0x71, 0x88,
0xB8, 0xFC, 0x1E, 0xD3, 0x17, 0xD6, 0x60, 0xAF, 0x0B, 0x89, 0x16, 0xA3, 0x09, 0xC1, 0x88, 0xAD,
0x38, 0xE5, 0x78, 0xAB, 0x58, 0x94, 0xDF, 0x71, 0xFF, 0x12, 0xD6, 0xCB, 0x1D, 0xE8, 0xA5, 0x71,
0x65, 0x2F, 0x4B, 0xBB, 0xB3, 0x00, 0x7B, 0x7F, 0xDD, 0xEE, 0x78, 0xC7, 0xF0, 0x66, 0x39, 0xEC,
0x36, 0xF8, 0x0B, 0xF6, 0xC3, 0xED, 0xC7, 0xBF, 0xA3, 0xE9, 0x40, 0x91, 0x01, 0x5C, 0x3E, 0x02,
0x3A, 0x65, 0xD0, 0xCB, 0x4C, 0x63, 0x6A, 0xCF, 0xD1, 0x54, 0x33, 0xDB, 0xA6, 0x5A, 0x39, 0x9A,
0x53, 0x56, 0x56, 0x95, 0xA3, 0x88, 0x19, 0x83, 0x7D, 0x34, 0xD5, 0x9E, 0x60, 0xDF, 0x3C, 0xD5,
0x06, 0x32, 0xE7, 0x69, 0x30, 0x2D, 0xB7, 0xD6, 0x09, 0x1B, 0x27, 0xDB, 0xD3, 0x3C, 0xAA, 0x2D,
0x24, 0x8B, 0x27, 0x48, 0xAD, 0xE9, 0x91, 0xE1, 0x28, 0x0F, 0x6C, 0x4B, 0x2D, 0xDF, 0xFC, 0x9F,
0x6D, 0x29, 0x65, 0x8F, 0x7C, 0xF7, 0xA1, 0xBE, 0x7C, 0x88, 0x98, 0xFD, 0xFB, 0x9A, 0x3B, 0xF1,
0xB8, 0x23, 0x80, 0x6F, 0x37, 0xF1, 0x96, 0x66, 0x0B, 0xD7, 0x6D, 0x9D, 0x65, 0xFC, 0x0F, 0xBD,
0xE0, 0xE0, 0x5F, 0x50, 0xAF, 0x2A, 0x19, 0xCE, 0x65, 0x0F, 0x19, 0x2A, 0xDE, 0x7E, 0x93, 0xCD,
0x72, 0x4A, 0x76, 0xCB, 0x29, 0xD9, 0x2E, 0xA7, 0x64, 0xBF, 0x9C, 0x92, 0x0D, 0x73, 0x4A, 0x76,
0xCC, 0x29, 0xD9, 0x32, 0xA7, 0x64, 0xCF, 0x9C, 0x92, 0x4D, 0x73, 0x4A, 0x76, 0xCD, 0x29, 0xD9,
0x36, 0xA7, 0x64, 0xDF, 0x9C, 0x92, 0x8D, 0x73, 0x4A, 0x76, 0xCE, 0x29, 0xD9, 0x3A, 0x77, 0x94,
0x7B, 0xE7, 0x4C, 0xC7, 0xCD, 0x73, 0x38, 0x3B, 0xFD, 0xE8, 0xAA, 0x96, 0x29, 0x1A, 0xBD, 0x51,
0x56, 0x07, 0xB2, 0xA1, 0xCC, 0x78, 0x44, 0xEB, 0x83, 0xE7, 0xF0, 0xF2, 0x68, 0x6D, 0xD0, 0x6F,
0x96, 0xD7, 0xF4, 0x95, 0x33, 0xA3, 0xDB, 0xD9, 0xAA, 0xBD, 0x8D, 0x5A, 0xA7, 0x4A, 0x2F, 0x1C,
0xFE, 0xB4, 0xF6, 0x9A, 0xEE, 0x03, 0x5C, 0xCE, 0xAD, 0x5E, 0xC1, 0x65, 0xDA, 0xE2, 0xF2, 0xB0,
0xF1, 0x71, 0xA9, 0xEB, 0xF4, 0x9E, 0x3E, 0x84, 0xF6, 0x6F, 0x37, 0x61, 0x61, 0x7D, 0x87, 0xE4,
0x83, 0xD1, 0xEF, 0x45, 0x4E, 0x18, 0x3B, 0x90, 0x3E, 0x03, 0x7E, 0x13, 0xBE, 0xC3, 0x72, 0x09,
0x93, 0x7E, 0xA9, 0x14, 0xDB, 0x8B, 0x7E, 0x73, 0xFB, 0xF7, 0xBC, 0x77, 0x00, 0x3B, 0xC9, 0x0F,
0xDC, 0x36, 0xCE, 0xD2, 0xE3, 0x25, 0x53, 0x72, 0x2C, 0x16, 0x1F, 0x00, 0x6C, 0xD3, 0x9A, 0x1B,
0xDC, 0x44, 0x7C, 0x1B, 0xCE, 0x31, 0x3A, 0xC8, 0x43, 0x93, 0xAF, 0x34, 0xC1, 0xC3, 0x8E, 0xBE,
0x53, 0xA3, 0x37, 0xCD, 0x15, 0xB3, 0x51, 0x4F, 0xB7, 0x92, 0xFC, 0x65, 0x90, 0xA8, 0xE0, 0x63,
0xE6, 0x37, 0xA1, 0x0F, 0x4E, 0x72, 0x64, 0xEC, 0xAC, 0x6C, 0xAC, 0x97, 0x2D, 0x6E, 0x64, 0x62,
0x50, 0x90, 0x2F, 0x9E, 0x13, 0x6A, 0xB2, 0x1F, 0x53, 0x0A, 0x87, 0xDC, 0x40, 0x49, 0x0E, 0x62,
0x40, 0xF4, 0x37, 0x79, 0x16, 0x8C, 0x1A, 0x2C, 0x83, 0xBA, 0x03, 0x30, 0x57, 0x52, 0xC4, 0xF2,
0x9F, 0xB4, 0xF4, 0xDD, 0x26, 0xFC, 0x41, 0x84, 0xEC, 0x77, 0x98, 0x7C, 0xD5, 0x47, 0xC5, 0x8C,
0x23, 0x6C, 0xBB, 0xD0, 0x38, 0xE2, 0xA4, 0x6D, 0xBF, 0xAF, 0x64, 0x47, 0xC7, 0xCC, 0x42, 0xCD,
0xB4, 0xE0, 0xC1, 0x40, 0x0B, 0x5F, 0xA9, 0xD1, 0x59, 0xD8, 0x05, 0xF7, 0x4D, 0x64, 0x56, 0x3F,
0x34, 0x1F, 0xD9, 0x58, 0x3A, 0xF3, 0x98, 0x28, 0x95, 0xED, 0x7E, 0x27, 0x03, 0xB6, 0xC8, 0x7F,
0x73, 0x14, 0xDD, 0x11, 0x95, 0x90, 0xE6, 0x36, 0xCC, 0x89, 0x92, 0x24, 0x9C, 0x12, 0x1F, 0x1C,
0xD9, 0x80, 0x42, 0xCF, 0x75, 0x7C, 0x97, 0xBF, 0xE0, 0x20, 0x62, 0x50, 0xD2, 0x39, 0xF8, 0x34,
0x21, 0x9A, 0xD2, 0x9B, 0x99, 0x43, 0x30, 0xFE, 0x18, 0x8E, 0xDE, 0x60, 0xE0, 0x96, 0x51, 0xBF,
0x2C, 0x5D, 0xF4, 0x99, 0xC9, 0x6B, 0x15, 0xF2, 0x17, 0x3C, 0x86, 0xE9, 0x15, 0x83, 0xAC, 0x3F,
0x48, 0x6F, 0x1C, 0x7F, 0x60, 0xB7, 0x1B, 0x53, 0xFF, 0xE0, 0x16, 0x61, 0xC2, 0x0B, 0xE1, 0x1D,
0x12, 0xE6, 0x5F, 0x9A, 0x05, 0x73, 0xEF, 0xFD, 0x14, 0x93, 0x6B, 0x7C, 0x8A, 0x10, 0x1B, 0x70,
0x7A, 0xC1, 0xF9, 0x0F, 0x5D, 0xB8, 0xBC, 0x89, 0xA2, 0xDA, 0xB9, 0x60, 0x7F, 0xCD, 0x22, 0x7D,
0xB6, 0x5F, 0xB3, 0x80, 0xEC, 0xF5, 0xEC, 0x32, 0x87, 0xDB, 0xCB, 0x2C, 0xE9, 0xCB, 0x4C, 0x4F,
0x0A, 0xEB, 0xF8, 0x66, 0xE3, 0x6D, 0xDA, 0xF4, 0x65, 0x6E, 0x5F, 0xAB, 0x05, 0x0D, 0x60, 0x5F,
0x05, 0xC3, 0xC5, 0x42, 0xF2, 0xB8, 0xB6, 0xD5, 0x34, 0xEE, 0xFD, 0x74, 0x47, 0x67, 0x52, 0xA5,
0x17, 0x83, 0xE1, 0x7B, 0x56, 0x4D, 0x95, 0xE0, 0xCF, 0xF8, 0x73, 0x0A, 0x8F, 0xFD, 0x94, 0x03,
0xAC, 0x2F, 0x90, 0x25, 0xC0, 0x37, 0xAC, 0x4D, 0x16, 0xB5, 0xA1, 0x5D, 0xE2, 0x6E, 0x5B, 0x6B,
0x9B, 0x65, 0x6C, 0x86, 0x39, 0x83, 0xE5, 0xA2, 0x6F, 0x3D, 0xBE, 0xE1, 0xFD, 0x71, 0x8F, 0xCE,
0xC4, 0x5C, 0x2A, 0x00, 0x30, 0x78, 0xF0, 0x6C, 0x1B, 0x31, 0x30, 0x6E, 0x7B, 0xF1, 0xE6, 0xBF,
0x40, 0xA5, 0x01, 0xA6, 0xFD, 0x32, 0x3E, 0x8B, 0x4E, 0xF1, 0x27, 0xE8, 0x96, 0x9F, 0x55, 0x5E,
0xBD, 0xA4, 0xBA, 0x38, 0xDB, 0x23, 0xA4, 0xE6, 0xE4, 0x8B, 0x9E, 0xA8, 0x0B, 0xCD, 0x8B, 0xCC,
0x03, 0x07, 0x78, 0x78, 0x9B, 0x63, 0xAA, 0xF6, 0xBD, 0xFC, 0x7E, 0xED, 0xAF, 0x33, 0xD8, 0xFC,
0x29, 0xB3, 0xA6, 0x54, 0x3C, 0x8A, 0xF3, 0x37, 0x03, 0x3E, 0xA8, 0x5F, 0x23, 0xE1, 0x85, 0xD7,
0xA4, 0xEF, 0x47, 0x5E, 0x98, 0x4E, 0xA3, 0xFD, 0x89, 0x8F, 0x93, 0x44, 0xEC, 0xB8, 0xA4, 0x78,
0x8F, 0x2A, 0x4F, 0x22, 0xE2, 0x2A, 0x3D, 0xD9, 0xCB, 0x8F, 0x11, 0xA4, 0x3F, 0xA1, 0x77, 0x32,
0xBA, 0x4E, 0x97, 0x89, 0x50, 0x9C, 0x27, 0xFD, 0x76, 0x84, 0x76, 0x95, 0x59, 0xF8, 0x94, 0xB3,
0x75, 0xBA, 0xC9, 0xC1, 0xC9, 0x1F, 0xF6, 0x5C, 0xF0, 0x32, 0x3D, 0x84, 0xC6, 0xAB, 0xA8, 0xD4,
0x25, 0x55, 0x05, 0xAF, 0x0B, 0x1B, 0x1A, 0x6D, 0x57, 0x44, 0xD1, 0x6B, 0x94, 0x5B, 0xFC, 0x9E,
0x30, 0x4E, 0x74, 0xF2, 0xAB, 0x4E, 0xA8, 0x6A, 0x1A, 0x85, 0x7C, 0x17, 0xFF, 0xE7, 0xB9, 0x71,
0x35, 0x4F, 0xA0, 0x47, 0x51, 0xD4, 0x50, 0xA5, 0xE2, 0xAF, 0x9F, 0x50, 0xD1, 0x3A, 0x5B, 0x8D,
0xAE, 0x2C, 0xD9, 0x6E, 0x1F, 0x6E, 0xD0, 0x17, 0xD9, 0x53, 0xD9, 0x49, 0xA9, 0x9F, 0x81, 0x47,
0x4F, 0x42, 0xD1, 0x83, 0x8E, 0xD0, 0xE6, 0x92, 0x4B, 0x17, 0x9C, 0xC4, 0xCC, 0x0D, 0x98, 0xB9,
0xC4, 0xCE, 0xDC, 0x77, 0xDB, 0x9B, 0x8E, 0x75, 0xC0, 0x3A, 0xE3, 0xE5, 0x48, 0x5E, 0xC3, 0x33,
0xED, 0xA9, 0x8A, 0xB9, 0xA5, 0x8E, 0x1F, 0x4C, 0x31, 0xBF, 0xC0, 0xEC, 0x13, 0x49, 0xE1, 0x4F,
0x0B, 0xBA, 0xC8, 0x5C, 0x49, 0x2E, 0x69, 0xB1, 0xAE, 0xA5, 0x68, 0x78, 0x94, 0x0C, 0xC3, 0xCF,
0x94, 0xBE, 0x89, 0x07, 0x52, 0xD9, 0x4F, 0x9C, 0x8D, 0xDE, 0xBC, 0x53, 0x36, 0xD4, 0x26, 0x4F,
0xED, 0xDE, 0x05, 0x22, 0xAA, 0x1B, 0x1A, 0x72, 0x2E, 0xE2, 0x56, 0x92, 0x2E, 0x71, 0x63, 0x10,
0x75, 0xDE, 0xED, 0xFF, 0x33, 0xE6, 0x1D, 0xB4, 0xC2, 0xDD, 0x04, 0xDC, 0x08, 0x3F, 0x99, 0x70,
0xDD, 0xE4, 0x78, 0x9E, 0x1B, 0xE2, 0x67, 0x27, 0xEF, 0xBA, 0xF2, 0x33, 0x0C, 0xD9, 0x33, 0xEF,
0x20, 0x53, 0xEF, 0xBD, 0x0C, 0x41, 0xC1, 0x4C, 0x54, 0x0D, 0xB2, 0xDC, 0xF3, 0x5C, 0xBB, 0xE5,
0x67, 0xEF, 0x79, 0x4D, 0x0E, 0x98, 0xCE, 0x2C, 0x4C, 0x43, 0x4F, 0xBE, 0x54, 0x85, 0xF4, 0x0D,
0x42, 0x42, 0x9B, 0xB7, 0xC1, 0xA1, 0x83, 0x69, 0x3F, 0xC8, 0x87, 0xB7, 0x62, 0x93, 0x87, 0x66,
0xED, 0x94, 0xE4, 0x25, 0x56, 0x92, 0xE8, 0x40, 0x25, 0xEC, 0x25, 0x1F, 0xF3, 0x59, 0x53, 0xF5,
0x0D, 0x29, 0x4C, 0xF6, 0x3D, 0x29, 0x0F, 0x6F, 0xDC, 0xC0, 0xDE, 0x32, 0xC7, 0xEE, 0x8A, 0x6C,
0x60, 0xCF, 0x24, 0xA7, 0x48, 0xD2, 0x89, 0x62, 0xB9, 0xE0, 0x06, 0xF6, 0x65, 0x89, 0x00, 0x40,
0xD1, 0x3E, 0x69, 0xB2, 0xF8, 0x09, 0x79, 0x78, 0x6E, 0xF9, 0x7B, 0x72, 0x04, 0xF9, 0x61, 0xE4,
0x06, 0x80, 0x62, 0x40, 0xC7, 0xA1, 0x81, 0x31, 0x91, 0x33, 0x2B, 0x3B, 0xE7, 0x2F, 0x57, 0x4C,
0x37, 0x91, 0xA1, 0xF6, 0x78, 0xB9, 0xF3, 0xBB, 0x78, 0x53, 0xE2, 0xBC, 0xCE, 0x2E, 0xCB, 0xF3,
0xFF, 0x9F, 0x3C, 0xC1, 0x71, 0x02, 0xBB, 0xA7, 0x4E, 0xE0, 0x73, 0xEA, 0x20, 0x41, 0xE5, 0x29,
0x13, 0xF8, 0x8E, 0x9D, 0xC0, 0x15, 0x9B, 0x66, 0xBF, 0xBA, 0xFE, 0x06, 0x54, 0x46, 0x2C, 0x8A,
0x0F, 0x0E, 0xA6, 0x64, 0x2C, 0x5D, 0xEB, 0xAB, 0x0A, 0x5E, 0xA5, 0x81, 0xA4, 0xA2, 0x53, 0xF5,
0x48, 0x8A, 0xCF, 0x61, 0x2B, 0x6F, 0x70, 0xA8, 0xC2, 0x1C, 0x38, 0xA8, 0xD6, 0x76, 0x4C, 0x36,
0x9C, 0x90, 0x57, 0xEA, 0x3D, 0xBE, 0xDD, 0xE8, 0xCA, 0x78, 0x25, 0xD5, 0x79, 0xC5, 0xD8, 0x41,
0x58, 0x03, 0x23, 0x75, 0x6E, 0xBD, 0xC6, 0xED, 0x68, 0x10, 0x29, 0xB1, 0xF6, 0xC2, 0x71, 0x95,
0x9F, 0xFF, 0x26, 0x7F, 0xB6, 0x40, 0x8D, 0x62, 0x84, 0x85, 0xE7, 0xBE, 0x8B, 0xEF, 0x77, 0x3F,
0xC4, 0xBD, 0x30, 0x3C, 0xC2, 0xE5, 0x66, 0x5B, 0x52, 0xF2, 0x17, 0x48, 0xC0, 0x16, 0x8C, 0x3C,
0x73, 0xF7, 0x0A, 0xCD, 0x1E, 0xA7, 0x17, 0x7F, 0x19, 0x90, 0x3C, 0xE1, 0x5E, 0x28, 0xA5, 0xCF,
0x54, 0xCA, 0xDF, 0x98, 0xEE, 0xFE, 0x17, 0xC9, 0x33, 0x26, 0x63, 0xE6, 0x40, 0x41, 0xCC, 0x08,
0x13, 0x12, 0x9D, 0xED, 0x1D, 0xD3, 0x6C, 0xA5, 0x83, 0x6E, 0xCF, 0x63, 0xDF, 0xCC, 0x9F, 0x66,
0x24, 0x36, 0xBF, 0x86, 0xF6, 0x2D, 0x1E, 0x7E, 0x0B, 0x96, 0xCF, 0xBF, 0x0B, 0xFF, 0x44, 0x3F,
0xDB, 0x63, 0x5B, 0xD2, 0x59, 0x80, 0xC7, 0xD0, 0x90, 0x57, 0xCA, 0x17, 0x7B, 0xCF, 0xA9, 0x13,
0xE2, 0xFC, 0xCE, 0xA2, 0x32, 0x87, 0x5E, 0xD8, 0x33, 0x82, 0x16, 0x95, 0xCC, 0x36, 0x0D, 0xAF,
0xC3, 0x1E, 0x3D, 0x5B, 0xC8, 0x70, 0xE4, 0x47, 0x36, 0x0A, 0x09, 0x64, 0x04, 0x76, 0x77, 0x15,
0xA9, 0x33, 0xAA, 0x65, 0x30, 0xF4, 0x94, 0xCB, 0xD2, 0xBF, 0xF7, 0x92, 0x0A, 0xC0, 0x30, 0x31,
0xC8, 0x7D, 0x64, 0x9A, 0xFE, 0x4B, 0xBF, 0x68, 0xC0, 0x8F, 0x58, 0x86, 0x41, 0x17, 0x5E, 0x6B,
0x6E, 0xE4, 0x1F, 0x1B, 0x01, 0xCE, 0x41, 0x5D, 0xFA, 0xBB, 0x27, 0xFD, 0xA2, 0x01, 0x3F, 0x7A,
0xD9, 0xEF, 0x5C, 0xD8, 0x25, 0x4B, 0xE1, 0xA8, 0x1C, 0xEF, 0xCF, 0xF6, 0x5E, 0xDC, 0xDE, 0xD0,
0xB8, 0x56, 0x84, 0x1B, 0x8D, 0xD7, 0x9B, 0xDF, 0x52, 0xB4, 0x2E, 0x83, 0x7B, 0xFE, 0xD5, 0xAF,
0x77, 0x8B, 0x32, 0xFE, 0x12, 0x50, 0x2F, 0xEA, 0xCC, 0xF0, 0xF5, 0xBF, 0xC5, 0x73, 0x54, 0xF6,
0x33, 0xCA, 0x4B, 0x7D, 0xE1, 0x45, 0x81, 0x79, 0xCE, 0x18, 0x58, 0x83, 0x73, 0x4F, 0xCE, 0x15,
0xD9, 0x84, 0x84, 0xA2, 0xC7, 0x7C, 0xCC, 0x2C, 0xA1, 0x99, 0x44, 0xCB, 0xEC, 0x87, 0x2E, 0x96,
0x83, 0xA4, 0xE7, 0x35, 0x6F, 0xA9, 0x6D, 0x03, 0x82, 0x4E, 0x0A, 0x06, 0xA3, 0xBF, 0xF4, 0x03,
0x03, 0x52, 0x74, 0x8F, 0x79, 0x79, 0xB2, 0xD3, 0x84, 0xB1, 0x9E, 0xF5, 0x85, 0x06, 0x77, 0x45,
0xD5, 0xF8, 0x03, 0x03, 0x12, 0x08, 0xF6, 0x21, 0xF7, 0x8A, 0xB4, 0xB4, 0x3F, 0x43, 0x60, 0xE3,
0x53, 0x8F, 0x38, 0xE0, 0x1D, 0x6B, 0x25, 0xDC, 0xB1, 0x56, 0xF6, 0x42, 0x27, 0x3E, 0xBF, 0xBD,
0xDF, 0x51, 0x2E, 0xD6, 0x13, 0x3A, 0x0A, 0xAB, 0x71, 0x77, 0xE3, 0xB1, 0x1E, 0x5F, 0x45, 0x1F,
0xE3, 0x2B, 0x6E, 0x7C, 0x8C, 0xAF, 0xD9, 0xAD, 0x90, 0xC6, 0x40, 0x0E, 0x1A, 0x3A, 0xD1, 0xBE,
0x55, 0xF6, 0x8B, 0x91, 0xD1, 0x98, 0x5D, 0xA5, 0x95, 0x18, 0xCD, 0x18, 0x70, 0x6C, 0x13, 0x6E,
0xBF, 0x3E, 0x2D, 0x66, 0x33, 0x89, 0xD0, 0x01, 0x10, 0x58, 0x2C, 0x2F, 0x9D, 0x78, 0x06, 0x2F,
0x9A, 0x8C, 0x69, 0xE1, 0x40, 0x76, 0x2B, 0xD1, 0x07, 0x61, 0x5D, 0x67, 0x54, 0xDC, 0xC0, 0xFF,
0xE1, 0x86, 0x28, 0x73, 0x63, 0x74, 0x84, 0x10, 0x25, 0x29, 0x1B, 0x5A, 0x72, 0x78, 0xC0, 0x0F,
0xCC, 0x33, 0xE1, 0xAF, 0x0F, 0x04, 0x4D, 0xB8, 0x0E, 0x95, 0x32, 0x1D, 0x34, 0x80, 0xFA, 0x7E,
0x2B, 0xDC, 0x68, 0x8D, 0xE7, 0xC1, 0xBA, 0x2D, 0x77, 0xD2, 0xB5, 0xB5, 0xED, 0xEC, 0x09, 0x09,
0x96, 0xB0, 0xBD, 0x34, 0xA3, 0xFF, 0x4D, 0x7E, 0x2E, 0x84, 0x28, 0xC2, 0x60, 0x49, 0x6E, 0x11,
0x85, 0xFE, 0xB1, 0xC0, 0x06, 0x4B, 0xFE, 0x2F, 0xEE, 0xED, 0xF3, 0x4C, 0x7E, 0x8D, 0x6D, 0x7A,
0x74, 0x36, 0x7A, 0xC3, 0xFC, 0xC9, 0xBD, 0x8B, 0x1C, 0x00, 0x9D, 0x76, 0x09, 0x7A, 0x91, 0xC9,
0xAF, 0x93, 0xB0, 0xFF, 0x7A, 0xB5, 0x16, 0xB7, 0xFD, 0x09, 0x33, 0x9C, 0x63, 0x96, 0x30, 0xCD,
0xB9, 0x43, 0xC7, 0xCC, 0xBA, 0xB8, 0xDE, 0xA4, 0xF7, 0x26, 0x68, 0x99, 0x8E, 0x9D, 0xA4, 0x05,
0x9D, 0x82, 0xEE, 0x80, 0xB9, 0xD4, 0x25, 0x3B, 0x87, 0x9A, 0x92, 0x5D, 0xBB, 0x8B, 0x0F, 0x98,
0x75, 0xCF, 0xA6, 0x7F, 0xD5, 0xFB, 0xCD, 0x90, 0x11, 0xE9, 0xF3, 0x33, 0x76, 0x77, 0x71, 0xA9,
0x65, 0x77, 0xF1, 0xFF, 0x03, 0x9D, 0x57, 0x3F, 0x6C, 0x16, 0xC9, 0x15, 0x7F, 0xBB, 0x6B, 0xD8,
0xC4, 0x7B, 0xA7, 0xA1, 0xB0, 0x95, 0x5C, 0x82, 0x6E, 0x53, 0xA4, 0x20, 0x44, 0xF1, 0xA6, 0xB8,
0x48, 0x17, 0xC5, 0xBE, 0x59, 0xB0, 0x94, 0x2B, 0x71, 0x12, 0xDC, 0x40, 0x41, 0x0A, 0x0A, 0x4E,
0x29, 0x48, 0x79, 0x05, 0x7C, 0xBB, 0x1C, 0x05, 0x52, 0x14, 0x09, 0x37, 0x29, 0x23, 0x48, 0x74,
0x89, 0x2E, 0x96, 0x22, 0x1A, 0x0A, 0x17, 0x36, 0xBB, 0xF6, 0x57, 0x20, 0x85, 0x82, 0x05, 0x8A,
0x93, 0xE2, 0xC2, 0x0B, 0x8E, 0xCE, 0x4A, 0x28, 0x18, 0x60, 0xE1, 0xC6, 0x78, 0x76, 0x5F, 0x7E,
0x33, 0x9F, 0xBF, 0xC3, 0x0E, 0x18, 0x45, 0x37, 0xDF, 0x6A, 0xDE, 0xEE, 0xCC, 0x9B, 0x37, 0x6F,
0xE6, 0xFD, 0xDE, 0x9F, 0x8F, 0xE8, 0x6D, 0x7A, 0x3B, 0x31, 0x57, 0xEF, 0xFE, 0x7E, 0x94, 0x0E,
0xD1, 0x55, 0x3F, 0x7F, 0x0D, 0x21, 0xDB, 0x0E, 0x7A, 0xA5, 0xE8, 0x0E, 0x1E, 0x3A, 0xF8, 0x7A,
0x96, 0x01, 0xA1, 0xF1, 0xE3, 0x59, 0x8B, 0x9F, 0x19, 0x52, 0xAC, 0x93, 0xCC, 0x6B, 0xCC, 0xCF,
0xE7, 0xE7, 0xFF, 0xE6, 0x3E, 0x3A, 0x3C, 0x87, 0xDD, 0x3B, 0x9A, 0x60, 0xDB, 0xFA, 0xAE, 0x57,
0xF3, 0xB6, 0x7D, 0xB6, 0xE7, 0xC4, 0x62, 0xB0, 0x5A, 0x4E, 0x7D, 0xCD, 0xEE, 0x8C, 0x3F, 0x37,
0x3E, 0x7B, 0x5C, 0x72, 0x8B, 0xDE, 0x69, 0xD1, 0x1E, 0x9E, 0xFF, 0x2C, 0x2A, 0x4D, 0x72, 0xB1,
0xC9, 0x22, 0x35, 0x4E, 0xF1, 0x8A, 0x91, 0xD3, 0xAA, 0x17, 0x55, 0x63, 0x24, 0xEE, 0x98, 0xA4,
0xDF, 0xC8, 0xA0, 0x1E, 0xA3, 0x22, 0x54, 0xF2, 0xA8, 0x8E, 0x73, 0xE3, 0xA5, 0x51, 0xA9, 0x65,
0xF8, 0x40, 0xCB, 0x63, 0x95, 0xC9, 0xA2, 0x27, 0x46, 0x5E, 0x98, 0x39, 0x8E, 0x45, 0xBA, 0x10,
0xEB, 0x8D, 0x14, 0xCB, 0xA6, 0x17, 0xDD, 0x6D, 0xA4, 0x97, 0xCE, 0xD8, 0xD5, 0xE2, 0xAE, 0xC1,
0x0C, 0x24, 0xCB, 0x40, 0xC9, 0xB0, 0x1A, 0xF3, 0xD2, 0x42, 0xDC, 0xB7, 0x32, 0xB3, 0xA8, 0x36,
0xF1, 0x27, 0x4E, 0xF4, 0x3E, 0xF2, 0x0C, 0x05, 0x8A, 0x44, 0x4E, 0x1F, 0x10, 0x35, 0x3E, 0xF3,
0x2A, 0xF3, 0x89, 0xDE, 0x47, 0xD4, 0x50, 0x50, 0x6D, 0x8F, 0x6A, 0x0A, 0x6A, 0xFB, 0x2A, 0x2D,
0x6F, 0xA8, 0x28, 0x2E, 0x89, 0x06, 0x8B, 0x4A, 0x9A, 0xA0, 0x8F, 0xDA, 0xBF, 0x32, 0x3F, 0x64,
0xCE, 0x27, 0x76, 0x8E, 0x16, 0xFC, 0x82, 0xF9, 0x8B, 0x2B, 0xFF, 0x49, 0x77, 0x8C, 0xC6, 0xB5,
0xD4, 0x85, 0x61, 0xFC, 0x0A, 0x23, 0x9B, 0xD1, 0xB9, 0x19, 0xF0, 0x45, 0xD8, 0xB2, 0x2A, 0xBA,
0xA4, 0x8B, 0x5A, 0xBF, 0x19, 0xD8, 0x77, 0x42, 0xAE, 0x3D, 0x37, 0x23, 0x98, 0x3B, 0x9F, 0xD4,
0xF2, 0x96, 0x16, 0x8F, 0xDB, 0x40, 0x8F, 0xD0, 0x01, 0x0C, 0x2C, 0xF8, 0x0F, 0xBA, 0x50, 0xC7,
0x5B, 0x3A, 0x56, 0xD9, 0x5A, 0x25, 0xD3, 0xCE, 0x0E, 0xA7, 0x13, 0xC9, 0xC3, 0xCD, 0x76, 0x84,
0xC8, 0xE7, 0x7F, 0xEE, 0x89, 0x1B, 0x4B, 0xD0, 0x3C, 0xAE, 0xDF, 0x80, 0x19, 0x90, 0xA1, 0xBD,
0x99, 0x47, 0xE9, 0xEA, 0xEB, 0x1E, 0x30, 0x74, 0xE5, 0x5B, 0x54, 0x8A, 0xBD, 0x19, 0x22, 0xA6,
0x1F, 0x07, 0xB0, 0xEC, 0x9E, 0x0C, 0xDB, 0x2D, 0x6C, 0x29, 0xAC, 0x40, 0x63, 0xB6, 0x97, 0x03,
0x2C, 0x5C, 0xCB, 0x93, 0xD4, 0x52, 0x51, 0x4A, 0x3B, 0xFF, 0x81, 0x28, 0x97, 0x1C, 0x8D, 0x96,
0xF5, 0xE0, 0xBB, 0xAF, 0xC8, 0xCD, 0xDF, 0xBC, 0xDF, 0x52, 0x92, 0x27, 0xD7, 0x6E, 0xDF, 0xE2,
0x9C, 0x95, 0xE0, 0xF8, 0xD8, 0xA3, 0x95, 0x17, 0x3A, 0x6C, 0x65, 0xFC, 0xE1, 0xBA, 0x02, 0xD2,
0x97, 0x92, 0x69, 0x47, 0x4D, 0x32, 0xFD, 0xB4, 0x5E, 0x24, 0xBF, 0x19, 0xD0, 0xB0, 0x4E, 0xDC,
0xBC, 0x28, 0xC5, 0xED, 0x7B, 0xCF, 0x0C, 0xC5, 0x79, 0xC4, 0xCB, 0xDC, 0xC0, 0xAE, 0x3E, 0x53,
0x56, 0xD1, 0x2B, 0xCD, 0xE3, 0xD4, 0x6B, 0xB6, 0xDF, 0x14, 0x99, 0xC1, 0x60, 0x57, 0xD0, 0xD2,
0xE0, 0x6D, 0xA8, 0x28, 0xEE, 0xA4, 0xAF, 0x9C, 0xEA, 0x38, 0x54, 0xBD, 0xE4, 0x0E, 0x83, 0x66,
0x64, 0x54, 0x0E, 0x19, 0x6F, 0xDE, 0xEF, 0xA0, 0x71, 0xA8, 0xC5, 0xC3, 0xA7, 0x4F, 0x58, 0xC9,
0x36, 0x82, 0xE2, 0xCF, 0x74, 0xD7, 0x26, 0x8F, 0xFA, 0x5B, 0x4D, 0xDC, 0x98, 0x5E, 0x7C, 0xB9,
0xFF, 0x58, 0xF7, 0x9C, 0xEA, 0x4F, 0xD5, 0x92, 0x95, 0x21, 0xA3, 0xCA, 0x98, 0xE4, 0xEC, 0xB4,
0xA2, 0xE4, 0x68, 0x23, 0x65, 0xB4, 0x5A, 0x59, 0xCD, 0x7B, 0xE2, 0xF6, 0xCA, 0x33, 0x2D, 0x29,
0x2A, 0xC5, 0xEA, 0x83, 0x4D, 0x23, 0xCF, 0xE6, 0x61, 0xED, 0x43, 0x62, 0x17, 0x71, 0x09, 0x94,
0x25, 0x2A, 0xEC, 0xA8, 0x28, 0x5F, 0x1E, 0xC1, 0x6F, 0xE2, 0xD2, 0x84, 0xB5, 0xF4, 0x9A, 0xFD,
0x29, 0x3E, 0x32, 0xCF, 0xC8, 0xD4, 0xC4, 0x10, 0x53, 0xC2, 0x23, 0xE2, 0x69, 0xB5, 0x3F, 0xBD,
0x6A, 0x87, 0xA3, 0x2A, 0xB3, 0x0E, 0xB3, 0x6C, 0xE4, 0x11, 0xB8, 0x57, 0x8D, 0x39, 0x83, 0x27,
0x4E, 0x4F, 0x8F, 0x7A, 0x73, 0xD4, 0xA3, 0x96, 0x8C, 0xDF, 0x04, 0x2A, 0xA8, 0xF6, 0xA7, 0x70,
0x4D, 0x70, 0xE2, 0x6A, 0xD3, 0x64, 0x5A, 0x05, 0xEA, 0x3C, 0x4D, 0x45, 0x25, 0x84, 0xF4, 0xA2,
0x3B, 0x26, 0x68, 0x32, 0x51, 0x89, 0x95, 0x46, 0xD2, 0x92, 0x58, 0x06, 0xFB, 0x79, 0x5C, 0xF4,
0x51, 0x35, 0x45, 0x4E, 0x08, 0x2E, 0x89, 0x70, 0x99, 0xB2, 0x0C, 0xFF, 0x4E, 0x4A, 0xBD, 0x1B,
0x4D, 0x97, 0x93, 0xE7, 0xFC, 0x0A, 0xF8, 0x8D, 0x53, 0x51, 0x0B, 0x25, 0x54, 0xD4, 0x04, 0xC6,
0x4E, 0x6B, 0xCA, 0xD2, 0xA8, 0xA6, 0x39, 0x0F, 0x77, 0xE9, 0xB7, 0x18, 0x71, 0xC3, 0x98, 0x07,
0x47, 0xA8, 0x7D, 0x4D, 0xDF, 0x18, 0x9C, 0xEC, 0x40, 0xA0, 0x3C, 0x5F, 0x89, 0x2A, 0x11, 0x88,
0x0D, 0x46, 0xA8, 0x33, 0x09, 0x98, 0x7C, 0xDC, 0x91, 0x4A, 0x4A, 0x12, 0x4F, 0x0C, 0xFD, 0x40,
0x70, 0xF9, 0x67, 0x23, 0x8C, 0xD8, 0x52, 0x89, 0x92, 0x6B, 0x9F, 0xB0, 0xEA, 0x51, 0xB2, 0xA6,
0xC8, 0x37, 0xA2, 0x26, 0x30, 0xD7, 0xBE, 0x19, 0x11, 0x75, 0x52, 0xE2, 0xD3, 0x04, 0x5A, 0x94,
0xB9, 0xA8, 0xDE, 0x22, 0x7A, 0x87, 0x28, 0xBB, 0xD0, 0x15, 0x17, 0x3A, 0xF4, 0xD9, 0x91, 0x2E,
0x4B, 0x07, 0x4F, 0x2B, 0xF1, 0xD0, 0xE0, 0x31, 0x72, 0x88, 0x05, 0xB8, 0x64, 0x61, 0x99, 0x19,
0x0C, 0xD6, 0x17, 0x2D, 0xF8, 0xF3, 0x82, 0x9B, 0x8C, 0xCD, 0xCF, 0x1E, 0x9B, 0x40, 0xB5, 0x81,
0x32, 0xC1, 0x53, 0x13, 0xB0, 0x0A, 0x60, 0x9E, 0x0E, 0x5B, 0x93, 0xAF, 0x87, 0xE0, 0xBA, 0x4E,
0x38, 0x19, 0x1E, 0x0C, 0x62, 0xE9, 0xF8, 0xEC, 0xEC, 0xAF, 0xD8, 0xC6, 0x64, 0xAE, 0xED, 0x24,
0x4C, 0xB8, 0x5E, 0x52, 0x84, 0x18, 0xD4, 0x04, 0x2F, 0x8A, 0xD4, 0x2B, 0x00, 0xCF, 0x1F, 0x7E,
0x0A, 0xF1, 0x06, 0xE1, 0xE8, 0x5C, 0x44, 0x34, 0xF9, 0x5B, 0xA2, 0xF7, 0x80, 0x39, 0x07, 0xBB,
0xA0, 0xA4, 0x1F, 0x11, 0x29, 0x8A, 0x52, 0x9A, 0x24, 0x0F, 0x71, 0x8B, 0xE8, 0x63, 0x3B, 0x18,
0xA7, 0xC4, 0x14, 0xFE, 0x91, 0x26, 0x27, 0xBD, 0xFA, 0x7A, 0x44, 0xEA, 0x7D, 0xDF, 0xA2, 0x7C,
0x1B, 0xBE, 0xDB, 0xE4, 0x9C, 0xEB, 0xE7, 0xCE, 0xED, 0xB3, 0x84, 0x6F, 0x74, 0x8E, 0x30, 0x5B,
0x72, 0x82, 0xFF, 0xE2, 0x30, 0xC4, 0x6E, 0x93, 0xF0, 0x91, 0xC3, 0x95, 0xB8, 0xE9, 0xBC, 0x30,
0xBE, 0x68, 0x49, 0xCF, 0xF3, 0x52, 0xA8, 0xDF, 0xB3, 0x70, 0x27, 0x9A, 0x72, 0x64, 0x66, 0x6A,
0x3F, 0xCD, 0x2D, 0x7E, 0xBB, 0xB8, 0xC1, 0xC4, 0x5D, 0x0B, 0x51, 0x1E, 0xCE, 0x65, 0x45, 0x9D,
0xE4, 0x4F, 0x3D, 0xCE, 0x29, 0x60, 0x0A, 0xB6, 0x2A, 0x8A, 0xD6, 0x4A, 0x71, 0x0F, 0xC1, 0xF4,
0x56, 0x0D, 0xC8, 0x50, 0x32, 0x5D, 0x7B, 0x29, 0x10, 0xEA, 0xD1, 0xF8, 0x2F, 0x79, 0x8B, 0x1F,
0x41, 0x0D, 0x44, 0x5C, 0x84, 0x44, 0x1B, 0x80, 0xE1, 0x0D, 0x1E, 0xAE, 0x4D, 0x5A, 0xF7, 0x72,
0x1B, 0xC1, 0xD9, 0x00, 0x76, 0x7B, 0x02, 0x30, 0xD9, 0xB7, 0xDE, 0x4E, 0xA6, 0x08, 0x87, 0x94,
0x9B, 0xBC, 0xF1, 0xE2, 0x54, 0x09, 0xBC, 0x87, 0x2A, 0x06, 0x69, 0x3F, 0xE4, 0x2B, 0x5D, 0xF6,
0x8B, 0xED, 0x2F, 0x4B, 0xFE, 0x9D, 0x69, 0xAE, 0xB3, 0x67, 0xFC, 0x45, 0x91, 0xDF, 0xF0, 0x75,
0x54, 0x27, 0x96, 0x9C, 0xDC, 0x00, 0xDB, 0xB7, 0x86, 0x5F, 0x20, 0xBF, 0xEB, 0xB2, 0x4D, 0x67,
0x91, 0x81, 0x6D, 0xBF, 0xEB, 0xCC, 0x8B, 0x4C, 0x08, 0x0B, 0x17, 0x6C, 0x7E, 0xEA, 0xB7, 0xEF,
0xC3, 0x82, 0xF0, 0x0F, 0x64, 0x06, 0xAF, 0xB5, 0xA6, 0xC4, 0x27, 0x20, 0x1C, 0x5B, 0x57, 0xA4,
0xAC, 0xB4, 0xBE, 0xD8, 0x91, 0xD7, 0xD9, 0x79, 0x58, 0x1E, 0x0A, 0xFA, 0xCD, 0xEE, 0x18, 0x73,
0xDD, 0x7A, 0xC5, 0x00, 0x08, 0x41, 0xBB, 0x0D, 0x87, 0x40, 0x5B, 0x44, 0xD0, 0xCC, 0x80, 0xA3,
0xD0, 0x7E, 0x8B, 0x4D, 0x93, 0x0D, 0xE6, 0x95, 0x16, 0x3B, 0x26, 0xB0, 0xEF, 0x1D, 0xEC, 0xD8,
0xC6, 0x15, 0xC9, 0x65, 0x84, 0x31, 0x1C, 0x29, 0x84, 0x47, 0x62, 0x23, 0x51, 0x22, 0x37, 0x19,
0xEC, 0x22, 0x5E, 0x86, 0x00, 0x60, 0x62, 0x01, 0x62, 0x93, 0x4A, 0x56, 0x7E, 0x07, 0xE1, 0x71,
0xE9, 0x39, 0xE9, 0xB8, 0x4C, 0x1D, 0x21, 0xF7, 0x5C, 0x62, 0xBE, 0xA4, 0x25, 0x9B, 0xEC, 0xE8,
0x5C, 0xF2, 0x39, 0x94, 0x03, 0xD8, 0x49, 0x7C, 0x6E, 0x75, 0x92, 0xA9, 0xC7, 0x08, 0x3F, 0x59,
0x25, 0xE1, 0x54, 0x81, 0x0D, 0x80, 0x12, 0x31, 0xF3, 0x65, 0x68, 0xA9, 0x69, 0x81, 0x8A, 0x3C,
0xA9, 0x22, 0x0D, 0xCD, 0xB3, 0x14, 0x5B, 0xA7, 0x10, 0x8C, 0x0A, 0x01, 0x20, 0xBE, 0x8D, 0x3B,
0xA2, 0xA0, 0xB1, 0xE7, 0xC6, 0xED, 0x50, 0xE1, 0x0C, 0x23, 0x73, 0x9B, 0x3B, 0x05, 0x6C, 0xAF,
0x28, 0x6C, 0xDC, 0x31, 0x25, 0xEB, 0x80, 0xB9, 0x99, 0xCA, 0xB8, 0xDF, 0xE7, 0x76, 0x52, 0xF2,
0x3A, 0x4A, 0x0D, 0x90, 0xA7, 0x7D, 0xEE, 0x06, 0x5F, 0x76, 0x10, 0x73, 0xF5, 0xE4, 0xD4, 0x4C,
0xD0, 0x2F, 0x01, 0x65, 0xDA, 0x93, 0x38, 0xB7, 0x9A, 0x9F, 0xCF, 0x99, 0x8D, 0xB4, 0x35, 0x8B,
0x99, 0x84, 0xD8, 0x5B, 0x20, 0xC5, 0x57, 0xE4, 0x26, 0x88, 0xE4, 0x87, 0x25, 0x58, 0x90, 0xEB,
0xCB, 0xF9, 0xF9, 0x39, 0x24, 0xBC, 0x0A, 0x20, 0x15, 0x82, 0xB5, 0x82, 0xDE, 0x82, 0xCD, 0x2E,
0xA2, 0x91, 0xC7, 0x8F, 0xC1, 0x29, 0x99, 0xFF, 0x05, 0x6D, 0x53, 0x04, 0x5E, 0xF2, 0x15, 0xDC,
0xE5, 0x9B, 0x92, 0x8B, 0xCB, 0xCC, 0xF7, 0x7F, 0xD3, 0x1D, 0x0F, 0x38, 0xF5, 0xB7, 0x94, 0x67,
0x32, 0xEA, 0x89, 0xDC, 0xF3, 0x68, 0x22, 0xD4, 0xC5, 0xC5, 0x1D, 0x66, 0x46, 0xF1, 0x32, 0xAD,
0x11, 0x86, 0x6D, 0x3A, 0xD8, 0xDB, 0x87, 0xBF, 0x46, 0x7B, 0x6D, 0x94, 0xF8, 0xFF, 0x74, 0x74,
0x9E, 0x5C, 0x59, 0x36, 0x5A, 0xA4, 0xEF, 0xC7, 0xFE, 0x31, 0x7E, 0xB4, 0xCE, 0xAC, 0x4F, 0xF0,
0x1F, 0x88, 0x2B, 0xBA, 0x61, 0x28, 0x8B, 0xCB, 0xF8, 0x62, 0x4D, 0xA9, 0xD5, 0xCD, 0x33, 0xD1,
0x1A, 0x52, 0xD0, 0x72, 0x83, 0x94, 0x0C, 0x57, 0xF3, 0x5D, 0x35, 0xB3, 0x64, 0x1D, 0x0F, 0x70,
0x70, 0xD5, 0x0D, 0x1C, 0x12, 0xB8, 0xAF, 0x17, 0x64, 0xF4, 0x4C, 0x27, 0xAB, 0x55, 0x66, 0x11,
0x36, 0x36, 0xF0, 0x99, 0x0E, 0x31, 0x09, 0xD6, 0xE0, 0x79, 0xBD, 0xE4, 0x5D, 0xC3, 0x45, 0xA2,
0xC6, 0x39, 0x89, 0xB1, 0x7D, 0x33, 0x14, 0x22, 0xF7, 0x2E, 0x79, 0x0B, 0x61, 0x4A, 0x1F, 0xBF,
0x87, 0x8B, 0xC8, 0x2D, 0xE2, 0x6D, 0x7D, 0x80, 0x38, 0x76, 0xEC, 0x5D, 0x5A, 0xFA, 0x12, 0x89,
0x4D, 0x7B, 0xA7, 0xF8, 0x78, 0xC6, 0x7C, 0x0F, 0xF6, 0xF2, 0xC0, 0x9E, 0x71, 0x25, 0x2E, 0x27,
0xF4, 0x3D, 0x95, 0xDB, 0x18, 0x47, 0x76, 0x0F, 0x09, 0x44, 0x29, 0xEB, 0x38, 0x83, 0x0D, 0x87,
0x81, 0x19, 0xD5, 0x16, 0x45, 0x9A, 0x86, 0x91, 0x7A, 0xD8, 0x70, 0x9C, 0x6E, 0xB8, 0x06, 0x05,
0x4F, 0xD3, 0x13, 0xFD, 0x26, 0xEE, 0xAB, 0x36, 0xC9, 0x4D, 0x72, 0x49, 0x21, 0x53, 0x22, 0x6B,
0x57, 0x32, 0xC2, 0x51, 0x3D, 0x9C, 0x76, 0xC5, 0xE6, 0xC7, 0x43, 0xA3, 0x29, 0x6D, 0x0B, 0xE7,
0xDD, 0xDD, 0xD8, 0x2B, 0x16, 0xC1, 0xBE, 0xB4, 0x90, 0x21, 0x26, 0xB5, 0x85, 0xED, 0x24, 0x39,
0x07, 0xF8, 0x9F, 0xE6, 0x9C, 0xAF, 0xDB, 0x2D, 0x0A, 0x15, 0x3B, 0x4A, 0x38, 0x9A, 0x81, 0xF3,
0xF9, 0xC6, 0xAD, 0x75, 0x6F, 0xC8, 0x46, 0xF4, 0xEB, 0x57, 0x04, 0x9C, 0xDF, 0xBD, 0x76, 0xE9,
0x15, 0x06, 0x2B, 0xEA, 0xC0, 0x0E, 0x51, 0xF9, 0xB6, 0xA8, 0xD3, 0x24, 0x56, 0x5F, 0x74, 0x72,
0x17, 0xEF, 0x42, 0x76, 0x6D, 0xBD, 0x39, 0x40, 0xFB, 0x71, 0xFD, 0xE0, 0xF3, 0x20, 0xD1, 0xFA,
0xA5, 0xB7, 0x0B, 0x93, 0x87, 0xC9, 0xFB, 0x13, 0xA2, 0xCB, 0x16, 0x72, 0xF3, 0x5A, 0x45, 0x28,
0x3B, 0x87, 0xB1, 0x69, 0x3B, 0xC4, 0xEC, 0x58, 0x0B, 0xDC, 0x3B, 0x74, 0x7D, 0xC7, 0x21, 0x0C,
0x00, 0x45, 0x39, 0x2F, 0xD3, 0x04, 0x05, 0xB7, 0x8A, 0x50, 0x5A, 0x18, 0x5A, 0x74, 0x65, 0x5D,
0xE0, 0x92, 0x08, 0xEE, 0x66, 0x7C, 0x36, 0x9B, 0x9D, 0x75, 0x45, 0xE7, 0x3D, 0xDB, 0x35, 0xB3,
0xB3, 0xAD, 0xFD, 0x67, 0x20, 0x87, 0xCB, 0x27, 0x02, 0x35, 0x01, 0x5B, 0x7E, 0xB5, 0xBC, 0x15,
0x65, 0x47, 0x23, 0x81, 0xB2, 0x47, 0x5C, 0x44, 0x26, 0x88, 0x37, 0x74, 0xEB, 0x2E, 0x55, 0x9E,
0xFA, 0x52, 0x2F, 0xD8, 0xB7, 0x33, 0xD9, 0xB5, 0x8D, 0x66, 0x6C, 0x24, 0x5E, 0xDD, 0x6C, 0xDF,
0xF1, 0xC2, 0xE7, 0x5D, 0xF6, 0xF3, 0xF4, 0x48, 0x5B, 0x5C, 0xB9, 0x3F, 0x77, 0x20, 0x3B, 0xBB,
0xA1, 0x4F, 0x53, 0xD4, 0xD9, 0x3A, 0xF4, 0x0D, 0x05, 0x2C, 0xEA, 0x86, 0xC9, 0xA0, 0x7C, 0x43,
0x01, 0x1B, 0x75, 0xF0, 0x05, 0xF1, 0xFA, 0xD9, 0x41, 0x85, 0x3B, 0x23, 0x7C, 0x2D, 0x6F, 0x75,
0x7B, 0x33, 0xA8, 0x9F, 0xFC, 0x63, 0xF4, 0x70, 0xBE, 0xB7, 0x84, 0xA8, 0x7E, 0xB3, 0x92, 0xFF,
0x05, 0xE5, 0x93, 0x31, 0x6F, 0x13, 0x31, 0x14, 0xC7, 0xFF, 0x97, 0x53, 0x72, 0x83, 0x07, 0x23,
0x91, 0x22, 0x41, 0x07, 0x2F, 0x4C, 0x95, 0x68, 0xBE, 0x40, 0xEF, 0x7C, 0x25, 0xEA, 0xDC, 0x1B,
0x92, 0x89, 0xA5, 0x12, 0x65, 0x61, 0xC9, 0x17, 0x48, 0x7A, 0x41, 0x19, 0x18, 0x9B, 0x85, 0x15,
0x16, 0x16, 0x40, 0x02, 0xA9, 0x2A, 0x52, 0x10, 0x6D, 0x72, 0x85, 0x81, 0x81, 0x21, 0x57, 0x2A,
0xD1, 0x81, 0x21, 0xD7, 0x81, 0x76, 0x40, 0x22, 0xAE, 0x7A, 0x28, 0x2E, 0xBD, 0xE3, 0xE1, 0xA4,
0x4B, 0x17, 0x3E, 0x01, 0xB2, 0xE5, 0x67, 0xBD, 0x67, 0x3D, 0xFF, 0xDF, 0xEF, 0xD9, 0x08, 0x6C,
0xBA, 0x4B, 0x2A, 0xEF, 0x6F, 0xF0, 0x51, 0x67, 0x92, 0xE4, 0x5A, 0x4A, 0xB1, 0x49, 0xFB, 0xA4,
0x58, 0x72, 0xFF, 0xB8, 0x7C, 0x31, 0xEE, 0x5F, 0x8C, 0x5F, 0x03, 0x60, 0xCA, 0x22, 0x48, 0xC5,
0x06, 0x38, 0x53, 0xAE, 0x64, 0x87, 0xE9, 0x80, 0xBE, 0xBE, 0xD2, 0x90, 0x28, 0x74, 0x81, 0x30,
0x0B, 0xB3, 0x1E, 0xDE, 0xF9, 0x03, 0xFD, 0x30, 0x87, 0x07, 0xEF, 0xFB, 0x2E, 0x65, 0x8D, 0x2E,
0xE6, 0x40, 0x91, 0xC9, 0x0C, 0xEF, 0x9A, 0x18, 0x7C, 0xFA, 0x7D, 0x9E, 0xCA, 0x16, 0x1F, 0x7E,
0x3B, 0x9A, 0x66, 0x06, 0x04, 0x4D, 0x28, 0x33, 0x67, 0x2B, 0xE0, 0x6D, 0x16, 0xD9, 0xAA, 0x90,
0x22, 0xC3, 0x2E, 0x16, 0x00, 0xA3, 0xA7, 0x73, 0x91, 0x6A, 0x4F, 0x8A, 0x2A, 0x2D, 0x53, 0xA2,
0xFB, 0x4D, 0x36, 0x7A, 0x7C, 0x46, 0xE9, 0x7C, 0x32, 0x0D, 0x55, 0xE9, 0x34, 0xF5, 0x5A, 0x7C,
0xEA, 0xC9, 0x16, 0x3D, 0x88, 0x95, 0xC6, 0x07, 0x8A, 0x37, 0xDA, 0x56, 0x17, 0xDB, 0xB8, 0x03,
0xCA, 0x24, 0xCD, 0x36, 0x25, 0x5F, 0x12, 0xA7, 0x68, 0xAE, 0xCE, 0x69, 0xAF, 0x1E, 0xD4, 0x6B,
0x92, 0x8A, 0x75, 0xBF, 0xD4, 0xF9, 0xA2, 0xD2, 0x25, 0xE1, 0xEC, 0xA9, 0xA6, 0xB0, 0x23, 0x2D,
0xEC, 0xB8, 0xBC, 0xCE, 0x0B, 0x49, 0x93, 0xDB, 0x71, 0xEA, 0xF2, 0x6A, 0xAC, 0x9A, 0xAE, 0x28,
0x22, 0x58, 0xF7, 0x68, 0x78, 0x3C, 0x51, 0xAE, 0xE6, 0x1B, 0xF6, 0xA8, 0x3D, 0x49, 0xDC, 0x1E,
0xF7, 0xF1, 0x6F, 0x4A, 0x80, 0xA3, 0xC2, 0xCF, 0xB4, 0x98, 0x5D, 0x57, 0x3C, 0x92, 0xC8, 0x6C,
0x63, 0x16, 0x10, 0x38, 0x46, 0xAA, 0x5A, 0xCB, 0x0D, 0x21, 0x11, 0x5D, 0x0E, 0x4E, 0x87, 0xA4,
0x5F, 0xBE, 0x40, 0xC0, 0xA6, 0xA1, 0xA0, 0x05, 0x61, 0x91, 0x1F, 0x26, 0x68, 0x81, 0x3F, 0xBD,
0x77, 0x42, 0xCA, 0x10, 0xFB, 0x9F, 0x38, 0xB3, 0xDC, 0x1E, 0x47, 0xD0, 0xB7, 0xFA, 0xF2, 0xCD,
0xB3, 0xEA, 0xC9, 0xBE, 0xA6, 0x9F, 0xA5, 0x65, 0x94, 0xCE, 0x1D, 0x3A, 0x48, 0x76, 0xFE, 0x0C,
0x24, 0x0D, 0xFD, 0x42, 0x5A, 0x96, 0xB9, 0xF5, 0x00, 0xA5, 0xDC, 0xA2, 0xD4, 0x63, 0x1F, 0x63,
0xD7, 0xB5, 0x0F, 0xE2, 0x66, 0x65, 0xD5, 0x54, 0x6B, 0x3D, 0x47, 0x93, 0x75, 0x4E, 0x53, 0xDE,
0x47, 0x18, 0xD9, 0xDA, 0x10, 0xA8, 0x54, 0x9C, 0x58, 0xD7, 0x2C, 0x7F, 0x5E, 0x1B, 0x41, 0xD0,
0xF5, 0x46, 0x48, 0xC3, 0xEA, 0xD9, 0x51, 0x1A, 0x6A, 0x23, 0x5A, 0x1B, 0x04, 0xBC, 0x6D, 0xFF,
0x50, 0x44, 0xD2, 0x19, 0x45, 0xA6, 0xA9, 0x97, 0xDD, 0xFD, 0x15, 0x94, 0x7B, 0x60, 0x6D, 0x4C,
0x97, 0xB4, 0xE7, 0xB1, 0xCD, 0xF6, 0xFB, 0x84, 0x11, 0x76, 0x35, 0xEB, 0x24, 0x3D, 0xB1, 0xE2,
0xD7, 0x66, 0x1F, 0xC0, 0xCC, 0x27, 0x5B, 0x3A, 0x5C, 0x25, 0xCA, 0xB3, 0x4A, 0x67, 0xFC, 0x48,
0x79, 0xA6, 0xA8, 0x2B, 0xA6, 0x56, 0xB4, 0x82, 0xAD, 0xDC, 0x48, 0xDE, 0xBB, 0xFA, 0x6C, 0x6A,
0x45, 0xBC, 0xD5, 0x33, 0xE7, 0xF4, 0xB6, 0xD0, 0x1E, 0x9D, 0x18, 0xBA, 0x7A, 0x6D, 0x26, 0x24,
0x01, 0xD3, 0x72, 0xA7, 0x05, 0x19, 0xB3, 0x0C, 0xAD, 0xDB, 0x6E, 0x98, 0xDD, 0xE8, 0x96, 0xB0,
0x54, 0xA0, 0x46, 0x2E, 0xD0, 0xB4, 0x94, 0x13, 0x89, 0x40, 0x26, 0x37, 0xF1, 0x17, 0x75, 0x56,
0x3D, 0x6C, 0xDE, 0xC6, 0x19, 0x7E, 0xF9, 0x51, 0x11, 0x81, 0x70, 0x60, 0x86, 0x78, 0x32, 0x10,
0x02, 0x1D, 0x1B, 0xA3, 0x5C, 0x35, 0x28, 0x3A, 0x2A, 0x1A, 0x35, 0x58, 0x83, 0x3E, 0x78, 0x08,
0x60, 0x67, 0xC8, 0xD2, 0x76, 0xE9, 0x50, 0x74, 0x92, 0x7C, 0x14, 0x54, 0x40, 0x83, 0x87, 0x1A,
0x45, 0x81, 0x0E, 0x1D, 0x62, 0xA0, 0x1D, 0x12, 0x77, 0x70, 0x86, 0x1A, 0xC8, 0x20, 0x7F, 0xA4,
0xFC, 0x21, 0xC8, 0xE0, 0x21, 0xB4, 0xDD, 0x20, 0x83, 0x81, 0x9A, 0xFA, 0x29, 0x8C, 0xDA, 0x40,
0x75, 0x32, 0x2E, 0x31, 0x65, 0x1F, 0xEF, 0xCD, 0xF3, 0xDE, 0x67, 0x21, 0x28, 0x8C, 0x12, 0xBC,
0xE3, 0xFD, 0xBE, 0xF7, 0xFE, 0x3C, 0xEF, 0x73, 0x24, 0x22, 0xCA, 0x3D, 0xA5, 0x6C, 0x46, 0xEC,
0x49, 0x35, 0x94, 0x58, 0x22, 0x1D, 0x8D, 0x2F, 0x99, 0xDA, 0xEB, 0x94, 0x9F, 0xD8, 0x7A, 0xAC,
0xAE, 0x61, 0x8E, 0x87, 0x8C, 0xB9, 0xCD, 0x79, 0xA0, 0xD4, 0x10, 0xD5, 0x84, 0x1D, 0x1D, 0xD5,
0x3E, 0x7C, 0xC8, 0x74, 0x14, 0x7F, 0x5D, 0x46, 0x22, 0x80, 0x87, 0x98, 0xD9, 0xA8, 0xE3, 0xF7,
0xB6, 0xFC, 0xE2, 0x6F, 0x33, 0x73, 0xD0, 0xA8, 0xAF, 0x2F, 0x92, 0xBF, 0xB0, 0x10, 0xF7, 0x27,
0x5D, 0x76, 0xB8, 0x53, 0xAA, 0x7F, 0x5D, 0xA0, 0xDA, 0x9A, 0x88, 0xA7, 0xD5, 0x88, 0x8F, 0x7B,
0x08, 0xEE, 0x50, 0xAA, 0xE4, 0xCA, 0x1A, 0x5D, 0x58, 0x20, 0x5A, 0x2B, 0x49, 0x9E, 0x88, 0x7B,
0xC2, 0x8C, 0x62, 0x97, 0xBA, 0xA8, 0x62, 0xA2, 0xA2, 0xA5, 0xD8, 0x11, 0xA9, 0xBB, 0x87, 0x87,
0xBD, 0xBA, 0xA3, 0xB6, 0xF9, 0x61, 0xAF, 0x5A, 0x35, 0xED, 0x47, 0x4E, 0x55, 0xF9, 0x21, 0x16,
0xEB, 0xDF, 0x27, 0xCC, 0x4D, 0xC1, 0x8E, 0x34, 0x57, 0x24, 0xEA, 0xF1, 0x14, 0x8A, 0x30, 0x3B,
0xF5, 0xED, 0x7A, 0x66, 0xC2, 0x6E, 0xC8, 0x51, 0x4F, 0x3F, 0x87, 0x1D, 0xDB, 0x90, 0xCD, 0xE3,
0x35, 0x58, 0x9B, 0x7F, 0xBF, 0x86, 0x3D, 0xC9, 0xCC, 0xF4, 0xD7, 0xCB, 0x28, 0xB8, 0xA4, 0x2C,
0xD8, 0xE4, 0xDC, 0xA7, 0x76, 0x6E, 0xB6, 0x75, 0x54, 0x3F, 0xAD, 0x98, 0xED, 0xFB, 0xFE, 0x33,
0x74, 0x60, 0x63, 0x8B, 0x8E, 0xCC, 0x0C, 0x14, 0x79, 0xCC, 0x9F, 0x3D, 0xB2, 0xFF, 0x6D, 0x31,
0x22, 0x32, 0x22, 0x67, 0x89, 0x46, 0x37, 0xEA, 0x1D, 0xBE, 0xAE, 0x34, 0x87, 0x63, 0x45, 0x1F,
0x53, 0x5B, 0xF5, 0xD0, 0xC5, 0x3E, 0xF2, 0xAA, 0x29, 0xDA, 0xEC, 0x10, 0x46, 0x90, 0x57, 0x55,
0xD1, 0xA0, 0x19, 0x87, 0x66, 0x2D, 0xCD, 0x4C, 0x9A, 0x5B, 0x2C, 0x4D, 0x25, 0xCD, 0x1D, 0x34,
0x3B, 0xEA, 0x83, 0x76, 0x52, 0x8D, 0x3A, 0x69, 0x75, 0x59, 0xA5, 0x9B, 0xA5, 0x88, 0xCB, 0x3E,
0xF1, 0x71, 0x97, 0xEF, 0x66, 0xD5, 0xA6, 0x5D, 0x4A, 0xF9, 0xA5, 0x57, 0x38, 0x2A, 0xFF, 0xF4,
0x4A, 0xB5, 0xF9, 0xC1, 0x12, 0x2C, 0xE6, 0x42, 0xBA, 0x2B, 0x8F, 0xAB, 0xCD, 0x74, 0x12, 0xD9,
0xBC, 0x4F, 0x5A, 0xD5, 0xE5, 0x25, 0x57, 0x9B, 0x50, 0x5E, 0x79, 0xE8, 0x9B, 0x21, 0xB2, 0xC1,
0x2C, 0x22, 0x9F, 0x8B, 0xA7, 0xC5, 0xEB, 0x59, 0x57, 0xEC, 0x99, 0xB8, 0x4F, 0xCD, 0x2E, 0xF9,
0xD8, 0xA9, 0x75, 0xF5, 0x17, 0xAF, 0x19, 0xD2, 0x94, 0xF8, 0x76, 0x7E, 0x58, 0xE3, 0xBF, 0x91,
0xC6, 0x4A, 0xCA, 0x45, 0xB3, 0x04, 0x2B, 0x29, 0x82, 0xA6, 0xC0, 0xCF, 0x7F, 0x30, 0x98, 0xF1,
0x45, 0x68, 0xC8, 0x4D, 0xF0, 0x67, 0x38, 0x03, 0xE2, 0xA5, 0x89, 0xD8, 0x52, 0x7C, 0xAA, 0x31,
0xA1, 0x96, 0xDD, 0xBC, 0x8F, 0x6D, 0x7E, 0x17, 0x5E, 0x59, 0x76, 0x9A, 0xB7, 0xAD, 0xBA, 0x67,
0xDE, 0x51, 0x6C, 0x6B, 0xAC, 0x1D, 0x92, 0x01, 0x6B, 0x9B, 0x62, 0x88, 0x4F, 0x07, 0x40, 0x46,
0x5D, 0x34, 0x54, 0x4F, 0x6D, 0x5D, 0x22, 0xE4, 0x2B, 0x3D, 0xE5, 0x53, 0x5B, 0xDC, 0xFB, 0xB3,
0x53, 0xA5, 0xAF, 0x79, 0xC5, 0x66, 0x2F, 0x44, 0x71, 0x79, 0x36, 0x23, 0x17, 0xEF, 0x43, 0xE3,
0x6C, 0xDB, 0xA8, 0xE6, 0x6A, 0xD6, 0xF0, 0xB2, 0x55, 0xF1, 0x7F, 0xD3, 0x66, 0x37, 0xFF, 0xB2,
0x18, 0xD9, 0x4D, 0xE3, 0x92, 0x07, 0x87, 0xD3, 0xAE, 0x86, 0x47, 0x9E, 0x4B, 0x34, 0x1A, 0x67,
0x4F, 0xED, 0xE8, 0xC5, 0xDD, 0x67, 0x4D, 0xFA, 0x38, 0x3D, 0xA6, 0x7C, 0x37, 0xEF, 0x49, 0x75,
0xAA, 0x23, 0x2E, 0xB9, 0x8C, 0x07, 0x84, 0x23, 0x35, 0x00, 0x7C, 0xCD, 0x47, 0xD1, 0x2B, 0xE6,
0x1E, 0x18, 0xE3, 0x3E, 0xE7, 0x32, 0x35, 0x7A, 0x78, 0x2B, 0xBB, 0xCF, 0x76, 0x52, 0xEC, 0xF0,
0x83, 0x7E, 0x92, 0xF3, 0xEA, 0x41, 0xAF, 0x87, 0xE2, 0xDA, 0xFE, 0x9B, 0x43, 0x07, 0x18, 0x3A,
0x77, 0xF1, 0xF8, 0x41, 0x4F, 0x5A, 0xAF, 0xBE, 0xBC, 0xE5, 0x06, 0x84, 0x02, 0x76, 0xB0, 0x15,
0x5F, 0x34, 0x01, 0x5A, 0xD0, 0x03, 0x78, 0xA5, 0x73, 0xFA, 0x9F, 0xD2, 0x55, 0x07, 0x00, 0xE4,
0x2B, 0x83, 0x00, 0xEE, 0xF1, 0x87, 0x9C, 0x02, 0x13, 0xAA, 0x4D, 0x0D, 0x97, 0xC5, 0x14, 0x7E,
0x90, 0x6E, 0x6E, 0x72, 0x99, 0x6D, 0xB4, 0x67, 0xD2, 0xFB, 0xAF, 0x11, 0x2B, 0x8E, 0x75, 0xC0,
0x21, 0x60, 0x37, 0x8F, 0x0C, 0xA8, 0x81, 0x16, 0x84, 0xB4, 0x6E, 0x3F, 0x16, 0x90, 0xE6, 0x2D,
0x0E, 0xB9, 0x59, 0x21, 0x74, 0x54, 0xBC, 0xFC, 0x4C, 0x8E, 0x45, 0x2C, 0x4A, 0x59, 0x90, 0x5A,
0x09, 0x33, 0x12, 0xAC, 0x9B, 0x83, 0x00, 0x8B, 0xEC, 0x69, 0xA9, 0xE0, 0x90, 0x85, 0x19, 0x4E,
0x55, 0x95, 0x2E, 0x11, 0xFA, 0xB8, 0x07, 0x3A, 0x3B, 0x40, 0xE5, 0x9A, 0x21, 0xAF, 0xCB, 0xF8,
0x95, 0xA4, 0xA7, 0x80, 0x80, 0xE7, 0x99, 0xFF, 0x14, 0xF7, 0x9E, 0xB2, 0x03, 0x47, 0x6A, 0xBB,
0x27, 0x9F, 0xDA, 0xB8, 0xCF, 0x0C, 0x90, 0xD3, 0xAA, 0x4A, 0x35, 0x80, 0xFD, 0x33, 0xAC, 0x82,
0xBF, 0x4F, 0x2E, 0x0D, 0xEB, 0x54, 0x7C, 0x45, 0x23, 0x6F, 0xA8, 0x18, 0xF0, 0x09, 0xD6, 0x17,
0xCE, 0xA4, 0x48, 0xBE, 0x9F, 0xE1, 0x44, 0xF4, 0x52, 0x47, 0x09, 0x00, 0xF3, 0x3B, 0x68, 0x5C,
0x34, 0x34, 0x3A, 0xB3, 0x6C, 0x9E, 0x4F, 0x51, 0x27, 0xC1, 0x36, 0x39, 0x17, 0xF5, 0xBB, 0xA4,
0xA5, 0xF3, 0xAB, 0x18, 0xA8, 0xC5, 0x5A, 0x5D, 0x89, 0x15, 0x62, 0x47, 0x1C, 0x92, 0x12, 0x30,
0x94, 0x55, 0x35, 0xC0, 0xF9, 0x4B, 0x08, 0xCE, 0x3B, 0xB6, 0x59, 0x07, 0x1F, 0xB2, 0x4C, 0x4F,
0xD2, 0xFB, 0x2E, 0x1E, 0x54, 0x64, 0xEB, 0xD4, 0x67, 0xCD, 0x1D, 0xC5, 0x3E, 0xB1, 0x1A, 0xBE,
0x40, 0x18, 0x76, 0xF8, 0x88, 0x7C, 0xB0, 0x5E, 0xCD, 0x68, 0x20, 0xA0, 0x37, 0xE9, 0x42, 0xBE,
0xD9, 0x30, 0x34, 0x53, 0x4A, 0x9D, 0x39, 0x5D, 0x77, 0x94, 0x73, 0x03, 0xB4, 0x92, 0x5A, 0xED,
0x12, 0x7B, 0x95, 0xF4, 0x6A, 0x17, 0xF7, 0x13, 0x52, 0xDF, 0x34, 0x11, 0xE2, 0x91, 0xB1, 0x2C,
0x89, 0xA0, 0xE6, 0xA2, 0xEA, 0xD2, 0x47, 0x0C, 0xF5, 0xFB, 0x82, 0xD5, 0xF4, 0xBB, 0xFB, 0xC3,
0xEE, 0x82, 0xE8, 0x2B, 0x59, 0x66, 0xE4, 0x13, 0x81, 0x48, 0x0B, 0x27, 0x64, 0x92, 0xF3, 0x75,
0x84, 0xC1, 0x46, 0xB0, 0x37, 0xB1, 0x45, 0xF7, 0x1A, 0xAA, 0x7B, 0xC3, 0xC8, 0x9D, 0x7F, 0x79,
0xAB, 0x47, 0xD3, 0xE8, 0x0F, 0x41, 0x1E, 0xB7, 0x0C, 0x3C, 0x52, 0xE6, 0xD8, 0xA6, 0x4B, 0x8A,
0xE0, 0x07, 0x61, 0x6E, 0x04, 0x5A, 0xBA, 0x33, 0xFA, 0x39, 0x8F, 0x39, 0xA4, 0x3D, 0x42, 0x6D,
0x33, 0x6F, 0x7E, 0x53, 0x9C, 0x18, 0x52, 0xF7, 0x0D, 0xE9, 0x3D, 0x94, 0x2D, 0x80, 0x7A, 0x99,
0x9D, 0x14, 0x2D, 0x65, 0xEB, 0xB9, 0x53, 0x7B, 0x28, 0xFB, 0xCF, 0x5D, 0x7E, 0xFA, 0xDC, 0x01,
0x8E, 0x6E, 0xC4, 0x81, 0x4D, 0x8F, 0x82, 0x2C, 0x29, 0x19, 0x0E, 0x48, 0xBC, 0xE4, 0xB1, 0xC0,
0x56, 0xEE, 0x89, 0x09, 0x3C, 0xF1, 0x29, 0x88, 0xF3, 0x89, 0x8D, 0x85, 0xDA, 0xFE, 0xEE, 0xEB,
0xA7, 0x34, 0xC4, 0x76, 0xBE, 0xBE, 0xC9, 0x7F, 0x95, 0x81, 0xFC, 0xDF, 0x97, 0x4E, 0x13, 0x23,
0xE4, 0x81, 0x20, 0x79, 0x68, 0x08, 0xDD, 0xBC, 0x84, 0x3D, 0xF8, 0x35, 0xE5, 0x16, 0x46, 0x76,
0xC2, 0x3A, 0x69, 0xA9, 0x43, 0x2A, 0x80, 0x80, 0x7F, 0x7E, 0xB3, 0x0E, 0x46, 0x26, 0x38, 0x41,
0xC9, 0x8D, 0x02, 0x2D, 0xD1, 0xC5, 0x95, 0x23, 0x80, 0x48, 0xFB, 0xE8, 0x46, 0x16, 0x98, 0x9E,
0xE1, 0xA8, 0xA3, 0xD9, 0x6D, 0x21, 0x37, 0xD2, 0x80, 0x2E, 0x43, 0x5C, 0x9F, 0x9D, 0xFE, 0xD0,
0xD4, 0x3B, 0x0D, 0xD2, 0x04, 0xEC, 0xB8, 0x41, 0x7A, 0xD9, 0x8C, 0x86, 0xA4, 0x49, 0x2D, 0xBA,
0xED, 0x46, 0x30, 0x9C, 0x93, 0x26, 0x1E, 0x72, 0x98, 0xB2, 0xF1, 0x89, 0x5C, 0x6A, 0x28, 0x65,
0x22, 0xA4, 0xB4, 0x31, 0x13, 0x75, 0x63, 0xBE, 0xA4, 0xDD, 0xB8, 0x23, 0x35, 0xEA, 0xA9, 0x78,
0xCA, 0x9F, 0x43, 0x03, 0xBE, 0x82, 0xD2, 0xD6, 0x49, 0x1F, 0xCC, 0x90, 0xB4, 0x18, 0x39, 0x44,
0xAF, 0x8E, 0xFF, 0x67, 0x00, 0x2E, 0x8D, 0xF9, 0x4B, 0xA0, 0xD1, 0x83, 0x34, 0x66, 0x39, 0x34,
0x7B, 0x12, 0x6E, 0x43, 0x92, 0x23, 0x2B, 0x7B, 0x78, 0xF1, 0x3C, 0x09, 0x49, 0x86, 0xB4, 0x23,
0xB9, 0xAC, 0x12, 0xA9, 0x42, 0xD2, 0x69, 0x19, 0xD7, 0xC2, 0xF1, 0xF5, 0xDD, 0x3F, 0xEE, 0xEF,
0x83, 0x12, 0xF9, 0x9B, 0xEF, 0x36, 0x16, 0x17, 0x9D, 0x9A, 0x4E, 0x8F, 0xAB, 0xDA, 0xD7, 0x26,
0x3E, 0x86, 0x5B, 0x16, 0x16, 0x17, 0x29, 0xDE, 0x9E, 0x36, 0x88, 0x0E, 0x3F, 0x81, 0x66, 0xF8,
0x9C, 0x8C, 0xC7, 0xE3, 0x59, 0x92, 0x80, 0xA2, 0xF9, 0x05, 0x06, 0xCF, 0xE9, 0x6F, 0xD7, 0xC2,
0x9D, 0xD9, 0xD0, 0xFF, 0xFB, 0xE8, 0xB0, 0x95, 0x6A, 0x49, 0x3E, 0x1D, 0x36, 0x4A, 0x64, 0x74,
0xF5, 0x6B, 0x16, 0x25, 0x24, 0x4E, 0xAD, 0xA0, 0x13, 0x66, 0x03, 0xC0, 0x11, 0xA2, 0x53, 0x57,
0xA4, 0x5A, 0x04, 0x14, 0xB4, 0x4F, 0xC9, 0xC9, 0x17, 0x10, 0x80, 0x20, 0x82, 0x56, 0x4A, 0xE2,
0x1F, 0xCC, 0x1C, 0x7A, 0xB8, 0x37, 0x01, 0xF9, 0xC9, 0x33, 0x10, 0x80, 0xA6, 0x21, 0x31, 0x59,
0xAB, 0x63, 0x97, 0x98, 0xBA, 0xD4, 0xDC, 0x89, 0x8F, 0xF5, 0xE9, 0x4F, 0x5E, 0xC9, 0x25, 0x83,
0x17, 0x76, 0x51, 0x7D, 0xF1, 0x01, 0xAA, 0x7F, 0x2C, 0x89, 0xD9, 0x50, 0xBC, 0x12, 0x87, 0xDB,
0x5C, 0xF0, 0x13, 0x5D, 0x1D, 0x8F, 0x27, 0xB4, 0x34, 0x47, 0x19, 0x2D, 0xFD, 0x62, 0x31, 0x13,
0x30, 0xBC, 0x47, 0xC5, 0xC3, 0x67, 0xE0, 0x9A, 0x68, 0xEB, 0x46, 0x70, 0xDE, 0xE8, 0xF1, 0x51,
0xF4, 0xFA, 0x6A, 0x89, 0x02, 0x35, 0x14, 0x7C, 0x76, 0xC0, 0x44, 0x2A, 0xFF, 0x66, 0x55, 0x80,
0x4F, 0x46, 0x72, 0x90, 0x5C, 0x8C, 0xA6, 0xB0, 0x3E, 0xEF, 0x55, 0x03, 0x8C, 0x82, 0xEA, 0xA2,
0xA1, 0xC6, 0x92, 0x50, 0xF9, 0x9A, 0xEE, 0x48, 0x45, 0x6F, 0x54, 0x29, 0xF6, 0x43, 0x13, 0xA1,
0xA2, 0x78, 0xF8, 0x68, 0xC8, 0x4C, 0xD2, 0x07, 0x8E, 0x21, 0xBD, 0x32, 0x9C, 0x77, 0x18, 0x3D,
0x44, 0x14, 0x90, 0x41, 0xD7, 0xC5, 0xD3, 0xF2, 0x53, 0xC1, 0x42, 0xC6, 0x4C, 0x09, 0x18, 0x50,
0x92, 0x5D, 0x58, 0x9F, 0xA2, 0x39, 0x54, 0xB7, 0x01, 0x81, 0xCC, 0x4B, 0x26, 0x78, 0x09, 0x1D,
0x58, 0xEB, 0x7B, 0x28, 0xF4, 0xE8, 0x72, 0xBD, 0xE2, 0x6E, 0x1F, 0x3A, 0x7D, 0xED, 0x72, 0x71,
0xCF, 0xDE, 0x3E, 0x18, 0xEA, 0xD5, 0xCB, 0xF9, 0x23, 0xFB, 0x4E, 0xB9, 0x2E, 0xA9, 0x1D, 0x7E,
0x51, 0x42, 0x02, 0x89, 0xA1, 0xB1, 0x0F, 0x76, 0xB3, 0x45, 0x42, 0xE0, 0xB6, 0x40, 0x23, 0x7A,
0x8B, 0xE2, 0x3F, 0xC8, 0x5B, 0xE3, 0x0E, 0xC3, 0x7F, 0x0E, 0xF7, 0xFC, 0x91, 0xE3, 0xF8, 0xEC,
0x65, 0x3B, 0xFB, 0x77, 0xE1, 0xC4, 0xF1, 0x68, 0xE0, 0x68, 0x90, 0x3A, 0x19, 0x70, 0x78, 0xF8,
0x5D, 0x2A, 0x67, 0x7B, 0x21, 0x84, 0xEA, 0x2E, 0x65, 0x57, 0xB0, 0x55, 0xED, 0xC7, 0x40, 0x08,
0xD3, 0x4F, 0x2F, 0xBA, 0xBA, 0x79, 0x17, 0x17, 0x79, 0xC6, 0xF8, 0x83, 0x9B, 0xF1, 0x22, 0x05,
0x09, 0x6E, 0x3C, 0x5E, 0xFF, 0x11, 0x63, 0x60, 0x60, 0xB0, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF,
0x5F, 0x57, 0xAD, 0x5A, 0x01, 0x00, 0x63, 0x60, 0x60, 0x66, 0x00, 0x01, 0x7B, 0x10, 0xC1, 0xFC,
0x1F, 0xCC, 0xFC, 0x0F, 0x66, 0x82, 0x48, 0x5B, 0x06, 0x7D, 0x20, 0xF3, 0x01, 0x88, 0xB4, 0x3F,
0x76, 0xA1, 0x1E, 0x24, 0x7A, 0xF0, 0x3F, 0x50, 0xC1, 0x3F, 0xF6, 0xFF, 0x40, 0xE6, 0x03, 0xFB,
0xFF, 0xFA, 0xFF, 0xFF, 0x31, 0xFF, 0xFF, 0x67, 0xFF, 0xFF, 0x03, 0x18, 0x35, 0xFD, 0x07, 0x49,
0xC6, 0xFF, 0xFF, 0x00, 0x24, 0x41, 0xFA, 0xED, 0xBF, 0x02, 0x99, 0x0C, 0xF6, 0x8E, 0x60, 0xA3,
0xD8, 0x81, 0x4C, 0x06, 0xBB, 0xFD, 0x60, 0x1B, 0x3E, 0xC0, 0xAD, 0x64, 0x50, 0x00, 0x62, 0x00,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
static const EpdGlyph notosans_12_boldGlyphs[] = {
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 5, 19, 7, 1, 18, 24, 0 }, // !
{ 10, 7, 12, 1, 18, 18, 24 }, // "
{ 16, 18, 16, 0, 18, 72, 42 }, // #
{ 13, 21, 14, 1, 19, 69, 114 }, // $
{ 22, 20, 23, 0, 19, 110, 183 }, // %
{ 18, 20, 19, 1, 19, 90, 293 }, // &
{ 5, 7, 7, 1, 18, 9, 383 }, // '
{ 7, 22, 8, 1, 18, 39, 392 }, // (
{ 8, 22, 8, 0, 18, 44, 431 }, // )
{ 13, 12, 14, 0, 19, 39, 475 }, // *
{ 13, 13, 14, 1, 15, 43, 514 }, // +
{ 6, 7, 7, 0, 3, 11, 557 }, // ,
{ 8, 4, 8, 0, 9, 8, 568 }, // -
{ 5, 5, 7, 1, 4, 7, 576 }, // .
{ 11, 19, 10, 0, 18, 53, 583 }, // /
{ 14, 20, 14, 0, 19, 70, 636 }, // 0
{ 10, 18, 14, 1, 18, 45, 706 }, // 1
{ 14, 19, 14, 0, 19, 67, 751 }, // 2
{ 14, 20, 14, 0, 19, 70, 818 }, // 3
{ 14, 18, 14, 0, 18, 63, 888 }, // 4
{ 13, 19, 14, 1, 18, 62, 951 }, // 5
{ 14, 20, 14, 0, 19, 70, 1013 }, // 6
{ 14, 18, 14, 0, 18, 63, 1083 }, // 7
{ 14, 20, 14, 0, 19, 70, 1146 }, // 8
{ 14, 20, 14, 0, 19, 70, 1216 }, // 9
{ 5, 15, 7, 1, 14, 19, 1286 }, // :
{ 6, 18, 7, 0, 14, 27, 1305 }, // ;
{ 13, 14, 14, 1, 16, 46, 1332 }, // <
{ 13, 8, 14, 1, 13, 26, 1378 }, // =
{ 13, 14, 14, 1, 16, 46, 1404 }, // >
{ 12, 20, 12, 0, 19, 60, 1450 }, // ?
{ 21, 20, 22, 1, 18, 105, 1510 }, // @
{ 18, 18, 17, 0, 18, 81, 1615 }, // A
{ 14, 18, 17, 2, 18, 63, 1696 }, // B
{ 15, 20, 16, 1, 19, 75, 1759 }, // C
{ 15, 18, 18, 2, 18, 68, 1834 }, // D
{ 11, 18, 14, 2, 18, 50, 1902 }, // E
{ 11, 18, 14, 2, 18, 50, 1952 }, // F
{ 16, 20, 18, 1, 19, 80, 2002 }, // G
{ 15, 18, 19, 2, 18, 68, 2082 }, // H
{ 9, 18, 10, 0, 18, 41, 2150 }, // I
{ 9, 24, 8, -2, 18, 54, 2191 }, // J
{ 15, 18, 17, 2, 18, 68, 2245 }, // K
{ 12, 18, 14, 2, 18, 54, 2313 }, // L
{ 20, 18, 24, 2, 18, 90, 2367 }, // M
{ 17, 18, 20, 2, 18, 77, 2457 }, // N
{ 18, 20, 20, 1, 19, 90, 2534 }, // O
{ 13, 18, 16, 2, 18, 59, 2624 }, // P
{ 18, 24, 20, 1, 19, 108, 2683 }, // Q
{ 15, 18, 16, 2, 18, 68, 2791 }, // R
{ 12, 20, 14, 1, 19, 60, 2859 }, // S
{ 14, 18, 14, 0, 18, 63, 2919 }, // T
{ 15, 19, 19, 2, 18, 72, 2982 }, // U
{ 17, 18, 16, 0, 18, 77, 3054 }, // V
{ 25, 18, 24, 0, 18, 113, 3131 }, // W
{ 17, 18, 17, 0, 18, 77, 3244 }, // X
{ 16, 18, 16, 0, 18, 72, 3321 }, // Y
{ 14, 18, 14, 0, 18, 63, 3393 }, // Z
{ 7, 22, 8, 1, 18, 39, 3456 }, // [
{ 11, 19, 10, 0, 18, 53, 3495 }, // <backslash>
{ 7, 22, 8, 0, 18, 39, 3548 }, // ]
{ 14, 12, 14, 0, 18, 42, 3587 }, // ^
{ 12, 2, 10, -1, -2, 6, 3629 }, // _
{ 8, 5, 9, 1, 20, 10, 3635 }, // `
{ 13, 15, 15, 1, 14, 49, 3645 }, // a
{ 14, 20, 16, 1, 19, 70, 3694 }, // b
{ 12, 15, 13, 1, 14, 45, 3764 }, // c
{ 13, 20, 16, 1, 19, 65, 3809 }, // d
{ 13, 15, 15, 1, 14, 49, 3874 }, // e
{ 11, 20, 10, 0, 20, 55, 3923 }, // f
{ 13, 20, 16, 1, 14, 65, 3978 }, // g
{ 14, 19, 16, 1, 19, 67, 4043 }, // h
{ 5, 20, 7, 1, 20, 25, 4110 }, // i
{ 8, 26, 7, -2, 20, 52, 4135 }, // j
{ 15, 19, 16, 1, 19, 72, 4187 }, // k
{ 5, 19, 7, 1, 19, 24, 4259 }, // l
{ 22, 14, 24, 1, 14, 77, 4283 }, // m
{ 14, 14, 16, 1, 14, 49, 4360 }, // n
{ 14, 15, 16, 1, 14, 53, 4409 }, // o
{ 14, 20, 16, 1, 14, 70, 4462 }, // p
{ 13, 20, 16, 1, 14, 65, 4532 }, // q
{ 10, 14, 11, 1, 14, 35, 4597 }, // r
{ 11, 15, 13, 1, 14, 42, 4632 }, // s
{ 11, 18, 11, 0, 17, 50, 4674 }, // t
{ 14, 15, 16, 1, 14, 53, 4724 }, // u
{ 15, 14, 14, 0, 14, 53, 4777 }, // v
{ 22, 14, 21, 0, 14, 77, 4830 }, // w
{ 15, 14, 14, 0, 14, 53, 4907 }, // x
{ 15, 20, 14, 0, 14, 75, 4960 }, // y
{ 12, 14, 12, 0, 14, 42, 5035 }, // z
{ 9, 22, 10, 0, 18, 50, 5077 }, // {
{ 4, 25, 14, 5, 19, 25, 5127 }, // |
{ 9, 22, 10, 1, 18, 50, 5152 }, // }
{ 13, 5, 14, 1, 11, 17, 5202 }, // ~
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
{ 0, 0, 7, 0, 0, 0, 0 }, //  
{ 5, 19, 7, 1, 14, 24, 0 }, // ¡
{ 12, 20, 14, 1, 19, 60, 24 }, // ¢
{ 13, 19, 14, 1, 19, 62, 84 }, // £
{ 12, 12, 14, 1, 15, 36, 146 }, // ¤
{ 15, 18, 14, 0, 18, 68, 182 }, // ¥
{ 4, 25, 14, 5, 19, 25, 250 }, // ¦
{ 10, 21, 12, 1, 20, 53, 275 }, // §
{ 9, 4, 15, 3, 19, 9, 328 }, // ¨
{ 19, 20, 21, 1, 19, 95, 337 }, // ©
{ 9, 10, 10, 0, 19, 23, 432 }, // ª
{ 15, 12, 15, 0, 13, 45, 455 }, // «
{ 13, 8, 14, 1, 11, 26, 500 }, // ¬
{ 8, 4, 8, 0, 9, 8, 526 }, // ­
{ 19, 20, 21, 1, 19, 95, 534 }, // ®
{ 14, 3, 13, -1, 22, 11, 629 }, // ¯
{ 9, 10, 11, 1, 19, 23, 640 }, // °
{ 13, 16, 14, 1, 16, 52, 663 }, // ±
{ 9, 12, 9, 0, 22, 27, 715 }, // ²
{ 9, 12, 10, 0, 22, 27, 742 }, // ³
{ 8, 5, 9, 1, 20, 10, 769 }, // ´
{ 14, 20, 16, 1, 14, 70, 779 }, // µ
{ 14, 23, 16, 1, 19, 81, 849 }, // ¶
{ 5, 5, 7, 1, 11, 7, 930 }, // ·
{ 7, 6, 7, 0, 0, 11, 937 }, // ¸
{ 7, 12, 10, 0, 22, 21, 948 }, // ¹
{ 9, 10, 10, 0, 19, 23, 969 }, // º
{ 15, 12, 15, 0, 13, 45, 992 }, // »
{ 21, 18, 21, 0, 18, 95, 1037 }, // ¼
{ 21, 18, 22, 0, 18, 95, 1132 }, // ½
{ 20, 19, 21, 1, 19, 95, 1227 }, // ¾
{ 12, 19, 12, 0, 14, 57, 1322 }, // ¿
{ 18, 24, 17, 0, 24, 108, 1379 }, // À
{ 18, 24, 17, 0, 24, 108, 1487 }, // Á
{ 18, 24, 17, 0, 24, 108, 1595 }, // Â
{ 18, 23, 17, 0, 23, 104, 1703 }, // Ã
{ 18, 23, 17, 0, 23, 104, 1807 }, // Ä
{ 18, 22, 17, 0, 22, 99, 1911 }, // Å
{ 23, 18, 24, 0, 18, 104, 2010 }, // Æ
{ 15, 25, 16, 1, 19, 94, 2114 }, // Ç
{ 11, 24, 14, 2, 24, 66, 2208 }, // È
{ 11, 24, 14, 2, 24, 66, 2274 }, // É
{ 11, 24, 14, 2, 24, 66, 2340 }, // Ê
{ 11, 23, 14, 2, 23, 64, 2406 }, // Ë
{ 9, 24, 10, 0, 24, 54, 2470 }, // Ì
{ 10, 24, 10, 0, 24, 60, 2524 }, // Í
{ 11, 24, 10, -1, 24, 66, 2584 }, // Î
{ 10, 23, 10, 0, 23, 58, 2650 }, // Ï
{ 17, 18, 18, 0, 18, 77, 2708 }, // Ð
{ 17, 23, 20, 2, 23, 98, 2785 }, // Ñ
{ 18, 25, 20, 1, 24, 113, 2883 }, // Ò
{ 18, 25, 20, 1, 24, 113, 2996 }, // Ó
{ 18, 25, 20, 1, 24, 113, 3109 }, // Ô
{ 18, 24, 20, 1, 23, 108, 3222 }, // Õ
{ 18, 24, 20, 1, 23, 108, 3330 }, // Ö
{ 12, 12, 14, 1, 15, 36, 3438 }, // ×
{ 18, 21, 20, 1, 19, 95, 3474 }, // Ø
{ 15, 25, 19, 2, 24, 94, 3569 }, // Ù
{ 15, 25, 19, 2, 24, 94, 3663 }, // Ú
{ 15, 25, 19, 2, 24, 94, 3757 }, // Û
{ 15, 24, 19, 2, 23, 90, 3851 }, // Ü
{ 16, 24, 16, 0, 24, 96, 3941 }, // Ý
{ 13, 18, 16, 2, 18, 59, 4037 }, // Þ
{ 16, 21, 18, 1, 20, 84, 4096 }, // ß
{ 13, 21, 15, 1, 20, 69, 4180 }, // à
{ 13, 21, 15, 1, 20, 69, 4249 }, // á
{ 13, 21, 15, 1, 20, 69, 4318 }, // â
{ 13, 20, 15, 1, 19, 65, 4387 }, // ã
{ 13, 20, 15, 1, 19, 65, 4452 }, // ä
{ 13, 22, 15, 1, 21, 72, 4517 }, // å
{ 21, 15, 23, 1, 14, 79, 4589 }, // æ
{ 12, 20, 13, 1, 14, 60, 4668 }, // ç
{ 13, 21, 15, 1, 20, 69, 4728 }, // è
{ 13, 21, 15, 1, 20, 69, 4797 }, // é
{ 13, 21, 15, 1, 20, 69, 4866 }, // ê
{ 13, 20, 15, 1, 19, 65, 4935 }, // ë
{ 9, 20, 7, -1, 20, 45, 5000 }, // ì
{ 8, 20, 7, 1, 20, 40, 5045 }, // í
{ 11, 20, 7, -2, 20, 55, 5085 }, // î
{ 10, 19, 7, -1, 19, 48, 5140 }, // ï
{ 14, 21, 16, 1, 20, 74, 5188 }, // ð
{ 14, 19, 16, 1, 19, 67, 5262 }, // ñ
{ 14, 21, 16, 1, 20, 74, 5329 }, // ò
{ 14, 21, 16, 1, 20, 74, 5403 }, // ó
{ 14, 21, 16, 1, 20, 74, 5477 }, // ô
{ 14, 20, 16, 1, 19, 70, 5551 }, // õ
{ 14, 20, 16, 1, 19, 70, 5621 }, // ö
{ 13, 13, 14, 1, 15, 43, 5691 }, // ÷
{ 14, 16, 15, 1, 15, 56, 5734 }, // ø
{ 14, 21, 16, 1, 20, 74, 5790 }, // ù
{ 14, 21, 16, 1, 20, 74, 5864 }, // ú
{ 14, 21, 16, 1, 20, 74, 5938 }, // û
{ 14, 20, 16, 1, 19, 70, 6012 }, // ü
{ 15, 26, 14, 0, 20, 98, 6082 }, // ý
{ 14, 25, 16, 1, 19, 88, 6180 }, // þ
{ 15, 25, 14, 0, 19, 94, 6268 }, // ÿ
{ 18, 22, 17, 0, 22, 99, 0 }, // Ā
{ 13, 19, 15, 1, 18, 62, 99 }, // ā
{ 18, 24, 17, 0, 24, 108, 161 }, // Ă
{ 13, 21, 15, 1, 20, 69, 269 }, // ă
{ 18, 24, 17, 0, 18, 108, 338 }, // Ą
{ 13, 20, 15, 1, 14, 65, 446 }, // ą
{ 15, 25, 16, 1, 24, 94, 511 }, // Ć
{ 12, 21, 13, 1, 20, 63, 605 }, // ć
{ 15, 25, 16, 1, 24, 94, 668 }, // Ĉ
{ 12, 21, 13, 1, 20, 63, 762 }, // ĉ
{ 15, 25, 16, 1, 24, 94, 825 }, // Ċ
{ 12, 21, 13, 1, 20, 63, 919 }, // ċ
{ 15, 25, 16, 1, 24, 94, 982 }, // Č
{ 12, 21, 13, 1, 20, 63, 1076 }, // č
{ 15, 24, 18, 2, 24, 90, 1139 }, // Ď
{ 19, 20, 16, 1, 19, 95, 1229 }, // ď
{ 17, 18, 18, 0, 18, 77, 1324 }, // Đ
{ 15, 20, 16, 1, 19, 75, 1401 }, // đ
{ 11, 22, 14, 2, 22, 61, 1476 }, // Ē
{ 13, 19, 15, 1, 18, 62, 1537 }, // ē
{ 11, 24, 14, 2, 24, 66, 1599 }, // Ĕ
{ 13, 21, 15, 1, 20, 69, 1665 }, // ĕ
{ 11, 24, 14, 2, 24, 66, 1734 }, // Ė
{ 13, 21, 15, 1, 20, 69, 1800 }, // ė
{ 11, 24, 14, 2, 18, 66, 1869 }, // Ę
{ 13, 20, 15, 1, 14, 65, 1935 }, // ę
{ 11, 24, 14, 2, 24, 66, 2000 }, // Ě
{ 13, 21, 15, 1, 20, 69, 2066 }, // ě
{ 16, 25, 18, 1, 24, 100, 2135 }, // Ĝ
{ 13, 26, 16, 1, 20, 85, 2235 }, // ĝ
{ 16, 25, 18, 1, 24, 100, 2320 }, // Ğ
{ 13, 26, 16, 1, 20, 85, 2420 }, // ğ
{ 16, 25, 18, 1, 24, 100, 2505 }, // Ġ
{ 13, 26, 16, 1, 20, 85, 2605 }, // ġ
{ 16, 25, 18, 1, 19, 100, 2690 }, // Ģ
{ 13, 26, 16, 1, 20, 85, 2790 }, // ģ
{ 15, 24, 19, 2, 24, 90, 2875 }, // Ĥ
{ 17, 25, 16, -2, 25, 107, 2965 }, // ĥ
{ 20, 18, 19, 0, 18, 90, 3072 }, // Ħ
{ 15, 19, 16, 0, 19, 72, 3162 }, // ħ
{ 11, 23, 10, -1, 23, 64, 3234 }, // Ĩ
{ 11, 19, 7, -2, 19, 53, 3298 }, // ĩ
{ 9, 22, 10, 0, 22, 50, 3351 }, // Ī
{ 9, 18, 7, -1, 18, 41, 3401 }, // ī
{ 10, 24, 10, 0, 24, 60, 3442 }, // Ĭ
{ 10, 20, 7, -1, 20, 50, 3502 }, // ĭ
{ 9, 24, 10, 0, 18, 54, 3552 }, // Į
{ 5, 26, 7, 1, 20, 33, 3606 }, // į
{ 9, 24, 10, 0, 24, 54, 3639 }, // İ
{ 5, 14, 7, 1, 14, 18, 3693 }, // ı
{ 17, 24, 18, 0, 18, 102, 3711 }, // IJ
{ 13, 26, 15, 1, 20, 85, 3813 }, // ij
{ 12, 30, 8, -2, 24, 90, 3898 }, // Ĵ
{ 11, 26, 7, -2, 20, 72, 3988 }, // ĵ
{ 15, 24, 17, 2, 18, 90, 4060 }, // Ķ
{ 15, 25, 16, 1, 19, 94, 4150 }, // ķ
{ 15, 14, 16, 1, 14, 53, 4244 }, // ĸ
{ 13, 24, 14, 1, 24, 78, 4297 }, // Ĺ
{ 8, 25, 7, 1, 25, 50, 4375 }, // ĺ
{ 12, 24, 14, 2, 18, 72, 4425 }, // Ļ
{ 5, 25, 7, 1, 19, 32, 4497 }, // ļ
{ 12, 18, 14, 2, 18, 54, 4529 }, // Ľ
{ 10, 19, 7, 1, 19, 48, 4583 }, // ľ
{ 12, 18, 14, 2, 18, 54, 4631 }, // Ŀ
{ 10, 19, 9, 1, 19, 48, 4685 }, // ŀ
{ 14, 18, 14, 0, 18, 63, 4733 }, // Ł
{ 9, 19, 8, -1, 19, 43, 4796 }, // ł
{ 17, 24, 20, 2, 24, 102, 4839 }, // Ń
{ 14, 20, 16, 1, 20, 70, 4941 }, // ń
{ 17, 24, 20, 2, 18, 102, 5011 }, // Ņ
{ 14, 20, 16, 1, 14, 70, 5113 }, // ņ
{ 17, 24, 20, 2, 24, 102, 5183 }, // Ň
{ 14, 20, 16, 1, 20, 70, 5285 }, // ň
{ 19, 18, 19, -1, 18, 86, 5355 }, // ʼn
{ 17, 24, 20, 2, 18, 102, 5441 }, // Ŋ
{ 14, 20, 16, 1, 14, 70, 5543 }, // ŋ
{ 18, 23, 20, 1, 22, 104, 5613 }, // Ō
{ 14, 19, 16, 1, 18, 67, 5717 }, // ō
{ 18, 25, 20, 1, 24, 113, 5784 }, // Ŏ
{ 14, 21, 16, 1, 20, 74, 5897 }, // ŏ
{ 18, 25, 20, 1, 24, 113, 5971 }, // Ő
{ 14, 21, 16, 1, 20, 74, 6084 }, // ő
{ 22, 20, 24, 1, 19, 110, 6158 }, // Œ
{ 23, 15, 24, 1, 14, 87, 6268 }, // œ
{ 15, 24, 16, 2, 24, 90, 6355 }, // Ŕ
{ 11, 20, 11, 1, 20, 55, 6445 }, // ŕ
{ 15, 24, 16, 2, 18, 90, 6500 }, // Ŗ
{ 10, 20, 11, 1, 14, 50, 6590 }, // ŗ
{ 15, 24, 16, 2, 24, 90, 6640 }, // Ř
{ 11, 20, 11, 1, 20, 55, 6730 }, // ř
{ 12, 25, 14, 1, 24, 75, 6785 }, // Ś
{ 11, 21, 13, 1, 20, 58, 6860 }, // ś
{ 12, 25, 14, 1, 24, 75, 6918 }, // Ŝ
{ 11, 21, 13, 1, 20, 58, 6993 }, // ŝ
{ 12, 25, 14, 1, 19, 75, 7051 }, // Ş
{ 11, 20, 13, 1, 14, 55, 7126 }, // ş
{ 12, 25, 14, 1, 24, 75, 7181 }, // Š
{ 11, 21, 13, 1, 20, 58, 7256 }, // š
{ 14, 24, 14, 0, 18, 84, 7314 }, // Ţ
{ 11, 23, 11, 0, 17, 64, 7398 }, // ţ
{ 14, 24, 14, 0, 24, 84, 7462 }, // Ť
{ 15, 20, 11, 0, 19, 75, 7546 }, // ť
{ 14, 18, 14, 0, 18, 63, 7621 }, // Ŧ
{ 11, 18, 11, 0, 17, 50, 7684 }, // ŧ
{ 15, 24, 19, 2, 23, 90, 7734 }, // Ũ
{ 14, 20, 16, 1, 19, 70, 7824 }, // ũ
{ 15, 23, 19, 2, 22, 87, 7894 }, // Ū
{ 14, 19, 16, 1, 18, 67, 7981 }, // ū
{ 15, 25, 19, 2, 24, 94, 8048 }, // Ŭ
{ 14, 21, 16, 1, 20, 74, 8142 }, // ŭ
{ 15, 26, 19, 2, 25, 98, 8216 }, // Ů
{ 14, 22, 16, 1, 21, 77, 8314 }, // ů
{ 15, 25, 19, 2, 24, 94, 8391 }, // Ű
{ 14, 21, 16, 1, 20, 74, 8485 }, // ű
{ 15, 24, 19, 2, 18, 90, 8559 }, // Ų
{ 14, 20, 16, 1, 14, 70, 8649 }, // ų
{ 25, 24, 24, 0, 24, 150, 8719 }, // Ŵ
{ 22, 20, 21, 0, 20, 110, 8869 }, // ŵ
{ 16, 24, 16, 0, 24, 96, 8979 }, // Ŷ
{ 15, 26, 14, 0, 20, 98, 9075 }, // ŷ
{ 16, 23, 16, 0, 23, 92, 9173 }, // Ÿ
{ 14, 24, 14, 0, 24, 84, 9265 }, // Ź
{ 12, 20, 12, 0, 20, 60, 9349 }, // ź
{ 14, 24, 14, 0, 24, 84, 9409 }, // Ż
{ 12, 20, 12, 0, 20, 60, 9493 }, // ż
{ 14, 24, 14, 0, 24, 84, 9553 }, // Ž
{ 12, 20, 12, 0, 20, 60, 9637 }, // ž
{ 10, 20, 10, 1, 20, 50, 9697 }, // ſ
{ 8, 5, 0, -14, 20, 10, 0 }, // ̀
{ 9, 5, 0, -10, 20, 12, 10 }, // ́
{ 11, 5, 0, -6, 20, 14, 22 }, // ̂
{ 11, 4, 0, -14, 19, 11, 36 }, // ̃
{ 10, 3, 0, -5, 18, 8, 47 }, // ̄
{ 12, 4, 0, -6, 22, 12, 55 }, // ̅
{ 11, 5, 0, -5, 20, 14, 67 }, // ̆
{ 6, 5, 0, -3, 20, 8, 81 }, // ̇
{ 10, 4, 0, -5, 19, 10, 89 }, // ̈
{ 7, 7, 0, -11, 21, 13, 99 }, // ̉
{ 7, 6, 0, -4, 21, 11, 112 }, // ̊
{ 11, 5, 0, -4, 20, 14, 123 }, // ̋
{ 12, 5, 0, -6, 20, 15, 137 }, // ̌
{ 4, 6, 0, -2, 20, 6, 152 }, // ̍
{ 8, 6, 0, -4, 20, 12, 158 }, // ̎
{ 12, 5, 0, -15, 20, 15, 170 }, // ̏
{ 10, 7, 0, -5, 22, 18, 185 }, // ̐
{ 10, 5, 0, -5, 20, 13, 203 }, // ̑
{ 6, 7, 0, -3, 18, 11, 216 }, // ̒
{ 6, 7, 0, -3, 18, 11, 227 }, // ̓
{ 6, 7, 0, -3, 18, 11, 238 }, // ̔
{ 6, 7, 0, -3, 18, 11, 249 }, // ̕
{ 9, 5, 0, -5, 0, 12, 260 }, // ̖
{ 8, 5, 0, -4, 0, 10, 272 }, // ̗
{ 6, 6, 0, -3, 0, 9, 282 }, // ̘
{ 6, 6, 0, -3, 0, 9, 291 }, // ̙
{ 7, 6, 8, 0, 19, 11, 300 }, // ̚
{ 7, 6, 0, -3, 19, 11, 311 }, // ̛
{ 4, 6, 0, -2, 0, 6, 322 }, // ̜
{ 6, 5, 0, -3, -1, 8, 328 }, // ̝
{ 6, 5, 0, -3, -1, 8, 336 }, // ̞
{ 6, 6, 0, -3, 0, 9, 344 }, // ̟
{ 6, 3, 0, -3, -2, 5, 353 }, // ̠
{ 6, 8, 0, -6, 2, 12, 358 }, // ̡
{ 6, 8, 0, 0, 2, 12, 370 }, // ̢
{ 5, 5, 0, -11, -1, 7, 382 }, // ̣
{ 10, 4, 0, -5, -1, 10, 389 }, // ̤
{ 7, 6, 0, -4, 0, 11, 399 }, // ̥
{ 6, 5, 0, -3, -1, 8, 410 }, // ̦
{ 6, 6, 0, -3, 0, 9, 418 }, // ̧
{ 6, 7, 0, -3, 1, 11, 427 }, // ̨
{ 4, 6, 0, -2, 0, 6, 438 }, // ̩
{ 10, 5, 0, -5, -1, 13, 444 }, // ̪
{ 10, 4, 0, -5, -1, 10, 457 }, // ̫
{ 11, 5, 0, -5, 0, 14, 467 }, // ̬
{ 11, 5, 0, -6, 0, 14, 481 }, // ̭
{ 10, 5, 0, -5, 0, 13, 495 }, // ̮
{ 10, 5, 0, -5, -1, 13, 508 }, // ̯
{ 12, 4, 0, -6, -1, 12, 521 }, // ̰
{ 10, 3, 0, -5, -2, 8, 533 }, // ̱
{ 12, 2, 0, -6, -2, 6, 541 }, // ̲
{ 11, 6, 0, -6, 0, 17, 547 }, // ̳
{ 11, 4, 0, -5, 9, 11, 564 }, // ̴
{ 12, 4, 0, -6, 9, 12, 575 }, // ̵
{ 20, 4, 0, -10, 9, 20, 587 }, // ̶
{ 10, 8, 0, -5, 11, 20, 607 }, // ̷
{ 12, 21, 0, -6, 19, 63, 627 }, // ̸
{ 4, 6, 0, -2, 0, 6, 690 }, // ̹
{ 10, 5, 0, -5, -1, 13, 696 }, // ̺
{ 10, 6, 0, -5, 0, 15, 709 }, // ̻
{ 10, 4, 0, -5, -1, 10, 724 }, // ̼
{ 6, 6, 0, -3, 20, 9, 734 }, // ̽
{ 4, 8, 0, -2, 22, 8, 743 }, // ̾
{ 11, 6, 0, -6, 25, 17, 751 }, // ̿
{ 8, 5, 0, -6, 20, 10, 768 }, // ̀
{ 8, 5, 0, -2, 20, 10, 778 }, // ́
{ 11, 4, 0, -5, 19, 11, 788 }, // ͂
{ 5, 6, 0, -3, 20, 8, 799 }, // ̓
{ 14, 5, 0, -6, 20, 18, 807 }, // ̈́
{ 5, 5, 0, -1, -1, 7, 825 }, // ͅ
{ 12, 6, 0, -6, 20, 18, 832 }, // ͆
{ 11, 6, 0, -6, 0, 17, 850 }, // ͇
{ 8, 6, 0, -4, 0, 12, 867 }, // ͈
{ 6, 5, 0, -3, -1, 8, 879 }, // ͉
{ 10, 6, 0, -5, 20, 15, 887 }, // ͊
{ 10, 11, 0, -5, 24, 28, 902 }, // ͋
{ 10, 7, 0, -5, 22, 18, 930 }, // ͌
{ 10, 6, 0, -5, 0, 15, 948 }, // ͍
{ 6, 6, 0, -3, 0, 9, 963 }, // ͎
{ 18, 18, 0, -9, 18, 81, 972 }, // ͏
{ 5, 6, 0, -3, 20, 8, 1053 }, // ͐
{ 4, 7, 0, -2, 21, 7, 1061 }, // ͑
{ 10, 7, 0, -5, 22, 18, 1068 }, // ͒
{ 6, 6, 0, -3, 0, 9, 1086 }, // ͓
{ 5, 5, 0, -3, -1, 7, 1095 }, // ͔
{ 5, 5, 0, -3, -1, 7, 1102 }, // ͕
{ 10, 5, 0, -5, -1, 13, 1109 }, // ͖
{ 4, 7, 0, -2, 21, 7, 1122 }, // ͗
{ 5, 5, 0, 2, 20, 7, 1129 }, // ͘
{ 6, 6, 0, -3, 0, 9, 1136 }, // ͙
{ 10, 6, 0, -5, 0, 15, 1145 }, // ͚
{ 6, 6, 0, -3, 20, 9, 1160 }, // ͛
{ 20, 5, 0, -10, -1, 25, 1169 }, // ͜
{ 20, 5, 0, -10, 20, 25, 1194 }, // ͝
{ 16, 2, 0, -8, 17, 8, 1219 }, // ͞
{ 16, 2, 0, -8, -2, 8, 1227 }, // ͟
{ 20, 4, 0, -10, 19, 20, 1235 }, // ͠
{ 20, 6, 0, -10, 22, 30, 1255 }, // ͡
{ 21, 6, 0, -10, 0, 32, 1285 }, // ͢
{ 6, 7, 0, -3, 22, 11, 1317 }, // ͣ
{ 7, 7, 0, -3, 22, 13, 1328 }, // ͤ
{ 3, 9, 0, -1, 24, 7, 1341 }, // ͥ
{ 7, 7, 0, -3, 22, 13, 1348 }, // ͦ
{ 7, 6, 0, -3, 21, 11, 1361 }, // ͧ
{ 6, 7, 0, -3, 22, 11, 1372 }, // ͨ
{ 6, 9, 0, -3, 24, 14, 1383 }, // ͩ
{ 7, 9, 0, -3, 24, 16, 1397 }, // ͪ
{ 10, 7, 0, -5, 22, 18, 1413 }, // ͫ
{ 5, 7, 0, -2, 22, 9, 1431 }, // ͬ
{ 5, 8, 0, -2, 23, 10, 1440 }, // ͭ
{ 7, 6, 0, -3, 21, 11, 1450 }, // ͮ
{ 8, 6, 0, -4, 21, 12, 1461 }, // ͯ
{ 11, 24, 14, 2, 24, 66, 0 }, // Ѐ
{ 11, 23, 14, 2, 23, 64, 66 }, // Ё
{ 19, 19, 19, 0, 18, 91, 130 }, // Ђ
{ 12, 24, 14, 2, 24, 72, 221 }, // Ѓ
{ 15, 20, 16, 1, 19, 75, 293 }, // Є
{ 12, 20, 14, 1, 19, 60, 368 }, // Ѕ
{ 4, 18, 8, 2, 18, 18, 428 }, // І
{ 8, 24, 8, 0, 24, 48, 446 }, // Ї
{ 9, 24, 8, -2, 18, 54, 494 }, // Ј
{ 25, 19, 26, 0, 18, 119, 548 }, // Љ
{ 24, 18, 27, 2, 18, 108, 667 }, // Њ
{ 18, 18, 19, 0, 18, 81, 775 }, // Ћ
{ 16, 24, 17, 2, 24, 96, 856 }, // Ќ
{ 16, 24, 20, 2, 24, 96, 952 }, // Ѝ
{ 17, 25, 16, 0, 24, 107, 1048 }, // Ў
{ 15, 22, 19, 2, 18, 83, 1155 }, // Џ
{ 18, 18, 17, 0, 18, 81, 1238 }, // А
{ 14, 18, 16, 2, 18, 63, 1319 }, // Б
{ 14, 18, 17, 2, 18, 63, 1382 }, // В
{ 12, 18, 14, 2, 18, 54, 1445 }, // Г
{ 20, 22, 19, 0, 18, 110, 1499 }, // Д
{ 11, 18, 14, 2, 18, 50, 1609 }, // Е
{ 25, 18, 25, 0, 18, 113, 1659 }, // Ж
{ 13, 20, 15, 1, 19, 65, 1772 }, // З
{ 16, 18, 20, 2, 18, 72, 1837 }, // И
{ 16, 24, 20, 2, 24, 96, 1909 }, // Й
{ 16, 18, 17, 2, 18, 72, 2005 }, // К
{ 17, 19, 18, 0, 18, 81, 2077 }, // Л
{ 20, 18, 24, 2, 18, 90, 2158 }, // М
{ 15, 18, 19, 2, 18, 68, 2248 }, // Н
{ 18, 20, 19, 1, 19, 90, 2316 }, // О
{ 15, 18, 19, 2, 18, 68, 2406 }, // П
{ 13, 18, 16, 2, 18, 59, 2474 }, // Р
{ 15, 20, 16, 1, 19, 75, 2533 }, // С
{ 14, 18, 14, 0, 18, 63, 2608 }, // Т
{ 17, 19, 16, 0, 18, 81, 2671 }, // У
{ 21, 20, 23, 1, 19, 105, 2752 }, // Ф
{ 17, 18, 17, 0, 18, 77, 2857 }, // Х
{ 18, 22, 19, 2, 18, 99, 2934 }, // Ц
{ 15, 18, 18, 1, 18, 68, 3033 }, // Ч
{ 23, 18, 27, 2, 18, 104, 3101 }, // Ш
{ 25, 22, 27, 2, 18, 138, 3205 }, // Щ
{ 18, 18, 19, 0, 18, 81, 3343 }, // Ъ
{ 19, 18, 23, 2, 18, 86, 3424 }, // Ы
{ 13, 18, 16, 2, 18, 59, 3510 }, // Ь
{ 14, 20, 16, 1, 19, 70, 3569 }, // Э
{ 23, 20, 25, 2, 19, 115, 3639 }, // Ю
{ 15, 18, 17, 0, 18, 68, 3754 }, // Я
{ 14, 15, 15, 0, 14, 53, 3822 }, // а
{ 14, 21, 16, 1, 20, 74, 3875 }, // б
{ 13, 14, 15, 1, 14, 46, 3949 }, // в
{ 10, 14, 12, 2, 14, 35, 3995 }, // г
{ 16, 18, 16, 0, 14, 72, 4030 }, // д
{ 13, 15, 15, 1, 14, 49, 4102 }, // е
{ 22, 14, 22, 0, 14, 77, 4151 }, // ж
{ 12, 15, 13, 0, 14, 45, 4228 }, // з
{ 13, 14, 17, 2, 14, 46, 4273 }, // и
{ 13, 20, 17, 2, 20, 65, 4319 }, // й
{ 14, 14, 15, 2, 14, 49, 4384 }, // к
{ 14, 15, 16, 0, 14, 53, 4433 }, // л
{ 17, 14, 21, 2, 14, 60, 4486 }, // м
{ 13, 14, 16, 2, 14, 46, 4546 }, // н
{ 14, 15, 16, 1, 14, 53, 4592 }, // о
{ 13, 14, 16, 2, 14, 46, 4645 }, // п
{ 13, 20, 16, 2, 14, 65, 4691 }, // р
{ 12, 15, 13, 1, 14, 45, 4756 }, // с
{ 13, 14, 13, 0, 14, 46, 4801 }, // т
{ 16, 20, 14, -1, 14, 80, 4847 }, // у
{ 19, 25, 20, 1, 19, 119, 4927 }, // ф
{ 15, 14, 14, 0, 14, 53, 5046 }, // х
{ 15, 18, 16, 1, 14, 68, 5099 }, // ц
{ 13, 14, 16, 1, 14, 46, 5167 }, // ч
{ 20, 14, 24, 2, 14, 70, 5213 }, // ш
{ 22, 18, 24, 2, 14, 99, 5283 }, // щ
{ 16, 14, 17, 0, 14, 56, 5382 }, // ъ
{ 18, 14, 21, 2, 14, 63, 5438 }, // ы
{ 12, 14, 15, 2, 14, 42, 5501 }, // ь
{ 13, 15, 13, 0, 14, 49, 5543 }, // э
{ 19, 15, 21, 2, 14, 72, 5592 }, // ю
{ 14, 14, 15, 0, 14, 49, 5664 }, // я
{ 13, 21, 15, 1, 20, 69, 5713 }, // ѐ
{ 13, 20, 15, 1, 19, 65, 5782 }, // ё
{ 15, 25, 16, 0, 19, 94, 5847 }, // ђ
{ 10, 20, 12, 2, 20, 50, 5941 }, // ѓ
{ 12, 15, 13, 1, 14, 45, 5991 }, // є
{ 11, 15, 12, 1, 14, 42, 6036 }, // ѕ
{ 5, 19, 8, 1, 19, 24, 6078 }, // і
{ 8, 19, 7, 0, 19, 38, 6102 }, // ї
{ 8, 26, 7, -2, 20, 52, 6140 }, // ј
{ 22, 15, 22, 0, 14, 83, 6192 }, // љ
{ 21, 14, 23, 2, 14, 74, 6275 }, // њ
{ 15, 19, 16, 0, 19, 72, 6349 }, // ћ
{ 14, 20, 15, 2, 20, 70, 6421 }, // ќ
{ 13, 20, 17, 2, 20, 65, 6491 }, // ѝ
{ 16, 26, 14, -1, 20, 104, 6556 }, // ў
{ 13, 18, 16, 2, 14, 59, 6660 }, // џ
{ 24, 18, 24, 0, 18, 108, 6719 }, // Ѡ
{ 22, 14, 22, 0, 14, 77, 6827 }, // ѡ
{ 16, 18, 17, 0, 18, 72, 6904 }, // Ѣ
{ 16, 17, 17, 0, 17, 68, 6976 }, // ѣ
{ 21, 20, 24, 2, 19, 105, 7044 }, // Ѥ
{ 19, 15, 20, 1, 14, 72, 7149 }, // ѥ
{ 19, 18, 18, 0, 18, 86, 7221 }, // Ѧ
{ 16, 14, 16, 0, 14, 56, 7307 }, // ѧ
{ 24, 18, 25, 2, 18, 108, 7363 }, // Ѩ
{ 22, 14, 23, 1, 14, 77, 7471 }, // ѩ
{ 20, 18, 20, 0, 18, 90, 7548 }, // Ѫ
{ 16, 14, 16, 0, 14, 56, 7638 }, // ѫ
{ 25, 18, 27, 2, 18, 113, 7694 }, // Ѭ
{ 21, 14, 22, 1, 14, 74, 7807 }, // ѭ
{ 15, 28, 16, 0, 22, 105, 7881 }, // Ѯ
{ 13, 23, 14, 0, 17, 75, 7986 }, // ѯ
{ 18, 18, 22, 2, 18, 81, 8061 }, // Ѱ
{ 19, 25, 21, 1, 19, 119, 8142 }, // ѱ
{ 18, 20, 20, 1, 19, 90, 8261 }, // Ѳ
{ 14, 15, 15, 1, 14, 53, 8351 }, // ѳ
{ 18, 18, 18, 0, 18, 81, 8404 }, // Ѵ
{ 16, 14, 15, 0, 14, 56, 8485 }, // ѵ
{ 18, 24, 18, 0, 24, 108, 8541 }, // Ѷ
{ 16, 20, 15, 0, 20, 80, 8649 }, // ѷ
{ 32, 25, 33, 1, 19, 200, 8729 }, // Ѹ
{ 29, 20, 29, 1, 14, 145, 8929 }, // ѹ
{ 19, 22, 21, 1, 20, 105, 9074 }, // Ѻ
{ 15, 18, 17, 1, 16, 68, 9179 }, // ѻ
{ 25, 28, 27, 1, 27, 175, 9247 }, // Ѽ
{ 22, 24, 24, 1, 23, 132, 9422 }, // ѽ
{ 24, 23, 24, 0, 23, 138, 9554 }, // Ѿ
{ 22, 19, 22, 0, 19, 105, 9692 }, // ѿ
{ 16, 25, 17, 1, 19, 100, 9797 }, // Ҁ
{ 12, 20, 13, 1, 14, 60, 9897 }, // ҁ
{ 13, 17, 15, 1, 16, 56, 9957 }, // ҂
{ 10, 5, 0, -12, 19, 13, 10013 }, // ҃
{ 11, 4, 0, -12, 19, 11, 10026 }, // ҄
{ 5, 6, 0, -9, 20, 8, 10037 }, // ҅
{ 5, 6, 0, -9, 20, 8, 10045 }, // ҆
{ 10, 4, 0, -5, 23, 10, 10053 }, // ҇
{ 30, 27, 0, -15, 20, 203, 10063 }, // ҈
{ 28, 28, 0, -14, 21, 196, 10266 }, // ҉
{ 21, 30, 23, 2, 24, 158, 10462 }, // Ҋ
{ 19, 25, 20, 1, 20, 119, 10620 }, // ҋ
{ 15, 18, 16, 0, 18, 68, 10739 }, // Ҍ
{ 15, 19, 15, 0, 19, 72, 10807 }, // ҍ
{ 13, 18, 16, 2, 18, 59, 10879 }, // Ҏ
{ 14, 20, 16, 1, 14, 70, 10938 }, // ҏ
{ 12, 22, 14, 2, 22, 66, 11008 }, // Ґ
{ 11, 18, 13, 1, 18, 50, 11074 }, // ґ
{ 14, 18, 14, 0, 18, 63, 11124 }, // Ғ
{ 12, 14, 12, 0, 14, 42, 11187 }, // ғ
{ 16, 25, 18, 2, 18, 100, 11229 }, // Ҕ
{ 14, 21, 15, 1, 14, 74, 11329 }, // ҕ
{ 26, 24, 26, 0, 18, 156, 11403 }, // Җ
{ 25, 19, 23, -1, 14, 119, 11559 }, // җ
{ 13, 25, 15, 1, 19, 82, 11678 }, // Ҙ
{ 12, 20, 13, 0, 14, 60, 11760 }, // ҙ
{ 17, 24, 19, 2, 18, 102, 11820 }, // Қ
{ 16, 19, 16, 1, 14, 76, 11922 }, // қ
{ 15, 18, 17, 2, 18, 68, 11998 }, // Ҝ
{ 15, 14, 15, 1, 14, 53, 12066 }, // ҝ
{ 17, 18, 17, 1, 18, 77, 12119 }, // Ҟ
{ 16, 19, 16, 0, 19, 76, 12196 }, // ҟ
{ 19, 18, 18, 0, 18, 86, 12272 }, // Ҡ
{ 18, 14, 17, 0, 14, 63, 12358 }, // ҡ
{ 19, 24, 21, 2, 18, 114, 12421 }, // Ң
{ 17, 19, 19, 1, 14, 81, 12535 }, // ң
{ 19, 18, 21, 2, 18, 86, 12616 }, // Ҥ
{ 18, 14, 19, 1, 14, 63, 12702 }, // ҥ
{ 25, 25, 28, 2, 18, 157, 12765 }, // Ҧ
{ 21, 21, 22, 1, 14, 111, 12922 }, // ҧ
{ 18, 21, 19, 1, 19, 95, 13033 }, // Ҩ
{ 15, 15, 16, 1, 14, 57, 13128 }, // ҩ
{ 15, 25, 16, 1, 19, 94, 13185 }, // Ҫ
{ 12, 20, 13, 1, 14, 60, 13279 }, // ҫ
{ 14, 24, 14, 0, 18, 84, 13339 }, // Ҭ
{ 14, 19, 14, 0, 14, 67, 13423 }, // ҭ
{ 16, 18, 16, 0, 18, 72, 13490 }, // Ү
{ 15, 20, 14, 0, 14, 75, 13562 }, // ү
{ 16, 18, 16, 0, 18, 72, 13637 }, // Ұ
{ 15, 20, 14, 0, 14, 75, 13709 }, // ұ
{ 19, 24, 19, 0, 18, 114, 13784 }, // Ҳ
{ 16, 19, 16, 0, 14, 76, 13898 }, // ҳ
{ 23, 24, 23, 0, 18, 138, 13974 }, // Ҵ
{ 20, 19, 20, 0, 14, 95, 14112 }, // ҵ
{ 19, 24, 20, 1, 18, 114, 14207 }, // Ҷ
{ 17, 19, 18, 1, 14, 81, 14321 }, // ҷ
{ 16, 18, 18, 1, 18, 72, 14402 }, // Ҹ
{ 14, 14, 16, 1, 14, 49, 14474 }, // ҹ
{ 15, 18, 18, 2, 18, 68, 14523 }, // Һ
{ 14, 19, 16, 1, 19, 67, 14591 }, // һ
{ 22, 20, 24, 0, 19, 110, 14658 }, // Ҽ
{ 18, 15, 18, -1, 14, 68, 14768 }, // ҽ
{ 22, 25, 24, 0, 19, 138, 14836 }, // Ҿ
{ 18, 19, 18, -1, 14, 86, 14974 }, // ҿ
{ 9, 18, 10, 0, 18, 41, 15060 }, // Ӏ
{ 25, 24, 25, 0, 24, 150, 15101 }, // Ӂ
{ 22, 20, 22, 0, 20, 110, 15251 }, // ӂ
{ 16, 25, 19, 2, 18, 100, 15361 }, // Ӄ
{ 15, 21, 16, 1, 14, 79, 15461 }, // ӄ
{ 21, 24, 21, 0, 18, 126, 15540 }, // Ӆ
{ 18, 19, 18, 0, 14, 86, 15666 }, // ӆ
{ 15, 25, 19, 2, 18, 94, 15752 }, // Ӈ
{ 14, 21, 17, 1, 14, 74, 15846 }, // ӈ
{ 19, 24, 21, 2, 18, 114, 15920 }, // Ӊ
{ 18, 19, 19, 1, 14, 86, 16034 }, // ӊ
{ 16, 24, 18, 1, 18, 96, 16120 }, // Ӌ
{ 14, 19, 16, 1, 14, 67, 16216 }, // ӌ
{ 24, 24, 26, 2, 18, 144, 16283 }, // Ӎ
{ 22, 19, 23, 1, 14, 105, 16427 }, // ӎ
{ 9, 18, 10, 0, 18, 41, 16532 }, // ӏ
{ 18, 24, 17, 0, 24, 108, 16573 }, // Ӑ
{ 13, 21, 15, 1, 20, 69, 16681 }, // ӑ
{ 18, 23, 17, 0, 23, 104, 16750 }, // Ӓ
{ 13, 20, 15, 1, 19, 65, 16854 }, // ӓ
{ 23, 18, 24, 0, 18, 104, 16919 }, // Ӕ
{ 21, 15, 23, 1, 14, 79, 17023 }, // ӕ
{ 11, 24, 14, 2, 24, 66, 17102 }, // Ӗ
{ 13, 21, 15, 1, 20, 69, 17168 }, // ӗ
{ 17, 20, 20, 2, 19, 85, 17237 }, // Ә
{ 13, 15, 15, 1, 14, 49, 17322 }, // ә
{ 17, 24, 20, 2, 23, 102, 17371 }, // Ӛ
{ 13, 20, 15, 1, 19, 65, 17473 }, // ӛ
{ 25, 23, 25, 0, 23, 144, 17538 }, // Ӝ
{ 22, 19, 22, 0, 19, 105, 17682 }, // ӝ
{ 13, 24, 15, 1, 23, 78, 17787 }, // Ӟ
{ 12, 20, 13, 0, 19, 60, 17865 }, // ӟ
{ 14, 19, 15, 0, 18, 67, 17925 }, // Ӡ
{ 14, 20, 15, 0, 14, 70, 17992 }, // ӡ
{ 16, 22, 20, 2, 22, 88, 18062 }, // Ӣ
{ 13, 18, 17, 2, 18, 59, 18150 }, // ӣ
{ 16, 23, 20, 2, 23, 92, 18209 }, // Ӥ
{ 13, 19, 17, 2, 19, 62, 18301 }, // ӥ
{ 18, 24, 20, 1, 23, 108, 18363 }, // Ӧ
{ 14, 20, 16, 1, 19, 70, 18471 }, // ӧ
{ 18, 20, 20, 1, 19, 90, 18541 }, // Ө
{ 14, 15, 15, 1, 14, 53, 18631 }, // ө
{ 18, 24, 20, 1, 23, 108, 18684 }, // Ӫ
{ 14, 20, 15, 1, 19, 70, 18792 }, // ӫ
{ 14, 24, 16, 1, 23, 84, 18862 }, // Ӭ
{ 13, 20, 13, 0, 19, 65, 18946 }, // ӭ
{ 17, 23, 16, 0, 22, 98, 19011 }, // Ӯ
{ 16, 24, 14, -1, 18, 96, 19109 }, // ӯ
{ 17, 24, 16, 0, 23, 102, 19205 }, // Ӱ
{ 16, 25, 14, -1, 19, 100, 19307 }, // ӱ
{ 17, 25, 16, 0, 24, 107, 19407 }, // Ӳ
{ 15, 26, 14, 0, 20, 98, 19514 }, // ӳ
{ 15, 23, 18, 1, 23, 87, 19612 }, // Ӵ
{ 13, 19, 16, 1, 19, 62, 19699 }, // ӵ
{ 12, 24, 14, 2, 18, 72, 19761 }, // Ӷ
{ 11, 19, 12, 1, 14, 53, 19833 }, // ӷ
{ 19, 23, 23, 2, 23, 110, 19886 }, // Ӹ
{ 18, 19, 21, 2, 19, 86, 19996 }, // ӹ
{ 14, 25, 14, 0, 18, 88, 20082 }, // Ӻ
{ 12, 20, 12, 0, 14, 60, 20170 }, // ӻ
{ 18, 25, 18, 0, 18, 113, 20230 }, // Ӽ
{ 16, 20, 16, 0, 14, 80, 20343 }, // ӽ
{ 17, 18, 17, 0, 18, 77, 20423 }, // Ӿ
{ 15, 14, 14, 0, 14, 53, 20500 }, // ӿ
{ 0, 0, 13, 0, 0, 0, 0 }, //  
{ 0, 0, 25, 0, 0, 0, 0 }, //
{ 0, 0, 13, 0, 0, 0, 0 }, //
{ 0, 0, 25, 0, 0, 0, 0 }, //
{ 0, 0, 8, 0, 0, 0, 0 }, //
{ 0, 0, 6, 0, 0, 0, 0 }, //
{ 0, 0, 4, 0, 0, 0, 0 }, //
{ 0, 0, 14, 0, 0, 0, 0 }, //
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 0, 0, 4, 0, 0, 0, 0 }, //
{ 0, 0, 3, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 7, 22, 0, -1, 18, 39, 0 }, //
{ 7, 22, 0, -6, 18, 39, 39 }, //
{ 8, 4, 8, 0, 9, 8, 78 }, //
{ 8, 4, 8, 0, 9, 8, 86 }, //
{ 13, 4, 14, 1, 11, 13, 94 }, //
{ 12, 4, 13, 0, 9, 12, 107 }, //
{ 25, 4, 25, 0, 9, 25, 119 }, // —
{ 25, 4, 25, 0, 9, 25, 144 }, // ―
{ 10, 25, 14, 2, 19, 63, 169 }, // ‖
{ 12, 6, 10, -1, 0, 18, 232 }, // ‗
{ 6, 7, 5, 0, 18, 11, 250 }, //
{ 6, 7, 5, 0, 18, 11, 261 }, //
{ 6, 7, 7, 0, 4, 11, 272 }, //
{ 6, 7, 5, 0, 18, 11, 283 }, //
{ 11, 7, 11, 0, 18, 20, 294 }, // “
{ 11, 7, 11, 0, 18, 20, 314 }, // ”
{ 12, 7, 13, 0, 3, 21, 334 }, // „
{ 11, 7, 11, 0, 18, 20, 355 }, // ‟
{ 11, 19, 13, 1, 19, 53, 375 }, // †
{ 11, 19, 13, 1, 19, 53, 428 }, // ‡
{ 8, 8, 9, 1, 13, 16, 481 }, // •
{ 9, 10, 9, 1, 14, 23, 497 }, // ‣
{ 5, 5, 13, 4, 4, 7, 520 }, //
{ 13, 5, 14, 1, 4, 17, 527 }, // ‥
{ 19, 5, 21, 1, 4, 24, 544 }, // …
{ 5, 5, 7, 1, 9, 7, 568 }, // ‧
{ 0, 0, 15, 0, 0, 0, 575 }, //
{ 0, 0, 15, 0, 0, 0, 575 }, //
{ 7, 20, 0, -1, 16, 35, 575 }, //
{ 7, 20, 0, -6, 16, 35, 610 }, //
{ 6, 22, 0, -3, 18, 33, 645 }, //
{ 6, 22, 0, -3, 18, 33, 678 }, //
{ 6, 22, 0, -3, 18, 33, 711 }, //
{ 0, 0, 4, 0, 0, 0, 744 }, //
{ 32, 20, 32, 0, 19, 160, 744 }, // ‰
{ 41, 20, 42, 0, 19, 205, 904 }, // ‱
{ 7, 7, 8, 1, 18, 13, 1109 }, //
{ 13, 7, 13, 1, 18, 23, 1122 }, // ″
{ 18, 7, 19, 1, 18, 32, 1145 }, // ‴
{ 7, 7, 11, 1, 18, 13, 1177 }, //
{ 13, 7, 16, 1, 18, 23, 1190 }, // ‶
{ 18, 7, 22, 1, 18, 32, 1213 }, // ‷
{ 10, 9, 10, 0, 3, 23, 1245 }, // ‸
{ 9, 12, 9, 0, 13, 27, 1268 }, //
{ 9, 12, 9, 0, 13, 27, 1295 }, //
{ 19, 20, 21, 1, 19, 95, 1322 }, // ※
{ 12, 19, 14, 1, 18, 57, 1417 }, // ‼
{ 12, 20, 12, 0, 19, 60, 1474 }, // ‽
{ 14, 3, 13, -1, 22, 11, 1534 }, // ‾
{ 15, 6, 15, 0, 0, 23, 1545 }, // ‿
{ 15, 6, 15, 0, 20, 23, 1568 }, // ⁀
{ 11, 17, 11, 0, 11, 47, 1591 }, //
{ 28, 23, 28, 0, 19, 161, 1638 }, // ⁂
{ 7, 4, 8, 1, 9, 7, 1799 }, //
{ 14, 18, 3, -5, 18, 63, 1806 }, //
{ 7, 22, 8, 1, 18, 39, 1869 }, // ⁅
{ 7, 22, 8, 0, 18, 39, 1908 }, // ⁆
{ 24, 20, 24, 0, 19, 120, 1947 }, // ⁇
{ 18, 20, 19, 0, 19, 90, 2067 }, // ⁈
{ 18, 20, 19, 1, 19, 90, 2157 }, // ⁉
{ 13, 14, 15, 1, 14, 46, 2247 }, // ⁊
{ 14, 23, 16, 1, 19, 81, 2293 }, // ⁋
{ 14, 13, 16, 1, 14, 46, 2374 }, // ⁌
{ 14, 13, 16, 2, 14, 46, 2420 }, // ⁍
{ 13, 12, 14, 0, 7, 39, 2466 }, //
{ 6, 18, 7, 1, 14, 27, 2505 }, // ⁏
{ 15, 26, 15, 0, 20, 98, 2532 }, // ⁐
{ 13, 25, 14, 0, 19, 82, 2630 }, // ⁑
{ 11, 20, 11, 0, 19, 55, 2712 }, // ⁒
{ 24, 5, 25, 1, 10, 30, 2767 }, //
{ 15, 6, 15, 0, 0, 23, 2797 }, // ⁔
{ 14, 13, 14, 0, 13, 46, 2820 }, // ⁕
{ 13, 20, 14, 1, 19, 65, 2866 }, // ⁖
{ 23, 7, 23, 1, 18, 41, 2931 }, // ⁗
{ 20, 20, 22, 1, 19, 100, 2972 }, // ⁘
{ 20, 20, 22, 1, 19, 100, 3072 }, // ⁙
{ 5, 20, 7, 1, 19, 25, 3172 }, //
{ 15, 21, 17, 1, 20, 79, 3197 }, // ⁛
{ 21, 20, 21, 0, 19, 105, 3276 }, // ⁜
{ 5, 20, 7, 1, 19, 25, 3381 }, // ⁝
{ 5, 20, 7, 1, 19, 25, 3406 }, // ⁞
{ 0, 0, 6, 0, 0, 0, 3431 }, //
{ 0, 0, 15, 0, 0, 0, 3431 }, //
{ 0, 0, 15, 0, 0, 0, 3431 }, //
{ 0, 0, 15, 0, 0, 0, 3431 }, //
{ 0, 0, 15, 0, 0, 0, 3431 }, //
{ 0, 0, 15, 0, 0, 0, 3431 }, //
{ 0, 0, 0, 0, 0, 0, 3431 }, //
{ 0, 0, 0, 0, 0, 0, 3431 }, //
{ 0, 0, 0, 0, 0, 0, 3431 }, //
{ 0, 0, 0, 0, 0, 0, 3431 }, //
{ 6, 22, 0, -3, 18, 33, 3431 }, //
{ 6, 22, 0, -3, 18, 33, 3464 }, //
{ 6, 22, 0, -3, 18, 33, 3497 }, //
{ 6, 22, 0, -3, 18, 33, 3530 }, //
{ 6, 22, 0, -3, 18, 33, 3563 }, //
{ 6, 22, 0, -3, 18, 33, 3596 }, //
{ 9, 12, 9, 0, 22, 27, 0 }, // ⁰
{ 3, 12, 5, 1, 19, 9, 27 }, // ⁱ
{ 10, 12, 10, 0, 22, 30, 36 }, // ⁴
{ 8, 12, 10, 1, 22, 24, 66 }, // ⁵
{ 9, 12, 10, 0, 22, 27, 90 }, // ⁶
{ 9, 12, 10, 0, 22, 27, 117 }, // ⁷
{ 9, 12, 10, 0, 22, 27, 144 }, // ⁸
{ 9, 12, 10, 0, 22, 27, 171 }, // ⁹
{ 9, 8, 9, 0, 19, 18, 198 }, // ⁺
{ 9, 2, 9, 0, 16, 5, 216 }, // ⁻
{ 9, 6, 9, 0, 18, 14, 221 }, // ⁼
{ 5, 15, 6, 1, 23, 19, 235 }, // ⁽
{ 5, 15, 6, 0, 23, 19, 254 }, // ⁾
{ 9, 9, 11, 1, 16, 21, 273 }, // ⁿ
{ 9, 12, 9, 0, 8, 27, 294 }, // ₀
{ 7, 12, 10, 0, 8, 21, 321 }, // ₁
{ 9, 12, 9, 0, 8, 27, 342 }, // ₂
{ 9, 12, 10, 0, 8, 27, 369 }, // ₃
{ 10, 12, 10, 0, 8, 30, 396 }, // ₄
{ 8, 12, 10, 1, 8, 24, 426 }, // ₅
{ 9, 12, 10, 0, 8, 27, 450 }, // ₆
{ 9, 12, 10, 0, 8, 27, 477 }, // ₇
{ 9, 12, 10, 0, 8, 27, 504 }, // ₈
{ 9, 12, 10, 0, 8, 27, 531 }, // ₉
{ 9, 8, 9, 0, 6, 18, 558 }, // ₊
{ 9, 2, 9, 0, 3, 5, 576 }, // ₋
{ 9, 6, 9, 0, 5, 14, 581 }, // ₌
{ 5, 15, 6, 1, 9, 19, 595 }, // ₍
{ 5, 15, 6, 0, 9, 19, 614 }, // ₎
{ 9, 9, 10, 0, 6, 21, 633 }, // ₐ
{ 9, 9, 10, 0, 6, 21, 654 }, // ₑ
{ 10, 9, 10, 0, 6, 23, 675 }, // ₒ
{ 10, 9, 9, 0, 6, 23, 698 }, // ₓ
{ 9, 9, 10, 0, 6, 21, 721 }, // ₔ
{ 9, 12, 11, 1, 9, 27, 742 }, // ₕ
{ 10, 12, 10, 1, 9, 30, 769 }, // ₖ
{ 3, 12, 5, 1, 9, 9, 799 }, // ₗ
{ 14, 9, 16, 1, 6, 32, 808 }, // ₘ
{ 9, 9, 11, 1, 6, 21, 840 }, // ₙ
{ 9, 12, 10, 1, 6, 27, 861 }, // ₚ
{ 8, 9, 8, 0, 6, 18, 888 }, // ₛ
{ 7, 11, 7, 0, 8, 20, 906 }, // ₜ
{ 14, 19, 14, 0, 19, 67, 0 }, // ₠
{ 15, 21, 15, 0, 19, 79, 67 }, // ₡
{ 14, 20, 14, 0, 19, 70, 146 }, // ₢
{ 13, 18, 14, 0, 18, 59, 216 }, // ₣
{ 13, 19, 14, 1, 19, 62, 275 }, // ₤
{ 22, 20, 24, 1, 17, 110, 337 }, // ₥
{ 15, 18, 14, 0, 18, 68, 447 }, // ₦
{ 21, 19, 22, 1, 18, 100, 515 }, // ₧
{ 22, 19, 23, 1, 18, 105, 615 }, // ₨
{ 19, 18, 18, 0, 18, 86, 720 }, // ₩
{ 19, 18, 23, 2, 18, 86, 806 }, // ₪
{ 15, 23, 16, 1, 19, 87, 892 }, // ₫
{ 15, 19, 14, 0, 18, 72, 979 }, // €
{ 15, 18, 14, 0, 18, 68, 1051 }, // ₭
{ 14, 18, 14, 0, 18, 63, 1119 }, // ₮
{ 25, 25, 25, 0, 19, 157, 1182 }, // ₯
{ 14, 25, 15, 0, 19, 88, 1339 }, // ₰
{ 15, 18, 14, 0, 18, 68, 1427 }, // ₱
{ 16, 21, 18, 1, 19, 84, 1495 }, // ₲
{ 17, 18, 16, 0, 18, 77, 1579 }, // ₳
{ 15, 20, 14, 0, 19, 75, 1656 }, // ₴
{ 15, 21, 16, 1, 19, 79, 1731 }, // ₵
{ 17, 18, 17, 0, 17, 77, 1810 }, // ₶
{ 18, 21, 18, 0, 19, 95, 1887 }, // ₷
{ 14, 18, 14, 0, 18, 63, 1982 }, // ₸
{ 12, 18, 14, 1, 18, 54, 2045 }, // ₹
{ 14, 19, 14, 0, 18, 67, 2099 }, // ₺
{ 20, 20, 20, 0, 19, 100, 2166 }, // ₻
{ 20, 18, 22, 1, 18, 90, 2266 }, // ₼
{ 15, 18, 15, 0, 18, 68, 2356 }, // ₽
{ 18, 20, 20, 1, 20, 90, 2424 }, // ₾
{ 12, 24, 14, 2, 21, 72, 2514 }, // ₿
{ 12, 19, 13, 1, 14, 57, 2586 }, // ⃀
{ 13, 4, 15, 1, 11, 13, 0 }, //
{ 23, 23, 25, 1, 19, 133, 0 }, // <20>
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
static const EpdUnicodeInterval notosans_12_boldIntervals[] = {
{ 0x0, 0x0, 0x0 },
{ 0xD, 0xD, 0x1 },
{ 0x20, 0x7E, 0x2 },
{ 0xA0, 0xFF, 0x61 },
{ 0x100, 0x17F, 0xC1 },
{ 0x300, 0x36F, 0x141 },
{ 0x400, 0x4FF, 0x1B1 },
{ 0x2000, 0x2064, 0x2B1 },
{ 0x2066, 0x206F, 0x316 },
{ 0x2070, 0x2071, 0x320 },
{ 0x2074, 0x208E, 0x322 },
{ 0x2090, 0x209C, 0x33D },
{ 0x20A0, 0x20C0, 0x34A },
{ 0x2212, 0x2212, 0x36B },
{ 0xFFFD, 0xFFFD, 0x36C },
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
static const EpdFontGroup notosans_12_boldGroups[] = {
{ 0, 2846, 5219, 97, 0 },
{ 2846, 2874, 6362, 96, 97 },
{ 5720, 3541, 9747, 128, 193 },
{ 9261, 1103, 1473, 112, 321 },
{ 10364, 9401, 20553, 256, 433 },
{ 19765, 1964, 3629, 111, 689 },
{ 21729, 557, 926, 42, 800 },
{ 22286, 1688, 2643, 33, 842 },
{ 23974, 16, 13, 1, 875 },
{ 23990, 90, 133, 1, 876 },
};
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
static const EpdFontData notosans_12_bold = {
notosans_12_boldBitmaps,
notosans_12_boldGlyphs,
notosans_12_boldIntervals,
15,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
34,
27,
-8,
true,
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
notosans_12_boldGroups,
10,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};